@charset "UTF-8";: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);--teal: #2BB3A3;--teal-soft: rgba(43, 179, 163, .12);--accent: #6B92E5;--accent-soft: rgba(107, 146, 229, .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-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-pink{background:var(--pink-soft);color:var(--pink)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.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)}a{text-decoration:none;color:inherit}.shell{display:flex;height:100vh;width:100vw}.shell-sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);height:100%;background:var(--surface);border-radius:var(--radius-2xl);display:flex;flex-direction:column;align-items:center;padding:var(--sp-3) 0;gap:var(--sp-1);z-index:100;box-shadow:var(--neu-lg);transition:width var(--duration-base) var(--ease-default),min-width var(--duration-base) var(--ease-default);position:relative}.shell-sidebar.expanded{width:var(--sidebar-expanded);min-width:var(--sidebar-expanded);align-items:stretch;padding:var(--sp-3) var(--sp-2)}.shell-sidebar.expanded .sidebar-logo{width:100%;height:40px;border-radius:var(--radius-sm);justify-content:flex-start;padding:0 var(--sp-3);gap:var(--sp-3);font-size:var(--text-sm)}.shell-sidebar.expanded .sidebar-logo-text{display:inline}.shell-sidebar.expanded .sidebar-divider{width:100%}.shell-sidebar.expanded .sidebar-item{width:100%;justify-content:flex-start;padding:0 var(--sp-3);gap:var(--sp-3);border-radius:var(--radius-sm)}.shell-sidebar.expanded .sidebar-item .status-dot,.shell-sidebar.expanded .sidebar-item .badge{position:static;margin-left:auto}.shell-sidebar.expanded .sidebar-item-label{display:inline}.shell-sidebar:not(.expanded) .sidebar-item:hover .tooltip{opacity:1}.sidebar-logo{width:36px;height:36px;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--neu-inset-sm);display:flex;align-items:center;justify-content:center;color:var(--text-primary);font-weight:800;font-size:var(--text-sm);cursor:pointer;flex-shrink:0;margin-bottom:var(--sp-4);transition:all var(--duration-base) var(--ease-default)}.sidebar-logo-text{display:none;font-weight:600;white-space:nowrap}.sidebar-divider{width:24px;height:1px;background:var(--border-default);margin:var(--sp-2) 0;flex-shrink:0}.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1;width:100%}.sidebar-item{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-tertiary);transition:all var(--duration-base) var(--ease-default);position:relative;flex-shrink:0;align-self:center}.sidebar-item:hover{background:var(--surface-raised);box-shadow:var(--neu-sm);color:var(--text-primary)}.sidebar-item.active{box-shadow:var(--neu-inset-sm);color:var(--blue)}.sidebar-item svg{width:20px;height:20px;flex-shrink:0}.sidebar-item .tooltip{position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);background:var(--tooltip-bg);color:var(--tooltip-text);padding:var(--sp-1) var(--sp-3);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:200}.sidebar-item .status-dot{width:6px;height:6px;border-radius:50%;background:var(--success);position:absolute;top:8px;right:8px}.sidebar-item .badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;border-radius:var(--radius-sm);background:var(--error);color:#fff;font-size:var(--text-3xs);font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px}.sidebar-item-label{display:none;font-size:var(--text-sm);font-weight:500;white-space:nowrap}.sidebar-bottom{display:flex;flex-direction:column;gap:2px;width:100%;align-items:center}.sidebar-toggle{width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-tertiary);transition:all var(--duration-fast) var(--ease-default);margin-top:var(--sp-1)}.sidebar-toggle:hover{color:var(--text-primary);background:var(--surface-raised)}.sidebar-toggle svg{width:16px;height:16px}.sidebar-resize-handle{position:absolute;top:0;right:-3px;bottom:0;width:6px;cursor:col-resize;z-index:101}.sidebar-resize-handle:after{content:"";position:absolute;top:50%;right:2px;width:2px;height:32px;border-radius:1px;background:var(--border-default);transform:translateY(-50%);opacity:0;transition:opacity var(--duration-fast)}.sidebar-resize-handle:hover:after,.sidebar-resize-handle.dragging:after{opacity:1;background:var(--blue)}.sidebar-sortable{display:flex;width:100%;justify-content:center;cursor:grab}.sidebar-sortable:active{cursor:grabbing}.sidebar-sortable--dragging{opacity:.4;z-index:50}.shell-sidebar.expanded .sidebar-sortable{justify-content:flex-start}.shell-content{flex:1;height:100%;display:flex;flex-direction:column;overflow-x:auto;position:relative}.screen{display:none;flex:1;flex-direction:column}.screen.active{display:flex}.service-screen{flex:1;display:flex;flex-direction:column}.service-status-bar{height:var(--status-bar-height);display:flex;align-items:center;padding:0 var(--sp-4);gap:var(--sp-2);background:var(--surface);border-bottom:1px solid var(--border-subtle);font-size:var(--text-xs);color:var(--text-tertiary);flex-shrink:0}.service-status-bar-actions{margin-left:auto;display:flex;gap:var(--sp-2);align-items:center}.service-status-dot{width:6px;height:6px;border-radius:50%;background:var(--success);flex-shrink:0}.service-status-dot.offline{background:var(--error)}.service-status-dot.loading{background:var(--warning);animation:pulse 1.5s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.service-status-name{font-weight:500;color:var(--text-secondary)}.online-avatars{display:flex;align-items:center}.online-avatars .avatar,.online-avatars .online-avatar-overflow{border:2px solid var(--surface);margin-left:-5px;cursor:default}.online-avatars .avatar:first-child,.online-avatars .online-avatar-overflow:first-child{margin-left:0}.online-avatar-overflow{width:20px;height:20px;border-radius:50%;background:var(--surface-raised);color:var(--text-secondary);border:2px solid var(--border-subtle);display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:600;flex-shrink:0}.service-status-url{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-placeholder)}.service-iframe-area{flex:1;background:#fff;position:relative;overflow:hidden}[data-theme=dark] .service-iframe-area{background:#1a1a2e}.spinner{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--purple);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.mock-service{width:100%;height:100%;display:flex}@media (max-width: 600px){.shell-sidebar{display:none;position:fixed;left:0;top:0;bottom:0;z-index:100}.service-status-bar{padding:0 var(--sp-2);gap:var(--sp-1)}.service-status-url{display:none}.shell-content{min-width:0}.dashboard{padding:var(--sp-4)}.dashboard-header h1{font-size:var(--text-2xl)}}.mock-plane-view,.mock-nc-view,.mock-ab-tab-content,.mock-dl-view{display:none;flex-direction:column}.mock-plane-view.active,.mock-nc-view.active,.mock-ab-tab-content.active,.mock-dl-view.active{display:flex}.mock-plane-detail-overlay,.mock-nc-expand-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:10;display:none}.mock-plane-detail-overlay.visible,.mock-nc-expand-overlay.visible{display:block}.mock-plane-detail,.mock-nc-expand-panel,.mock-ab-panel{position:absolute;top:0;right:0;bottom:0;background:var(--surface-ink);display:none;flex-direction:column;box-shadow:-4px 0 24px #0000001a;animation:slideIn .25s var(--ease-default)}.mock-plane-detail.visible,.mock-nc-expand-panel.visible,.mock-ab-panel.visible{display:flex}.mock-plane-detail-header,.mock-nc-expand-header,.mock-ab-panel-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle);gap:var(--sp-2_5)}.mock-plane-detail-label{font-size:var(--text-xxs);font-weight:600;color:var(--text-placeholder)}.mock-nc-expand-footer,.mock-ab-panel-footer{border-top:1px solid var(--border-subtle);display:flex;gap:var(--sp-2);justify-content:flex-end}.mock-plane-cal-title,.mock-nc-cal-title{font-size:var(--text-mid);font-weight:600;color:var(--text-primary)}.mock-plane-cal-nav,.mock-nc-cal-nav{display:flex;gap:var(--sp-1)}.mock-plane-cal-nav button,.mock-nc-cal-nav button{width:28px;height:28px;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--border-default);font-size:var(--text-mid);color:var(--text-secondary)}.mock-plane-cal-grid,.mock-nc-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--border-default);border-radius:var(--radius-sm)}.mock-plane-cal-day-header,.mock-nc-cal-day-header{padding:var(--sp-2) var(--sp-1);text-align:center;font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;color:var(--text-placeholder);background:var(--surface);border-bottom:1px solid var(--border-default)}.mock-plane-cal-cell,.mock-nc-cal-cell{padding:var(--sp-1);border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.mock-plane-cal-cell:nth-child(7n),.mock-nc-cal-cell:nth-child(7n){border-right:none}.mock-plane-cal-date,.mock-nc-cal-date{font-size:var(--text-xxs);color:var(--text-tertiary);padding:var(--sp-0_5) var(--sp-1);text-align:right}.mock-plane-cal-date.today,.mock-nc-cal-date.today{border-radius:var(--radius-full);width:20px;height:20px;margin-left:auto;color:var(--text-on-accent)}.mock-plane-cal-event,.mock-nc-cal-event{font-size:var(--text-2xs);padding:var(--sp-0_5) var(--sp-1);border-radius:var(--radius-xs);margin-top:var(--sp-0_5)}.mock-nc-filter-panel,.mock-nc-sort-panel,.mock-nc-groupby-panel{position:absolute;top:var(--sp-10);left:0;background:var(--surface-ink);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000001f;z-index:6;display:none;flex-direction:column}.mock-nc-filter-panel.visible,.mock-nc-sort-panel.visible,.mock-nc-groupby-panel.visible{display:flex}.mock-nc-filter-header,.mock-nc-sort-header,.mock-nc-groupby-header{padding:var(--sp-2_5) var(--sp-3);border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.mock-nc-filter-list,.mock-nc-sort-list,.mock-nc-groupby-list{padding:var(--sp-2)}.mock-nc-filter-row,.mock-nc-sort-row,.mock-nc-groupby-row{font-size:var(--text-xs)}.mock-nc-filter-footer,.mock-nc-sort-footer,.mock-nc-groupby-footer{padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border-subtle)}.mock-nc-filter-add,.mock-nc-sort-add,.mock-nc-groupby-add{font-size:var(--text-xs);color:var(--blue)}.mock-nc-filter-add:hover,.mock-nc-sort-add:hover,.mock-nc-groupby-add:hover{text-decoration:underline}.mock-dl-wizard-header,.mock-dl-editor-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-dl-wizard-header h3,.mock-dl-editor-header h3{font-size:var(--text-base);font-weight:600;color:var(--text-primary)}.mock-dl-wizard-footer,.mock-dl-editor-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle);display:flex;gap:var(--sp-2);justify-content:flex-end}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-center-center{display:flex;align-items:center;justify-content:center}.flex-center-g0_5{display:flex;align-items:center;gap:var(--sp-0_5)}.flex-center-g1{display:flex;align-items:center;gap:var(--sp-1)}.flex-center-g1_5{display:flex;align-items:center;gap:var(--sp-1_5)}.flex-center-g2{display:flex;align-items:center;gap:var(--sp-2)}.flex-center-g3{display:flex;align-items:center;gap:var(--sp-3)}.flex-center-g4{display:flex;align-items:center;gap:var(--sp-4)}.flex-col-g1{display:flex;flex-direction:column;gap:var(--sp-1)}.flex-col-g1_5{display:flex;flex-direction:column;gap:var(--sp-1_5)}.flex-col-g2{display:flex;flex-direction:column;gap:var(--sp-2)}.flex-col-g3{display:flex;flex-direction:column;gap:var(--sp-3)}.flex-col-g4{display:flex;flex-direction:column;gap:var(--sp-4)}.flex-col-g5{display:flex;flex-direction:column;gap:var(--sp-5)}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flex-center{display:flex;align-items:center}.flex-col{display:flex;flex-direction:column}.flex-1-min0{flex:1;min-width:0}.uppercase-spaced{text-transform:uppercase;letter-spacing:.5px}.inline-flex-center-g1{display:inline-flex;align-items:center;gap:var(--sp-1)}.inline-flex-center-g1_5{display:inline-flex;align-items:center;gap:var(--sp-1_5)}.inline-flex-center-g2{display:inline-flex;align-items:center;gap:var(--sp-2)}.flex-end-g2{display:flex;justify-content:flex-end;gap:var(--sp-2)}.grid-2col-g3{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.grid-2col-g4{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.grid-3col-g3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}.grid-4col-g3{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3)}.grid-5col-g3{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-3)}.text-xs-500-secondary{font-size:var(--text-xs);font-weight:500;color:var(--text-secondary)}.text-xs-600-primary{font-size:var(--text-xs);font-weight:600;color:var(--text-primary)}.text-xxs-600-placeholder{font-size:var(--text-xxs);font-weight:600;color:var(--text-placeholder)}.text-sm-600-primary{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.text-mid-600-primary{font-size:var(--text-mid);font-weight:600;color:var(--text-primary)}.color-primary{color:var(--text-primary)}.color-secondary{color:var(--text-secondary)}.color-tertiary{color:var(--text-tertiary)}.color-placeholder{color:var(--text-placeholder)}.color-success{color:var(--success)}.color-error{color:var(--error)}.color-purple{color:var(--purple)}.color-blue{color:var(--blue)}.bg-surface{background:var(--surface)}.bg-surface-ink{background:var(--surface-ink)}.bg-surface-inset{background:var(--surface-inset)}.badge-blue{background:var(--blue-soft);color:var(--blue)}.badge-purple{background:var(--purple-soft);color:var(--purple)}.badge-orange{background:var(--orange-soft);color:var(--orange)}.badge-green{background:var(--green-soft);color:var(--green)}.badge-error{background:var(--error-soft);color:var(--error)}.badge-success{background:var(--success-soft);color:var(--success)}.text-2xs{font-size:var(--text-2xs)}.text-xxs{font-size:var(--text-xxs)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-mid{font-size:var(--text-mid)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-uppercase{text-transform:uppercase}.ml-auto{margin-left:auto}.justify-end{justify-content:flex-end}.flex-1{flex:1}.flex-1-fullvh{flex:1;min-height:100vh}.shrink-0{flex-shrink:0}.user-select-none{-webkit-user-select:none;user-select:none}.cursor-pointer{cursor:pointer}.font-mono{font-family:var(--font-mono)}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.pos-relative{position:relative}.icon-blue{background:var(--blue-soft);color:var(--blue)}.icon-purple{background:var(--purple-soft);color:var(--purple)}.icon-orange{background:var(--orange-soft);color:var(--orange)}.icon-green{background:var(--green-soft);color:var(--green)}.icon-pink{background:var(--pink-soft);color:var(--pink)}.icon-muted{background:var(--border-subtle);color:var(--text-secondary)}.icon-neutral{background:var(--surface-inset);color:var(--text-secondary)}.icon-yellow{background:var(--warning-soft);color:var(--warning)}.tag-green{background:var(--green-soft);color:var(--green)}.tag-blue{background:var(--blue-soft);color:var(--blue)}.tag-orange{background:var(--orange-soft);color:var(--orange)}.dot-success{background:var(--success)}.dot-neutral{background:var(--text-tertiary)}.dot-blue{background:var(--blue)}.dot-purple{background:var(--purple)}.dot-orange{background:var(--orange)}.dot-green{background:var(--green)}.dot-error{background:var(--error)}.dot-pink{background:var(--pink)}.text-purple{color:var(--purple)}.text-blue{color:var(--blue)}.text-orange{color:var(--orange)}.text-pink{color:var(--pink)}.text-success{color:var(--success)}.text-error{color:var(--error)}.text-gray{color:var(--gray-400)}.text-tertiary{color:var(--text-tertiary)}.text-mono{font-size:var(--text-xs)}.text-meta{font-size:var(--text-xs);color:var(--text-tertiary)}.text-xs-muted{font-size:var(--text-xxs);color:var(--text-tertiary)}.text-sm-muted{font-size:var(--text-xs);color:var(--text-placeholder)}.mt-1{margin-top:var(--sp-1)}.mt-3{margin-top:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.ml-4{margin-left:var(--sp-4)}.m-0{margin:0}.w-120{width:120px}.py-sm{padding-top:var(--sp-1_5);padding-bottom:var(--sp-1_5)}.pl-indent{padding-left:var(--sp-8)}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.bg-purple{background:var(--purple)}.bg-blue{background:var(--blue)}.bg-pink{background:var(--pink)}.bg-orange{background:var(--orange)}.bg-green{background:var(--green)}.bg-green-soft{background:var(--green-soft)}.bg-purple-soft{background:var(--purple-soft)}.bg-success{background:var(--success)}.bg-error{background:var(--error)}.bg-gray-400{background:var(--gray-400)}.bg-warning-soft{background:var(--warning-soft)}.bg-border-subtle{background:var(--border-subtle)}.bg-surface-raised{background:var(--surface-raised)}.neu-box{background:var(--surface);border-radius:var(--radius-xl);padding:var(--sp-6)}.neu-flat{box-shadow:none;border:1px solid var(--border-default)}.divider-v{width:1px;height:16px;background:var(--border-default)}.section-title{font-size:var(--text-mid);font-weight:600;margin-bottom:var(--sp-3);color:var(--text-primary)}.btn-icon{width:28px;height:28px;text-align:center;padding:0}.status-pill{font-size:var(--text-xxs);padding:var(--sp-1) var(--sp-2_5);border-radius:var(--radius-base)}.status-pill.active{color:var(--success);background:var(--green-soft)}.text-center{text-align:center}.w-full{width:100%}.mb-2{margin-bottom:var(--sp-2)}.mb-4{margin-bottom:var(--sp-4)}.m-5{margin:var(--sp-5)}.p-2{padding:var(--sp-2)}.p-3{padding:var(--sp-3)}.p-4{padding:var(--sp-4)}.p-5{padding:var(--sp-5)}.px-4{padding-left:var(--sp-4);padding-right:var(--sp-4)}.py-4{padding-top:var(--sp-4);padding-bottom:var(--sp-4)}.pt-2{padding-top:var(--sp-2)}.pt-4{padding-top:var(--sp-4)}.p-8{padding:var(--sp-8)}.py-2{padding-top:var(--sp-2);padding-bottom:var(--sp-2)}.mt-2{margin-top:var(--sp-2)}.mb-3{margin-bottom:var(--sp-3)}.word-break-all{word-break:break-all}@media (max-width: 900px){.summary-row{grid-template-columns:repeat(2,1fr)}.widget-grid{grid-template-columns:1fr}.quick-actions{grid-template-columns:repeat(2,1fr)}.mock-dl-grid{grid-template-columns:1fr}.mock-dl-card.wide{grid-column:span 1}.mock-ab-projects-grid{grid-template-columns:repeat(2,1fr)}.mock-ab-projects-detail{width:300px}.plane-your-work-summary,.nc-admin-plugin-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.summary-row{grid-template-columns:1fr}.quick-actions{grid-template-columns:1fr 1fr}.dashboard-header h1{font-size:var(--text-2xl)}.mock-plane-sidebar,.mock-nc-sidebar,.mock-dl-sidebar,.mock-ab-sidebar{display:none}.mock-dl-widget-type-grid{grid-template-columns:repeat(2,1fr)}.mock-ab-projects-grid{grid-template-columns:1fr}.mock-ab-projects-detail{width:100%}}.overlay-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:500}.confirm-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1400;background:var(--overlay-bg);display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}.confirm-dialog{display:flex;flex-direction:column;width:min(420px,96vw);max-height:90vh;background:var(--surface-raised);border-radius:var(--radius-lg);box-shadow:var(--neu-lg);overflow:hidden}.confirm-dialog-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.confirm-dialog-title{margin:0;font-size:var(--text-base);color:var(--text-primary)}.confirm-dialog-x{margin-left:auto;display:flex;padding:var(--sp-1);border:0;background:transparent;color:var(--text-tertiary);border-radius:var(--radius-s);cursor:pointer}.confirm-dialog-x:hover{background:var(--surface);color:var(--text-primary)}.confirm-dialog-body{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);overflow-y:auto}.confirm-dialog-text{line-height:1.5}.confirm-dialog-foot{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border-subtle)}.overlay-panel{background:var(--surface-ink);border-radius:var(--radius-xl);box-shadow:0 20px 60px #0003;max-width:94vw;max-height:90vh;overflow-y:auto;padding:var(--sp-5)}.overlay-panel--sm{min-width:400px;max-width:480px}.overlay-panel--md{min-width:440px;max-width:520px}.overlay-panel__title{margin-bottom:var(--sp-4)}.overlay-panel__footer{margin-top:var(--sp-4)}.overlay-panel .admin-token-display{background:var(--surface-inset);padding:var(--sp-3);border-radius:var(--radius-sm);font-family:monospace;font-size:.75rem;word-break:break-all;margin-bottom:var(--sp-3)}.cmd-palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:600;display:none;align-items:flex-start;justify-content:center;padding-top:15vh}.cmd-palette-overlay.visible{display:flex}.cmd-palette{width:560px;max-width:90vw;background:var(--surface-ink);border-radius:14px;box-shadow:0 20px 60px #0003;overflow:hidden;animation:cmdIn .2s var(--ease-default)}.cmd-palette-input-wrap{display:flex;align-items:center;padding:14px 16px;gap:var(--sp-2_5);border-bottom:1px solid var(--border-default)}.cmd-palette-icon{color:var(--text-placeholder)}.cmd-palette-icon svg{width:18px;height:18px}.cmd-palette-input{flex:1;border:none;background:none;font-family:var(--font-sans);font-size:15px;color:var(--text-primary);outline:none}.cmd-palette-input::placeholder{color:var(--text-placeholder)}.cmd-palette-kbd{font-family:var(--font-mono);font-size:var(--text-xxs);color:var(--text-placeholder);background:var(--surface);padding:2px 6px;border-radius:var(--radius-xs)}.cmd-palette-results{max-height:420px;overflow-y:auto;padding:var(--sp-2)}.cmd-palette-group-label{font-size:var(--text-xxs);font-weight:600;color:var(--text-placeholder);text-transform:uppercase;letter-spacing:.5px;padding:8px 8px 4px}.cmd-palette-item{display:flex;align-items:center;gap:var(--sp-2_5);padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background .1s}.cmd-palette-item:hover,.cmd-palette-item.selected{background:var(--border-subtle)}.cmd-palette-item-icon{width:28px;height:28px;border-radius:var(--radius-s);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);flex-shrink:0}.cmd-palette-item-text{flex:1;font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.cmd-palette-item-hint{font-size:var(--text-xxs);color:var(--text-placeholder)}.cmd-palette-footer{padding:8px 16px;border-top:1px solid var(--border-subtle);display:flex;gap:var(--sp-4);font-size:var(--text-xxs);color:var(--text-placeholder)}.cmd-palette-footer kbd{font-family:var(--font-mono);background:var(--surface);padding:1px 4px;border-radius:3px;font-size:var(--text-2xs)}@keyframes cmdIn{0%{opacity:0;transform:scale(.96) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.profile-menu{position:fixed;bottom:60px;left:64px;width:240px;background:var(--surface-ink);border-radius:var(--radius-md);box-shadow:0 8px 32px #00000026;z-index:400;display:none;overflow:hidden;animation:menuIn .15s var(--ease-default);transition:left var(--duration-base) var(--ease-default)}.profile-menu.sidebar-expanded{left:248px}.profile-menu.visible{display:block}.profile-menu-header{padding:var(--sp-4);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;gap:var(--sp-2_5)}.profile-menu-info{display:flex;flex-direction:column}.profile-menu-name{font-size:var(--text-mid);font-weight:600;color:var(--text-primary)}.profile-menu-email{font-size:var(--text-xs);color:var(--text-tertiary)}.profile-menu-items{padding:var(--sp-1_5)}.profile-menu-item{display:flex;align-items:center;gap:var(--sp-2_5);padding:8px 10px;border-radius:var(--radius-s);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:background .1s}.profile-menu-item:hover{background:var(--border-subtle);color:var(--text-primary)}.profile-menu-item svg{width:16px;height:16px;flex-shrink:0}.profile-menu-item.danger{color:var(--error)}.profile-menu-item.danger:hover{background:var(--error-soft)}.profile-menu-divider{height:1px;background:var(--border-subtle);margin:4px 6px}@keyframes menuIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:var(--sidebar-width);background:var(--overlay-bg);z-index:500;display:none;transition:left var(--duration-base) var(--ease-default)}.settings-overlay.visible{display:block}.settings-overlay.sidebar-expanded{left:var(--sidebar-expanded)}.settings-panel{position:fixed;top:0;right:0;max-width:90vw;height:100%;background:var(--surface-ink);box-shadow:-4px 0 24px #0000001a;z-index:501;display:none;flex-direction:column;animation:slideIn .25s var(--ease-default)}.settings-panel.visible{display:flex}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.settings-header{padding:var(--sp-5);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between}.settings-header h2{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.settings-close{width:28px;height:28px;border-radius:var(--radius-s);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-tertiary);transition:all .1s}.settings-close:hover{background:var(--border-subtle);color:var(--text-primary)}.settings-tabs-bar{padding:0 20px;border-bottom:1px solid var(--border-subtle);flex-shrink:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.settings-tabs-bar::-webkit-scrollbar{display:none}.settings-tabs-bar .tab{font-size:var(--text-xs);padding:10px 8px;white-space:nowrap}.settings-body{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:var(--sp-6)}.settings-section-title{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-placeholder);margin-bottom:var(--sp-3);display:flex;align-items:center;gap:var(--sp-2)}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0}.settings-row-left{display:flex;flex-direction:column}.settings-row-label{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.settings-row-desc{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.settings-service-card{display:flex;align-items:center;gap:var(--sp-2_5);padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface);margin-bottom:var(--sp-2)}.settings-service-dot{width:8px;height:8px;border-radius:50%;background:var(--success)}.settings-service-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);flex:1}.settings-service-url{font-family:var(--font-mono);font-size:var(--text-xxs);color:var(--text-placeholder)}.settings-ws-item{display:flex;align-items:center;gap:var(--sp-2_5);padding:10px 0;border-bottom:1px solid var(--border-subtle)}.settings-ws-item:last-child{border-bottom:none}.settings-ws-item-info{flex:1;min-width:0}.settings-ws-item-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-ws-item-slug{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:1px}.settings-ws-item-active{font-size:var(--text-xxs);color:var(--success);font-weight:600}.settings-workspace-logo-wrap{align-items:center}.settings-workspace-logo{width:64px;height:64px;border-radius:var(--radius-md);background:var(--purple-soft);overflow:hidden;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center;box-shadow:var(--neu-sm)}.settings-workspace-logo-img{width:100%;height:100%;object-fit:cover}.settings-workspace-logo-initials{font-size:var(--text-lg);font-weight:700;color:var(--purple);letter-spacing:.02em}.settings-workspace-logo-loading{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center}.settings-slug-wrap{display:flex;align-items:center;gap:var(--sp-1_5)}.settings-slug-wrap .form-input{flex:1}.settings-slug-lock{flex-shrink:0;width:28px;height:28px;border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--surface-raised);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:border-color .15s,color .15s}.settings-slug-lock:hover{border-color:var(--purple);color:var(--purple)}.settings-token-label{font-size:var(--text-xxs);color:var(--text-placeholder);margin-top:var(--sp-1)}.settings-token-row{display:flex;align-items:center;gap:var(--sp-1_5);margin-top:var(--sp-0_5)}.settings-token-code{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-secondary);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);padding:2px 6px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.settings-token-copy{flex-shrink:0;width:22px;height:22px;border:1px solid var(--border-default);border-radius:var(--radius-xs);background:transparent;color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s,border-color .15s;font-family:var(--font-sans)}.settings-token-copy:hover{color:var(--purple);border-color:var(--purple)}.settings-sync-error{font-size:var(--text-xxs);color:var(--error);background:#e53e3e14;border:1px solid rgba(229,62,62,.2);border-radius:var(--radius-xs);padding:4px 8px;word-break:break-word}.settings-danger-zone{border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);padding:var(--sp-4)}.settings-danger-zone .settings-section-title{color:var(--error)}.settings-danger-zone-desc{font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:var(--sp-3);line-height:1.5}progress.st-ai-progress{display:block;width:100%;height:6px;margin:4px 0 8px;border:none;border-radius:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface-inset, rgba(0, 0, 0, .06))}progress.st-ai-progress::-webkit-progress-bar{background:var(--surface-inset, rgba(0, 0, 0, .06));border-radius:3px}progress.st-ai-progress::-webkit-progress-value{background:var(--accent, var(--purple));border-radius:3px;transition:width .3s ease}progress.st-ai-progress::-moz-progress-bar{background:var(--accent, var(--purple));border-radius:3px}.st-ai-feature-name{text-transform:capitalize}.st-ai-packages{display:flex;flex-direction:column;gap:var(--sp-2)}.st-ai-package-card{display:flex;align-items:center;gap:var(--sp-3);padding:12px 14px;border:1px solid var(--border-default);border-radius:var(--radius-sm);flex-wrap:wrap}.st-ai-package-name{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);flex:1;min-width:80px}.st-ai-package-credits{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}.st-ai-package-price{font-size:var(--text-sm);font-weight:700;color:var(--accent, var(--purple))}.st-ai-package-valid{font-size:var(--text-xxs);color:var(--text-tertiary)}.whl-filters{display:flex;align-items:center;gap:var(--sp-1);margin-bottom:var(--sp-3);flex-wrap:wrap}.whl-filter-btn{padding:4px 10px;border-radius:var(--radius-md);border:1px solid var(--border-default);background:transparent;font-size:var(--text-xxs);color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s,border-color .15s;font-family:var(--font-sans)}.whl-filter-btn:hover{border-color:var(--purple);color:var(--purple)}.whl-filter-btn.active{background:var(--purple);border-color:var(--purple);color:#fff}.whl-refresh-btn{margin-left:auto;padding:4px 8px;border-radius:var(--radius-s);border:1px solid var(--border-default);background:transparent;font-size:var(--text-mid);color:var(--text-secondary);cursor:pointer;transition:color .15s;font-family:var(--font-sans)}.whl-refresh-btn:hover:not(:disabled){color:var(--purple)}.whl-refresh-btn:disabled{opacity:.4;cursor:default}.whl-list{display:flex;flex-direction:column;gap:var(--sp-1)}.whl-row{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface);transition:border-color .15s}.whl-row:hover{border-color:var(--border-default)}.whl-row--open{border-color:var(--purple)}.whl-row-main{display:flex;align-items:center;gap:var(--sp-2);padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none}.whl-date{font-size:var(--text-xxs);color:var(--text-tertiary);white-space:nowrap;min-width:100px}.whl-shop{font-size:var(--text-xs);font-weight:500;color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whl-event{font-size:var(--text-xxs);color:var(--text-secondary);white-space:nowrap}.whl-chevron{font-size:var(--text-3xs);color:var(--text-placeholder);flex-shrink:0}.whl-row-detail{padding:8px 12px 12px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--sp-2);background:var(--surface-raised)}.whl-error-msg{display:flex;gap:var(--sp-1_5);align-items:baseline;font-size:var(--text-xs)}.whl-error-msg code{color:var(--error);font-family:var(--font-mono);font-size:var(--text-xxs);word-break:break-all}.whl-detail-label{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-placeholder);flex-shrink:0}.whl-payload{font-family:var(--font-mono);font-size:var(--text-xxs);color:var(--text-secondary);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-s);padding:8px 10px;overflow-x:auto;max-height:200px;overflow-y:auto;margin:4px 0 0;white-space:pre}.notif-center-overlay{position:fixed;top:0;right:0;bottom:0;left:0;left:var(--sidebar-width);background:var(--overlay-bg);z-index:500;display:none;transition:left var(--duration-base) var(--ease-default)}.notif-center-overlay.visible{display:block}.notif-center-overlay.sidebar-expanded{left:var(--sidebar-expanded)}.notif-center-panel{position:fixed;top:0;left:var(--sidebar-width);bottom:0;max-width:calc(100vw - var(--sidebar-width));background:var(--surface-ink);box-shadow:4px 0 24px #0000001a;z-index:501;display:none;flex-direction:column;animation:notifSlideIn var(--duration-base) var(--ease-default);transition:left var(--duration-base) var(--ease-default)}.notif-center-panel.visible{display:flex}.notif-center-panel.sidebar-expanded{left:var(--sidebar-expanded)}@keyframes notifSlideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.notif-center-header{padding:var(--sp-5);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between}.notif-center-header h2{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.notif-center-filters{display:flex;gap:var(--sp-1);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle);overflow-x:auto;flex-shrink:0}.notif-center-list{flex:1;overflow-y:auto;padding:var(--sp-2)}.notif-center-item{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-default);cursor:pointer;border-left:3px solid transparent}.notif-center-item:hover{background:var(--border-subtle)}.notif-center-item.unread{background:var(--blue-soft);border-left-color:var(--blue)}.notif-center-item.unread:hover{background:#6b92e529}.notif-center-item-icon{width:var(--sp-8);height:var(--sp-8);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:var(--sp-0_5)}.notif-center-item-body{flex:1;min-width:0}.notif-center-item-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);line-height:var(--leading-tight);margin-bottom:var(--sp-1)}.notif-center-item-desc{font-size:var(--text-xs);color:var(--text-secondary);line-height:var(--leading-normal);margin-bottom:var(--sp-1)}.notif-center-item-time{font-size:var(--text-2xs);color:var(--text-placeholder)}.notif-center-item-meta{display:flex;align-items:center;gap:var(--sp-1_5);flex-wrap:wrap}.notif-center-item-actor{font-size:var(--text-2xs);color:var(--text-secondary);font-weight:500}.notif-center-item-dot{width:7px;height:7px;border-radius:50%;background:var(--blue);flex-shrink:0;align-self:center;margin-left:auto}.notif-center-item.clickable:hover{cursor:pointer}.notif-center-item-context{display:flex;align-items:center;gap:var(--sp-1);margin-top:var(--sp-1);flex-wrap:wrap}.notif-ctx-ws{font-size:var(--text-2xs);font-weight:500;color:var(--text-placeholder);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-xs, 3px);padding:1px var(--sp-1);line-height:1.4}.notif-ctx-ws:before{content:"⬡ ";font-size:var(--text-3xs)}.notif-ctx-project{font-size:var(--text-2xs);font-weight:500;color:var(--text-tertiary);background:var(--blue-soft, rgba(99, 179, 237, .12));border:1px solid rgba(99,179,237,.25);border-radius:var(--radius-xs, 3px);padding:1px var(--sp-1);line-height:1.4}.notif-center-title{font-size:var(--text-md);font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--sp-2)}.notif-center-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--sp-1);border-radius:var(--radius-full);background:var(--error);color:#fff;font-size:var(--text-xxs);font-weight:700;line-height:1}.notif-center-loading{display:flex;align-items:center;justify-content:center;padding:var(--sp-8)}.notif-badge{position:absolute;top:var(--sp-1);right:var(--sp-1);min-width:var(--sp-4);height:var(--sp-4);border-radius:var(--radius-full);background:var(--error);color:var(--text-on-accent);font-size:var(--text-3xs);font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 var(--sp-1);line-height:1}.recent-items-list{display:flex;flex-direction:column;gap:var(--sp-1)}.recent-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2_5) var(--sp-3);border-radius:var(--radius-sm);text-decoration:none;color:inherit;transition:background var(--duration-fast) var(--ease-default)}.recent-item:hover{background:var(--border-subtle)}.recent-item-icon{width:var(--sp-8);height:var(--sp-8);border-radius:var(--radius-s);display:flex;align-items:center;justify-content:center;flex-shrink:0}.recent-item-info{flex:1;min-width:0}.recent-item-title{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-item-meta{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:700;display:flex;align-items:center;justify-content:center}.onboarding-modal{width:480px;max-width:90vw;background:var(--surface-ink);border-radius:var(--radius-lg);box-shadow:var(--neu-xl);overflow:hidden;animation:cmdIn .2s var(--ease-default)}.onboarding-step{padding:var(--sp-8) var(--sp-6) var(--sp-6);text-align:center}.onboarding-step h2{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);margin-bottom:var(--sp-2)}.onboarding-step p{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--sp-5)}.onboarding-illustration{font-size:var(--sp-16);line-height:1;margin-bottom:var(--sp-4)}.onboarding-services{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-bottom:var(--sp-6);text-align:left}.onboarding-service{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--radius-sm);background:var(--surface);flex-direction:row;flex-wrap:wrap}.onboarding-service span{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);flex:1}.onboarding-service small{font-size:var(--text-xs);color:var(--text-tertiary);width:100%;padding-left:calc(var(--sp-8) + var(--sp-3));margin-top:calc(-1 * var(--sp-1))}.onboarding-service-icon{width:var(--sp-8);height:var(--sp-8);border-radius:var(--radius-s);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:700;flex-shrink:0}.onboarding-shortcuts{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-6);text-align:left}.onboarding-shortcut{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2_5) var(--sp-3);border-radius:var(--radius-sm);background:var(--surface)}.onboarding-shortcut kbd{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--border-subtle);padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-s);color:var(--text-primary);font-weight:600;min-width:var(--sp-12);text-align:center}.onboarding-shortcut span{font-size:var(--text-sm);color:var(--text-secondary)}.onboarding-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-4)}.onboarding-dots{display:flex;justify-content:center;gap:var(--sp-2)}.onboarding-dots span{width:var(--sp-2);height:var(--sp-2);border-radius:var(--radius-full);background:var(--border-default);transition:background var(--duration-fast) var(--ease-default)}.onboarding-dots span.active{background:var(--purple);width:var(--sp-5)}.dash-favorites-list{display:flex;flex-direction:column;gap:var(--sp-1)}.dash-favorite-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2_5) var(--sp-3);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-default);cursor:pointer}.dash-favorite-item:hover{background:var(--border-subtle)}.dash-favorite-icon{width:var(--sp-8);height:var(--sp-8);border-radius:var(--radius-s);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);flex-shrink:0}.dash-favorite-info{flex:1;min-width:0}.dash-favorite-title{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-favorite-meta{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.workspace-switcher{position:relative;padding:var(--sp-2) var(--sp-3)}.workspace-switcher .sidebar-label{display:none}.workspace-switcher-btn{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2);border:none;background:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;transition:background var(--duration-fast) var(--ease-default)}.workspace-switcher-btn:hover{background:var(--border-subtle)}.shell-sidebar.expanded .workspace-switcher .sidebar-label{display:inline}.workspace-avatar{width:var(--sp-7);height:var(--sp-7);border-radius:var(--radius-s);background:linear-gradient(135deg,var(--purple),var(--blue));display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--text-xs);font-weight:700;flex-shrink:0;overflow:hidden}.workspace-avatar:has(img){background:none}.workspace-avatar .workspace-avatar-img{width:100%;height:100%;object-fit:cover}.workspace-name{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-dropdown{position:absolute;top:100%;left:var(--sp-3);width:220px;background:var(--surface-ink);border-radius:var(--radius-md);box-shadow:0 8px 32px #00000026;z-index:400;overflow:hidden;padding:var(--sp-1_5);animation:menuIn .15s var(--ease-default)}.workspace-dropdown-item{display:flex;align-items:center;gap:var(--sp-2_5);padding:var(--sp-2) var(--sp-2_5);border-radius:var(--radius-s);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease-default)}.workspace-dropdown-item:hover{background:var(--border-subtle);color:var(--text-primary)}.workspace-dropdown-item.active{background:var(--purple-soft);color:var(--text-primary);font-weight:500}.workspace-dropdown-item .form-input{flex:1;min-width:0;width:100%;padding:var(--sp-1_5) var(--sp-2);font-size:var(--text-sm)}.workspace-dropdown-divider{height:1px;background:var(--border-subtle);margin:var(--sp-1_5) var(--sp-2_5)}.help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:600;display:flex;justify-content:flex-end}.help-panel{width:320px;max-width:90vw;height:100%;background:var(--surface-ink);box-shadow:-4px 0 24px #0000001a;display:flex;flex-direction:column;animation:slideIn var(--duration-base) var(--ease-default)}.help-header{padding:var(--sp-5);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between}.help-header h3{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.help-body{flex:1;overflow-y:auto;padding:var(--sp-4) var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-6)}.help-section h4{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-placeholder);margin-bottom:var(--sp-3)}.help-changelog-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;font-size:var(--text-sm);color:var(--text-primary);border-bottom:1px solid var(--border-subtle)}.help-changelog-item:last-child{border-bottom:none}.help-date{margin-left:auto;font-size:var(--text-xs);color:var(--text-placeholder);flex-shrink:0}.help-shortcut{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0}.help-shortcut kbd{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--surface);padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-s);color:var(--text-primary);font-weight:600;min-width:var(--sp-12);text-align:center;border:1px solid var(--border-default)}.help-shortcut span{font-size:var(--text-sm);color:var(--text-secondary)}.help-link{padding:var(--sp-2_5) var(--sp-3);border-radius:var(--radius-s);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease-default)}.help-link:hover{background:var(--border-subtle);color:var(--text-primary)}.auth-screen{flex:1;height:100vh;flex-direction:column;gap:var(--sp-4)}.auth-screen--loading{flex:1;height:100vh}.auth-screen--error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);height:100vh}.auth-totp-card{width:320px;padding:var(--sp-5);background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-md)}.auth-totp-title{margin-bottom:var(--sp-2)}.auth-totp-desc{margin-bottom:var(--sp-4)}.auth-totp-form{display:flex;flex-direction:column;gap:var(--sp-3)}.rte-wrapper{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-ink);overflow:hidden;transition:border-color var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default)}.rte-wrapper:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.rte-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1);padding:var(--sp-1_5) var(--sp-2);border-bottom:1px solid var(--border-default);background:var(--surface)}.rte-toolbar-group{display:flex;align-items:center;gap:var(--sp-1)}.rte-toolbar-group--end{margin-left:auto}.rte-toolbar-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:var(--surface);color:var(--text-tertiary);cursor:pointer;box-shadow:var(--neu-sm);transition:box-shadow var(--duration-fast) var(--ease-default),transform var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default)}.rte-toolbar-btn:hover{box-shadow:var(--neu-md);transform:translateY(-1px);color:var(--text-primary)}.rte-toolbar-btn:active{box-shadow:var(--neu-inset-sm);transform:translateY(0)}.rte-toolbar-btn.active{box-shadow:var(--neu-inset-sm);color:var(--blue);transform:translateY(0)}.rte-toolbar-btn svg{pointer-events:none}.rte-toolbar-sep{width:1px;height:18px;margin:0 var(--sp-0_5);background:var(--border-default);flex-shrink:0}.rte-content{padding:var(--sp-2) var(--sp-3)}.rte-content .tiptap{outline:none;min-height:inherit;color:var(--text-primary);font-size:var(--text-sm);line-height:1.65}.rte-content .tiptap>*+*{margin-top:.5em}.rte-content .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--text-placeholder);pointer-events:none;height:0}.rte-content .tiptap h1{font-size:1.75em;font-weight:700;margin-top:1em}.rte-content .tiptap h2{font-size:1.4em;font-weight:600;margin-top:.8em}.rte-content .tiptap h3{font-size:1.15em;font-weight:600;margin-top:.6em}.rte-content .tiptap ul,.rte-content .tiptap ol{padding-left:1.5em}.rte-content .tiptap ul{list-style-type:disc}.rte-content .tiptap ol{list-style-type:decimal}.rte-content .tiptap li>p{margin:0}.rte-content .tiptap blockquote{border-left:3px solid var(--blue);padding-left:1em;margin-left:0;color:var(--text-secondary);font-style:italic}.rte-content .tiptap pre{background:var(--surface-inset);border-radius:var(--radius-sm);padding:var(--sp-2);font-family:var(--font-mono);font-size:.9em;overflow-x:auto}.rte-content .tiptap pre code{background:none;padding:0;color:inherit;font-size:inherit}.rte-content .tiptap code{background:var(--surface-inset);padding:.1em .3em;border-radius:var(--radius-xs);font-family:var(--font-mono);font-size:.9em}.rte-content .tiptap a{color:var(--blue);text-decoration:underline;cursor:pointer}.rte-content .tiptap img{max-width:100%;height:auto;border-radius:var(--radius-sm);margin:.5em 0}.rte-content .tiptap hr{border:none;border-top:1px solid var(--border-default);margin:1em 0}.rte-html-source{display:block;width:100%;min-height:300px;padding:var(--sp-3);font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.6;color:var(--text-primary);background:var(--surface-inset);border:none;outline:none;resize:vertical;-moz-tab-size:2;tab-size:2}.rte-footer{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-top:1px solid var(--border-default);background:var(--surface);font-size:var(--text-2xs);color:var(--text-tertiary)}.rte-video-block{max-width:100%;display:block;border-radius:var(--radius-md)}.col-block{border:1px dashed var(--border-default);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);margin:.5em 0;column-gap:1.5em}.col-block--2{column-count:2}.col-block--3{column-count:3}.col-block--4{column-count:4}.col-block h1,.col-block h2,.col-block h3,.col-block h4,.col-block h5,.col-block h6,.col-block p,.col-block ul,.col-block ol,.col-block blockquote,.col-block pre{margin-top:0}:root{--ap-surface: var(--surface);--ap-surface-raised: var(--surface-raised);--ap-surface-ink: var(--surface-inset);--ap-border: var(--border-default);--ap-border-subtle: var(--border-subtle);--ap-text-primary: var(--text-primary);--ap-text-secondary: var(--text-secondary);--ap-text-tertiary: var(--text-tertiary);--ap-text-placeholder: var(--text-placeholder);--ap-text-on-accent: #FFFFFF;--ap-blue: var(--blue);--ap-blue-soft: var(--blue-soft);--ap-purple: var(--purple);--ap-purple-soft: var(--purple-soft);--ap-green: var(--success);--ap-orange: var(--warning);--ap-red: var(--error);--ap-error: var(--error);--ap-error-soft: var(--error-soft);--ap-neu-sm: var(--neu-sm);--ap-neu-md: var(--neu-md);--ap-neu-lg: var(--neu-lg);--ap-neu-inset-sm: var(--neu-inset-sm);--ap-sp-2: 2px;--ap-sp-4: 4px;--ap-sp-6: 6px;--ap-sp-8: 8px;--ap-sp-10: 10px;--ap-sp-12: 12px;--ap-sp-16: 16px;--ap-sp-20: 20px;--ap-sp-24: 24px;--ap-radius-xs: var(--radius-xs);--ap-radius-sm: var(--radius-s);--ap-radius-md: var(--radius-sm);--ap-radius-lg: var(--radius-base);--ap-radius-xl: var(--radius-lg);--ap-radius-full: var(--radius-full);--ap-text-xs: var(--text-xs);--ap-text-sm: var(--text-sm);--ap-text-base: var(--text-mid);--ap-font-sans: var(--font-sans);--ap-duration-fast: var(--duration-fast);--ap-duration-base: var(--duration-base);--ap-ease-default: var(--ease-default)}.ap-page{padding:var(--ap-sp-24);font-family:var(--ap-font-sans)}.ap-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--ap-sp-24)}.ap-page-header__title{font-size:var(--text-2xl);font-weight:700;color:var(--ap-text-primary);line-height:1.2;margin:0}.ap-page-header__subtitle{font-size:var(--ap-text-sm);color:var(--ap-text-tertiary);margin-top:3px}.ap-page-header__actions{display:flex;align-items:center;gap:var(--ap-sp-8)}.ap-page-error{padding:var(--ap-sp-16);color:var(--ap-error);font-size:var(--ap-text-sm)}.ap-admin-table-wrap{background:var(--ap-surface);border-radius:var(--ap-radius-xl);box-shadow:var(--ap-neu-lg)}.ap-admin-table-toolbar{display:flex;align-items:center;justify-content:space-between;padding:var(--ap-sp-16) var(--ap-sp-20);gap:var(--ap-sp-16)}.ap-admin-table-toolbar__left{display:flex;align-items:center;gap:var(--ap-sp-12);flex-wrap:wrap}.ap-admin-table-toolbar__right{display:flex;align-items:center;gap:var(--ap-sp-8)}.ap-admin-table-toolbar__title{font-size:var(--ap-text-base);font-weight:600;color:var(--ap-text-primary)}.ap-admin-table-toolbar__count{font-size:var(--ap-text-sm);color:var(--ap-text-tertiary);font-weight:400}.ap-admin-table-inner{background:var(--ap-surface-ink);margin:0 4px 4px;border-radius:var(--ap-radius-lg);overflow:hidden}.ap-admin-table-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--ap-sp-12) var(--ap-sp-20);font-size:var(--ap-text-xs);color:var(--ap-text-tertiary)}.ap-admin-table{width:100%;border-collapse:collapse;font-size:var(--ap-text-sm)}.ap-admin-table th{position:relative;text-align:left;font-size:var(--text-2xs);font-weight:600;color:var(--ap-text-tertiary);text-transform:uppercase;letter-spacing:.5px;padding:var(--ap-sp-12) var(--ap-sp-16);border-bottom:2px solid var(--ap-border);background:var(--ap-surface-ink);white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.ap-admin-table th:hover{background:var(--ap-border-subtle)}.ap-admin-table td{padding:var(--ap-sp-10) var(--ap-sp-16);border-bottom:1px solid var(--ap-border-subtle);color:var(--ap-text-primary)}.ap-admin-table tbody tr{transition:background var(--ap-duration-fast) var(--ap-ease-default)}.ap-admin-table tbody tr:hover{background:#6b92e50a}.ap-admin-table tbody tr:last-child td{border-bottom:none}.ap-products-table-scroll{overflow-x:auto}.ap-admin-table--resizable{table-layout:fixed}.ap-table-th--sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.ap-table-th--sortable:hover{color:var(--ap-blue)}.ap-table-sort-icon{font-size:var(--text-2xs);margin-left:var(--sp-1);color:var(--ap-text-placeholder)}.ap-table-sort-icon--active{color:var(--ap-blue)}.ap-table-resize-handle{position:absolute;right:0;top:0;bottom:0;width:4px;cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none}.ap-table-resize-handle:hover,.ap-table-resize-handle--active{background:var(--ap-blue);opacity:.5}.ap-table-drag-handle{display:inline-flex;align-items:center;cursor:grab;color:var(--ap-text-placeholder);font-size:var(--text-xxs);padding:0 var(--ap-sp-2);opacity:0;transition:opacity var(--ap-duration-fast) var(--ap-ease-default);flex-shrink:0;vertical-align:middle}.ap-table-drag-handle:active{cursor:grabbing}.ap-admin-table th:hover .ap-table-drag-handle{opacity:1}.ap-table-th--drag-over{background:var(--ap-blue-soft)!important;color:var(--ap-blue)!important}.ap-table-row-drag-cell{padding:0!important;text-align:center;vertical-align:middle}.ap-table-row-drag-handle{display:inline-flex;align-items:center;justify-content:center;cursor:grab;color:var(--ap-text-placeholder);font-size:var(--text-sm);width:28px;height:28px;border-radius:var(--ap-radius-sm);opacity:0;transition:opacity var(--ap-duration-fast) var(--ap-ease-default)}.ap-table-row-drag-handle:active{cursor:grabbing}.ap-admin-table tr:hover .ap-table-row-drag-handle{opacity:1}.ap-table-row--drag-over{box-shadow:inset 0 2px 0 var(--ap-blue)}.ap-table-status{text-align:center!important;padding:32px var(--ap-sp-16)!important;color:var(--ap-text-tertiary);font-size:var(--ap-text-sm)}.ap-table-row--selected{background:var(--ap-blue-soft)!important}.ap-toolbar-search{display:flex;align-items:center;gap:var(--ap-sp-8);background:var(--ap-surface);border-radius:var(--ap-radius-md);box-shadow:var(--ap-neu-inset-sm);padding:var(--ap-sp-8) var(--ap-sp-12);min-width:240px}.ap-toolbar-search i,.ap-toolbar-search svg{color:var(--ap-text-placeholder);font-size:var(--text-mid);flex-shrink:0}.ap-toolbar-search input{border:none;background:transparent;font-family:var(--ap-font-sans);font-size:var(--ap-text-sm);color:var(--ap-text-primary);outline:none;width:100%}.ap-toolbar-search input::placeholder{color:var(--ap-text-placeholder)}.ap-toolbar-btn{width:36px;height:36px;border-radius:var(--ap-radius-md);background:var(--ap-surface);box-shadow:var(--ap-neu-sm);border:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ap-text-secondary);font-size:15px;transition:all var(--ap-duration-fast) var(--ap-ease-default);position:relative}.ap-toolbar-btn:hover{box-shadow:var(--ap-neu-md);color:var(--ap-text-primary)}.ap-toolbar-btn:active{box-shadow:var(--ap-neu-inset-sm)}.ap-toolbar-btn--active{box-shadow:var(--ap-neu-inset-sm);color:var(--ap-blue)}.ap-toolbar-btn-wrap{position:relative}.ap-toolbar-btn-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;border-radius:var(--ap-radius-full);background:var(--ap-blue);color:#fff;font-size:var(--text-3xs);font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 3px;pointer-events:none}.ap-category-filters{display:flex;gap:var(--ap-sp-4);align-items:center;flex-wrap:wrap;padding:var(--ap-sp-4);background:var(--ap-surface);border-radius:var(--ap-radius-full);box-shadow:var(--ap-neu-inset-sm)}.ap-category-chip{padding:var(--ap-sp-4) var(--ap-sp-16);border-radius:var(--ap-radius-lg);border:none;background:transparent;font-family:var(--ap-font-sans);font-size:var(--ap-text-sm);font-weight:500;color:var(--ap-text-tertiary);cursor:pointer;transition:all var(--ap-duration-base) var(--ap-ease-default);white-space:nowrap}.ap-category-chip:hover{color:var(--ap-text-primary);background:var(--ap-surface-raised)}.ap-category-chip--active{background:var(--ap-surface);box-shadow:var(--ap-neu-sm);color:var(--ap-text-primary);font-weight:600}.ap-table-checkbox{width:18px;height:18px;border-radius:var(--ap-radius-sm);background:transparent;box-shadow:none;border:1.5px solid var(--ap-border);cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;position:relative;flex-shrink:0;transition:all var(--ap-duration-fast) var(--ap-ease-default);vertical-align:middle}.ap-table-checkbox:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:var(--text-xxs);font-weight:700;color:transparent;line-height:1;transition:color var(--ap-duration-fast) var(--ap-ease-default)}.ap-table-checkbox:hover{background:var(--ap-surface);box-shadow:var(--ap-neu-sm);border-color:transparent}.ap-table-checkbox:checked{background:var(--ap-surface);box-shadow:var(--ap-neu-inset-sm);border-color:transparent}.ap-table-checkbox:checked:after{color:var(--ap-blue)}.ap-pagination{display:flex;align-items:center;gap:var(--ap-sp-8)}.ap-page-btn{min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--ap-radius-md);background:var(--ap-surface);color:var(--ap-text-secondary);box-shadow:var(--ap-neu-sm);cursor:pointer;font-size:var(--ap-text-sm);font-family:var(--ap-font-sans);font-weight:500;transition:all var(--ap-duration-fast) var(--ap-ease-default);padding:0 var(--ap-sp-8)}.ap-page-btn:hover:not(:disabled){box-shadow:var(--ap-neu-md);transform:translateY(-1px);color:var(--ap-text-primary)}.ap-page-btn--active{box-shadow:var(--ap-neu-inset-sm);color:var(--ap-blue);font-weight:700}.ap-page-btn:disabled{opacity:.4;cursor:default;box-shadow:none}.ap-page-ellipsis{min-width:28px;display:flex;align-items:center;justify-content:center;color:var(--ap-text-tertiary);font-size:var(--ap-text-sm)}.ap-per-page{display:flex;align-items:center;gap:var(--ap-sp-8)}.ap-per-page select{padding:3px 6px;border-radius:var(--ap-radius-xs);border:1px solid var(--ap-border);background:var(--ap-surface);font-size:var(--ap-text-xs);font-family:var(--ap-font-sans);color:var(--ap-text-primary);cursor:pointer;outline:none}.ap-per-page select:focus{border-color:var(--ap-blue)}.ap-col-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#e3e7ebc2;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:500;display:flex;align-items:center;justify-content:center;padding:var(--ap-sp-20)}.ap-col-modal{background:var(--ap-surface);border-radius:var(--ap-radius-xl);box-shadow:var(--ap-neu-lg);width:400px;max-width:100%;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.ap-col-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--ap-sp-16) var(--ap-sp-20);border-bottom:1px solid var(--ap-surface-ink);flex-shrink:0}.ap-col-modal__title{font-size:var(--ap-text-base);font-weight:600;color:var(--ap-text-primary);margin:0;display:flex;align-items:center;gap:var(--ap-sp-8)}.ap-col-modal__title i{color:var(--ap-blue)}.ap-col-modal__close{width:28px;height:28px;border:none;background:transparent;cursor:pointer;color:var(--ap-text-tertiary);font-size:var(--text-mid);display:flex;align-items:center;justify-content:center;border-radius:var(--ap-radius-sm);transition:color var(--ap-duration-fast) var(--ap-ease-default),background var(--ap-duration-fast) var(--ap-ease-default)}.ap-col-modal__close:hover{color:var(--ap-text-primary);background:var(--ap-surface-ink)}.ap-col-modal__body{flex:1;overflow-y:auto;padding:var(--ap-sp-16) var(--ap-sp-20);display:flex;flex-direction:column;gap:var(--ap-sp-20)}.ap-col-modal__section{display:flex;flex-direction:column;gap:var(--ap-sp-10)}.ap-col-modal__section-label{font-size:var(--ap-text-xs);font-weight:600;color:var(--ap-text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin:0}.ap-col-modal__presets{display:flex;flex-wrap:wrap;gap:var(--ap-sp-8)}.ap-col-modal__list{display:flex;flex-direction:column;gap:2px}.ap-col-modal__item{display:flex;align-items:center;gap:var(--ap-sp-10);padding:var(--ap-sp-8) var(--ap-sp-10);border-radius:var(--ap-radius-md);cursor:pointer;font-size:var(--ap-text-sm);color:var(--ap-text-primary);transition:background var(--ap-duration-fast) var(--ap-ease-default);-webkit-user-select:none;user-select:none}.ap-col-modal__item:hover{background:var(--ap-blue-soft)}.ap-col-modal__footer{display:flex;gap:var(--ap-sp-8);padding:var(--ap-sp-16) var(--ap-sp-20);border-top:1px solid var(--ap-surface-ink);flex-shrink:0}.ap-btn{display:inline-flex;align-items:center;gap:var(--ap-sp-8);padding:var(--ap-sp-12) var(--ap-sp-24);border:none;border-radius:var(--ap-radius-lg);font-family:var(--ap-font-sans);font-size:var(--ap-text-sm);font-weight:600;cursor:pointer;transition:all var(--ap-duration-base) var(--ap-ease-default);background:var(--ap-surface);color:var(--ap-text-secondary);box-shadow:var(--ap-neu-md)}.ap-btn:hover{transform:translateY(-2px);box-shadow:var(--ap-neu-lg);color:var(--ap-text-primary)}.ap-btn:active{transform:translateY(0);box-shadow:var(--ap-neu-inset-sm)}.ap-btn--accent{background:var(--ap-blue);color:var(--ap-text-on-accent);box-shadow:6px 6px 12px #6b92e54d,-4px -4px 8px #fff9}.ap-btn--accent:hover{box-shadow:8px 8px 16px #6b92e559,-6px -6px 12px #fff9;color:var(--ap-text-on-accent)}.ap-btn--accent:active{box-shadow:inset 4px 4px 8px #5078c84d,inset -4px -4px 8px #8cb4ff33}.ap-btn--ghost{color:var(--ap-text-secondary);background:transparent;box-shadow:none}.ap-btn--ghost:hover{background:var(--ap-surface-raised);box-shadow:none;color:var(--ap-text-primary);transform:none}.ap-btn--ghost:active{box-shadow:none}.ap-btn--sm{padding:var(--ap-sp-8) var(--ap-sp-16);border-radius:var(--ap-radius-md);font-size:var(--ap-text-xs)}.ap-search__spinner{width:15px;height:15px;border:2px solid var(--ap-border);border-top-color:var(--ap-blue);border-radius:50%;animation:ap-search-spin .6s linear infinite;flex-shrink:0;display:inline-block;vertical-align:middle;margin-right:var(--sp-1_5)}@keyframes ap-search-spin{to{transform:rotate(360deg)}}@keyframes ap-confirm-in{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.dashboard{padding:var(--sp-6);gap:var(--sp-5)}.dashboard-header h1{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary)}.summary-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}.summary-card{background:var(--surface-ink);border-radius:var(--radius-md);padding:var(--sp-5);border-left:6px solid var(--purple);box-shadow:0 1px 3px #0000000a;transition:transform .15s}.summary-card:hover{transform:translateY(-2px)}.summary-card[data-service=plane]{border-left-color:var(--blue)}.summary-card[data-service=datalens]{border-left-color:var(--purple)}.summary-card[data-service=autobot]{border-left-color:var(--orange)}.summary-card[data-service=nocodb]{border-left-color:var(--green)}.summary-card-icon{width:32px;height:32px;border-radius:var(--radius-sm);margin-bottom:var(--sp-3);font-size:var(--text-md)}.summary-card[data-service=plane] .summary-card-icon{background:var(--blue-soft);color:var(--blue)}.summary-card[data-service=datalens] .summary-card-icon{background:var(--purple-soft);color:var(--purple)}.summary-card[data-service=autobot] .summary-card-icon{background:var(--orange-soft);color:var(--orange)}.summary-card[data-service=nocodb] .summary-card-icon{background:var(--green-soft);color:var(--green)}.summary-card-label{font-size:var(--text-xs);font-weight:500;color:var(--text-tertiary);margin-bottom:var(--sp-1)}.summary-card-value{font-size:var(--text-2_5xl);font-weight:700;color:var(--text-primary);line-height:1.2}.summary-card-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--sp-1)}.widget-grid{display:grid;grid-template-columns:2fr 1fr;gap:var(--sp-4)}.widget{background:var(--surface-ink);border-radius:var(--radius-md);padding:var(--sp-5);box-shadow:0 1px 3px #0000000a}.widget-title{margin-bottom:var(--sp-4)}.widget-title-dot{width:8px;height:8px;border-radius:var(--radius-full)}.chart-placeholder{height:200px;background:var(--surface);border-radius:var(--radius-sm);display:flex;align-items:flex-end;padding:var(--sp-4);gap:var(--sp-1_5)}.activity-item{display:flex;gap:var(--sp-2_5);align-items:flex-start;padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle)}.activity-item:last-child{border-bottom:none}.activity-dot{width:8px;height:8px;border-radius:var(--radius-full);margin-top:var(--sp-1)}.activity-text{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.4}.activity-text strong{color:var(--text-primary);font-weight:600}.activity-time{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.deadline-list{gap:0}.deadline-item{gap:var(--sp-2_5);padding:var(--sp-2_5) 0;border-bottom:1px solid var(--border-subtle)}.deadline-item:last-child{border-bottom:none}.deadline-name{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.deadline-days{font-size:var(--text-xxs);font-weight:600;padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-full)}.deadline-days.urgent{background:var(--error-soft);color:var(--error)}.deadline-days.soon{background:var(--warning-soft);color:var(--warning)}.deadline-days.normal{background:var(--blue-soft);color:var(--blue)}.deadline-date{font-size:var(--text-xxs);color:var(--text-tertiary);min-width:72px}.failed-wf-list{gap:0}.failed-wf-item{display:flex;align-items:flex-start;gap:var(--sp-2_5);padding:var(--sp-2_5) 0;border-bottom:1px solid var(--border-subtle)}.failed-wf-item:last-child{border-bottom:none}.failed-wf-icon{width:24px;height:24px;border-radius:var(--radius-s);background:var(--orange-soft);color:var(--orange);font-size:var(--text-xs);font-weight:700}.failed-wf-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.failed-wf-error{font-size:var(--text-xxs);color:var(--error);margin-top:var(--sp-0_5)}.failed-wf-time{font-size:var(--text-xxs);color:var(--text-tertiary)}.quick-action{background:var(--surface);border:none;border-radius:var(--radius-base);padding:var(--sp-4);flex-direction:column;transition:all .15s;box-shadow:var(--neu-sm);font-family:var(--font-sans);color:var(--text-secondary)}.quick-action:hover{transform:translateY(-2px)}.quick-action-icon{width:36px;height:36px;border-radius:var(--radius-sm);font-size:var(--text-lg)}.quick-action-label{text-align:center}.services-status-widget{background:var(--surface-ink);border-radius:var(--radius-md);padding:var(--sp-5);box-shadow:0 1px 3px #0000000a}.services-status-list{gap:var(--sp-2_5)}.services-status-item{gap:var(--sp-2_5);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);background:var(--surface);transition:transform .1s}.services-status-item:hover{transform:translate(2px)}.services-status-dot{width:8px;height:8px;border-radius:var(--radius-full)}.services-status-dot.online{background:var(--success)}.services-status-dot.offline{background:var(--error)}.services-status-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.services-status-port{font-size:var(--text-xxs);color:var(--text-placeholder)}.services-status-badge{font-size:var(--text-2xs);font-weight:600;padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-base);text-transform:uppercase;letter-spacing:.3px}.services-status-badge.online{background:var(--success-soft);color:var(--success)}.services-status-badge.offline{background:var(--error-soft);color:var(--error)}.mock-plane-sidebar{width:240px;background:var(--surface-ink);border-right:1px solid var(--border-default);padding:var(--sp-4) var(--sp-3)}.mock-plane-sidebar-header{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);padding:var(--sp-2);margin-bottom:var(--sp-1)}.mock-plane-sidebar-item{padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);font-size:var(--text-sm);color:var(--text-secondary);position:relative}.mock-plane-sidebar-item:hover{background:var(--surface)}.mock-plane-sidebar-item:hover .tooltip{display:block}.mock-plane-sidebar-item.active{background:var(--blue-soft);color:var(--blue);font-weight:500}.mock-plane-sidebar-item .tooltip{display:none;position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:var(--gray-800);color:var(--text-on-accent);padding:var(--sp-1_5) var(--sp-3);border-radius:var(--radius-s);font-size:var(--text-xs);white-space:nowrap;z-index:200;pointer-events:none;line-height:1.5}.mock-plane-content{padding:var(--sp-5);background:var(--surface-ink)}.mock-plane-content .data-table tr{transition:background .1s}.mock-plane-content .data-table tbody tr:hover{background:var(--blue-soft)}.mock-plane-content .data-table .col-id{font-size:var(--text-xs);color:var(--text-tertiary)}.mock-plane-content .data-table .col-status{font-size:var(--text-xs)}.mock-plane-content .tag{border-radius:var(--radius-xs);font-weight:600}.mock-plane-content .tag.urgent{background:var(--error-soft);color:var(--error)}.mock-plane-content .tag.high{background:var(--orange-soft);color:var(--orange)}.mock-plane-content .tag.medium{background:var(--warning-soft);color:var(--warning)}.mock-plane-content .tag.low{background:var(--blue-soft);color:var(--blue)}.mock-plane-content .data-table .col-checkbox,.mock-plane-content .col-checkbox{width:36px;text-align:center}.mock-plane-content .data-table th.sortable{-webkit-user-select:none;user-select:none}.mock-plane-content .data-table th.sortable:hover{background:var(--border-subtle)}.mock-plane-content .data-table th.sort-asc .mock-plane-sort-arrow:after{content:"↑"}.mock-plane-content .data-table th.sort-desc .mock-plane-sort-arrow:after{content:"↓"}.mock-plane-toolbar{padding-bottom:var(--sp-3);border-bottom:1px solid var(--border-subtle)}.mock-kanban{display:flex;gap:var(--sp-3);overflow-x:auto;overflow-y:hidden;height:100%}.mock-kanban-col-body{overflow-y:auto;flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--sp-2)}.mock-plane-list-status-dot{width:8px;height:8px;border-radius:var(--radius-full)}.mock-plane-list-status-dot.backlog{background:var(--text-tertiary)}.mock-plane-list-status-dot.in-progress{background:var(--orange)}.mock-plane-list-status-dot.done{background:var(--success)}.mock-plane-cal-header{padding:var(--sp-2) 0}.mock-plane-cal-cell{min-height:80px}.mock-plane-cal-date.today{background:var(--blue)}.mock-plane-cal-event.blue{background:var(--blue-soft);color:var(--blue)}.mock-plane-cal-event.orange{background:var(--orange-soft);color:var(--orange)}.mock-plane-cal-event.green{background:var(--green-soft);color:var(--green)}.mock-plane-cal-event.purple{background:var(--purple-soft);color:var(--purple)}.mock-plane-spreadsheet{overflow:auto}.mock-plane-spreadsheet-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.mock-plane-spreadsheet-table th{text-align:left;padding:var(--sp-1_5) var(--sp-2_5);border-bottom:2px solid var(--border-default);border-right:1px solid var(--border-subtle);background:var(--surface);position:sticky;top:0;z-index:1;min-width:100px}.mock-plane-spreadsheet-table td{padding:var(--sp-1) var(--sp-2_5);border-bottom:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);color:var(--text-primary);cursor:cell}.mock-plane-spreadsheet-table td:focus-within,.mock-plane-spreadsheet-table td:hover{outline:2px solid var(--blue);outline-offset:-2px}.mock-plane-spreadsheet-table td.col-id{color:var(--text-tertiary);min-width:60px}.mock-plane-spreadsheet-table th:after{content:"";position:absolute;right:0;top:var(--sp-1);bottom:var(--sp-1);width:4px;cursor:col-resize;border-radius:var(--radius-xs);background:transparent;transition:background .15s}.mock-plane-spreadsheet-table th:hover:after{background:var(--blue)}.mock-plane-page{display:flex;flex-direction:column}.mock-plane-cycles-header{padding-bottom:var(--sp-3);border-bottom:1px solid var(--border-subtle)}.mock-plane-cycles-header h3{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.mock-plane-cycles-list{padding-top:var(--sp-3)}.planner-settings-tabs{border-bottom:1px solid var(--border-subtle);margin-bottom:var(--sp-2)}.mock-plane-cycle-card{background:var(--surface);border-radius:var(--radius-base);padding:var(--sp-4);box-shadow:0 1px 3px #0000000a;transition:transform .1s;gap:var(--sp-2_5)}.mock-plane-cycle-card:hover{transform:translate(2px)}.mock-plane-cycle-top{gap:var(--sp-2_5)}.mock-plane-cycle-icon{width:32px;height:32px;border-radius:var(--radius-sm);font-size:var(--text-mid)}.mock-plane-cycle-dates{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-plane-cycle-progress-track{height:6px;background:var(--border-subtle);border-radius:var(--radius-xs)}.mock-plane-cycle-progress-fill{height:100%;width:var(--progress-w, 0%);border-radius:var(--radius-xs);transition:width .5s var(--ease-default)}.mock-plane-cycle-progress-label{font-size:var(--text-xxs);font-weight:600;color:var(--text-secondary);min-width:32px;text-align:right}.mock-plane-cycle-stats{display:flex;gap:var(--sp-4);font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-plane-modules-header{padding-bottom:var(--sp-3);border-bottom:1px solid var(--border-subtle)}.mock-plane-modules-header h3{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.mock-plane-modules-grid{padding-top:var(--sp-3);display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-4);align-content:start}.mock-plane-module-card{background:var(--surface);border-radius:var(--radius-base);padding:var(--sp-4);box-shadow:0 1px 3px #0000000a;transition:transform .1s;border-left:4px solid transparent}.mock-plane-module-card:hover{transform:translateY(-2px)}.mock-plane-module-card[data-color=blue]{border-left-color:var(--blue)}.mock-plane-module-card[data-color=purple]{border-left-color:var(--purple)}.mock-plane-module-card[data-color=green]{border-left-color:var(--green)}.mock-plane-module-card[data-color=orange]{border-left-color:var(--orange)}.mock-plane-module-desc{font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.4}.mock-plane-module-meta{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-1);flex-wrap:wrap;row-gap:var(--sp-1)}.mock-plane-module-progress{margin-top:var(--sp-1)}.mock-plane-module-progress-track{height:4px;background:var(--border-subtle);border-radius:var(--radius-xs)}.mock-plane-module-progress-fill{height:100%;border-radius:var(--radius-xs);width:var(--progress-w, 0%)}.mock-plane-page-item{padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);font-size:var(--text-sm);color:var(--text-secondary)}.mock-plane-page-item:hover{background:var(--surface)}.mock-plane-page-item.active{background:var(--blue-soft);color:var(--blue);font-weight:500}.mock-plane-page-item.indent{padding-left:var(--sp-6);font-size:var(--text-xs)}.mock-kanban-col{width:var(--col-width, 260px);min-width:160px;flex-shrink:0;position:relative;background:var(--surface);border-radius:var(--radius-sm);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2);height:100%}[data-theme=dark] .mock-kanban-col{background:var(--surface-raised)}.mock-kanban-col-header{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);padding:var(--sp-1) 0}.mock-kanban-col-header .count{background:var(--border-subtle);padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-base);font-size:var(--text-xxs);font-weight:500}.mock-kanban-col-add-btn{width:28px;height:28px;border-radius:var(--radius-full);border:1.5px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;opacity:0;transition:opacity .15s;margin-left:auto;display:flex;align-items:center;justify-content:center;font-size:var(--text-md);line-height:1;flex-shrink:0}.mock-kanban-col-add-btn:hover{background:var(--surface-hover)}.mock-kanban-col:hover .mock-kanban-col-add-btn{opacity:1}.mock-kanban-col-resizer{position:absolute;top:0;right:-5px;width:10px;height:100%;cursor:ew-resize;z-index:5}.mock-kanban-col-resizer:after{content:"";position:absolute;top:15%;left:50%;transform:translate(-50%);width:2px;height:70%;border-radius:var(--radius-full);background:transparent;transition:background var(--duration-fast)}.mock-kanban-col-resizer:hover:after{background:var(--purple);opacity:.5}body.is-col-resizing{-webkit-user-select:none;user-select:none}body.is-col-resizing *{cursor:ew-resize!important}.mock-kanban-card--adding textarea.mock-kanban-card-title-input{width:100%;border:none;resize:none;background:transparent;outline:none;font-size:var(--text-sm);font-family:var(--font-body);color:var(--text-primary);line-height:1.5;min-height:60px;padding:0}.mock-kanban-card-labels{margin-bottom:var(--sp-1_5)}.mock-kanban-card-labels .tag{font-size:var(--text-xxs);padding:1px var(--sp-1_5)}.mock-kanban-card{background:var(--surface-ink);border-radius:var(--radius-sm);padding:var(--sp-3);border-left:4px solid transparent}.mock-kanban-card[data-priority=urgent]{border-left-color:var(--error)}.mock-kanban-card[data-priority=high]{border-left-color:var(--orange)}.mock-kanban-card[data-priority=medium]{border-left-color:var(--warning)}.mock-kanban-card[data-priority=low]{border-left-color:var(--blue)}.mock-kanban-card:hover .mock-kanban-card-drag{opacity:.7}.mock-kanban-card[data-status-group=completed],.mock-kanban-card[data-status-group=cancelled]{opacity:.45;transition:opacity .15s}.mock-kanban-card[data-status-group=completed]:hover,.mock-kanban-card[data-status-group=cancelled]:hover{opacity:1}.mock-kanban-card-title{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);margin-bottom:var(--sp-1_5)}.mock-kanban-card-meta{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-kanban-card-avatars{display:flex;flex-shrink:0}.mock-kanban-card-avatars .mock-kanban-card-avatar+.mock-kanban-card-avatar{margin-left:-5px}.mock-kanban-card-avatar{width:18px;height:18px;border-radius:var(--radius-full);background:var(--purple-soft);border:1.5px solid var(--surface-ink);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:7px;font-weight:700;color:var(--text-on-accent);letter-spacing:0;overflow:hidden}.mock-kanban-card-avatar--empty{background:var(--border-subtle)}.mock-kanban-card-avatar--more{background:var(--surface);color:var(--text-tertiary);font-size:8px;font-weight:600}.mock-kanban-card{padding:calc(var(--sp-3) * var(--board-scale, 1))}.mock-kanban-card-title{font-size:calc(var(--text-sm) * var(--board-scale, 1))}.mock-kanban-card-meta,.mock-kanban-card-labels .tag{font-size:calc(var(--text-xxs) * var(--board-scale, 1))}.mock-kanban-card-avatar{width:calc(18px * var(--board-scale, 1));height:calc(18px * var(--board-scale, 1));font-size:calc(7px * var(--board-scale, 1))}.mock-kanban-card-due{font-size:var(--text-xxs);font-weight:600;padding:1px 5px;border-radius:var(--radius-xs);white-space:nowrap;flex-shrink:0}.mock-kanban-card-due--overdue{color:var(--error);background:var(--error-soft)}.mock-kanban-card-due--today{color:var(--warning);background:var(--warning-soft)}.mock-kanban-card-due--tomorrow{color:var(--orange);background:var(--orange-soft)}.mock-kanban-card-due--soon{color:var(--text-secondary);background:var(--surface)}.mock-kanban-card-due--normal{color:var(--text-tertiary)}.mock-plane-breadcrumb{padding:var(--sp-2) var(--sp-3);font-size:var(--text-xs);color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle);background:var(--surface)}.mock-plane-breadcrumb span{color:var(--text-secondary)}.mock-plane-breadcrumb strong{color:var(--text-primary);font-weight:600}.mock-plane-detail{width:min(1080px,94vw);max-width:94%;z-index:11}.idp-meta-bar{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;flex-shrink:0}.idp-field{display:flex;flex-direction:column;gap:2px;padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);cursor:pointer;transition:background .15s;position:relative}.idp-field:hover,.idp-field.is-open{background:var(--surface-raised)}.idp-field--readonly{cursor:default;opacity:.6}.idp-field--readonly:hover{background:transparent}.idp-paste-hint{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--text-xxs);color:var(--text-tertiary);padding:0 var(--sp-1);cursor:default;-webkit-user-select:none;user-select:none}.idp-field-label{font-size:var(--text-xxs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-placeholder);white-space:nowrap}.idp-field-value{display:flex;align-items:center;gap:var(--sp-1);min-height:22px;font-size:var(--text-sm);font-weight:500;color:var(--text-primary);white-space:nowrap}.idp-field-sep{width:1px;height:34px;background:var(--border-subtle);flex-shrink:0;align-self:center;margin:0 var(--sp-0_5)}.idp-body-layout{display:flex;flex:1;overflow:hidden;min-height:0}.idp-main-col{flex:1;overflow-y:auto;padding:var(--sp-4) var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.idp-comments-col{width:0;border-left:1px solid transparent;overflow:hidden;flex-shrink:0;transition:width .36s cubic-bezier(.34,1.4,.64,1),border-left-color .36s}.idp-comments-col:not(.idp-comments-col--closed){width:300px;border-left-color:var(--border-subtle)}.idp-comments-inner{width:300px;display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:var(--sp-4);gap:var(--sp-3);opacity:0;transform:scale(.96);transition:opacity .2s ease .13s,transform .2s ease .13s}.idp-comments-col:not(.idp-comments-col--closed) .idp-comments-inner{opacity:1;transform:scale(1)}.idp-section{display:flex;flex-direction:column}.idp-section-hd{display:flex;align-items:center;gap:var(--sp-2);cursor:pointer;padding:var(--sp-1_5) 0;-webkit-user-select:none;user-select:none}.idp-section-hd:hover .idp-section-toggle{color:var(--text-primary)}.idp-section-toggle{font-size:var(--text-3xs);color:var(--text-tertiary);transition:transform .15s;width:10px;flex-shrink:0}.idp-section--open .idp-section-toggle{transform:rotate(90deg)}.idp-section-body{display:flex;flex-direction:column;gap:var(--sp-2);padding-left:18px;margin-top:var(--sp-2)}.idp-resolution-textarea{font-size:var(--text-sm);line-height:1.5;resize:vertical}.mock-plane-detail-header{justify-content:space-between}.mock-plane-detail-header h3{font-size:var(--text-base);font-weight:600;color:var(--text-primary)}.planner-title-input{font-size:var(--text-base);font-weight:600;color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--blue);border-radius:var(--radius-sm);padding:2px var(--sp-2);outline:none;width:100%;min-width:0;font-family:var(--font-body)}.mock-plane-detail-body{padding:var(--sp-5)}.mock-plane-detail-value{font-size:var(--text-sm);color:var(--text-primary);padding:var(--sp-2) var(--sp-2_5);background:var(--surface);border-radius:var(--radius-s)}.mock-plane-detail-desc{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;padding:var(--sp-2) var(--sp-2_5);background:var(--surface);border-radius:var(--radius-s);min-height:80px}.mock-plane-comments{margin-top:var(--sp-2)}.mock-plane-comment{display:flex;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle)}.mock-plane-comment:last-of-type{border-bottom:none}.mock-plane-comment-avatar{width:24px;height:24px;border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:600}.mock-plane-comment-body{gap:var(--sp-0_5)}.mock-plane-comment-time{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-plane-comment-text{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.mock-plane-comment-input{display:flex;gap:var(--sp-2);margin-top:var(--sp-2);align-items:flex-start}.mock-plane-comment-textarea{padding:var(--sp-2) var(--sp-2_5);border-radius:var(--radius-s);border:1px solid var(--border-default);background:var(--surface);font-size:var(--text-sm);color:var(--text-primary);font-family:var(--font-sans);resize:vertical;min-height:36px}.mock-plane-comment-textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.mock-plane-comment-send{padding:var(--sp-2) var(--sp-3_5);border-radius:var(--radius-s);background:var(--blue);color:var(--text-on-accent);border:none;font-size:var(--text-xs);font-weight:500;font-family:var(--font-sans)}.mock-plane-comment-send:hover{opacity:.9}.mock-kanban-card-drag{position:absolute;right:var(--sp-2);top:var(--sp-2);font-size:var(--text-xs);color:var(--text-placeholder);opacity:.25;transition:opacity .15s;cursor:grab;letter-spacing:-3px;line-height:1;-webkit-user-select:none;user-select:none;pointer-events:none}.mock-plane-views-list{padding-top:var(--sp-3)}.mock-plane-view-card{background:var(--surface);border-radius:var(--radius-base);padding:var(--sp-4);box-shadow:0 1px 3px #0000000a;transition:transform .1s}.mock-plane-view-card:hover{transform:translate(2px)}.mock-plane-view-card-icon{width:36px;height:36px;border-radius:var(--radius-sm);font-size:var(--text-md)}.mock-plane-view-card-body{gap:var(--sp-0_5)}.mock-plane-view-card-desc{font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.4}.mock-plane-view-card-count{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);background:var(--surface-ink);padding:var(--sp-1) var(--sp-2_5);border-radius:var(--radius-base)}.mock-plane-analytics{padding:0}.mock-plane-analytics-header{padding-bottom:var(--sp-3);border-bottom:1px solid var(--border-subtle)}.mock-plane-analytics-header h3{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.mock-plane-analytics-filter{display:flex;gap:var(--sp-1)}.mock-plane-analytics-filter-btn{padding:var(--sp-1) var(--sp-2_5);border-radius:var(--radius-s);font-size:var(--text-xxs);background:var(--surface);border:1px solid var(--border-default);color:var(--text-tertiary);font-family:var(--font-sans)}.mock-plane-analytics-filter-btn.active{background:var(--blue-soft);color:var(--blue);border-color:transparent;font-weight:500}.mock-plane-analytics-card{background:var(--surface-ink);border-radius:var(--radius-base);padding:var(--sp-4);box-shadow:0 1px 3px #0000000a}.mock-plane-analytics-card-title{margin-bottom:var(--sp-3)}.mock-plane-analytics-workload{gap:var(--sp-2_5)}.mock-plane-workload-name{font-size:var(--text-xs);color:var(--text-secondary);width:72px;text-align:right}.mock-plane-workload-track{height:8px;background:var(--surface);border-radius:var(--radius-xs)}.mock-plane-workload-fill{height:100%;width:var(--bar-width, 0%);background:var(--bar-color, var(--blue));border-radius:var(--radius-xs);transition:width .5s var(--ease-default)}.mock-plane-workload-val{font-size:var(--text-xxs);color:var(--text-tertiary);width:36px}.mock-plane-sidebar-divider{height:1px;background:var(--border-subtle);margin:var(--sp-1_5) var(--sp-2)}.mock-plane-sidebar-section-label{font-size:var(--text-2xs);color:var(--text-placeholder);padding:var(--sp-2) 8px 4px}.mock-plane-project-chevron{font-size:var(--text-2xs);color:var(--text-tertiary);margin-left:var(--sp-1)}.mock-plane-project-dropdown{position:absolute;top:var(--sp-8);left:0;width:220px;background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:0 4px 12px #0000001a;display:none;z-index:20;flex-direction:column;padding:var(--sp-1)}.mock-plane-project-dropdown.visible{display:flex}.mock-plane-project-dropdown-item{padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);color:var(--text-secondary);border-radius:var(--radius-s)}.mock-plane-project-dropdown-item:hover{background:var(--surface-ink)}.mock-plane-project-dropdown-item.active{color:var(--blue);font-weight:500;background:var(--blue-soft)}.mock-plane-project-dropdown-item--new{border-top:1px solid var(--border);color:var(--text-tertiary);margin-top:var(--sp-1)}.mock-plane-project-dropdown-item--new:hover{color:var(--blue);background:var(--surface-ink)}.mock-plane-kanban-add{padding:var(--sp-2);text-align:center;border:2px dashed var(--border-default);border-radius:var(--radius-sm);color:var(--text-placeholder);font-size:var(--text-xs);margin-top:var(--sp-1)}.mock-plane-kanban-add:hover{background:var(--surface);color:var(--blue);border-color:var(--blue)}.mock-plane-kanban-collapsed{min-width:40px;max-width:40px;padding:var(--sp-3) var(--sp-1);transition:min-width .2s,max-width .2s}.mock-plane-kanban-collapsed .mock-kanban-col-header{writing-mode:vertical-lr;text-orientation:mixed}.mock-plane-kanban-collapsed .mock-kanban-card,.mock-plane-kanban-collapsed .mock-plane-kanban-add{display:none}.mock-plane-sort-arrow{margin-left:var(--sp-1);font-size:var(--text-2xs);color:var(--text-placeholder)}.mock-plane-sub-issue{padding:var(--sp-1_5) var(--sp-2_5);background:var(--surface);border-radius:var(--radius-s);font-size:var(--text-xs);color:var(--text-secondary)}.mock-plane-sub-issue-id{font-size:var(--text-xxs);color:var(--text-tertiary);min-width:52px}.mock-plane-sub-issue-status{font-size:var(--text-2xs);padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-xs);margin-left:auto}.mock-plane-sub-issue-status.backlog{background:var(--border-subtle);color:var(--text-tertiary)}.mock-plane-sub-issue-status.in-progress{background:var(--orange-soft);color:var(--orange)}.mock-plane-cycle-detail.visible,.mock-plane-module-detail.visible{display:block}.mock-plane-gantt{display:flex;height:100%}.mock-plane-gantt-sidebar{width:240px;min-width:240px;border-right:1px solid var(--border);background:var(--surface)}.mock-plane-gantt-sidebar-header{padding:var(--sp-2_5) var(--sp-3_5);font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary);border-bottom:1px solid var(--border)}.mock-plane-gantt-sidebar-item{padding:var(--sp-2) var(--sp-3_5);font-size:var(--text-xs);color:var(--text-secondary);border-bottom:1px solid var(--border-light)}.mock-plane-gantt-sidebar-item:hover{background:var(--surface-hover)}.mock-plane-gantt-timeline{overflow-x:auto}.mock-plane-gantt-header{border-bottom:1px solid var(--border);padding:var(--sp-2) var(--sp-3)}.mock-plane-gantt-zoom{display:flex;gap:var(--sp-1)}.mock-plane-gantt-months{display:flex;gap:0}.mock-plane-gantt-months span{text-align:center;font-size:var(--text-xxs);color:var(--text-tertiary);padding:var(--sp-1) var(--sp-2);border-left:1px solid var(--border-light)}.mock-plane-gantt-body{min-height:0}.mock-plane-gantt-row{height:36px;border-bottom:1px solid var(--border-light)}.mock-plane-gantt-bar{position:absolute;top:var(--sp-1_5);left:var(--bar-left, 0%);width:var(--bar-width, 80px);height:24px;border-radius:var(--radius-xs);font-size:var(--text-2xs);color:var(--text-on-accent);padding:0 var(--sp-2)}.mock-plane-gantt-bar.urgent{background:var(--error)}.mock-plane-gantt-bar.high{background:var(--orange)}.mock-plane-gantt-bar.medium{background:var(--blue)}.mock-plane-gantt-bar.low{background:var(--text-tertiary)}.mock-plane-gantt-bar.done{background:var(--success);opacity:.7}.mock-plane-gantt-bar.no-dates{position:relative;width:80px;background:var(--border-default);opacity:.5}.gantt-container{display:flex;flex-direction:column}.mock-plane-gantt-today{position:absolute;top:0;bottom:0;left:var(--today-left, 50%);width:2px;background:var(--error);z-index:2}.mock-plane-gantt-today:before{content:"Today";position:absolute;top:-18px;left:-16px;font-size:var(--text-3xs);color:var(--error);font-weight:600}.mock-plane-home-greeting h2{font-size:var(--text-xl);font-weight:600;color:var(--text-primary)}.mock-plane-states{padding:var(--sp-6);height:100%}.mock-plane-states-header{margin-bottom:var(--sp-5)}.mock-plane-states-header h3{font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.mock-plane-states-group{margin-bottom:var(--sp-4);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-base);padding:var(--sp-3) var(--sp-4)}.mock-plane-states-group-title{margin-bottom:var(--sp-2)}.mock-plane-states-dot{width:10px;height:10px;border-radius:var(--radius-full);display:inline-block}.mock-plane-states-item{gap:var(--sp-2_5);padding:var(--sp-2) 0;border-bottom:1px solid var(--border-light);font-size:var(--text-sm)}.mock-plane-states-item:hover .mock-plane-states-actions{opacity:1}.mock-plane-states-drag{color:var(--text-placeholder);cursor:grab;font-size:var(--text-xxs)}.mock-plane-states-color{width:12px;height:12px;border-radius:var(--radius-full)}.mock-plane-states-name{color:var(--text-primary)}.mock-plane-states-actions{display:flex;gap:var(--sp-1);opacity:0;transition:opacity .15s}.btn-icon-xs{background:none;border:1px solid var(--border);border-radius:var(--radius-xs);width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xxs);color:var(--text-tertiary)}.btn-icon-xs:hover{background:var(--surface-hover);color:var(--text-primary)}.mock-plane-states-add{background:none;border:1px dashed var(--border);border-radius:var(--radius-s);padding:var(--sp-1_5) var(--sp-3);font-size:var(--text-xs);color:var(--blue);margin-top:var(--sp-2);width:100%;text-align:center}.mock-plane-states-add:hover{background:var(--blue-soft)}.mock-plane-stickies{padding:var(--sp-5)}.mock-plane-stickies-header h3{font-size:var(--text-md);font-weight:600;color:var(--text-primary);margin:0}.mock-plane-stickies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-3)}.mock-plane-sticky-card{border-radius:var(--radius-md);padding:var(--sp-4);min-height:120px;transition:box-shadow var(--duration-base) var(--ease-default),transform var(--duration-base) var(--ease-default),opacity var(--duration-base) var(--ease-default)}.mock-plane-sticky-card:hover{box-shadow:var(--neu-sm);transform:translateY(-2px)}.mock-plane-sticky-card--stale{opacity:.45}.mock-plane-sticky-card--stale:hover{opacity:.95}.mock-plane-sticky-card-text{font-size:var(--text-sm);color:var(--text-primary);line-height:var(--leading-normal)}.mock-plane-sticky-card-meta{font-size:var(--text-xs);color:var(--text-tertiary);opacity:.8}.planner-sticky-color-picker{display:flex;gap:var(--sp-1_5);flex-wrap:wrap}.mock-plane-active-cycles-header h3{font-size:var(--text-md);font-weight:600;color:var(--text-primary);margin:0}.mock-plane-subscribe-btn{transition:all .15s}.mock-plane-subscribe-btn.subscribed{background:var(--blue);color:var(--text-on-accent);border-color:var(--blue)}.mock-plane-subscribe-btn.subscribed:hover{background:var(--blue);filter:brightness(.9)}.mock-plane-links{gap:0}.mock-plane-link-item{padding:var(--sp-2) var(--sp-1);border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm)}.mock-plane-link-item:last-child{border-bottom:none}.mock-plane-link-item:hover{background:var(--surface-raised)}.mock-plane-link-icon{width:24px;height:24px;font-size:var(--text-mid);color:var(--text-secondary)}.mock-plane-link-body{gap:var(--sp-0_5)}.mock-plane-link-title{color:var(--blue);font-weight:500}.mock-plane-link-title:hover{text-decoration:underline}.mock-plane-link-url{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-plane-create-project-identifier .form-input{width:100px;text-transform:uppercase;font-size:var(--text-sm);text-align:center;letter-spacing:1px}.mock-plane-projects-header{padding-bottom:var(--sp-4)}.mock-plane-projects-header h3{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);margin:0}.mock-plane-projects-sort .form-select{font-size:var(--text-xs);padding:var(--sp-2) var(--sp-6) var(--sp-2) var(--sp-3)}.mock-plane-projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);align-content:flex-start;padding-bottom:var(--sp-4)}.mock-plane-projects-card{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--neu-lg);overflow:visible;transition:transform var(--duration-fast),box-shadow var(--duration-fast)}.mock-plane-projects-card:hover{transform:translateY(-2px);box-shadow:var(--neu-xl)}.mock-plane-projects-card:hover .planner-proj-menu-btn{opacity:1}.planner-proj-menu-wrap{top:var(--sp-2);right:var(--sp-2);z-index:10}.planner-proj-menu-btn{opacity:0;transition:opacity .15s;padding:2px var(--sp-2);font-size:var(--text-lg);line-height:1}.planner-proj-menu-dropdown{position:absolute;top:100%;right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--neu-lg);min-width:150px;z-index:20;overflow:hidden}.planner-proj-menu-item{padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer}.planner-proj-menu-item:hover{background:var(--surface-ink)}.planner-proj-menu-item--danger{color:var(--error)}.planner-proj-menu-item--danger:hover{background:var(--error-soft)}.planner-proj-menu-item--confirm{cursor:default}.planner-proj-menu-item--confirm:hover{background:transparent}.mock-plane-projects-card-inner{background:var(--surface-ink);margin:var(--sp-3);border-radius:var(--radius-lg);overflow:hidden}.mock-plane-projects-card-body{padding:var(--sp-3) var(--sp-4)}.mock-plane-projects-card-emoji{font-size:var(--text-lg);line-height:1}.mock-plane-projects-card-id{font-size:var(--text-2xs);font-weight:600;padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-xs);background:var(--border-subtle);color:var(--text-tertiary)}.mock-plane-projects-card-desc{font-size:var(--text-xs);color:var(--text-tertiary);line-height:var(--leading-normal);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.mock-plane-projects-card-footer{padding-top:var(--sp-2);border-top:1px solid var(--border-subtle)}.mock-plane-projects-card-member-avatar{width:22px;height:22px;border-radius:var(--radius-full);border:2px solid var(--surface-ink);font-size:var(--text-3xs);font-weight:600;color:var(--text-on-accent)}.mock-plane-projects-card-member-avatar:not(:first-child){margin-left:-var(--sp-1_5)}.mock-plane-projects-card-issues{font-size:var(--text-xs);color:var(--text-tertiary)}.mock-plane-projects-card-join-btn{padding:var(--sp-1) var(--sp-2_5);border-radius:var(--radius-sm);font-size:var(--text-xxs);font-weight:500;border:1px solid var(--border-default);background:var(--surface);color:var(--text-tertiary);font-family:var(--font-sans);transition:all var(--duration-fast)}.mock-plane-projects-card-join-btn:hover{color:var(--blue);border-color:var(--blue)}.mock-plane-projects-card-join-btn.joined{background:var(--blue-soft);color:var(--blue);border-color:var(--blue)}@media (max-width: 900px){.mock-plane-projects-grid{grid-template-columns:repeat(2,1fr)}}.mock-plane-fav-panel{gap:var(--sp-0_5);padding:var(--sp-1) 0}.mock-plane-fav-folder.collapsed .mock-plane-fav-chevron{transform:rotate(-90deg)}.mock-plane-fav-folder-children.collapsed,.mock-plane-fav-folder.collapsed .mock-plane-fav-folder-children{max-height:0}.mock-plane-fav-item{padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs);color:var(--text-secondary);border-radius:var(--radius-sm);transition:background var(--duration-fast)}.mock-plane-fav-item:hover{background:var(--surface-ink)}.mock-plane-fav-item:hover .mock-plane-fav-drag{opacity:1}.mock-plane-fav-star{color:var(--orange);font-size:var(--text-xxs);line-height:1}.mock-plane-fav-name{text-overflow:ellipsis}.mock-plane-fav-item:hover .mock-plane-fav-actions{display:flex}.mock-plane-page-nav{width:240px;border-left:1px solid var(--border-default);background:var(--surface)}#planePagePages .mock-plane-pages{display:flex}.mock-plane-page-nav-header{padding:var(--sp-3);border-bottom:1px solid var(--border-subtle)}.mock-plane-page-nav-title{font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary)}.mock-plane-page-nav-close{width:20px;height:20px;border:none;background:none;font-size:var(--text-md);color:var(--text-tertiary);border-radius:var(--radius-sm)}.mock-plane-page-nav-close:hover{color:var(--text-primary);background:var(--border-subtle)}.mock-plane-page-nav-tabs{display:flex;border-bottom:1px solid var(--border-subtle);padding:0 var(--sp-2)}.mock-plane-page-nav-tab{padding:var(--sp-2) var(--sp-1);font-size:var(--text-xxs);font-weight:500;color:var(--text-tertiary);background:none;border:none;border-bottom:2px solid transparent;text-align:center;font-family:var(--font-sans);transition:color var(--duration-fast),border-color var(--duration-fast)}.mock-plane-page-nav-tab:hover{color:var(--text-primary)}.mock-plane-page-nav-tab.active{color:var(--blue);border-bottom-color:var(--blue)}.mock-plane-page-nav-panel{display:none;padding:var(--sp-3)}.mock-plane-page-nav-panel.active{display:block}.mock-plane-page-nav-toc{gap:var(--sp-0_5)}.mock-plane-page-nav-toc-item{padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs);color:var(--text-secondary);border-radius:var(--radius-sm);transition:background var(--duration-fast),color var(--duration-fast)}.mock-plane-page-nav-toc-item:hover{background:var(--surface-ink);color:var(--text-primary)}.mock-plane-page-nav-toc-item.h1{font-weight:600;color:var(--text-primary);padding-left:var(--sp-2)}.mock-plane-page-nav-toc-item.h2{padding-left:var(--sp-5)}.mock-plane-page-nav-toc-item.h3{padding-left:var(--sp-8);font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-plane-page-nav-info-row{padding:var(--sp-1) 0}.mock-plane-page-nav-info-label{font-size:var(--text-xxs);color:var(--text-tertiary);font-weight:500}.mock-plane-page-nav-info-value{font-size:var(--text-xs);color:var(--text-primary);font-weight:500}.mock-plane-page-nav-info-divider{height:1px;background:var(--border-subtle);margin:var(--sp-2) 0}.mock-plane-page-nav-collab{padding:var(--sp-1) 0;font-size:var(--text-xs);color:var(--text-secondary)}.mock-plane-page-nav-collab-avatar{width:22px;height:22px;border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:600;color:var(--text-on-accent)}.mock-plane-page-nav-online-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--border-default);margin-left:auto}.mock-plane-page-nav-online-dot.online{background:var(--success)}.mock-plane-page-nav-asset-item{padding:var(--sp-2);border-radius:var(--radius-sm);transition:background var(--duration-fast)}.mock-plane-page-nav-asset-item:hover{background:var(--surface-ink)}.mock-plane-page-nav-asset-icon{width:28px;height:28px;background:var(--surface-ink);border-radius:var(--radius-sm);font-size:var(--text-mid);color:var(--text-tertiary)}.mock-plane-page-nav-asset-info{gap:var(--sp-0_5);min-width:0}.mock-plane-page-nav-asset-name{font-size:var(--text-xs);font-weight:500;color:var(--text-primary)}.mock-plane-page-nav-asset-size{font-size:var(--text-2xs);color:var(--text-tertiary)}.mock-plane-page-nav-history-item{padding:var(--sp-2);border-radius:var(--radius-sm);border-bottom:1px solid var(--border-subtle)}.mock-plane-page-nav-history-item:last-child{border-bottom:none}.mock-plane-page-nav-history-meta{gap:var(--sp-0_5)}.mock-plane-page-nav-history-date{font-size:var(--text-xxs);font-weight:500;color:var(--text-primary)}.mock-plane-page-nav-history-author{font-size:var(--text-2xs);color:var(--text-tertiary)}.plane-your-work-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}.plane-your-work-stat{background:var(--surface-ink);border-radius:var(--radius-md);padding:var(--sp-4) var(--sp-5);border:1px solid var(--border-default);text-align:center;transition:transform .15s}.plane-your-work-stat:hover{transform:translateY(-2px)}.plane-your-work-stat-value{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);line-height:1.2}.plane-your-work-stat-label{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--sp-1);font-weight:500}.plane-your-work-group{background:var(--surface-ink);border-radius:var(--radius-md);border:1px solid var(--border-default)}.plane-your-work-group-header{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);background:var(--surface)}.tag-status{background:var(--s-bg, var(--surface-inset));color:var(--s-clr, var(--text-secondary))}.plane-your-work-issue{padding:var(--sp-2_5) var(--sp-4);border-bottom:1px solid var(--border-subtle);transition:background var(--duration-fast);font-size:var(--text-sm)}.plane-your-work-issue:last-child{border-bottom:none}.plane-your-work-issue:hover{background:var(--blue-soft)}.plane-your-work-issue-title{color:var(--text-primary);font-weight:500}.mock-plane-content .mock-plane-priority{font-size:var(--text-xxs);font-weight:700;width:24px;text-align:center}.mock-plane-content .mock-plane-priority.urgent{color:var(--error)}.mock-plane-content .mock-plane-priority.high{color:var(--orange)}.mock-plane-content .mock-plane-priority.medium{color:var(--warning)}.mock-plane-content .mock-plane-priority.low{color:var(--text-tertiary)}.priority-icon{display:inline-block;vertical-align:middle;flex-shrink:0}.priority-high{color:var(--orange)}.mock-plane-ai-config-row select,.mock-plane-ai-config-row input{padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-ink);color:var(--text-primary);font-size:var(--text-sm);outline:none}.mock-plane-ai-config-row select:focus,.mock-plane-ai-config-row input:focus{border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-soft)}.mock-plane-i18n-field select{padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-ink);color:var(--text-primary);font-size:var(--text-sm);outline:none;max-width:260px}.mock-plane-i18n-field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.mock-plane-ie-map-row label{min-width:80px;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.mock-plane-ie-map-row .form-select{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);font-size:var(--text-xs);color:var(--text-primary);font-family:var(--font-sans)}.mock-plane-ie-export-fields label{font-size:var(--text-sm);color:var(--text-primary)}.mock-plane-ie-export-fields input[type=checkbox]{accent-color:var(--blue)}.plane-shortcuts-section h4{margin-bottom:var(--sp-2);padding-bottom:var(--sp-1);border-bottom:1px solid var(--border-subtle)}.mock-plane-content .plane-text-muted-xs{font-size:var(--text-xs);color:var(--text-tertiary)}.mock-plane-content .plane-text-2xs{font-size:var(--text-2xs)}.mock-plane-content .plane-text-muted-sm{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-plane-content .plane-icon-inline{vertical-align:middle;margin-right:var(--sp-1)}.mock-plane-content .plane-ml-auto{margin-left:auto}.mock-plane-content .plane-text-bold-primary{font-weight:600;color:var(--text-primary)}.mock-plane-content .plane-text-placeholder-i{color:var(--text-placeholder);font-style:italic}.mock-plane-content .plane-flex-tags{display:flex;gap:var(--sp-1_5)}.mock-plane-content .plane-row-card{padding:var(--sp-2_5) 16px;background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border)}.mock-plane-content .plane-text-title-sm{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.planner-relation-form{padding:var(--sp-2);background:var(--surface-raised);border-radius:var(--radius-sm);border:1px solid var(--border)}.planner-relation-item{padding:var(--sp-1_5) var(--sp-2);background:var(--surface);border-radius:var(--radius-s);border:1px solid var(--border)}.planner-relation-search-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--neu-lg);z-index:30;max-height:200px;overflow-y:auto}.planner-relation-search-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-3)}.planner-relation-search-item:hover{background:var(--surface-ink)}.planner-attachment-item{padding:var(--sp-1_5) var(--sp-2);background:var(--surface);border-radius:var(--radius-s);border:1px solid var(--border)}.planner-attachment-link{color:var(--text-primary);text-decoration:none}.planner-attachment-link:hover{color:var(--blue);text-decoration:underline}.planner-img-gallery{display:flex;flex-wrap:wrap;gap:var(--sp-1_5);margin-bottom:var(--sp-2)}.planner-img-gallery-item{position:relative;width:80px;height:80px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.planner-img-gallery-item:hover .planner-img-gallery-del{opacity:1}.planner-img-gallery-thumb{width:100%;height:100%;object-fit:cover;display:block}.planner-img-gallery-del{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;background:#0009;color:#fff;border:none;cursor:pointer;font-size:var(--text-xs);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s}.planner-img-gallery-thumb-wrap{width:100%;height:100%;cursor:zoom-in}.planner-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000e0;display:flex;align-items:center;justify-content:center}.planner-lightbox-inner{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2)}.planner-lightbox-img{max-width:88vw;max-height:80vh;object-fit:contain;border-radius:var(--radius-md);display:block;box-shadow:0 8px 40px #00000080}.planner-lightbox-close{position:absolute;top:-44px;right:0;background:#ffffff26;border:none;color:#fff;font-size:22px;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .12s}.planner-lightbox-close:hover{background:#ffffff47}.planner-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff26;border:none;color:#fff;font-size:34px;width:44px;height:44px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .12s;z-index:1}.planner-lightbox-nav:hover:not(:disabled){background:#ffffff47}.planner-lightbox-nav:disabled{opacity:.25;cursor:default}.planner-lightbox-nav--prev{left:-60px}.planner-lightbox-nav--next{right:-60px}.planner-lightbox-footer{display:flex;align-items:center;gap:var(--sp-3);color:#ffffffbf;padding:0 var(--sp-2);width:100%;justify-content:center}.planner-lightbox-filename{font-size:var(--text-sm);max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planner-lightbox-counter{font-size:var(--text-sm);opacity:.55;flex-shrink:0}.planner-line-through{text-decoration:line-through}.planner-detail-tabs{border-bottom:1px solid var(--border);padding-bottom:var(--sp-1)}.planner-activity-feed{overflow-y:auto}.planner-activity-item{padding:var(--sp-1_5) 0;border-bottom:1px solid var(--border-light, var(--border))}.planner-activity-item:last-child{border-bottom:none}.planner-activity-avatar{width:28px;height:28px;border-radius:50%;font-size:var(--text-xs);font-weight:600}.planner-reactions{flex-wrap:wrap}.planner-reaction-chip{display:inline-flex;align-items:center;gap:var(--sp-0_5, 2px);padding:2px 8px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);font-size:var(--text-sm);cursor:pointer;transition:background .15s}.planner-reaction-chip:hover{background:var(--surface-raised)}.planner-reaction-chip span{font-size:var(--text-xs);color:var(--text-tertiary)}.planner-reaction-active{border-color:var(--blue);background:var(--accent-subtle, rgba(99, 102, 241, .08))}.planner-reaction-add-wrapper{position:relative}.planner-reaction-add-btn{font-size:var(--text-sm);padding:2px 8px}.planner-reaction-picker{position:absolute;bottom:100%;left:0;display:flex;gap:var(--sp-0_5, 4px);padding:var(--sp-1);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .1));z-index:10}.planner-reaction-emoji{font-size:var(--text-lg);padding:var(--sp-1);border:none;background:none;border-radius:var(--radius-xs);cursor:pointer}.planner-reaction-emoji:hover{background:var(--surface-hover, var(--border))}.planner-issue-reactions{padding:var(--sp-1) var(--sp-4, var(--sp-5));flex-wrap:wrap}.planner-comment-replies{padding-left:var(--sp-3);border-left:2px solid var(--border-subtle);margin-left:var(--sp-1)}.planner-subscribers-list{flex-wrap:wrap}.planner-cycle-issues-panel{padding:var(--sp-3);background:var(--surface-raised);border:1px solid var(--border);border-top:none;border-radius:0 0 8px 8px}.planner-cycle-issue-row{padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s)}.planner-cycle-issue-row:hover{background:var(--surface-hover, var(--surface))}.planner-issue-link:hover{color:var(--blue)}.planner-add-issue-dropdown{padding:var(--sp-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.planner-add-issue-list{max-height:200px;overflow-y:auto}.planner-add-issue-item{padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-xs)}.planner-add-issue-item:hover{background:var(--surface-raised)}.planner-overlay-form{width:440px;padding:var(--sp-5)}.planner-overlay-sm{width:300px;padding:var(--sp-4)}.planner-overlay-md{width:480px;padding:var(--sp-5)}.planner-textarea-sm{min-height:60px;resize:vertical}.hidden{display:none}.planner-labels-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:200;min-width:180px;display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-2);background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border);box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .18));max-height:200px;overflow-y:auto}.planner-labels-dropdown-item{padding:var(--sp-1) var(--sp-1_5);border-radius:var(--radius-xs);font-size:var(--text-sm)}.planner-labels-dropdown-item:hover{background:var(--surface-hover)}.planner-transfer-modal{width:400px;padding:var(--sp-5)}.planner-transfer-summary{padding:var(--sp-3);background:var(--surface-raised);border-radius:var(--radius-sm);border:1px solid var(--border);font-size:var(--text-sm)}.planner-group-section{margin-bottom:var(--sp-4)}.planner-group-header{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);padding:var(--sp-2) 0;border-bottom:1px solid var(--border-light);margin-bottom:var(--sp-2);display:flex;align-items:center;gap:var(--sp-2)}.planner-group-count{font-weight:400;color:var(--text-tertiary);font-size:var(--text-xs)}.planner-view-card-actions{display:flex;align-items:center;gap:var(--sp-1);opacity:0;transition:opacity .15s}.mock-plane-view-card:hover .planner-view-card-actions{opacity:1}.planner-view-form{width:440px;padding:var(--sp-5)}.planner-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--sp-4)}.planner-card-danger{border:1px solid var(--error);border-radius:var(--radius-sm);padding:var(--sp-4)}.planner-section-title{margin-bottom:var(--sp-3)}.planner-field-label{margin-bottom:var(--sp-1)}.planner-panel-footer{margin-top:var(--sp-4);justify-content:flex-end}.planner-settings-member-row{padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}.planner-settings-avatar{width:32px;height:32px;border-radius:var(--radius-full)}.planner-settings-feature-gap{gap:var(--sp-2_5)}.planner-settings-network-hint{margin-top:var(--sp-1_5);font-size:var(--text-xs);color:var(--text-secondary);line-height:1.5;max-width:480px}.planner-filter-bar{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--sp-2)}.planner-filter-row{display:inline-flex;align-items:center;gap:var(--sp-1)}.planner-filter-sep{margin-left:var(--sp-0_5)}.planner-filter-select{width:140px}.planner-filter-icon-sm{height:20px}.planner-inbox-list{gap:1px;margin-top:var(--sp-3)}.planner-inbox-item{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-light);display:flex;align-items:flex-start;gap:var(--sp-3);transition:background .1s}.planner-inbox-item.unread{background:var(--blue-soft)}.planner-inbox-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.planner-inbox-accept-btn{background:var(--success);color:#fff;border:none}.planner-inbox-detail{margin-top:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm)}.planner-notif-list{gap:var(--sp-0_5);margin-top:var(--sp-3)}.planner-notif-item{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-s);transition:background .1s}.planner-notif-item.unread{background:var(--blue-soft)}.planner-notif-avatar{width:32px;height:32px;border-radius:var(--radius-full);flex-shrink:0}.planner-notif-unread-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0;margin-top:var(--sp-1_5)}.planner-label-swatch{width:14px;height:14px;border-radius:var(--radius-full);flex-shrink:0}.label-color-dot{width:14px;height:14px;border-radius:var(--radius-full);flex-shrink:0;border:none;cursor:pointer;padding:0;transition:transform .1s,box-shadow .1s}.label-color-dot:hover{transform:scale(1.2);box-shadow:0 0 0 2px var(--border-default)}.label-color-popover{position:absolute;top:calc(100% + var(--sp-1));left:0;z-index:100;background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--sp-2);display:grid;grid-template-columns:repeat(6,18px);gap:var(--sp-1_5);box-shadow:var(--shadow-md)}.label-color-swatch{width:18px;height:18px;border-radius:var(--radius-full);border:2px solid transparent;cursor:pointer;padding:0;transition:transform .1s,border-color .15s}.label-color-swatch:hover{transform:scale(1.15)}.label-color-swatch.active{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}.planner-color-picker-swatch{width:18px;height:18px;border-radius:var(--radius-full);cursor:pointer}.planner-state-dot{width:10px;height:10px;border-radius:var(--radius-full);flex-shrink:0}.project-status-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.project-status-icon--active{color:var(--success)}.project-status-icon--paused{color:var(--warning)}.project-status-icon--archived{color:var(--blue)}.project-status-icon--completed{color:var(--success);opacity:.7}.project-card-fallback-icon{color:var(--text-tertiary);flex-shrink:0}.planner-projects-grid{padding:var(--sp-5);overflow:hidden}.planner-project-form{width:440px;padding:var(--sp-5)}.planner-textarea-desc{width:100%;min-height:80px;resize:vertical}.planner-page-content{overflow-y:auto;padding:var(--sp-5)}.planner-flex-col-view{display:flex;flex-direction:column}.planner-estimates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--sp-4)}.planner-estimate-card{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.planner-estimate-points{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.planner-estimate-chip{padding:var(--sp-0_5) var(--sp-2);background:var(--surface-inset);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500}.planner-point-row{display:flex;align-items:center;gap:var(--sp-2)}.planner-point-key{width:40px;text-align:center;font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary)}.planner-sub-copy{border:0;background:transparent;cursor:pointer;color:var(--color-text-tertiary, #94a3b8);width:22px;height:22px;border-radius:5px;display:grid;place-items:center;font-size:13px;opacity:0;transition:opacity .12s ease,background .12s ease}.planner-sub-copy:hover{background:var(--color-surface, #f1f5f9);color:var(--color-text-secondary, #475569)}.mock-plane-sub-issue:hover .planner-sub-copy{opacity:1}.issue-reaction-btn{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px 8px;border:1px solid var(--border);border-radius:999px;background:transparent;cursor:pointer;font-size:var(--text-xs)}.issue-reaction-btn:hover{background:var(--surface-raised)}.issue-reaction-btn.active{border-color:var(--blue);background:var(--accent-bg, rgba(59, 130, 246, .08))}.issue-reaction-add{display:inline-flex;align-items:center;padding:2px 8px;border:1px dashed var(--border);border-radius:999px;background:transparent;cursor:pointer;font-size:var(--text-xs);color:var(--text-tertiary)}.issue-reaction-add:hover{border-color:var(--blue);color:var(--blue)}.comment-reply-indicator{font-size:var(--text-xs);color:var(--text-tertiary);padding-left:var(--sp-4);border-left:2px solid var(--border);margin-left:var(--sp-2)}.comment-actions{display:flex;gap:var(--sp-1);opacity:0;transition:opacity .15s}.comment-item:hover .comment-actions{opacity:1}.comment-edit-form{display:flex;gap:var(--sp-1);margin-top:var(--sp-1)}.planner-wiki-layout{display:flex;flex:1;overflow:hidden}.planner-wiki-sidebar{width:240px;border-right:1px solid var(--border-default);overflow-y:auto;padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-1)}.planner-wiki-tree-item{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-s);cursor:pointer;font-size:var(--text-sm)}.planner-wiki-tree-item:hover{background:var(--surface-hover)}.planner-wiki-tree-item.active{background:var(--surface-active);font-weight:500}.planner-wiki-tree-item.indent{padding-left:var(--sp-6)}.planner-wiki-tree-item[data-level="1"]{padding-left:var(--sp-5)}.planner-wiki-tree-item[data-level="2"]{padding-left:calc(var(--sp-5) * 2)}.planner-wiki-tree-item[data-level="3"]{padding-left:calc(var(--sp-5) * 3)}.planner-wiki-tree-item[data-level="4"]{padding-left:calc(var(--sp-5) * 4)}.planner-wiki-tree-expand{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:var(--text-xxs);color:var(--text-tertiary);border-radius:var(--radius-xs);flex-shrink:0;transition:transform var(--duration-fast)}.planner-wiki-tree-expand:hover{background:var(--surface-raised);color:var(--text-primary)}.planner-wiki-tree-expand.open{transform:rotate(90deg)}.planner-wiki-tree-spacer{width:16px;flex-shrink:0}.planner-template-assignees{display:flex;gap:var(--sp-1);flex-wrap:wrap}.planner-template-assignee-chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-0_5) var(--sp-2);background:var(--blue-soft);color:var(--blue);border-radius:var(--radius-full);font-size:var(--text-xxs);font-weight:500}.planner-assignee-picker{border:1px solid var(--border-default);border-radius:var(--radius-sm);max-height:160px;overflow-y:auto;background:var(--surface-ink)}.planner-assignee-picker-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-3);cursor:pointer;font-size:var(--text-sm)}.planner-assignee-picker-item:hover{background:var(--surface-hover)}.planner-assignee-picker-item.selected{background:var(--blue-soft)}.planner-wiki-content{flex:1;overflow-y:auto;padding:var(--sp-5)}.planner-wiki-title{font-size:var(--text-xl);font-weight:600;margin-bottom:var(--sp-3);border:none;background:none;width:100%;color:var(--text-primary)}.planner-wiki-title:focus{outline:none}.planner-templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-4)}.planner-template-card{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.planner-teams-search{max-width:240px}.planner-teams-section{margin-bottom:var(--sp-5)}.planner-teams-section-header{font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-bottom:var(--sp-3)}.planner-team-member-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-bottom:1px solid var(--border-default)}.planner-team-avatar{width:36px;height:36px;border-radius:var(--radius-full);background:var(--surface-inset);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);object-fit:cover}.planner-automations-list{display:flex;flex-direction:column;gap:var(--sp-3)}.planner-automation-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-md)}.planner-tabs{display:flex;gap:var(--sp-0_5);border-bottom:1px solid var(--border-subtle)}.planner-tab-btn{padding:var(--sp-1_5) var(--sp-3);font-size:var(--text-sm);color:var(--text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;transition:color var(--duration-fast) var(--ease-default)}.planner-tab-btn:hover{color:var(--text-primary)}.planner-tab-btn.active{color:var(--purple);border-bottom-color:var(--purple);font-weight:500}.planner-integrations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-4)}.planner-integration-card{background:var(--surface-ink);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--sp-5);display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);text-align:center}.planner-bulk-bar{padding:var(--sp-2) var(--sp-3);background:var(--blue-soft);border:1px solid var(--blue);border-radius:var(--radius-sm);margin:var(--sp-2) var(--sp-3) 0;flex-shrink:0}.planner-bulk-check{width:14px;height:14px;cursor:pointer;accent-color:var(--blue)}.planner-row-selected{background:var(--blue-soft)!important}.planner-search-dropdown{position:absolute;top:100%;right:0;margin-top:var(--sp-1);width:360px;background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000001f;z-index:50;padding:var(--sp-2)}.planner-search-results{max-height:300px;overflow-y:auto;margin-top:var(--sp-1)}.planner-search-result-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s)}.planner-search-result-item:hover{background:var(--surface-ink, var(--surface-raised))}.planner-assignee-avatar-sm{width:20px;height:20px;border-radius:var(--radius-full);font-size:var(--text-3xs);font-weight:600}.planner-assignee-avatar{width:24px;height:24px;border-radius:var(--radius-full);font-size:.65rem;font-weight:600}.planner-home-title{font-size:var(--text-md)}.planner-home-content{padding:var(--sp-5);gap:var(--sp-5)}.mock-plane-states-drag{-webkit-user-select:none;user-select:none}.planner-inline-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:200;min-width:160px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .18));padding:var(--sp-1);display:flex;flex-direction:column;gap:2px}.planner-inline-option{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;gap:var(--sp-2);transition:background .1s}.planner-inline-option:hover,.planner-inline-option.is-selected{background:var(--surface-raised)}.planner-inline-option--config{border-top:1px solid var(--border);margin-top:var(--sp-1);padding-top:var(--sp-1_5)}.planner-priority-chip{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--text-xs);font-weight:500;padding:2px 8px;border-radius:var(--radius-base);cursor:pointer;transition:opacity .15s;color:var(--chip-clr, var(--text-tertiary));background:color-mix(in srgb,var(--chip-clr, var(--text-tertiary)) 12%,transparent)}.planner-priority-chip:hover{opacity:.8}.planner-priority-chip:before{content:"●";font-size:.55em}.planner-time-row{padding:var(--sp-1) 0;min-height:30px}.planner-time-row .planner-time-progress-track{max-width:80px}.planner-time-dot{font-size:var(--text-2xs);animation:pulse-dot 1.2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.planner-timer-widget{border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2_5)}.planner-timer-header{display:flex;align-items:center;gap:var(--sp-3)}.planner-timer-display{font-family:var(--font-mono, "Courier New", monospace);font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);letter-spacing:.05em;line-height:1}.planner-timer-display--running{color:var(--blue)}.planner-timer-meta{display:flex;flex-direction:column;gap:2px;font-size:var(--text-xxs);color:var(--text-tertiary)}.planner-timer-stats{display:flex;align-items:center;gap:var(--sp-4);font-size:var(--text-xxs);color:var(--text-tertiary)}.planner-time-progress-track{height:4px;background:var(--border-subtle);border-radius:var(--radius-full);overflow:hidden}.planner-time-progress-bar{height:100%;background:var(--blue);border-radius:var(--radius-full);transition:width .3s ease}.planner-time-entries{margin-top:var(--sp-2);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--sp-1);padding-top:var(--sp-2)}.planner-time-entry-row{padding:var(--sp-1) var(--sp-1_5);border-radius:var(--radius-xs);transition:background var(--duration-fast)}.planner-time-entry-row:hover{background:var(--surface-raised)}.planner-time-entry-row:hover .planner-time-entry-del{opacity:1}.planner-time-entry-dur{font-weight:600;color:var(--text-primary);min-width:40px}.planner-time-entry-note{flex:1}.planner-time-entry-date{white-space:nowrap}.planner-time-entry-del{opacity:0;transition:opacity var(--duration-fast);color:var(--text-tertiary);font-size:var(--text-xxs);padding:2px 4px}.planner-manual-time-form{margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-2_5);border:1px dashed var(--border-default);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:var(--sp-2)}.planner-manual-time-field{display:flex;align-items:center;gap:var(--sp-1);flex:1}.planner-private-icon{color:var(--warning);opacity:.7}.planner-expand-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:none;border:none;cursor:pointer;color:var(--text-tertiary);font-size:var(--text-xs);border-radius:var(--radius-xs);flex-shrink:0;transition:transform var(--duration-fast) var(--ease-default),background var(--duration-fast)}.planner-expand-btn:hover{background:var(--surface-raised)}.planner-expand-btn.open{transform:rotate(90deg)}.planner-subissue-row{opacity:.88}.planner-subissue-row td{font-size:var(--text-xs)}.planner-subissue-indent{display:inline-block;width:var(--sp-5)}.planner-peek-panel{position:fixed;top:0;right:0;width:320px;height:100vh;background:var(--surface-ink);border-left:1px solid var(--border-default);box-shadow:var(--neu-lg);z-index:150;display:flex;flex-direction:column;transform:translate(100%);transition:transform var(--duration-slow) var(--ease-default)}.planner-peek-panel.open{transform:translate(0)}.planner-peek-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);gap:var(--sp-2)}.planner-peek-body{flex:1;padding:var(--sp-4);overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-3)}.planner-peek-title{font-size:var(--text-base);font-weight:600;color:var(--text-primary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.planner-peek-meta{display:flex;flex-direction:column;gap:var(--sp-2)}.planner-peek-meta-row{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);color:var(--text-secondary)}.planner-peek-meta-label{min-width:72px;font-size:var(--text-xs);color:var(--text-tertiary);font-weight:500}.planner-peek-description{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.planner-peek-footer{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border-subtle);display:flex;gap:var(--sp-2)}.planner-cycle-board{display:flex;flex-direction:row;gap:var(--sp-3);overflow-x:auto;padding:var(--sp-2) 0}.planner-cycle-board-col{min-width:180px;flex:1;display:flex;flex-direction:column;gap:var(--sp-2)}.planner-cycle-board-col-header{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;padding:var(--sp-1) 0;border-bottom:1px solid var(--border-subtle);margin-bottom:var(--sp-1)}.planner-cycle-board-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);cursor:pointer;transition:box-shadow var(--duration-fast)}.planner-cycle-board-card:hover{box-shadow:var(--neu-sm)}.planner-home-widget{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border-subtle);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.planner-home-widget-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);display:flex;align-items:center;justify-content:space-between}.planner-home-widget-body{display:flex;flex-direction:column;gap:var(--sp-2)}.planner-home-sticky-item{padding:var(--sp-2) var(--sp-3);background:var(--orange-soft);border-radius:var(--radius-s);cursor:pointer}.planner-home-sticky-item:hover{opacity:.85}.planner-home-sticky-name{font-size:var(--text-xs);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-0_5)}.planner-home-sticky-preview{font-size:var(--text-xs);color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}.planner-home-quicklinks{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.planner-mention-dropdown{position:absolute;bottom:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:200;max-height:180px;overflow-y:auto}.planner-mention-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2);cursor:pointer}.planner-mention-item:hover{background:var(--surface-hover)}.planner-home-activity-item{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-1_5) 0;border-bottom:1px solid var(--border-subtle)}.planner-home-activity-item:last-child{border-bottom:none}.planner-home-activity-icon{width:20px;height:20px;border-radius:var(--radius-s);display:flex;align-items:center;justify-content:center;font-size:var(--text-xxs);font-weight:700;flex-shrink:0}.planner-home-activity-title{font-size:var(--text-xs);color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planner-home-activity-meta{font-size:var(--text-xxs);color:var(--text-tertiary);white-space:nowrap;flex-shrink:0}.planner-home-manage-btn{background:none;border:none;cursor:pointer;color:var(--text-tertiary);font-size:var(--text-xs);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-s)}.planner-home-manage-btn:hover{color:var(--text-primary);background:var(--surface-raised)}.planner-home-widget-dropdown{position:absolute;top:calc(100% + var(--sp-1));right:0;z-index:50;min-width:180px;background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-m);padding:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-1_5)}.planner-home-widget-option{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-s)}.planner-home-widget-option:hover{background:var(--surface-raised);color:var(--text-primary)}.planner-notif-prefs{border-top:1px solid var(--border-subtle);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4)}.planner-notif-prefs-title{font-weight:600;color:var(--text-primary);font-size:var(--text-sm);margin-bottom:var(--sp-2)}.planner-notif-prefs-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.planner-notif-prefs-label{font-size:var(--text-sm);color:var(--text-secondary)}.planner-cycle-burndown{padding:var(--sp-3) 0}.planner-page-history-panel{position:absolute;top:0;right:0;bottom:0;width:280px;background:var(--surface);border-left:1px solid var(--border-default);display:flex;flex-direction:column;z-index:20;transform:translate(100%);transition:transform .2s ease}.planner-page-history-panel.open{transform:translate(0)}.planner-page-history-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);font-weight:600;font-size:var(--text-sm)}.planner-page-history-list{flex:1;overflow-y:auto;padding:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-1)}.planner-page-revision-item{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);border:1px solid var(--border-subtle);cursor:pointer;display:flex;flex-direction:column;gap:var(--sp-1)}.planner-page-revision-item:hover{background:var(--surface-raised);border-color:var(--border-default)}.planner-page-revision-title{font-size:var(--text-xs);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planner-page-revision-meta{font-size:var(--text-xs);color:var(--text-tertiary)}.planner-webhooks-list{display:flex;flex-direction:column;gap:var(--sp-3)}.planner-webhook-item{padding:var(--sp-4);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-raised);display:flex;flex-direction:column;gap:var(--sp-2)}.planner-webhook-url{font-family:var(--font-mono, monospace);font-size:var(--text-xs);color:var(--text-primary);word-break:break-all}.planner-webhook-events{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.planner-cf-list{display:flex;flex-direction:column;gap:var(--sp-2)}.planner-cf-row{display:flex;flex-direction:row;align-items:center;gap:var(--sp-3);padding:var(--sp-1) 0}.planner-cf-label{font-size:var(--text-xs);color:var(--text-secondary);min-width:120px;flex-shrink:0}.planner-cf-value{flex:1;min-width:0}.planner-cf-multisel{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.planner-cf-chip{display:inline-flex;align-items:center;padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-full);font-size:var(--text-xxs);font-weight:600;border:1px solid var(--border-default);background:var(--surface);cursor:pointer;transition:all var(--duration-fast)}.planner-cf-chip:hover{border-color:var(--purple);color:var(--purple)}.planner-cf-chip.active{border-color:var(--purple);background:var(--purple-soft);color:var(--purple)}.planner-cf-file{display:flex;flex-direction:column;gap:var(--sp-1_5)}.planner-cf-file-link{font-size:var(--text-xs);color:var(--blue);text-decoration:none;max-width:180px;display:inline-block}.planner-cf-file-link:hover{text-decoration:underline}.planner-cf-file-upload{display:inline-flex;align-items:center;padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-xs);border:1px dashed var(--border-default);font-size:var(--text-xxs);color:var(--text-secondary);cursor:pointer;transition:border-color var(--duration-fast),color var(--duration-fast);width:fit-content}.planner-cf-file-upload:hover{border-color:var(--purple);color:var(--purple)}.planner-cf-file-upload--busy{opacity:.6;cursor:not-allowed}.planner-cf-opt-row{display:flex;flex-direction:row;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1)}.intake-public-page{min-height:100vh;background:var(--surface);padding:var(--sp-6) var(--sp-4)}.intake-public-card{width:100%;max-width:520px;background:var(--surface-1);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--sp-6);box-shadow:var(--shadow-md)}.intake-public-success-icon{width:56px;height:56px;border-radius:50%;background:var(--green-subtle);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:1.75rem}.planner-wsview-issues{margin-top:var(--sp-4);border-top:1px solid var(--border-light);padding-top:var(--sp-3)}.planner-wsview-issue-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-xlight);font-size:var(--text-sm)}.planner-wsview-issue-row:last-child{border-bottom:none}.planner-wsview-issue-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planner-wsview-issue-meta{color:var(--text-tertiary);font-size:var(--text-xs);flex-shrink:0}.tag[style]{background:color-mix(in srgb,var(--chip-clr, var(--blue)) 15%,transparent);color:var(--chip-clr, inherit);border:none}.planner-sub-priority-tag{font-size:var(--text-2xs)}.mock-plane-checklist-progress{height:4px;background:var(--border-subtle);border-radius:var(--radius-full);overflow:hidden}.mock-plane-checklist-progress-bar{height:100%;background:var(--blue);border-radius:var(--radius-full);width:var(--pct, 0%);transition:width .3s ease}.mock-plane-checklist-item span{font-size:var(--text-sm);font-family:var(--font-body);color:var(--text-primary)}.planner-checklist-drag{cursor:grab;color:var(--text-secondary);opacity:.4;font-size:var(--text-mid);line-height:1;flex-shrink:0}.planner-checklist-drag:active{cursor:grabbing}.planner-time-progress-bar--zero{width:0%}.planner-ai-panel{background:var(--surface-raised);border-radius:var(--radius-sm);padding:var(--sp-2)}.planner-ai-text{white-space:pre-wrap}.planner-drag-overlay{box-shadow:var(--shadow-lg);opacity:.9}.planner-col-over{background:var(--surface-hover)}.planner-icon-input{width:60px}.mock-plane-sub-issue-status{background:var(--chip-bg, var(--border-subtle));color:var(--chip-clr, var(--text-tertiary))}.planner-rel-badge-wrap{display:inline-flex;align-items:center}.planner-rel-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 5px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface);color:var(--text-secondary);font-size:var(--text-xxs);cursor:pointer;transition:background .15s}.planner-rel-badge:hover{background:var(--surface-hover);color:var(--text-primary)}.planner-rel-badge svg{flex-shrink:0}.planner-rel-badge--blocked{border-color:var(--error);color:var(--error)}.planner-rel-badge--blocked:hover{background:color-mix(in srgb,var(--error) 10%,var(--surface))}.planner-rel-popover{position:absolute;top:calc(100% + 4px);left:0;z-index:200;min-width:240px;max-width:320px;background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--sp-1) 0}.planner-rel-popover-header{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--sp-1)}.planner-rel-popover-empty{font-size:var(--text-xs);color:var(--text-tertiary);padding:var(--sp-1) var(--sp-2)}.planner-rel-popover-item{display:flex;align-items:center;gap:var(--sp-1_5);width:100%;padding:var(--sp-1_5) var(--sp-2);background:none;border:none;border-bottom:1px solid var(--border-subtle);text-align:left;cursor:pointer;transition:background .12s}.planner-rel-popover-item:last-child{border-bottom:none}.planner-rel-popover-item:hover{background:var(--surface-raised)}.planner-rel-mini-status{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0;margin-top:var(--sp-0_5);background:var(--status-color, var(--text-tertiary))}.planner-rel-mini-info{flex:1;min-width:0}.planner-rel-mini-title{font-size:var(--text-xs);color:var(--text-primary);font-weight:500;display:block}.planner-rel-mini-meta{font-size:var(--text-xxs);color:var(--text-tertiary)}.planner-rel-mini-dot{color:var(--border-strong)}.planner-rel-popover-id{font-size:var(--text-xxs);font-family:var(--font-mono);color:var(--text-tertiary);flex-shrink:0}.planner-rel-popover-title{font-size:var(--text-xs);color:var(--text-primary);flex:1;min-width:0}.planner-rel-popover-type{font-size:var(--text-xxs);color:var(--purple);flex-shrink:0}.planner-notetbl-picker{width:400px;max-width:95vw;display:flex;flex-direction:column;gap:0}.planner-notetbl-picker-header{justify-content:space-between;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm)}.planner-notetbl-breadcrumb{padding:var(--sp-1_5) var(--sp-3);border-bottom:1px solid var(--border-subtle);font-size:var(--text-xs);flex-wrap:wrap;gap:var(--sp-1)}.planner-notetbl-breadcrumb-item{background:none;border:none;padding:0;cursor:pointer;color:var(--text-secondary);font-size:var(--text-xs);transition:color .12s}.planner-notetbl-breadcrumb-item:hover{color:var(--text-primary)}.planner-notetbl-breadcrumb-item.active{color:var(--text-primary);font-weight:600;cursor:default}.planner-notetbl-list{min-height:160px;max-height:320px;overflow-y:auto;padding:var(--sp-1) 0}.planner-notetbl-list-item{display:flex;align-items:center;gap:var(--sp-1_5);width:100%;padding:var(--sp-1_5) var(--sp-3);background:none;border:none;text-align:left;cursor:pointer;font-size:var(--text-sm);color:var(--text-primary);transition:background .12s}.planner-notetbl-list-item:hover{background:var(--surface-hover)}.planner-notetbl-list-icon{flex-shrink:0;font-size:var(--text-mid);line-height:1}.planner-notetbl-list-id{margin-left:auto;flex-shrink:0}.planner-notetbl-empty{padding:var(--sp-4) var(--sp-3);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.planner-notetbl-footer{justify-content:flex-end;padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border-subtle)}.planner-notetbl-chip{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2_5);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-secondary);max-width:320px}.planner-notetbl-chip svg{flex-shrink:0;color:var(--text-tertiary)}.planner-notetbl-chip span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planner-move-project-block{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--surface-raised);border-radius:var(--radius-sm);border:1px solid var(--border-default)}.planner-move-project-warning{font-size:var(--text-xs);color:var(--orange);display:flex;align-items:center;gap:var(--sp-1)}.planner-draft-toggle{padding:var(--sp-1) 0;-webkit-user-select:none;user-select:none}.planner-draft-toggle input[type=checkbox]{width:14px;height:14px;flex-shrink:0;cursor:pointer;accent-color:var(--blue)}.planner-module-expand-icon{font-size:var(--text-2xs);line-height:1;transition:transform .15s ease;flex-shrink:0}@keyframes pe-pulse-lr{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes pe-pulse-center{0%,to{background-position:50% 50%;opacity:.4}50%{background-position:50% 50%;opacity:1}}@keyframes pe-pulse-tb{0%,to{background-position:50% 0%}50%{background-position:50% 100%}}@keyframes pe-glow{0%,to{box-shadow:var(--neu-sm),0 0 0 transparent}50%{box-shadow:var(--neu-sm),0 0 10px 2px var(--pe-color, #E53E3E)}}@keyframes pe-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.pe-pulse-lr{position:relative}.pe-pulse-lr:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--pe-color, #E53E3E) calc(var(--pe-opacity, .3) * 100%),transparent) 50%,transparent 100%);background-size:200% 100%;animation:pe-pulse-lr var(--pe-speed, 2s) ease-in-out infinite}.pe-pulse-center{position:relative}.pe-pulse-center:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:color-mix(in srgb,var(--pe-color, #E53E3E) calc(var(--pe-opacity, .3) * 100%),transparent);animation:pe-pulse-center var(--pe-speed, 2s) ease-in-out infinite}.pe-pulse-tb{position:relative}.pe-pulse-tb:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,transparent 0%,color-mix(in srgb,var(--pe-color, #E53E3E) calc(var(--pe-opacity, .3) * 100%),transparent) 50%,transparent 100%);background-size:100% 200%;animation:pe-pulse-tb var(--pe-speed, 2s) ease-in-out infinite}.pe-glow{animation:pe-glow var(--pe-speed, 2s) ease-in-out infinite}.pe-shimmer{position:relative;overflow:hidden}.pe-shimmer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--pe-color, #6B92E5) calc(var(--pe-opacity, .4) * 100%),transparent) 50%,transparent 100%);background-size:200% 100%;animation:pe-shimmer var(--pe-speed, 1.5s) linear infinite}.pe-rules-list{display:flex;flex-direction:column;gap:var(--sp-2)}.pe-rule-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface-ink);transition:border-color .15s}.pe-rule-row:hover{border-color:var(--border-default)}.pe-rule-label{flex:1;font-size:var(--text-sm);color:var(--text-primary);font-weight:500;min-width:0;truncate:true;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pe-rule-badge{flex-shrink:0;font-size:var(--text-xxs);font-weight:600;padding:2px 8px;border-radius:var(--radius-full);background:var(--purple-soft);color:var(--purple)}.pe-color-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;border:1px solid var(--border-default)}.pe-form{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface)}.pe-form-row{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.pe-form-field{display:flex;flex-direction:column;gap:var(--sp-1);flex:1;min-width:120px}.pe-form-label{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary)}.pe-radio-group{display:flex;gap:var(--sp-2);flex-wrap:wrap}.pe-radio-btn{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-xs);border:1px solid var(--border-default);font-size:var(--text-xs);cursor:pointer;background:var(--surface-ink);color:var(--text-secondary);transition:all .12s;-webkit-user-select:none;user-select:none}.pe-radio-btn input[type=radio]{display:none}.pe-radio-btn.active{border-color:var(--purple);background:var(--purple-soft);color:var(--purple);font-weight:600}.pe-preview{display:flex;flex-direction:column;gap:var(--sp-2)}.pe-preview-label{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary)}.pe-preview-card{padding:var(--sp-3);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-ink);box-shadow:var(--neu-sm);font-size:var(--text-sm);max-width:260px}.pe-preview-card .pe-preview-card-title{font-weight:500;color:var(--text-primary);margin-bottom:var(--sp-1)}.pe-preview-card .pe-preview-card-meta{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xxs);color:var(--text-tertiary)}.pe-presets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-3)}.pe-preset-card{padding:var(--sp-3);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface-ink);cursor:pointer;transition:border-color .15s,box-shadow .15s}.pe-preset-card:hover{border-color:var(--purple);box-shadow:var(--neu-sm)}.pe-preset-card-name{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-1)}.pe-preset-card-desc{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-datalens{flex-direction:row;background:var(--surface);--tab-accent: var(--purple)}.mock-datalens .btn-accent{background:var(--purple);color:var(--text-on-accent);border-color:var(--purple)}.mock-dl-header{padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle);background:var(--surface)}.mock-dl-breadcrumb{font-size:var(--text-sm);color:var(--text-tertiary)}.mock-dl-breadcrumb span{color:var(--text-primary);font-weight:500}.mock-dl-grid{padding:var(--sp-5);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-auto-rows:auto;gap:var(--sp-4)}.mock-dl-section-rows{display:flex;flex-direction:column;gap:0;padding-bottom:var(--sp-3)}.mock-dl-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-auto-rows:auto;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5) 0}.mock-dl-row>div{display:flex;flex-direction:column}.mock-dl-row>div>.mock-dl-card{flex:1}.mock-dl-new-row-zone{display:flex;align-items:center;justify-content:center;gap:var(--sp-1_5);margin:var(--sp-2) var(--sp-5) 0;height:0;opacity:0;overflow:hidden;border-radius:var(--radius-lg);border:2px dashed transparent;color:var(--text-tertiary);font-size:var(--text-xs);transition:height .18s ease,opacity .18s ease,border-color .15s ease,background .15s ease;pointer-events:none}.mock-dl-new-row-zone.visible{height:56px;opacity:1;border-color:var(--border-default);pointer-events:auto}.mock-dl-new-row-zone.over{height:64px;border-color:var(--purple);background:color-mix(in srgb,var(--purple) 8%,transparent);color:var(--purple);font-weight:600}.mock-dl-card{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--neu-lg);position:relative;z-index:0;transition:transform var(--duration-base) var(--ease-default),box-shadow var(--duration-base),z-index 0s}.mock-dl-card:hover{transform:translateY(-4px);box-shadow:var(--neu-xl);z-index:10}.mock-dl-card.menu-open,.mock-dl-card:has(.mock-dl-widget-menu-btn.active){transform:translateY(-4px);box-shadow:var(--neu-xl);z-index:1000}.mock-dl-card.wide{grid-column:span 2}.mock-dl-card.editing:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px dashed var(--purple);border-radius:var(--radius-xl);pointer-events:none;z-index:1}.mock-dl-card.editing .mock-dl-card-overlay{display:flex}.mock-dl-card:hover .mock-dl-card-btns,.mock-dl-card .mock-dl-card-btns:has(.mock-dl-widget-menu-btn.active){opacity:1}.mock-dl-card .data-table{font-size:var(--text-xs)}.mock-dl-card .data-table th{padding:var(--sp-1_5) var(--sp-2_5)}.mock-dl-card .data-table td{padding:var(--sp-1_5) var(--sp-2_5);font-size:var(--text-xs)}.mock-dl-card .data-table tbody tr:hover{background:var(--purple-soft)}.mock-dl-card .data-table td:first-child{color:var(--text-tertiary);width:30px}.mock-dl-card.editing .mock-dl-resize-handles{display:block}.mock-dl-card .data-table .text-up{color:var(--success)}.mock-dl-card .data-table .text-down{color:var(--error)}.mock-dl-section-block:has(.mock-dl-widget-menu-btn.active),.mock-dl-row-group:has(.mock-dl-widget-menu-btn.active),.mock-dl-row>div:has(.mock-dl-widget-menu-btn.active){position:relative;z-index:1000}.mock-dl-section-body:has(.mock-dl-widget-menu-btn.active)>.mock-dl-section-body-inner{overflow:visible}.mock-dl-card-ink{background:var(--surface-ink);margin:var(--sp-3);border-radius:var(--radius-lg);padding:var(--sp-6)}.mock-dl-card-ink.kpi{align-items:center;text-align:center;padding:var(--sp-6) var(--sp-4)}.mock-dl-kpi-icon{width:48px;height:48px;border-radius:var(--radius-md);font-size:var(--text-xl);background:var(--surface);box-shadow:var(--neu-sm);margin:0 auto var(--sp-4)}.mock-dl-title-widget{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);padding:var(--sp-2) var(--sp-3);display:flex;align-items:center}.mock-dl-text-widget{padding:var(--sp-2) var(--sp-3);color:var(--text-secondary);font-size:var(--text-sm);line-height:1.6}.mock-dl-text-widget p{margin:0 0 var(--sp-2)}.mock-dl-text-widget p:last-child{margin-bottom:0}.mock-dl-text-widget h1,.mock-dl-text-widget h2,.mock-dl-text-widget h3{color:var(--text-primary);font-weight:600;margin:var(--sp-3) 0 var(--sp-1)}.mock-dl-text-widget h1:first-child,.mock-dl-text-widget h2:first-child,.mock-dl-text-widget h3:first-child{margin-top:0}.mock-dl-text-widget h1{font-size:var(--text-lg)}.mock-dl-text-widget h2{font-size:var(--text-md)}.mock-dl-text-widget h3{font-size:var(--text-sm)}.mock-dl-text-widget ul,.mock-dl-text-widget ol{margin:var(--sp-1) 0 var(--sp-2) var(--sp-4);padding:0}.mock-dl-text-widget li{margin-bottom:var(--sp-0_5)}.mock-dl-text-widget strong{font-weight:600;color:var(--text-primary)}.mock-dl-text-widget em{font-style:italic}.mock-dl-text-widget u{text-decoration:underline}.mock-dl-text-widget s{text-decoration:line-through}.mock-dl-text-widget code{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:1px 4px;font-size:.85em;font-family:var(--font-mono)}.mock-dl-text-widget pre{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-2);overflow-x:auto}.mock-dl-text-widget pre code{background:none;border:none;padding:0;font-size:var(--text-xs)}.mock-dl-text-widget blockquote{border-left:3px solid var(--purple);padding-left:var(--sp-2);margin:var(--sp-1) 0;color:var(--text-tertiary);font-style:italic}.mock-dl-text-widget hr{border:none;border-top:1px solid var(--border-subtle);margin:var(--sp-3) 0}.mock-dl-text-widget a{color:var(--purple);text-decoration:underline}.mock-dl-text-widget [data-col]{display:grid;gap:var(--sp-3)}.mock-dl-text-widget [data-col][data-col="2"]{grid-template-columns:1fr 1fr}.mock-dl-text-widget [data-col][data-col="3"]{grid-template-columns:1fr 1fr 1fr}.mock-dl-text-widget [data-col][data-col="4"]{grid-template-columns:repeat(4,1fr)}.mock-dl-title-widget--editable,.mock-dl-text-widget--editable,.mock-dl-kpi-value--editable,.mock-dl-chart-title--editable{cursor:text;border-radius:var(--radius-md);transition:background .12s ease}.mock-dl-title-widget--editable:hover,.mock-dl-text-widget--editable:hover,.mock-dl-kpi-value--editable:hover,.mock-dl-chart-title--editable:hover{background:var(--surface-hover, rgba(99, 102, 241, .06))}.mock-dl-chart-title-input{font-size:inherit;font-weight:inherit;padding:0 var(--sp-1);height:auto;line-height:inherit}.mock-dl-title-widget--editing{font-size:var(--text-lg);font-weight:700}.mock-dl-text-widget--editing{cursor:default}.mock-dl-text-widget--editing:hover{background:transparent}.mock-dl-kpi-value--editing{cursor:default}.mock-dl-kpi-value--editing:hover{background:transparent}.mock-dl-kpi-value-input{font-size:inherit;font-weight:inherit;color:inherit;letter-spacing:-1px;text-align:center;max-width:6em;height:auto;padding:var(--sp-0_5) var(--sp-1)}.mock-dl-selector-widget{padding:var(--sp-2) var(--sp-3)}.mock-dl-selector-chip{padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--surface-ink);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast)}.mock-dl-selector-chip:hover{border-color:var(--purple);color:var(--purple)}.mock-dl-selector-chip.active{background:var(--purple-soft);border-color:var(--purple);color:var(--purple);font-weight:500}.mock-dl-kpi-value{font-size:var(--text-3xl);font-weight:700;color:var(--text-primary);letter-spacing:-1px;line-height:1;margin-bottom:var(--sp-1)}.mock-dl-kpi-label{font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary)}.mock-dl-kpi-change{font-size:var(--text-xs);font-weight:600;margin-top:var(--sp-2);display:flex;align-items:center;gap:2px}.mock-dl-kpi-change.up{color:var(--success)}.mock-dl-kpi-change.down{color:var(--error)}.mock-dl-kpi-prev{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-1);display:flex;align-items:center;gap:var(--sp-1)}.mock-dl-kpi-prev strong{color:var(--text-secondary);font-weight:600}.mock-dl-kpi-subtitle{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-1);text-align:center}.mock-dl-kpi-preview{background:var(--surface-inset);border-radius:var(--radius-md)}.mock-dl-stat-suffix-select{width:140px;flex-shrink:0}.mock-dl-card--hidden{opacity:.45;outline:1px dashed var(--border-default);outline-offset:-1px}.mock-dl-section--hidden>.mock-dl-section-header{opacity:.5}.mock-dl-section--hidden>.mock-dl-section-body{opacity:.45}.mock-dl-section-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows .22s ease}.mock-dl-section-body--collapsed{grid-template-rows:0fr}.mock-dl-section-body>.mock-dl-section-body-inner{overflow:hidden;min-height:0}.mock-dl-section-header-title--editable{cursor:text}.mock-dl-section-header-title--editable:hover{text-decoration:underline dotted var(--text-tertiary)}.mock-dl-card--accent-blue{background:linear-gradient(135deg,#3b82f6,#6366f1)!important;border-color:transparent!important}.mock-dl-card--accent-green{background:linear-gradient(135deg,#22c55e,#10b981)!important;border-color:transparent!important}.mock-dl-card--accent-purple{background:linear-gradient(135deg,#7c3aed,#8b5cf6)!important;border-color:transparent!important}.mock-dl-card--accent-orange{background:linear-gradient(135deg,#f97316,#fb923c)!important;border-color:transparent!important}.mock-dl-card--accent-blue .mock-dl-card-ink,.mock-dl-card--accent-green .mock-dl-card-ink,.mock-dl-card--accent-purple .mock-dl-card-ink,.mock-dl-card--accent-orange .mock-dl-card-ink{background:transparent!important}.mock-dl-card--accent-blue .mock-dl-kpi-value,.mock-dl-card--accent-green .mock-dl-kpi-value,.mock-dl-card--accent-purple .mock-dl-kpi-value,.mock-dl-card--accent-orange .mock-dl-kpi-value{color:#fff}.mock-dl-card--accent-blue .mock-dl-kpi-label,.mock-dl-card--accent-green .mock-dl-kpi-label,.mock-dl-card--accent-purple .mock-dl-kpi-label,.mock-dl-card--accent-orange .mock-dl-kpi-label{color:#ffffffbf}.mock-dl-card--accent-blue .mock-dl-kpi-subtitle,.mock-dl-card--accent-green .mock-dl-kpi-subtitle,.mock-dl-card--accent-purple .mock-dl-kpi-subtitle,.mock-dl-card--accent-orange .mock-dl-kpi-subtitle{color:#ffffffa6}.mock-dl-card--accent-blue .mock-dl-kpi-change.up,.mock-dl-card--accent-blue .mock-dl-kpi-change.down,.mock-dl-card--accent-blue .mock-dl-kpi-change,.mock-dl-card--accent-green .mock-dl-kpi-change.up,.mock-dl-card--accent-green .mock-dl-kpi-change.down,.mock-dl-card--accent-green .mock-dl-kpi-change,.mock-dl-card--accent-purple .mock-dl-kpi-change.up,.mock-dl-card--accent-purple .mock-dl-kpi-change.down,.mock-dl-card--accent-purple .mock-dl-kpi-change,.mock-dl-card--accent-orange .mock-dl-kpi-change.up,.mock-dl-card--accent-orange .mock-dl-kpi-change.down,.mock-dl-card--accent-orange .mock-dl-kpi-change{color:#ffffffe6}.mock-dl-card--accent-blue .mock-dl-kpi-prev,.mock-dl-card--accent-green .mock-dl-kpi-prev,.mock-dl-card--accent-purple .mock-dl-kpi-prev,.mock-dl-card--accent-orange .mock-dl-kpi-prev{color:#ffffffa6}.mock-dl-card--accent-blue .mock-dl-kpi-prev strong,.mock-dl-card--accent-green .mock-dl-kpi-prev strong,.mock-dl-card--accent-purple .mock-dl-kpi-prev strong,.mock-dl-card--accent-orange .mock-dl-kpi-prev strong{color:#ffffffe6}.mock-dl-card--accent-blue .mock-dl-chart-title,.mock-dl-card--accent-green .mock-dl-chart-title,.mock-dl-card--accent-purple .mock-dl-chart-title,.mock-dl-card--accent-orange .mock-dl-chart-title{color:#ffffffd9}.mock-dl-card--accent-blue .mock-dl-card-header,.mock-dl-card--accent-green .mock-dl-card-header,.mock-dl-card--accent-purple .mock-dl-card-header,.mock-dl-card--accent-orange .mock-dl-card-header{border-bottom-color:#ffffff26}.mock-dl-text-block{font-size:var(--text-sm);color:var(--text-secondary);padding:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2)}.mock-dl-text-block-content{flex:1;white-space:pre-wrap;word-break:break-word}.mock-dl-page-meta{padding-top:var(--sp-1);border-top:1px solid var(--border-subtle, var(--border));margin-top:auto}.mock-dl-chart-title{margin-bottom:0}.mock-dl-chart-description{font-size:var(--text-2xs);color:var(--text-tertiary);line-height:var(--leading-normal);margin-top:2px;white-space:pre-wrap}.mock-dl-chart-sub{font-size:var(--text-xxs);color:var(--text-placeholder);margin-bottom:var(--sp-4)}.mock-dl-chart-area{min-height:100px;display:flex;align-items:flex-end;gap:var(--sp-1);padding:0}.mock-dl-bar{border-radius:var(--radius-xs) 3px 0 0;min-height:6px;transition:height .4s var(--ease-default);opacity:.85}.mock-dl-bar:hover{opacity:1}.mock-dl-axis-x{display:flex;justify-content:space-between;padding-top:var(--sp-2);border-top:1px solid var(--border-subtle);margin-top:var(--sp-2)}.mock-dl-axis-x span{font-size:var(--text-2xs);color:var(--text-placeholder)}.mock-dl-sparkline{width:100%;height:40px;margin-top:var(--sp-3)}.mock-dl-sparkline svg{width:100%;height:100%}.mock-dl-hbar-row{margin-bottom:var(--sp-2_5)}.mock-dl-hbar-row:last-child{margin-bottom:0}.mock-dl-hbar-label{font-size:var(--text-xs);color:var(--text-secondary);width:72px;text-align:right}.mock-dl-hbar-track{height:8px;background:var(--surface);border-radius:var(--radius-xs)}.mock-dl-hbar-fill{height:100%;border-radius:var(--radius-xs);transition:width .5s var(--ease-default)}.mock-dl-hbar-val{font-size:var(--text-xxs);color:var(--text-tertiary);width:40px}.mock-dl-legend{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-3)}.mock-dl-legend-item{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-dl-legend-dot{width:6px;height:6px;border-radius:var(--radius-full)}.mock-dl-collections-grid{padding:var(--sp-5);display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-4);align-content:start}.mock-dl-collections-grid.hidden{display:none}.mock-dl-collection-card{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--neu-lg);transition:transform var(--duration-base),box-shadow var(--duration-base)}.mock-dl-collection-card:hover{transform:translateY(-4px);box-shadow:var(--neu-xl)}.mock-dl-collection-card.locked .mock-dl-lock-badge{display:flex}.mock-dl-collection-ink{background:var(--surface-ink);margin:var(--sp-3);border-radius:var(--radius-lg);padding:var(--sp-5);gap:var(--sp-2_5)}.mock-dl-collection-icon{width:40px;height:40px;border-radius:var(--radius-md);font-size:var(--text-lg);box-shadow:var(--neu-sm)}.mock-dl-collection-meta{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-dl-wizard-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:10;display:flex;align-items:center;justify-content:center}.mock-dl-wizard{width:700px;max-width:90%;max-height:80%;background:var(--surface-ink);border-radius:var(--radius-xl);box-shadow:0 8px 32px #00000026}.mock-dl-wizard-body{display:grid;grid-template-columns:200px 1fr}.mock-dl-wizard-sidebar{border-right:1px solid var(--border-subtle);padding:var(--sp-3);overflow-y:auto}.mock-dl-wizard-type{padding:var(--sp-2) var(--sp-2_5);border-radius:var(--radius-s);font-size:var(--text-xs);color:var(--text-secondary)}.mock-dl-wizard-type:hover{background:var(--border-subtle)}.mock-dl-wizard-type.active{background:var(--purple-soft);color:var(--purple);font-weight:500}.mock-dl-wizard-preview{padding:var(--sp-5);flex-direction:column;gap:var(--sp-4);overflow-y:auto}.mock-dl-wizard-chart-area{width:100%;height:200px;display:flex;align-items:flex-end;gap:var(--sp-1_5);padding:var(--sp-2_5)}.mock-dl-wizard-bar{border-radius:var(--radius-xs) 3px 0 0;transition:height .3s var(--ease-default)}.mock-dl-editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:1000;display:flex;align-items:center;justify-content:center;overflow:hidden}.mock-dl-editor{width:560px;max-width:90%;max-height:80%;background:var(--surface-ink);border-radius:var(--radius-xl);box-shadow:0 8px 32px #00000026}.mock-dl-editor-body{padding:var(--sp-5)}.mock-dl .form-input:focus{border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-soft)}.mock-dl-editor-status{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);font-size:var(--text-xs)}.mock-dl-editor-status.connected{background:var(--green-soft);color:var(--green)}.mock-dl-editor-status.disconnected{background:var(--error-soft);color:var(--error)}.mock-dl-editor-status-dot{width:6px;height:6px;border-radius:var(--radius-full);background:currentColor}.mock-dl-snapshot-banner{padding:var(--sp-2) var(--sp-5);background:color-mix(in srgb,var(--purple) 8%,var(--surface));border-bottom:1px solid color-mix(in srgb,var(--purple) 20%,var(--border-subtle));font-size:var(--text-xs);color:var(--text-secondary)}.dp-snap-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-1);color:var(--text-primary);font-size:var(--text-xs);font-weight:600;padding:2px var(--sp-2);cursor:pointer;max-width:220px}.dp-snap-select:focus{outline:2px solid var(--purple);outline-offset:1px}.dp-snap-meta{opacity:.75}.dp-snap-period-chip,.dp-snap-archive-chip{font-size:var(--text-3xs);padding:1px var(--sp-1_5);border-radius:var(--radius-s);white-space:nowrap}.dp-snap-period-chip{background:var(--purple-soft);color:var(--purple)}.dp-snap-archive-chip{background:var(--surface-inset);color:var(--text-tertiary);border:1px solid var(--border-subtle);text-transform:uppercase;letter-spacing:.04em}.mock-dl-snapshot-exit{font-size:var(--text-xs);color:var(--purple);background:none;border:none;cursor:pointer;padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-sm)}.mock-dl-snapshot-exit:hover{background:var(--purple-soft)}.mock-dl-revision-item--pinned{border-color:color-mix(in srgb,var(--orange) 35%,var(--border-default));background:color-mix(in srgb,var(--orange) 5%,transparent)}.mock-dl-revision-pin-badge{font-size:var(--text-xs);color:var(--orange);flex-shrink:0}.mock-dl-revision-pin-btn{color:var(--text-tertiary)}.mock-dl-revision-pin-btn:hover,.mock-dl-revision-pin-btn.active{color:var(--orange)}.mock-dl-revision-title--editable{display:flex;align-items:center;gap:var(--sp-1);cursor:text}.mock-dl-revision-edit-icon{opacity:0;flex-shrink:0}.mock-dl-revision-rename-input{font-size:var(--text-sm);font-weight:600;width:100%;border:1px solid var(--purple);border-radius:var(--radius-sm);padding:2px var(--sp-1_5);background:var(--surface-1);color:var(--text-primary)}.mock-dl-revisions-list{padding:var(--sp-3) var(--sp-4)}.mock-dl-revisions-list .tag{font-size:var(--text-2xs);font-weight:600}.mock-dl-revision-item{display:flex;align-items:flex-start;gap:var(--sp-2_5);padding:var(--sp-3) var(--sp-3_5);border-radius:var(--radius-md);border:1px solid var(--border-subtle);transition:background .15s}.mock-dl-revision-item:hover{background:var(--surface-hover)}.mock-dl-revision-item.active{border-color:var(--purple);background:var(--purple-soft)}.mock-dl-revision-meta{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.mock-dl-revision-changes{font-size:var(--text-xs);color:var(--text-secondary);margin-top:var(--sp-1);line-height:1.4}.dp-widget-alert-bell{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-s);color:var(--text-tertiary);flex-shrink:0}.dp-widget-alert-bell.active{color:var(--orange);animation:dp-bell-pulse 2s ease-in-out infinite}@keyframes dp-bell-pulse{0%,to{opacity:1}50%{opacity:.5}}.mock-dl-dataset-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:10;display:flex;align-items:center;justify-content:center}.mock-dl-dataset{width:780px;max-width:95%;max-height:85%;background:var(--surface-ink);border-radius:var(--radius-xl);box-shadow:0 8px 32px #00000026}.mock-dl-dataset-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-dl-dataset-header h3{font-size:var(--text-base);font-weight:600;color:var(--text-primary)}.mock-dl-dataset-body{display:flex}.mock-dl-dataset-fields{border-right:1px solid var(--border-subtle);padding:var(--sp-3);gap:var(--sp-0_5)}.mock-dl-dataset-field-header{font-size:var(--text-2xs);font-weight:600;color:var(--text-placeholder);padding:var(--sp-1) 8px 8px}.mock-dl-dataset-field-item{padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);font-size:var(--text-xs);color:var(--text-secondary)}.mock-dl-dataset-field-item:hover{background:var(--border-subtle)}.mock-dl-dataset-field-item.active{background:var(--purple-soft);color:var(--purple);font-weight:500}.mock-dl-dataset-field-type{font-size:var(--text-3xs);color:var(--text-placeholder);margin-left:auto}.mock-dl-dataset-preview{padding:var(--sp-4);overflow:auto}.mock-dl-dataset-preview .data-table{font-size:var(--text-xxs)}.mock-dl-dataset-preview .data-table th{padding:var(--sp-1_5) var(--sp-2);font-size:var(--text-2xs);letter-spacing:.3px}.mock-dl-dataset-preview .data-table td{padding:var(--sp-1) var(--sp-2);font-size:var(--text-xxs)}.mock-dl-dataset-preview-title{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary)}.mock-dl-dataset-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle)}.mock-dl-nav-bar{padding:var(--sp-2) var(--sp-5);border-bottom:1px solid var(--border-subtle);background:var(--surface)}.mock-dl-nav .tab-pill{--tab-accent: var(--purple);font-size:var(--text-xs);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-s)}.mock-dl-edit-toolbar{display:none;padding:var(--sp-2) var(--sp-5);align-items:center;gap:var(--sp-2);background:var(--purple-soft);border-bottom:1px solid var(--purple);font-size:var(--text-xs);color:var(--purple)}.mock-dl-edit-toolbar.visible{display:flex}.mock-dl-edit-indicator{font-weight:600}.mock-dl-edit-autosave{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap}.mock-dl-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:flex-start;justify-content:flex-end;padding:var(--sp-2);gap:var(--sp-1);z-index:2}.mock-dl-empty-slot{border:2px dashed var(--border-default);border-radius:var(--radius-xl);display:none;align-items:center;justify-content:center;min-height:120px;color:var(--text-placeholder);font-size:var(--text-sm);transition:border-color .15s}.mock-dl-empty-slot:hover{border-color:var(--purple);color:var(--purple)}.mock-dl-empty-slot.visible{display:flex}.mock-dl-rls-modal .mock-dl-editor-body{max-height:520px}.mock-dl-rls-section{margin-top:var(--sp-3)}.mock-dl-rls-section-title{font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary);margin-bottom:var(--sp-2_5)}.mock-dl-rls-rule{gap:var(--sp-2_5);padding:var(--sp-2_5) var(--sp-3);border-radius:var(--radius-md);background:var(--surface-ink);border:1px solid var(--border-subtle)}.mock-dl-rls-rule-body{font-size:var(--text-xs);color:var(--text-secondary);flex-wrap:wrap}.mock-dl-rls-op{font-size:var(--text-xxs);font-weight:600;color:var(--purple);background:var(--purple-soft);padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-xs)}.mock-dl-rls-value{font-size:var(--text-xs);color:var(--text-primary)}.mock-dl-rls-for{font-size:var(--text-2xs);font-weight:700;color:var(--text-tertiary)}.mock-dl-rls-target{font-size:var(--text-xs);font-weight:500;color:var(--blue);background:var(--blue-soft);padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-xs)}.mock-dl-rls-rule-actions{display:flex;gap:var(--sp-1)}.mock-dl-rls-add-form{margin-top:var(--sp-3);padding:var(--sp-3);border-radius:var(--radius-md);background:var(--surface);border:1px dashed var(--border-default)}.mock-dl-rls-add-row{flex-wrap:wrap}.mock-dl-rls-input-sm{width:110px;font-size:var(--text-xs);padding:var(--sp-1_5) var(--sp-2)}.mock-dl-rls-input-xs{width:80px;font-size:var(--text-xs);padding:var(--sp-1_5) var(--sp-2)}.mock-dl-rls-input-md{width:140px;font-size:var(--text-xs);padding:var(--sp-1_5) var(--sp-2)}.mock-dl-rls-field-table{font-size:var(--text-xs)}.mock-dl-rls-field-table input[type=checkbox]{width:16px;height:16px;accent-color:var(--purple)}.mock-dl-conn-catalog .mock-dl-editor{max-height:85vh}.mock-dl-conn-catalog-body{max-height:60vh;padding:var(--sp-4) var(--sp-5)}.mock-dl-conn-catalog-group{margin-bottom:var(--sp-5)}.mock-dl-conn-catalog-group-title{font-size:var(--text-xxs);font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:var(--sp-2_5);padding-bottom:var(--sp-1_5);border-bottom:1px solid var(--border-subtle)}.mock-dl-conn-catalog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2_5)}.mock-dl-conn-catalog-card{background:var(--surface-ink);border-radius:var(--radius-md);padding:var(--sp-3_5) var(--sp-3);border:1px solid var(--border-subtle);transition:border-color .15s,box-shadow .15s,transform .15s;flex-direction:column;text-align:center}.mock-dl-conn-catalog-card:hover{border-color:var(--purple);box-shadow:var(--neu-sm);transform:translateY(-2px)}.mock-dl-conn-catalog-icon{width:44px;height:44px;border-radius:var(--radius-md);font-size:var(--text-md);font-weight:700}.mock-dl-conn-catalog-desc{font-size:var(--text-2xs);color:var(--text-tertiary);line-height:1.3}.mock-dl-bookmarks{padding:var(--sp-1_5) 20px 2px;border-bottom:1px solid var(--border-subtle)}.mock-dl-bookmarks-row{font-size:var(--text-xs);color:var(--text-tertiary)}.mock-dl-bookmarks-label{font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary)}.mock-dl-bookmarks-chips{display:flex;gap:var(--sp-1_5);flex-wrap:wrap}.mock-dl-bookmark-chip{font-size:var(--text-xxs);padding:var(--sp-1) var(--sp-2_5);border-radius:var(--radius-md);background:var(--surface-ink);color:var(--text-secondary);border:1px solid var(--border-subtle);transition:background .15s,border-color .15s,color .15s}.mock-dl-bookmark-chip:hover{border-color:var(--purple);color:var(--purple)}.mock-dl-bookmark-chip.active{background:var(--purple-soft);border-color:var(--purple);color:var(--purple);font-weight:500}.mock-dl-bookmarks-actions{display:flex;gap:var(--sp-1_5);margin-left:auto}.mock-dl-bookmarks-manage{right:0;top:100%;min-width:200px}.mock-dl-dropdown-header{font-size:var(--text-xxs);font-weight:700;color:var(--text-tertiary);padding:var(--sp-2) 12px 4px;border-bottom:1px solid var(--border-subtle)}.mock-dl-bookmark-del{background:none;border:none;font-size:var(--text-mid);color:var(--text-placeholder);margin-left:auto;padding:0 var(--sp-1);line-height:1}.mock-dl-bookmark-del:hover{color:var(--error)}.mock-dl-preset-save-row{padding-top:var(--sp-1_5)}.mock-dl-preset-name-input{font-size:var(--text-xs);height:28px;padding:0 var(--sp-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-inset);color:var(--text-primary);min-width:0}.mock-dl-preset-name-input:focus{outline:none;border-color:var(--purple)}.mock-dl-preset-name-input::placeholder{color:var(--text-placeholder)}.dl-wizard-panel{gap:0}.dl-wizard-panel-header{padding:var(--sp-2) 0;margin-bottom:var(--sp-2)}.dl-chart-layer{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);margin-bottom:var(--sp-2)}.dl-chart-layer.active{border-color:var(--purple)}.dl-chart-layer-header{padding:var(--sp-2) var(--sp-3);background:var(--surface)}.dl-chart-layer-header:hover{background:var(--surface-ink)}.dl-chart-layer-drag{color:var(--text-placeholder);cursor:grab;font-size:var(--text-xs);letter-spacing:-1px}.dl-chart-layer-delete{color:var(--text-placeholder);font-size:var(--text-sm);background:none;border:none;font-family:var(--font-sans);padding:0;line-height:1}.dl-chart-layer-delete:hover{color:var(--error)}.dl-chart-layer-config{padding:var(--sp-3);border-top:1px solid var(--border-subtle)}.dl-chart-layer-row{gap:var(--sp-2)}.dl-chart-layer-row label{font-size:var(--text-xs);color:var(--text-tertiary);min-width:70px}.dl-chart-layer-row .form-select{font-size:var(--text-xs);padding:var(--sp-1) var(--sp-2)}.dl-chart-layer-types{display:flex;gap:var(--sp-1)}.dl-file-dropzone{border:2px dashed var(--border-default);border-radius:var(--radius-md);padding:var(--sp-8) var(--sp-4);flex-direction:column;text-align:center;transition:border-color .15s,background .15s}.dl-file-dropzone:hover{border-color:var(--purple);background:var(--purple-soft)}.dl-file-info{padding:var(--sp-3);background:var(--surface-ink);border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.dl-file-icon{width:40px;height:40px;border-radius:var(--radius-sm);background:var(--green-soft);color:var(--green);font-size:var(--text-xs);font-weight:700}.dl-file-meta{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.dl-file-preview{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--sp-3);background:var(--surface-ink)}.dl-file-preview .data-table{font-size:var(--text-xs);width:100%}.dl-file-preview .data-table th,.dl-file-preview .data-table td{padding:var(--sp-1) var(--sp-2)}.dl-file-settings{padding:var(--sp-3);background:var(--surface-ink);border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.dl-file-setting-row{gap:var(--sp-2)}.dl-file-setting-row label{font-size:var(--text-xs);color:var(--text-tertiary);min-width:120px}.dl-file-setting-row .form-select{font-size:var(--text-xs);padding:var(--sp-1) var(--sp-2)}.mock-dl-sidebar{width:var(--dp-sidebar-w, 220px);min-width:var(--dp-sidebar-w, 220px);max-width:480px;background:var(--surface);border-right:1px solid var(--border-subtle);padding:var(--sp-3) 0;position:sticky;top:0;align-self:flex-start;max-height:100vh;overflow-x:hidden}.mock-dl-sidebar-resizer{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;z-index:10;-webkit-user-select:none;user-select:none;background:transparent;transition:background var(--duration-fast) var(--ease-default)}.mock-dl-sidebar-resizer:hover,.mock-dl-sidebar-resizer.dragging{background:var(--purple-soft)}.mock-dl-sidebar-wrap{position:relative;flex-shrink:0}.mock-dl-sidebar-header{padding:var(--sp-2) var(--sp-4)}.mock-dl-sidebar-item{padding:var(--sp-1_5) var(--sp-4);font-size:var(--text-sm);color:var(--text-secondary);min-width:0;word-break:break-word}.mock-dl-sidebar-item:hover{background:var(--border-subtle)}.mock-dl-sidebar-item.active{background:var(--purple-soft);color:var(--purple);font-weight:500}.mock-dl-sidebar-item svg{width:14px;height:14px}.mock-dl-sidebar-item.pl-indent{padding-left:var(--sp-12);font-size:var(--text-xs)}.mock-dl-sidebar-del{display:none;flex-shrink:0}.mock-dl-sidebar-item:hover .mock-dl-sidebar-del{display:flex}.mock-dl-drag-handle{display:none;cursor:grab;flex-shrink:0;font-size:var(--text-xs);line-height:1;padding:0 2px}.mock-dl-drag-handle:active{cursor:grabbing}.mock-dl-sidebar-item:hover .mock-dl-drag-handle{display:flex}.mock-dl-sidebar-folder{padding:var(--sp-1) 16px 5px 32px;font-size:var(--text-xs);color:var(--text-tertiary)}.mock-dl-sidebar-folder svg{width:14px;height:14px}.mock-dl-sidebar-folder:hover{color:var(--text-secondary)}.mock-dl-sidebar-folder.active{color:var(--purple);font-weight:500}.mock-dl-selectors{padding:var(--sp-2) var(--sp-5);gap:var(--sp-2_5);border-bottom:1px solid var(--border-subtle);background:var(--surface)}.mock-dl-selector{padding:var(--sp-1) var(--sp-2_5);border-radius:var(--radius-s);border:1px solid var(--border-default);background:var(--surface-ink);font-size:var(--text-xs);color:var(--text-secondary)}.mock-dl-selector:hover{border-color:var(--purple)}.mock-dl-selector svg{width:12px;height:12px;color:var(--text-placeholder)}.mock-dl-selector-label{font-size:var(--text-xxs);color:var(--text-placeholder);margin-right:var(--sp-0_5)}.mock-dl-custom-range{min-width:160px}.mock-dl-custom-range label{display:block}.mock-dl-period-dd{min-width:264px;padding:var(--sp-2)}.mock-dl-period-presets{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.mock-dl-period-preset{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-s);border:1px solid var(--border-default);background:var(--surface-ink);font-size:var(--text-xxs);color:var(--text-secondary);cursor:pointer}.mock-dl-period-preset:hover{border-color:var(--purple);color:var(--text-primary)}.mock-dl-period-preset.active{background:var(--purple);border-color:var(--purple);color:var(--text-on-accent)}.mock-dl-cal{padding:var(--sp-1) 0}.mock-dl-cal-head{margin-bottom:var(--sp-2)}.mock-dl-cal-title{font-size:var(--text-xs);font-weight:600;color:var(--text-primary)}.mock-dl-cal-nav{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-s);border:1px solid var(--border-default);background:var(--surface-ink);color:var(--text-secondary);cursor:pointer}.mock-dl-cal-nav:hover{border-color:var(--purple);color:var(--text-primary)}.mock-dl-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.mock-dl-cal-wd{text-align:center;font-size:var(--text-3xs);color:var(--text-tertiary);padding:2px 0}.mock-dl-cal-cell{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-s);font-size:var(--text-xxs);color:var(--text-secondary);cursor:pointer}.mock-dl-cal-cell.empty{cursor:default}.mock-dl-cal-cell:not(.empty):hover{background:var(--surface-hover)}.mock-dl-cal-cell.today{font-weight:700;color:var(--text-primary)}.mock-dl-cal-cell.in-range{background:var(--purple-soft);border-radius:0}.mock-dl-cal-cell.range-start{background:var(--purple);color:var(--text-on-accent);border-top-left-radius:var(--radius-s);border-bottom-left-radius:var(--radius-s)}.mock-dl-cal-cell.range-end{background:var(--purple);color:var(--text-on-accent);border-top-right-radius:var(--radius-s);border-bottom-right-radius:var(--radius-s)}.mock-dl-cal-cell.range-start.range-end{border-radius:var(--radius-s)}.mock-dl-cal-date{line-height:1}.mock-dl-cal-marker{position:absolute;bottom:3px;left:50%;transform:translate(-50%);width:5px;height:5px;border-radius:50%;background:var(--accent);cursor:pointer}.mock-dl-cal-marker:hover{transform:translate(-50%) scale(1.6)}.mock-dl-cal-marker--legend{position:static;transform:none;display:inline-block;width:6px;height:6px}.mock-dl-cal-hint{padding:var(--sp-1) 0 0}.mock-dl-period-legend{padding:var(--sp-1_5) var(--sp-0_5) 0}.mock-dl-sidebar-create{margin:var(--sp-1) 12px 8px;padding:var(--sp-1_5) var(--sp-2_5);border-radius:var(--radius-s);font-size:var(--text-xs);font-weight:500;color:var(--purple);background:var(--purple-soft);border:1px solid transparent;transition:border-color .15s}.mock-dl-sidebar-create:hover{border-color:var(--purple)}.mock-dl-create-menu{display:none;position:absolute;top:100%;left:0;right:0;margin-top:var(--sp-1);background:var(--surface-ink);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:0 4px 16px #0000001f;z-index:20}.mock-dl-create-menu.visible{display:block}.mock-dl-create-menu-item{padding:var(--sp-2) 12px;font-size:var(--text-xs);color:var(--text-secondary)}.mock-dl-create-menu-item:hover{background:var(--purple-soft);color:var(--purple)}.mock-dl-card-header{margin-bottom:var(--sp-2);min-height:20px}.mock-dl-card-header .mock-dl-kpi-label{margin:0}.mock-dl-card-header .mock-dl-chart-title{margin-bottom:0}.mock-dl-card-btns{display:flex;gap:var(--sp-1);opacity:0;transition:opacity .15s}.mock-dl-card-btn{width:24px;height:24px;border-radius:var(--radius-xs);background:none;border:none;color:var(--text-placeholder);padding:0}.mock-dl-card-btn:hover{color:var(--text-primary);background:var(--border-subtle)}.mock-dl-card-btn svg{width:14px;height:14px}.mock-dl-collections-toolbar{padding:var(--sp-2_5) var(--sp-5);border-bottom:1px solid var(--border-subtle);background:var(--surface)}.mock-dl-collections-search{width:200px;flex-shrink:0}.mock-dl-sidebar-search{padding:0 var(--sp-4) var(--sp-1)}.mock-dl-collections-toggle{display:flex;border:1px solid var(--border-default);border-radius:var(--radius-s)}.mock-dl-collections-toggle-btn{width:30px;height:28px;border:none;background:none;color:var(--text-tertiary);padding:0}.mock-dl-collections-toggle-btn:hover{background:var(--border-subtle)}.mock-dl-collections-toggle-btn.active{background:var(--purple-soft);color:var(--purple)}.mock-dl-dropdown{position:absolute;top:100%;left:0;min-width:140px;margin-top:var(--sp-1);background:var(--surface-ink);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:0 4px 16px #0000001f;z-index:20}.mock-dl-dropdown-item{padding:var(--sp-2) 12px;font-size:var(--text-xs);color:var(--text-secondary)}.mock-dl-dropdown-item:hover{background:var(--purple-soft);color:var(--purple)}.mock-dl-dropdown-item.active{color:var(--purple);font-weight:500}.mock-dl-dropdown-item--danger{color:var(--error)}.mock-dl-dropdown-item--danger:hover{background:color-mix(in srgb,var(--error) 10%,transparent);color:var(--error)}.mock-dl-dropdown-item--disabled{opacity:.5;pointer-events:none}.mock-dl-collections-list{padding:var(--sp-2) var(--sp-5)}.mock-dl-collections-list.hidden{display:none}.mock-dl-collections-list-row{padding:var(--sp-2_5) var(--sp-3);border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm);color:var(--text-primary);transition:background .1s}.mock-dl-collections-list-row:hover{background:var(--purple-soft)}.mock-dl-collections-list-icon{width:28px;height:28px;border-radius:var(--radius-s);font-size:var(--text-mid);box-shadow:var(--neu-sm)}.mock-dl-collections-list-name{font-weight:500}.mock-dl-collections-list-type{font-size:var(--text-xxs);color:var(--text-placeholder);padding:var(--sp-0_5) var(--sp-2);background:var(--border-subtle);border-radius:var(--radius-xs)}.mock-dl-collections-list-meta{font-size:var(--text-xxs);color:var(--text-tertiary);min-width:120px;text-align:right}.mock-dl-wizard-tabs{display:flex;border-bottom:1px solid var(--border-subtle);padding:0 var(--sp-3);flex-shrink:0}.mock-dl-wizard-tab{padding:var(--sp-2) var(--sp-3);font-size:var(--text-xs);font-weight:500;color:var(--text-tertiary);background:none;border:none;border-bottom:2px solid transparent;font-family:var(--font-sans)}.mock-dl-wizard-tab:hover{color:var(--text-primary)}.mock-dl-wizard-tab.active{color:var(--purple);border-bottom-color:var(--purple)}.mock-dl-wizard-tab-content{display:none;flex-direction:column;gap:var(--sp-0_5)}.mock-dl-wizard-tab-content.active{display:flex}.mock-dl-wizard-dataset-header{font-size:var(--text-2xs);font-weight:600;color:var(--text-placeholder);padding:var(--sp-1) 8px 6px}.mock-dl-wizard-field-item{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-xs);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer}.mock-dl-wizard-field-item:hover{background:var(--border-subtle)}.mock-dl-wizard-field-item.selected{background:var(--purple-soft);color:var(--purple)}.mock-dl-wizard-field-axis-badge{font-size:var(--text-3xs);font-weight:700;color:var(--purple);font-family:var(--font-mono);background:var(--purple-soft);border-radius:var(--radius-xs);padding:0 var(--sp-1)}.mock-dl-wizard-field-drag{color:var(--text-placeholder);font-size:var(--text-2xs);letter-spacing:-1px}.mock-dl-wizard-field-badge{font-size:var(--text-3xs);color:var(--text-placeholder);margin-left:auto;padding:var(--sp-0_5) var(--sp-1);background:var(--border-subtle);border-radius:var(--radius-xs)}.mock-dl-wizard-axis-config{width:100%;padding:var(--sp-3) 0 0;border-top:1px solid var(--border-subtle)}.mock-dl-wizard-axis-label{min-width:48px;text-transform:uppercase;letter-spacing:.3px}.mock-dl-wizard-axis-select{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-s);border:1px solid var(--border-default);background:var(--surface);font-size:var(--text-xs);color:var(--text-primary);font-family:var(--font-sans)}.mock-dl-wizard-axis-select:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 2px var(--purple-soft)}.mock-dl-wizard-config{width:100%;border-top:1px solid var(--border-subtle);padding-top:var(--sp-2);margin-top:var(--sp-1)}.mock-dl-wizard-config-tabs{display:flex;gap:0;border-bottom:1px solid var(--border-subtle);margin-bottom:var(--sp-2)}.mock-dl-wizard-config-tabs .tab{--tab-accent: var(--purple);font-size:var(--text-xxs);padding:var(--sp-1_5) var(--sp-3)}.mock-dl-wizard-config-content{display:none;padding:var(--sp-1) 0}.mock-dl-wizard-config-content.active{display:block}.mock-dl-palette-dot{width:18px;height:18px;border-radius:var(--radius-full);border:2px solid transparent;transition:border-color .15s}.mock-dl-palette-dot:first-child{border-color:var(--text-primary)}.mock-dl-palette-dot:hover{border-color:var(--text-secondary)}.mock-dl-palette-dot.dot-purple{background:var(--purple)}.mock-dl-palette-dot.dot-blue{background:var(--blue)}.mock-dl-palette-dot.dot-pink{background:var(--pink)}.mock-dl-palette-dot.dot-orange{background:var(--orange)}.mock-dl-palette-dot.dot-green{background:var(--green)}.mock-dl-palette-dot.dot-muted{background:var(--text-tertiary)}.mock-dl-wizard-filter-row{padding:var(--sp-0_5) 0}.mock-dl-wizard-filter-remove{width:20px;height:20px;border-radius:var(--radius-xs);border:none;background:none;font-size:var(--text-mid);color:var(--text-placeholder)}.mock-dl-wizard-filter-remove:hover{color:var(--error);background:var(--error-soft)}.mock-dl-dataset-source{display:flex;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);background:var(--surface);align-items:flex-end}.mock-dl-dataset-source .btn-accent{align-self:flex-end}.mock-dl-legend-center{justify-content:center}.mock-dl-sort-wrapper.inline{display:inline-block}.mock-dl-wizard-axis-row.mt-sm{margin-top:var(--sp-2)}.mock-dl-wizard-filter-conj{font-size:var(--text-xxs);color:var(--text-placeholder);min-width:36px}.mock-dl-wizard-filter-input{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-s);border:1px solid var(--border-default);background:var(--surface);font-size:var(--text-xs);color:var(--text-primary);font-family:var(--font-sans)}.mock-dl-wizard-add-link{font-size:var(--text-xxs);color:var(--blue);padding:var(--sp-1) 0}.mock-dl-wizard-add-link:hover{text-decoration:underline}.mock-dl-wizard-preview-hint{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-dl-editor-textarea{min-height:60px;resize:vertical;font-size:var(--text-xs)}.mock-dl-dataset-field-settings{width:240px;min-width:240px;display:none;border-left:1px solid var(--border-subtle);padding:var(--sp-3);flex-direction:column;gap:var(--sp-3);background:var(--surface)}.mock-dl-dataset-field-settings.visible{display:flex}.mock-dl-dataset-field-settings-header{padding-bottom:var(--sp-2);border-bottom:1px solid var(--border-subtle)}.mock-dl-tabs{gap:0;border-bottom:1px solid var(--border-subtle);padding:0 var(--sp-4)}.mock-dl-tab-rename-input{background:transparent;border:none;border-bottom:1px solid var(--purple);outline:none;font-size:var(--text-xs);font-family:var(--font-sans);color:var(--text-primary);width:80px;text-align:center;padding:var(--sp-0_5) 0}.mock-dl-tab-delete{position:absolute;right:var(--sp-1);top:50%;transform:translateY(-50%);width:14px;height:14px;border:none;background:none;cursor:pointer;color:var(--text-placeholder);font-size:var(--text-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);padding:0;line-height:1;flex-shrink:0}.mock-dl-tab-delete:hover{color:var(--error);background:var(--error-soft)}.mock-dl-tab-add{color:var(--text-placeholder);font-size:var(--text-xxs)}.mock-dl-tab-add:hover{color:var(--purple)}.mock-dl-param-binding{flex-wrap:wrap}.mock-dl-param-pill{padding:var(--sp-1) var(--sp-2_5);border-radius:var(--radius-md);font-size:var(--text-xxs);font-weight:500;background:var(--purple-soft);color:var(--purple);border:1px solid var(--purple);cursor:default}.mock-dl-param-badge{font-size:var(--text-3xs);font-weight:600;background:var(--purple);color:var(--text-on-accent);padding:var(--sp-0_5) var(--sp-1);border-radius:var(--radius-sm);margin-left:var(--sp-0_5)}.mock-dl-ql-editor-pane{border-bottom:1px solid var(--border-subtle)}.mock-dl-ql-toolbar{padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.mock-dl-ql-textarea{width:100%;min-height:160px;max-height:240px;resize:vertical;padding:var(--sp-3) var(--sp-4);border:none;outline:none;font-family:JetBrains Mono,monospace;font-size:var(--text-xs);line-height:1.6;color:var(--text-primary);background:var(--surface);-moz-tab-size:2;tab-size:2}.mock-dl-ql-results-tabs{gap:0;padding:0 var(--sp-4);border-bottom:1px solid var(--border-subtle)}.mock-dl-ql-status{margin-left:auto;font-size:var(--text-xxs);color:var(--success);font-weight:500}.mock-dl-ql-result-table-wrap{overflow:auto;padding:0}.mock-dl-ql-chart-area{padding:var(--sp-3) var(--sp-4)}.mock-dl-pivot-config{display:flex;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);flex-wrap:wrap;border-bottom:1px solid var(--border-subtle)}.mock-dl-pivot-zone{min-width:140px}.mock-dl-pivot-zone-label{font-size:var(--text-2xs);font-weight:600;color:var(--text-placeholder)}.mock-dl-pivot-zone-items{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.mock-dl-pivot-chip{padding:var(--sp-1) var(--sp-2_5);border-radius:var(--radius-xs);font-size:var(--text-xxs);font-weight:500;background:var(--purple-soft);color:var(--purple);border:1px solid var(--purple);cursor:grab}.mock-dl-pivot-chip-placeholder{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-2_5);border-radius:var(--radius-xs);font-size:var(--text-xxs);color:var(--text-placeholder);border:1px dashed var(--border-default)}.mock-dl-pivot-chip-placeholder:hover{border-color:var(--purple);color:var(--purple)}.mock-dl-pivot-chip-field{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-2_5);border-radius:var(--radius-xs);font-size:var(--text-xxs);color:var(--text-secondary);background:var(--surface);border:1px solid var(--border-default);cursor:grab}.mock-dl-pivot-chip-field:hover{border-color:var(--purple);color:var(--purple)}.mock-dl-pivot-fields{margin-left:auto}.mock-dl-pivot-table-wrap{overflow:auto;padding:0}.mock-dl-pivot-zone--over{border:1px dashed var(--purple);border-radius:var(--radius-xs);background:var(--purple-soft)}.mock-dl-pivot-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;border-radius:50%;font-size:var(--text-2xs);color:var(--text-tertiary);background:transparent;border:none;cursor:pointer;padding:0;margin-left:var(--sp-0_5)}.mock-dl-pivot-chip-remove:hover{color:var(--error)}.mock-dl-geomap-toolbar{padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.mock-dl-geomap-canvas{background:var(--surface);border:1px solid var(--border-subtle);margin:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm);min-height:200px}.mock-dl-geomap-bg{position:absolute;top:0;right:0;bottom:0;left:0;color:var(--text-placeholder)}.mock-dl-geomap-pin{position:absolute;flex-direction:column;transform:translate(-50%,-50%);z-index:2}.mock-dl-geomap-pin-dot{border-radius:var(--radius-full);border:2px solid #fff;box-shadow:0 1px 4px #0003}.mock-dl-geomap-pin-label{font-size:var(--text-2xs);color:var(--text-secondary);text-align:center;background:var(--surface-ink);padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-xs);margin-top:var(--sp-0_5);box-shadow:0 1px 3px #0000001a}.mock-dl-geomap-pin-label strong{color:var(--text-primary)}.mock-dl-geomap-zoom{position:absolute;right:var(--sp-3);top:var(--sp-3);gap:var(--sp-0_5);z-index:3}.mock-dl-geomap-zoom-btn{width:28px;height:28px;border:1px solid var(--border-default);background:var(--surface-ink);color:var(--text-primary);font-size:var(--text-md);font-weight:600;border-radius:var(--radius-xs)}.mock-dl-geomap-zoom-btn:hover{border-color:var(--purple);color:var(--purple)}.mock-dl-geomap-legend{padding:var(--sp-2) 16px 12px}.mock-dl-geomap-legend-title{font-size:var(--text-xxs);font-weight:600;color:var(--text-secondary);margin-bottom:var(--sp-1_5)}.mock-dl-geomap-legend-scale{gap:var(--sp-0_5)}.mock-dl-geomap-legend-bar{height:8px;border-radius:var(--radius-xs);background:linear-gradient(to right,var(--border-subtle),var(--purple));max-width:200px}.mock-dl-geomap-legend-labels{display:flex;justify-content:space-between;max-width:200px;font-size:var(--text-3xs);color:var(--text-placeholder)}.mock-dl-access-header{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.mock-dl-access-roles{display:flex;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);flex-wrap:wrap}.mock-dl-access-role-card{min-width:180px;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-s);font-size:var(--text-xxs);color:var(--text-secondary);line-height:1.5;background:var(--surface);border:1px solid var(--border-subtle)}.mock-dl-access-role-card strong{color:var(--text-primary)}.mock-dl-access-invite{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.mock-dl-joins-canvas{display:flex;align-items:flex-start;justify-content:center;gap:0;padding:var(--sp-4) 0;flex-wrap:wrap}.mock-dl-joins-table-box{border:1px solid var(--border-default);border-radius:var(--radius-s);background:var(--surface);min-width:180px}.mock-dl-joins-table-title{padding:var(--sp-1_5) var(--sp-3);background:var(--purple-soft);border-bottom:1px solid var(--border-subtle)}.mock-dl-joins-table-field{padding:var(--sp-1) var(--sp-3);font-size:var(--text-xxs);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.mock-dl-joins-table-field:last-child{border-bottom:none}.mock-dl-joins-table-field.active{background:var(--purple-soft);color:var(--purple);font-weight:500}.mock-dl-joins-connector{padding:0 var(--sp-2);align-self:center}.mock-dl-joins-config{display:flex;gap:var(--sp-2);flex-wrap:wrap}.mock-dl-share-section{margin-bottom:var(--sp-4)}.mock-dl-share-section:last-child{margin-bottom:0}.mock-dl-share-toggle-row{gap:var(--sp-2_5);margin-bottom:var(--sp-2)}.mock-dl-drilldown-overlay{display:flex;align-items:center;justify-content:center;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:200}.mock-dl-drilldown{width:780px;max-width:92vw;max-height:85vh;background:var(--surface);border-radius:var(--radius-md);box-shadow:0 12px 40px #00000040}.mock-dl-drilldown-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border)}.mock-dl-drilldown-breadcrumb{font-size:var(--text-mid)}.mock-dl-drilldown-body{padding:var(--sp-5)}.mock-dl-drilldown-chart{margin-bottom:var(--sp-5)}.mock-dl-drilldown-chart-title{margin-bottom:var(--sp-3)}.mock-dl-drilldown-table{border-top:1px solid var(--border);padding-top:var(--sp-4)}.mock-dl-drilldown-table-title{margin-bottom:var(--sp-2_5)}.mock-dl-drilldown-data{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.mock-dl-drilldown-data th{text-align:left;padding:var(--sp-2) var(--sp-3);border-bottom:2px solid var(--border);color:var(--text-tertiary);font-weight:500;font-size:var(--text-xxs);text-transform:uppercase}.mock-dl-drilldown-data td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-light);color:var(--text-secondary)}.mock-dl-drilldown-data tr:hover td{background:var(--surface-hover)}.mock-dl-formula-overlay{display:flex;align-items:center;justify-content:center;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:200}.mock-dl-formula-editor{width:820px;max-width:92vw;max-height:80vh;background:var(--surface);border-radius:var(--radius-md);box-shadow:0 12px 40px #00000040}.mock-dl-formula-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border)}.mock-dl-formula-header h3{font-size:var(--text-base);font-weight:600;margin:0}.mock-dl-formula-body{display:flex;min-height:0}.mock-dl-formula-functions{width:180px;border-right:1px solid var(--border);padding:var(--sp-3);background:var(--surface-raised)}.mock-dl-formula-fn-title{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--sp-2)}.mock-dl-formula-fn-group{font-size:var(--text-xxs);font-weight:600;color:var(--text-secondary);margin-top:var(--sp-3);margin-bottom:var(--sp-1);padding:var(--sp-1) 0;border-bottom:1px solid var(--border-light)}.mock-dl-formula-fn-item{padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs);font-family:JetBrains Mono,monospace;color:var(--blue);border-radius:var(--radius-xs)}.mock-dl-formula-fn-item:hover{background:var(--blue-soft)}.mock-dl-formula-input-area{padding:var(--sp-4)}.mock-dl-formula-textarea{min-height:120px;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:var(--text-sm);resize:none}.mock-dl-formula-preview{width:200px;border-left:1px solid var(--border);padding:var(--sp-4);background:var(--surface-raised)}.mock-dl-formula-preview-title{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--sp-3)}.mock-dl-formula-preview-result{margin-bottom:var(--sp-4)}.mock-dl-formula-preview-label{font-size:var(--text-xs);color:var(--text-tertiary)}.mock-dl-formula-preview-value{font-family:JetBrains Mono,monospace;font-size:var(--text-lg);color:var(--text-primary);font-weight:600;margin-top:var(--sp-1)}.mock-dl-formula-preview-status{font-size:var(--text-xs);padding:var(--sp-2) var(--sp-2_5);border-radius:var(--radius-s)}.mock-dl-formula-preview-status.success{background:var(--green-soft);color:var(--success)}.mock-dl-formula-preview-status.error{background:var(--red-soft);color:var(--error)}.mock-dl-formula-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border)}.mock-dl-formula-preview-table{display:flex;flex-direction:column;gap:var(--sp-1)}.mock-dl-formula-preview-row{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-xs);background:var(--surface-raised)}.mock-dl-aliases-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:10;display:flex;align-items:center;justify-content:center}.mock-dl-aliases-overlay.visible{display:flex}.mock-dl-aliases-editor{width:620px;max-width:90%;max-height:80%;background:var(--surface-ink);border-radius:var(--radius-xl);box-shadow:0 8px 32px #00000026}.mock-dl-aliases-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-dl-aliases-header h3{font-size:var(--text-base);font-weight:600;color:var(--text-primary);margin:0}.mock-dl-aliases-body{padding:var(--sp-5)}.mock-dl-aliases-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle)}.mock-dl-aliases-mapping{display:flex;align-items:flex-start;gap:var(--sp-4);justify-content:center}.mock-dl-aliases-widget-col{max-width:220px}.mock-dl-aliases-widget-label{font-size:var(--text-xs);font-weight:600;color:var(--text-placeholder);margin-bottom:var(--sp-2)}.mock-dl-aliases-widget-card{background:var(--surface);border-radius:var(--radius-md);padding:var(--sp-3);border:1px solid var(--border-default)}.mock-dl-aliases-connectors{padding-top:var(--sp-7)}.mock-dl-aliases-field{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary);margin-bottom:var(--sp-1)}.mock-dl-aliases-field-dot{width:6px;height:6px;border-radius:var(--radius-full)}.mock-dl-aliases-field-dot--muted{background:var(--text-placeholder)}.mock-dl-aliases-desc{margin:0 0 var(--sp-4)}.mock-dl-aliases-table{border-collapse:collapse;width:100%;font-size:var(--text-xs)}.mock-dl-aliases-th{text-align:left;padding:var(--sp-1_5) var(--sp-2);font-weight:600;font-size:var(--text-xxs);color:var(--text-placeholder);border-bottom:1px solid var(--border-default)}.mock-dl-aliases-th.mock-dl-aliases-th-action{width:40px}.mock-dl-aliases-td{padding:var(--sp-2);border-bottom:1px solid var(--border-subtle)}.mock-dl-aliases-section{margin-top:var(--sp-4)}.mock-dl-aliases-section-label{letter-spacing:.5px;margin-bottom:var(--sp-2)}.mock-dl-aliases-field--inactive{opacity:.4}.mock-dl-aliases-pair-group{margin-bottom:var(--sp-4)}.mock-dl-aliases-pair-group:last-child{margin-bottom:0}.mock-dl-aliases-pair-header{margin-bottom:var(--sp-2)}.mock-dl-aliases-widget-chip{display:inline-block;padding:var(--sp-0_5) var(--sp-2);background:var(--purple-soft);color:var(--purple);border-radius:var(--radius-full);font-size:var(--text-xxs);font-weight:600;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mock-dl-widget-add-panel{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:10;display:none;align-items:center;justify-content:center}.mock-dl-widget-add-panel.visible{display:flex}.mock-dl-widget-add-inner{width:820px;max-width:96vw;height:70vh;max-height:720px;background:var(--surface-ink);border-radius:var(--radius-xl);box-shadow:0 8px 32px #00000026}.dp-add-body{display:flex;flex-direction:row}.dp-add-categories{width:220px;flex-shrink:0;padding:var(--sp-3);border-right:1px solid var(--border-subtle);background:var(--surface)}.dp-add-cat-group+.dp-add-cat-group{margin-top:var(--sp-3)}.dp-add-cat-group-label{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);padding:0 var(--sp-2) var(--sp-1)}.dp-add-cat-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--sp-2) var(--sp-3);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary);text-align:left;transition:background .12s ease}.dp-add-cat-item:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.dp-add-cat-item.active{background:var(--purple-soft);color:var(--purple);font-weight:500}.dp-add-cat-item:disabled{opacity:.45;cursor:not-allowed}.dp-add-cat-count{font-size:var(--text-xxs);color:var(--text-tertiary);background:var(--border-subtle);padding:1px var(--sp-1_5);border-radius:var(--radius-full);min-width:20px;text-align:center}.dp-add-cat-cta{margin-top:var(--sp-4);padding:var(--sp-3);border-radius:var(--radius-sm);background:var(--surface-raised);text-align:center}.dp-add-content{flex:1;min-width:0}.dp-add-counter-pick{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) 0}.dp-add-counter-select{flex:1;max-width:360px}.dp-add-search{padding:var(--sp-3) var(--sp-4) 0}.dp-add-cards-wrap{padding:var(--sp-3) var(--sp-4) var(--sp-4)}.dp-add-cards-list{display:flex;flex-direction:column;gap:var(--sp-1_5)}.dp-add-preset-card{display:flex;flex-direction:column;gap:2px;padding:var(--sp-2_5) var(--sp-3);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:all .12s ease}.dp-add-preset-card:hover{background:var(--surface-hover);border-color:var(--purple);transform:translateY(-1px)}.dp-add-preset-card--big{padding:var(--sp-4)}.dp-add-preset-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.dp-add-preset-subtitle{font-size:var(--text-xxs);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-add-preset-cat{opacity:.6;font-style:italic}.dp-add-empty{padding:var(--sp-6);text-align:center}.dp-field-palette{height:100%;background:var(--surface);border-right:1px solid var(--border-subtle)}.dp-field-palette-source-label{padding:var(--sp-3) var(--sp-3) var(--sp-1);font-size:var(--text-xxs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle)}.dp-field-palette-search{padding:var(--sp-2) var(--sp-3)}.dp-field-palette-list{padding:0 var(--sp-2) var(--sp-3)}.dp-field-palette-empty{padding:var(--sp-6);text-align:center}.dp-field-palette-group{margin-bottom:var(--sp-3)}.dp-field-palette-group-label{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-2) var(--sp-1);font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary)}.dp-field-palette-group-count{font-weight:500;color:var(--text-tertiary);opacity:.7}.dp-field-palette-group-items{display:flex;flex-direction:column;gap:2px}.dp-field-chip{display:flex;align-items:center;gap:var(--sp-2);padding:6px var(--sp-2);background:var(--surface);border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-primary);cursor:grab;transition:background .12s ease,border-color .12s ease;-webkit-user-select:none;user-select:none}.dp-field-chip:hover{background:var(--surface-hover, rgba(124, 58, 237, .05));border-color:var(--border-subtle)}.dp-field-chip:active,.dp-field-chip.is-dragging{cursor:grabbing;opacity:.6}.dp-field-chip.is-dimmed{opacity:.4}.dp-field-chip.is-clickable{cursor:pointer}.dp-field-chip:focus-visible{outline:2px solid var(--purple);outline-offset:1px}.dp-field-chip-handle{flex-shrink:0;font-size:14px;color:var(--text-tertiary);letter-spacing:-2px;cursor:grab}.dp-field-chip-icon{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;color:var(--purple);background:#7c3aed1a;border-radius:3px}.dp-field-chip-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-field-chip-tag{flex-shrink:0;font-size:9px;font-weight:700;padding:1px 5px;border-radius:3px;letter-spacing:.04em}.dp-field-chip-tag--measure{background:#0fbda026;color:#0fbda0}.dp-field-chip-tag--dim{background:#3388ff26;color:#38f}.mock-dl-dropdown-divider{height:1px;background:var(--border-subtle);margin:var(--sp-1) 0}.react-resizable-handle.react-resizable-handle-s,.react-resizable-handle.react-resizable-handle-e{background-image:none;transition:background .12s ease}.react-resizable-handle.react-resizable-handle-s:hover,.react-resizable-handle.react-resizable-handle-e:hover{background:#7c3aed26}.react-resizable-handle.react-resizable-handle-s{bottom:0;left:0;right:0;width:auto;height:6px;cursor:ns-resize;transform:none}.react-resizable-handle.react-resizable-handle-e{top:0;right:0;bottom:0;width:6px;height:auto;cursor:ew-resize;transform:none}.dp-edit-manual-wrap{padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3)}.dp-edit-manual-hint{padding:var(--sp-2) var(--sp-2_5);background:#7c3aed0f;border-left:3px solid var(--purple);border-radius:var(--radius-sm)}.dp-kpi-manual{width:100%}.dp-kpi-toggle-row,.dp-manual-toggle-row{font-size:var(--text-sm);color:var(--text-primary);padding:var(--sp-1_5) 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.dp-manual-form{width:100%}.dp-manual-row-pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.dp-manual-fallback-hint,.dp-manual-hint{padding:var(--sp-2) var(--sp-2_5);background:#ffb8511a;border-left:3px solid rgb(255,184,81);border-radius:var(--radius-sm)}.dp-manual-hint{background:#7c3aed0f;border-left-color:var(--purple)}.dp-planner-checkboxes{padding:var(--sp-1_5) 0;font-size:var(--text-sm)}.dp-planner-checkboxes label{padding:var(--sp-1) 0}.dp-planner-label-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--label-color, var(--text-tertiary));flex-shrink:0}@media (max-width: 600px){.dp-manual-row-pair{grid-template-columns:1fr}}.dp-edit-preview-loading-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--purple);animation:dp-preview-pulse 1.2s ease-in-out infinite}@keyframes dp-preview-pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.dp-preview-error{background:#ef44440f;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md);margin:var(--sp-3)}.dp-preview-kpi{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-1);padding:var(--sp-4)}.dp-preview-kpi-value{font-size:48px;font-weight:700;color:var(--text-primary);line-height:1}.dp-preview-kpi-label{font-size:var(--text-sm);color:var(--text-tertiary)}.dp-preview-table-wrap{height:100%}.dp-preview-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.dp-preview-table th,.dp-preview-table td{padding:var(--sp-1_5) var(--sp-2);border-bottom:1px solid var(--border-subtle)}.dp-preview-table th{font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-size:10px;background:var(--surface);position:sticky;top:0}.dp-preview-table tbody tr:hover{background:var(--surface-hover, rgba(124, 58, 237, .04))}.dp-advanced-annotation{padding:var(--sp-2);background:var(--surface-soft, rgba(0, 0, 0, .02));border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.dp-edit-style-tab{height:100%;padding:var(--sp-4);max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-3);align-content:start}.dp-style-section{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;align-self:start}.dp-style-section.is-open{box-shadow:var(--neu-sm)}.dp-style-section.dp-style-section--wide{grid-column:1/-1}.dp-style-section-header{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2_5) var(--sp-3);background:transparent;border:none;cursor:pointer;text-align:left;font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.dp-style-section-header:hover{background:var(--surface-hover, rgba(124, 58, 237, .04))}.dp-style-section-header:focus-visible{outline:2px solid var(--purple);outline-offset:-2px}.dp-style-section-arrow{display:flex;align-items:center;justify-content:center;width:14px;color:var(--text-tertiary);transition:transform .16s ease;transform:rotate(-90deg)}.dp-style-section-arrow.is-open{transform:rotate(0)}.dp-style-section-title{flex:1}.dp-style-section-body{padding:var(--sp-2) var(--sp-3) var(--sp-3);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--sp-2_5)}.dp-style-section-body .form-group{display:grid;grid-template-columns:140px 1fr;align-items:center;gap:var(--sp-2);margin:0}.dp-style-section-body .form-group .form-label{margin:0;font-size:var(--text-xs);font-weight:500;color:var(--text-secondary)}.dp-style-section-body .form-group:has(.dp-style-colors){grid-template-columns:140px 1fr}.dp-style-section-body .form-group:has(.dp-style-colors) .form-hint{grid-column:2;margin-top:var(--sp-1)}.dp-style-row{font-size:var(--text-sm);color:var(--text-primary);padding:var(--sp-1) 0}.dp-style-colors{width:100%}.dp-style-color-swatch{width:36px;height:28px;padding:0;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:transparent;cursor:pointer;flex-shrink:0}@media (max-width: 900px){.dp-edit-style-tab{grid-template-columns:1fr}.dp-style-section-body .form-group{grid-template-columns:1fr;align-items:stretch}}.dp-edit-data-tab{height:100%}.dp-edit-topbar{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);background:var(--surface);flex-wrap:wrap;align-items:flex-end}.dp-edit-topbar-group{display:flex;flex-direction:column;gap:4px;min-width:140px}.dp-edit-topbar-group--type{flex:1;min-width:360px}.dp-edit-topbar-label{font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.dp-edit-type-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.dp-suggest-wrap{position:relative}.dp-suggest-btn{white-space:nowrap;font-size:var(--text-xs)}.dp-suggest-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:120;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--sp-2);min-width:180px;display:flex;flex-direction:column;gap:2px}.dp-suggest-panel-title{padding:var(--sp-1) var(--sp-2) var(--sp-2)}.dp-suggest-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-sm);border:none;background:transparent;cursor:pointer;text-align:left;font-size:var(--text-sm);color:var(--text-primary);transition:background .12s}.dp-suggest-item:hover{background:var(--surface-hover)}.dp-suggest-item.active{background:var(--surface-active, var(--surface-hover));font-weight:600}.dp-suggest-thumb{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.dp-suggest-label{flex:1}.dp-suggest-check{font-size:var(--text-xs)}.dp-edit-data-cols{--dp-slots-width: 440px;display:grid;grid-template-columns:260px var(--dp-slots-width) 4px 1fr;gap:0}.dp-edit-data-cols.is-resizing{-webkit-user-select:none;user-select:none;cursor:col-resize}.dp-edit-resize-handle{width:4px;background:var(--border-subtle);cursor:col-resize;position:relative;transition:background .12s ease}.dp-edit-resize-handle:after{content:"";position:absolute;top:0;right:-4px;bottom:0;left:-4px}.dp-edit-resize-handle:hover,.dp-edit-resize-handle:focus-visible{background:var(--purple)}.dp-edit-resize-handle:focus-visible{outline:2px solid var(--purple);outline-offset:-2px}.dp-edit-fields-col{border-right:1px solid var(--border-subtle);background:var(--surface);overflow:hidden}.dp-edit-fields-error{padding:var(--sp-3)}.dp-edit-slots-col{background:var(--surface-soft, rgba(0, 0, 0, .012));border-right:1px solid var(--border-subtle)}.dp-edit-slots-empty{height:100%;display:flex;align-items:center;justify-content:center}.dp-edit-preview-col{display:flex;flex-direction:column;background:var(--surface)}.dp-edit-settings-row{display:flex;min-height:0}.dp-edit-settings-main{min-width:0}.dp-edit-settings-preview{flex:0 0 380px;display:flex;flex-direction:column;border-left:1px solid var(--border-subtle);background:var(--surface);overflow:hidden}.dp-edit-settings-preview .dp-edit-preview-col{flex:1;min-height:0}@media (max-width: 1100px){.dp-edit-settings-preview{display:none}}.dp-schema-list{max-height:260px;gap:2px}.dp-schema-row{padding:4px 8px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border-subtle)}.dp-schema-name{font-size:var(--text-xs)}.dp-edit-preview-header{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-subtle)}.dp-edit-preview-body{padding:var(--sp-4)}@media (max-width: 1100px){.dp-edit-data-cols{grid-template-columns:240px 1fr}.dp-edit-preview-col,.dp-edit-resize-handle{display:none}}@media (max-width: 768px){.dp-edit-data-cols{grid-template-columns:1fr}.dp-edit-fields-col{display:none}}.dp-edit-overlay{width:min(1280px,96vw);height:min(820px,92vh);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--neu-xl);display:flex;flex-direction:column}.dp-edit-header{border-bottom:1px solid var(--border-subtle);padding:var(--sp-3) var(--sp-5) 0}.dp-edit-header-row{margin-bottom:var(--sp-2)}.dp-edit-title{font-size:var(--text-base);font-weight:600;color:var(--text-primary);margin:0}.dp-edit-meta-chip{display:inline-flex;align-items:center;font-size:var(--text-xxs);font-weight:500;color:var(--text-tertiary);background:var(--surface-soft, rgba(0, 0, 0, .04));padding:2px var(--sp-1_5);border-radius:var(--radius-sm);font-family:ui-monospace,SFMono-Regular,monospace}.dp-edit-meta-chip--readonly{cursor:help;border:1px dashed var(--border-default);background:transparent;font-family:inherit}.dp-edit-name-row{margin-bottom:var(--sp-2)}.dp-edit-name-input{width:100%;font-size:var(--text-base);font-weight:500}.dp-edit-tabs{margin:0}.dp-edit-body{background:var(--surface-soft, rgba(0, 0, 0, .012))}.dp-edit-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle);background:var(--surface)}.dp-edit-footer-hint{flex:1;min-width:0}.dp-slot-shelf{gap:var(--sp-3);padding:var(--sp-3)}.dp-slot{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-2_5) var(--sp-3);background:var(--surface);border:1.5px dashed var(--border-subtle);border-radius:var(--radius-md);transition:all .14s ease}.dp-slot.is-empty{background:var(--surface-soft, rgba(0, 0, 0, .015))}.dp-slot.is-filled{border-style:solid;border-color:var(--border);background:var(--surface)}.dp-slot.is-drag-valid{border-color:#0fbda0;background:#0fbda00f}.dp-slot.is-drag-invalid{border-color:#ef4444;background:#ef44440d}.dp-slot.is-required-empty{border-color:#ef444466}.dp-slot-header{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.dp-slot-label{flex:1}.dp-slot-required{color:#ef4444;font-weight:700;margin-left:2px}.dp-slot-counter{font-size:10px;font-weight:500;color:var(--text-tertiary);background:var(--surface-soft, rgba(0, 0, 0, .04));padding:1px 6px;border-radius:8px;text-transform:none;letter-spacing:0}.dp-slot-hint{font-size:var(--text-xxs);color:var(--text-tertiary);font-style:italic}.dp-slot-body{min-height:32px;display:flex;align-items:center}.dp-slot-dropzone{width:100%;text-align:center;font-size:var(--text-xs);color:var(--text-tertiary);padding:var(--sp-1_5) 0;pointer-events:none}.dp-slot-chips{display:flex;flex-wrap:wrap;gap:var(--sp-1_5);width:100%}.dp-slot-chip{display:inline-flex;align-items:center;gap:6px;padding:4px var(--sp-1_5) 4px 6px;background:var(--purple-soft, rgba(124, 58, 237, .1));border:1px solid var(--purple);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-primary);max-width:100%}.dp-slot-chip-icon{display:flex;align-items:center;justify-content:center;color:var(--purple)}.dp-slot-chip-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.dp-slot-chip-remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:transparent;border:none;border-radius:50%;color:var(--purple);font-size:14px;line-height:1;cursor:pointer}.dp-slot-chip-remove:hover{background:#7c3aed33;color:var(--text-primary)}.dp-slot-error{font-size:var(--text-xxs);color:#ef4444;background:#ef444414;padding:4px var(--sp-1_5);border-radius:var(--radius-sm);margin-top:var(--sp-1)}.dp-filter-slot{margin-top:var(--sp-2)}.dp-filter-conds,.dp-filter-cond{width:100%}.dp-filter-cond-field{flex:0 0 auto;max-width:40%;font-size:var(--text-xs);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-filter-cond .form-input-sm,.dp-filter-cond .form-select-sm{flex:1 1 auto;min-width:0}.dp-filter-cond-remove{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:20px;height:20px;padding:0;background:transparent;border:none;border-radius:50%;color:var(--text-tertiary);cursor:pointer}.dp-filter-cond-remove:hover{background:#ef44441f;color:#ef4444}.dp-nt-picker{padding:var(--sp-2_5);margin-bottom:var(--sp-2);background:var(--surface-inset);border-radius:var(--radius-sm)}.dp-nt-picker-hint{font-size:var(--text-2xs);color:var(--text-tertiary);line-height:1.4;margin-top:var(--sp-1)}.dp-type-picker{flex-wrap:wrap}.dp-type-btn{display:inline-flex;align-items:center;gap:5px;padding:4px var(--sp-2);border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface);color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;transition:all var(--dur-fast)}.dp-type-btn:hover{border-color:var(--purple)}.dp-type-btn.is-active{border-color:var(--purple);background:var(--purple-soft);color:var(--purple-ink, var(--purple));font-weight:600}.dp-type-btn-label{white-space:nowrap}.dp-src-cfg{padding:var(--sp-2_5)}.dp-src-cfg-textarea{width:100%;resize:vertical;min-height:72px;padding:var(--sp-2) var(--sp-2_5);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface);color:var(--text-primary);font-size:var(--text-sm);font-family:inherit;line-height:1.4;outline:0}.dp-src-cfg-textarea:focus{border-color:var(--purple)}.dp-data-opts{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--border-subtle, var(--border-default))}.dp-nt-mode{margin-bottom:var(--sp-2)}.dp-nt-mode-btn{flex:1;padding:var(--sp-2) var(--sp-2_5);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:all var(--dur-fast)}.dp-nt-mode-btn:hover{border-color:var(--purple)}.dp-nt-mode-btn.is-active{border-color:var(--purple);background:var(--purple-soft);color:var(--purple-ink, var(--purple));font-weight:600}.dp-nt-mode-hint{font-size:var(--text-2xs);color:var(--text-tertiary);margin-bottom:var(--sp-2);line-height:1.4}.dp-nt-cols{max-height:220px;overflow-y:auto;padding:var(--sp-1) 0}.dp-nt-cols-hint{font-size:var(--text-2xs);color:var(--text-tertiary);margin-bottom:var(--sp-1)}.dp-add-entry{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);padding:var(--sp-6);align-content:start}.dp-add-entry-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-5);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--neu-md);cursor:pointer;text-align:left;min-height:200px;transition:all .16s ease}.dp-add-entry-card:hover{transform:translateY(-2px);box-shadow:var(--neu-lg);border-color:var(--purple)}.dp-add-entry-card.disabled{cursor:not-allowed;opacity:.55;box-shadow:none;background:var(--surface-soft, var(--surface))}.dp-add-entry-card.disabled:hover{transform:none;box-shadow:none;border-color:var(--border-subtle)}.dp-add-entry-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin-bottom:var(--sp-1);color:var(--purple);background:#7c3aed1a;border-radius:var(--radius-md);transition:transform .16s ease,background .16s ease}.dp-add-entry-card:hover:not(:disabled) .dp-add-entry-icon{transform:scale(1.05);background:#7c3aed2e}.dp-add-entry-card.disabled .dp-add-entry-icon{color:var(--text-tertiary);background:var(--surface-soft, rgba(0, 0, 0, .04))}.dp-add-entry-title{font-size:var(--text-base);font-weight:600;color:var(--text-primary)}.dp-add-entry-desc{font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.45;flex:1}.dp-add-entry-soon{align-self:flex-start}.dp-add-preset-card-thumb{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--purple);background:var(--surface-soft, rgba(124, 58, 237, .08));border-radius:var(--radius-sm)}.dp-add-preset-card--with-thumb{display:flex;flex-direction:row;align-items:center;gap:var(--sp-3)}.dp-add-preset-card--with-thumb .dp-add-preset-card-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.dp-add-connect-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);padding:var(--sp-8) var(--sp-6);text-align:center;flex:1}.dp-add-connect-icon{width:64px;height:64px;border-radius:50%;background:var(--surface-raised);display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.dp-add-connect-title{font-size:var(--text-base);font-weight:600;color:var(--text-primary)}.dp-add-connect-desc{max-width:320px;line-height:1.5}.dp-add-tpl-row{position:relative;cursor:default}.dp-add-tpl-row .dp-add-preset-card-thumb{cursor:pointer;background:none;border:none;padding:0}.dp-add-tpl-delete{flex-shrink:0;width:20px;height:20px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-tertiary);font-size:var(--text-base);line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s,color .15s}.dp-add-tpl-row:hover .dp-add-tpl-delete{opacity:1}.dp-add-tpl-delete:hover{background:var(--color-danger-subtle, #fee2e2);color:var(--color-danger, #ef4444)}.mock-dl-widget-add-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-dl-widget-add-header h3{font-size:var(--text-base);font-weight:600;color:var(--text-primary);margin:0}.mock-dl-widget-add-body{padding:var(--sp-5)}.mock-dl-wizard-ds-picker{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface-ink);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:0 4px 16px #0000001f;z-index:50;max-height:220px;overflow-y:auto;padding:var(--sp-1) 0}.mock-dl-wizard-ds-picker-label{padding:var(--sp-1) var(--sp-2_5);font-size:var(--text-xxs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary)}.mock-dl-wizard-ds-picker-item{padding:var(--sp-1_5) var(--sp-2_5);font-size:var(--text-xs);color:var(--text-secondary);transition:background var(--duration-fast)}.mock-dl-wizard-ds-picker-item:hover{background:var(--purple-soft);color:var(--purple)}.mock-dl-wizard-ds-picker-item.active{color:var(--purple);font-weight:500;background:var(--purple-soft)}.mock-dl-wizard-ds-picker-type{font-size:var(--text-xxs);color:var(--text-tertiary);flex-shrink:0}.mock-dl-metric-trigger{display:flex;align-items:center;gap:var(--sp-1);padding:0 var(--sp-1_5);min-height:36px;background:var(--surface-ink);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);cursor:pointer;transition:border-color .15s;-webkit-user-select:none;user-select:none}.mock-dl-metric-trigger:hover{border-color:var(--border-default)}.mock-dl-metric-trigger.open{border-color:var(--purple)}.mock-dl-metric-picker{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface-ink);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:0 4px 16px #00000024;z-index:60;display:flex;flex-direction:column;max-height:300px}.mock-dl-metric-picker-search{padding:var(--sp-1_5);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.mock-dl-metric-picker-list{overflow-y:auto;flex:1;padding:var(--sp-1) 0}.mock-dl-section-pick{position:absolute;right:calc(100% + 4px);top:0;z-index:210;min-width:160px}.mock-dl-add-section-form{display:flex;flex-direction:column;gap:var(--sp-2)}.mock-dl-add-section-row{flex-wrap:nowrap}.mock-dl-section-templates{flex-wrap:wrap}.mock-dl-section-tmpl-chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-1);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}.mock-dl-section-tmpl-chip:hover{border-color:var(--text-tertiary);color:var(--text-primary)}.mock-dl-section-tmpl-chip.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent)}.mock-dl-widget-drag-handle{position:absolute;top:var(--sp-2);left:var(--sp-2);z-index:20;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);cursor:grab;color:var(--text-tertiary);padding:0;opacity:0;transition:opacity .15s}.mock-dl-widget-drag-handle:active{cursor:grabbing}.mock-dl-widget-dragging,*:hover>.mock-dl-widget-drag-handle{opacity:1}.mock-dl-widget-dragging{opacity:.4;cursor:grabbing}.mock-dl-widget-dragging .mock-dl-card{box-shadow:none;transform:none!important}.mock-dl-between-row-zone{height:0;opacity:0;overflow:hidden;margin:0 var(--sp-5);border-radius:var(--radius-sm);border:2px dashed transparent;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);transition:height .18s ease,opacity .18s ease,border-color .15s ease,background .15s ease;pointer-events:none}.mock-dl-between-row-zone.visible{height:32px;opacity:1;border-color:var(--border-subtle);pointer-events:auto}.mock-dl-between-row-zone.over{height:44px;border-color:var(--purple);background:color-mix(in srgb,var(--purple) 8%,transparent);color:var(--purple)}.mock-dl-row-group{display:flex;flex-direction:column}.mock-dl-row-toolbar{padding:var(--sp-2) var(--sp-5) 0;opacity:0;transition:opacity .15s}.mock-dl-row-group:hover .mock-dl-row-toolbar{opacity:1}.mock-dl-row-label{letter-spacing:.03em;min-width:28px}.mock-dl-widget-drop-target>.mock-dl-card{outline:2px dashed var(--purple);outline-offset:2px}.mock-dl-grid>div,.mock-dl-row>div{position:relative}.mock-dl-widget-type-card{flex-direction:column;padding:var(--sp-5) var(--sp-3);border-radius:var(--radius-lg);border:1px solid var(--border-default);background:var(--surface);transition:transform .15s,box-shadow .15s,border-color .15s;text-align:center}.mock-dl-widget-type-card:hover{transform:translateY(-2px);box-shadow:var(--neu-md);border-color:var(--purple)}.mock-dl-widget-type-icon{width:48px;height:48px;margin-bottom:var(--sp-3);color:var(--purple);background:var(--purple-soft);border-radius:var(--radius-md)}.mock-dl-widget-type-title{margin-bottom:var(--sp-1)}.mock-dl-widget-type-desc{font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.4}.mock-dl-chart-settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:120;display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}.mock-dl-chart-settings{width:min(840px,94vw);max-height:90vh;background:var(--surface-ink);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:0 12px 48px #00000038;display:flex;flex-direction:column;animation:dl-csp-enter .18s ease}.mock-dl-chart-settings .mock-dl-editor-field{gap:var(--sp-3);margin-bottom:var(--sp-3)}.mock-dl-chart-settings .mock-dl-editor-field:last-child{margin-bottom:0}.mock-dl-chart-settings .mock-dl-editor-label{font-size:var(--text-xs);color:var(--text-secondary)}.mock-dl-chart-settings .form-input,.mock-dl-chart-settings .form-select{font-size:var(--text-xs)}.mock-dl-chart-settings textarea.form-input{min-height:44px}.mock-dl-chart-settings .mock-dl-color-input{width:80px;font-size:var(--text-xxs);padding:var(--sp-1) var(--sp-1_5);text-align:center}@keyframes dl-csp-enter{0%{opacity:0;transform:scale(.97) translateY(8px)}to{opacity:1;transform:none}}.mock-dl-chart-settings-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.mock-dl-chart-settings-header h3{font-size:var(--text-base);font-weight:600;color:var(--text-primary);margin:0}.mock-dl-chart-settings-body{padding:var(--sp-4) var(--sp-5);overflow-y:auto;flex:1}.mock-dl-chart-settings-section{margin-bottom:var(--sp-5)}.mock-dl-chart-settings-section:last-child{margin-bottom:0}.mock-dl-chart-settings-section-title{font-size:var(--text-xs);font-weight:600;color:var(--text-placeholder);margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border-subtle)}.mock-dl-chart-settings-colors{display:flex;gap:var(--sp-2)}.mock-dl-chart-settings-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle);flex-shrink:0}.mock-dl-dashboard-settings{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:200;display:none;align-items:center;justify-content:center}.mock-dl-dashboard-settings.visible{display:flex}.mock-dl-dashboard-settings-inner{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg, 0 8px 32px rgba(0, 0, 0, .18));width:520px;max-width:95vw;max-height:85vh}.mock-dl-dashboard-settings-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-dl-dashboard-settings-header h3{margin:0;font-size:var(--text-base);font-weight:600}.mock-dl-dashboard-settings-body{padding:var(--sp-5)}.mock-dl-dashboard-settings-section{margin-bottom:var(--sp-5)}.mock-dl-dashboard-settings-section:last-child{margin-bottom:0}.mock-dl-dashboard-settings-section-title{margin-bottom:var(--sp-3)}.mock-dl-dashboard-settings-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle)}.mock-dl-favorites{display:flex;flex-direction:column}.mock-dl-favorites-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle);background:var(--surface)}.mock-dl-favorites-header h3{margin:0;font-size:var(--text-base);font-weight:600}.mock-dl-favorites-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-4);padding:var(--sp-5)}.mock-dl-favorites-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-4);transition:box-shadow .15s}.mock-dl-favorites-card:hover{box-shadow:0 2px 12px #00000014}.mock-dl-favorites-card-top{display:flex;align-items:flex-start;gap:var(--sp-3)}.mock-dl-favorites-card-icon{width:36px;height:36px;border-radius:var(--radius-sm);font-size:var(--text-md)}.mock-dl-favorites-card-icon.icon-purple{background:var(--purple-soft);color:var(--purple)}.mock-dl-favorites-card-icon.icon-blue{background:var(--blue-soft, rgba(59, 130, 246, .1));color:var(--blue)}.mock-dl-favorites-card-icon.icon-green{background:var(--success-soft, rgba(16, 185, 129, .1));color:var(--success)}.mock-dl-favorites-card-icon.icon-orange{background:var(--warning-soft, rgba(245, 158, 11, .1));color:var(--warning)}.mock-dl-favorites-card-meta{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.mock-dl-favorites-card-star{color:var(--warning);font-size:var(--text-md)}.mock-dl-favorites-card-date{font-size:var(--text-xxs);color:var(--text-placeholder)}.mock-dl-favorites-card-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-1)}.mock-dl-all-objects{display:flex;flex-direction:column}.mock-dl-all-objects-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle);background:var(--surface);flex-wrap:wrap}.mock-dl-all-objects-header h3{margin:0;font-size:var(--text-base);font-weight:600}.mock-dl-all-objects-filters{padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle);background:var(--surface);flex-wrap:wrap}.mock-dl-all-objects-pill{padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-xl);font-size:var(--text-xs);border:1px solid var(--border-default);background:var(--surface);color:var(--text-secondary);transition:all .15s}.mock-dl-all-objects-pill:hover{border-color:var(--purple);color:var(--purple)}.mock-dl-all-objects-pill.active{background:var(--purple-soft);color:var(--purple);border-color:var(--purple);font-weight:500}.mock-dl-all-objects-table-wrap{padding:var(--sp-4) var(--sp-5)}.mock-dl-all-objects-type-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);font-size:var(--text-xs)}.mock-dl-all-objects-type-icon.icon-purple{background:var(--purple-soft);color:var(--purple)}.mock-dl-all-objects-type-icon.icon-blue{background:var(--blue-soft, rgba(59, 130, 246, .1));color:var(--blue)}.mock-dl-all-objects-type-icon.icon-green{background:var(--success-soft, rgba(16, 185, 129, .1));color:var(--success)}.mock-dl-all-objects-type-icon.icon-orange{background:var(--warning-soft, rgba(245, 158, 11, .1));color:var(--warning)}.mock-dl-palette-overlay .mock-dl-editor{max-width:680px}.mock-dl-palette-row{padding:var(--sp-3);border-radius:var(--radius-md);background:var(--surface-ink);border:1px solid var(--border-default)}.mock-dl-palette-row-info{min-width:100px}.mock-dl-palette-row-swatches{display:flex;gap:var(--sp-1_5)}.mock-dl-palette-swatch{width:20px;height:20px;border-radius:var(--radius-full);border:2px solid var(--surface);box-shadow:0 0 0 1px var(--border-default)}.mock-dl-palette-row-actions{display:flex;gap:var(--sp-2)}.mock-dl-palette-edit-header{margin-bottom:var(--sp-4)}.mock-dl-palette-edit-title{font-weight:600;font-size:var(--text-sm)}.mock-dl-palette-edit-grid{flex-wrap:wrap}.mock-dl-palette-color-input{width:36px;height:36px;border:none;border-radius:var(--radius-sm);padding:0;background:none}.mock-dl-palette-swatch-remove{position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:var(--radius-full);background:var(--error);color:#fff;border:none;font-size:var(--text-2xs);line-height:16px;text-align:center;display:none}.mock-dl-palette-edit-swatch-wrap:hover .mock-dl-palette-swatch-remove{display:block}.mock-dl-palette-preview-chart{display:flex;align-items:flex-end;gap:var(--sp-2);height:80px;padding:var(--sp-2);background:var(--surface-ink);border-radius:var(--radius-sm);border:1px solid var(--border-default)}.mock-dl-palette-preview-bar{border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:height .3s}.mock-dl-palette-edit-actions{display:flex;justify-content:space-between;margin-top:var(--sp-4)}.mock-dl-lock-bar{display:none;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);font-size:var(--text-xs);font-weight:500;border-bottom:1px solid var(--border-default)}.mock-dl-lock-bar.visible{display:flex}.mock-dl-lock-bar.locked-other .mock-dl-lock-icon{color:var(--warning)}.mock-dl-lock-bar.locked-self .mock-dl-lock-icon{color:var(--info)}.mock-dl-lock-icon{width:16px;height:16px}.mock-dl-lock-timeout{color:var(--text-tertiary);font-size:var(--text-xs)}.mock-dl-lock-force{margin-left:auto}.mock-dl-lock-badge{position:absolute;top:var(--sp-1_5);right:var(--sp-1_5);width:22px;height:22px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--warning) 90%,black);color:var(--text-on-accent);display:none;align-items:center;justify-content:center;font-size:var(--text-2xs);z-index:2;box-shadow:0 1px 3px #0003}.mock-dl-tenant-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:var(--overlay-bg);display:flex;align-items:center;justify-content:center}.mock-dl-tenant-overlay.visible{display:flex}.mock-dl-tenant-panel{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--neu-lg);width:760px;max-width:94vw;max-height:88vh}.mock-dl-tenant-header{padding:var(--sp-4) var(--sp-6);border-bottom:1px solid var(--border-default)}.mock-dl-tenant-header h3{margin:0;font-size:var(--text-md);font-weight:700;color:var(--text-primary)}.mock-dl-tenant-body{display:flex}.mock-dl-tenant-nav{width:180px;border-right:1px solid var(--border-default);padding:var(--sp-3)}.mock-dl-tenant-nav-item{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-secondary);transition:background .12s}.mock-dl-tenant-nav-item:hover{background:var(--surface-raised)}.mock-dl-tenant-nav-item.active{background:var(--purple-soft);color:var(--purple);font-weight:600}.mock-dl-tenant-content{padding:var(--sp-6)}.mock-dl-tenant-tab{display:none;flex-direction:column;gap:var(--sp-4)}.mock-dl-tenant-tab.active{display:flex}.mock-dl-tenant-section-title{font-size:var(--text-base);font-weight:700;color:var(--text-primary);margin-bottom:var(--sp-1)}.mock-dl-tenant-field label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}.mock-dl-tenant-toggle-row{padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle)}.mock-dl-tenant-toggle-label{font-size:var(--text-sm);color:var(--text-primary)}.mock-dl-tenant-toggle-hint{font-size:var(--text-xs);color:var(--text-tertiary)}.mock-dl-tenant-license-row{padding:var(--sp-2) 0}.mock-dl-tenant-license-label{font-size:var(--text-sm);color:var(--text-secondary);min-width:120px}.mock-dl-tenant-health-card{background:var(--surface-ink);border-radius:var(--radius-md);border:1px solid var(--border-default);padding:var(--sp-4)}.mock-dl-tenant-health-dot{width:10px;height:10px;border-radius:var(--radius-full)}.mock-dl-tenant-health-dot.green{background:var(--success)}.mock-dl-tenant-health-dot.yellow{background:var(--warning)}.mock-dl-tenant-health-status{font-size:var(--text-xs);font-weight:500}.mock-dl-tenant-health-status.green{color:var(--success)}.mock-dl-tenant-health-status.yellow{color:var(--warning)}.mock-dl-tenant-health-time{font-size:var(--text-xs);color:var(--text-tertiary)}.mock-dl-tenant-placeholder{padding:var(--sp-8);text-align:center;color:var(--text-placeholder);font-size:var(--text-sm)}.mock-dl-tenant-sidebar-link{padding:var(--sp-2) var(--sp-3);margin-top:auto;font-size:var(--text-xs);color:var(--text-tertiary);border-top:1px solid var(--border-subtle)}.mock-dl-tenant-sidebar-link:hover{color:var(--purple)}.mock-dl-undo-group{display:inline-flex;align-items:center;gap:0;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface)}.mock-dl-undo-btn{border:none!important;border-radius:0!important;border-right:1px solid var(--border-default)!important;font-weight:500;min-width:64px}.mock-dl-undo-btn:disabled{opacity:.35;cursor:not-allowed}.mock-dl-undo-history-btn{border:none!important;border-radius:0!important;min-width:28px;padding:var(--sp-1) 6px!important;font-size:var(--text-2xs)}.dl-wizard-option{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-subtle);font-size:var(--text-xs);color:var(--text-secondary)}.dl-wizard-option:last-child{border-bottom:none}.dl-wizard-option label{font-size:var(--text-xs);color:var(--text-tertiary);min-width:90px}.dl-wizard-option .form-select{max-width:160px;font-size:var(--text-xs);padding:var(--sp-1) var(--sp-2)}.dl-wizard-option span{font-size:var(--text-xs);color:var(--text-secondary)}.dl-annotation-item{border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.dl-annotation-header{padding:var(--sp-2) var(--sp-3);background:var(--surface)}.dl-annotation-config{padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border-subtle)}.dl-annotation-row label{font-size:var(--text-xs);color:var(--text-tertiary);min-width:50px}.dl-annotation-row .form-select,.dl-annotation-row .form-input{font-size:var(--text-xs);padding:var(--sp-1) var(--sp-2)}.dl-dataset-section{padding:var(--sp-4);border-top:1px solid var(--border-subtle);margin-top:var(--sp-3)}.dl-obligatory-filter .form-select{font-size:var(--text-xs);padding:var(--sp-1) var(--sp-2);max-width:150px}.dl-obligatory-filter .form-input{font-size:var(--text-xs);padding:var(--sp-1) var(--sp-2)}.dl-pivot-config{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border-subtle);background:var(--surface)}.dl-pivot-option{font-size:var(--text-xs);color:var(--text-secondary);padding:var(--sp-1) 0}.dl-pivot-option label{font-size:var(--text-xs);color:var(--text-tertiary);min-width:100px}.dl-pivot-option .form-select{font-size:var(--text-xs);padding:var(--sp-1) var(--sp-2);max-width:120px}.dl-pivot-total-row{font-weight:700;background:var(--surface);border-top:2px solid var(--purple)}.dl-pivot-total-row td{font-weight:700;color:var(--text-primary)}.mock-dl-dashboard-desc{padding:var(--sp-2) var(--sp-5);font-size:var(--text-sm);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);background:var(--surface);line-height:1.5}.dp-fullscreen-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg, rgba(0, 0, 0, .5));z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}.dp-fullscreen-panel{background:var(--surface-raised, var(--surface));border-radius:var(--radius-lg);border:1px solid var(--border-default);box-shadow:var(--neu-xl);display:flex;flex-direction:column;width:min(1100px,95vw);height:min(780px,92vh);overflow:hidden}.dp-fullscreen-header{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.dp-fullscreen-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:var(--sp-4);overflow:hidden}.dp-fullscreen-kpi{height:100%;justify-content:center}.dp-fullscreen-kpi-value{font-size:clamp(2.5rem,8vw,5rem)!important}.dp-fullscreen-text{flex:1;min-height:0;padding:var(--sp-2)}.mock-dl-compare-badge{display:inline-flex;align-items:center;gap:var(--sp-1_5);padding:var(--sp-1) var(--sp-2_5);background:var(--purple-soft);color:var(--purple);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;margin-bottom:var(--sp-2);align-self:flex-start;width:fit-content}.dp-widget-comments-btn{position:relative}.dp-widget-comments-badge{position:absolute;top:-3px;right:-3px;background:var(--purple);color:var(--text-on-accent);border-radius:99px;font-size:9px;font-weight:600;min-width:14px;height:14px;padding:0 3px;display:flex;align-items:center;justify-content:center;pointer-events:none}.dp-comments-panel{position:fixed;top:80px;right:16px;width:320px;max-height:calc(100vh - 100px);background:var(--surface-1, var(--surface));border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--neu-lg);display:flex;flex-direction:column;z-index:120;overflow:hidden}.dp-comments-panel__header{padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.dp-comments-count{background:var(--purple-soft);color:var(--purple);font-size:11px;font-weight:600;border-radius:99px;padding:1px 6px}.dp-comments-panel__list{flex:1;overflow-y:auto;padding:var(--sp-2) var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.dp-comments-empty{padding:var(--sp-4) 0;text-align:center}.dp-comment-item{display:flex;gap:var(--sp-2);align-items:flex-start}.dp-comment-item--mine .dp-comment-body{background:var(--purple-soft);border-color:#7b81be33}.dp-comment-avatar{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--surface-inset);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--text-secondary);overflow:hidden}.dp-comment-avatar img{width:100%;height:100%;object-fit:cover}.dp-comment-body{flex:1;background:var(--surface-inset);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-2_5)}.dp-comment-meta{margin-bottom:2px}.dp-comment-author{color:var(--text-primary)}.dp-comment-date{color:var(--text-tertiary);font-size:10px}.dp-comment-text{color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.dp-comment-edit-row{margin-top:var(--sp-1)}.dp-comment-actions{margin-top:4px}.dp-comment-action-btn{background:none;border:none;cursor:pointer;color:var(--text-tertiary);padding:0;font-size:10px;transition:color .15s}.dp-comment-action-btn:hover{color:var(--text-secondary)}.dp-comment-action-btn--danger:hover{color:var(--error)}.dp-comments-panel__footer{padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border-subtle);flex-shrink:0}.dp-comments-input-row{align-items:center}.dp-comments-input{flex:1}.dp-field-palette-calc-section{margin-top:var(--sp-2);border-top:1px solid var(--border-subtle);padding-top:var(--sp-2)}.dp-calc-section-toggle{display:flex;align-items:center;gap:var(--sp-1);width:100%;background:none;border:none;cursor:pointer;text-align:left;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm)}.dp-calc-section-toggle:hover{background:var(--surface-hover)}.dp-calc-field-editor{padding:var(--sp-2) var(--sp-1);gap:var(--sp-2)}.dp-calc-field-list{display:flex;flex-direction:column;gap:var(--sp-1)}.dp-calc-field-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);border:1px solid transparent}.dp-calc-field-row:hover{background:var(--surface-hover)}.dp-calc-field-row--active{border-color:var(--color-accent, var(--purple));background:var(--surface-hover)}.dp-calc-field-icon{font-size:var(--text-base);font-weight:700;flex-shrink:0;width:18px;text-align:center}.dp-calc-field-info{display:flex;flex-direction:column;gap:2px}.dp-calc-field-name{font-size:var(--text-sm);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-calc-field-formula{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-calc-field-actions{display:flex;gap:2px;flex-shrink:0;opacity:0;transition:opacity .15s}.dp-calc-field-row:hover .dp-calc-field-actions{opacity:1}.dp-calc-field-form{padding:var(--sp-2);background:var(--surface-inset);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.dp-calc-field-add-btn{width:100%;justify-content:flex-start;font-size:var(--text-xs);color:var(--text-tertiary);padding:var(--sp-1) var(--sp-2)}.dp-ai-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.dp-ai-panel-close{position:absolute;top:var(--sp-2);right:var(--sp-2);z-index:1}.dp-ai-panel-header{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.dp-ai-panel-back-btn{background:none;border:none;cursor:pointer;color:var(--text-secondary);font-size:var(--text-sm);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);transition:color .15s,background .15s}.dp-ai-panel-back-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.dp-ai-panel-title{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.dp-ai-panel-body{display:flex;flex-direction:column;flex:1;overflow-y:auto;padding:var(--sp-5);gap:var(--sp-4)}.dp-ai-prompt-section{display:flex;flex-direction:column;gap:var(--sp-3)}.dp-ai-prompt-textarea{resize:vertical;min-height:96px}.dp-ai-examples-row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.dp-ai-example-chip{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-full);padding:var(--sp-1) var(--sp-3);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.dp-ai-example-chip:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-accent)}.dp-ai-example-chip:disabled{opacity:.5;cursor:default}.dp-ai-error{padding:var(--sp-2) var(--sp-3);background:var(--error-bg, rgba(var(--color-error-rgb, 220 38 38)/.08));border-radius:var(--radius-sm);border:1px solid var(--color-error-light, #fca5a5)}.dp-ai-actions{display:flex;align-items:center;gap:var(--sp-3)}.dp-ai-no-ds-hint{font-size:var(--text-xs);color:var(--text-tertiary)}.dp-ai-result{display:flex;flex-direction:column;gap:var(--sp-4)}.dp-ai-result-card{display:flex;flex-direction:column;gap:var(--sp-3);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-4)}.dp-ai-result-header{display:flex;align-items:center;gap:var(--sp-3)}.dp-ai-result-type-thumb{flex-shrink:0;opacity:.8}.dp-ai-result-meta{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.dp-ai-result-title{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-ai-result-type-label{font-size:var(--text-xs);color:var(--text-tertiary)}.dp-ai-result-slots{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.dp-ai-result-slot-row{display:flex;align-items:baseline;gap:var(--sp-2)}.dp-ai-result-slot-name{min-width:60px;flex-shrink:0;font-size:var(--text-xs);color:var(--text-tertiary)}.dp-ai-result-slot-fields{font-size:var(--text-xs);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-ai-result-calcs{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.dp-ai-result-calcs-title{font-size:var(--text-xs);color:var(--text-tertiary);font-weight:500}.dp-ai-result-calc-row{font-size:var(--text-xs);color:var(--text-secondary)}.dp-ai-result-calc-name{font-weight:500}.dp-ai-result-calc-formula{color:var(--text-tertiary)}.dp-ai-result-reasoning{font-size:var(--text-xs);color:var(--text-secondary);font-style:italic;line-height:1.5;border-top:1px solid var(--border-subtle);padding-top:var(--sp-2);margin-top:var(--sp-1)}.dp-ai-result-actions{display:flex;align-items:center;gap:var(--sp-2)}.dp-ai-empty{display:flex;flex:1;align-items:center;justify-content:center}.dp-filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-1);min-height:28px}.dp-filter-pill{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--radius-full);font-size:var(--text-xs);line-height:1;max-width:200px}.dp-filter-pill--cross{background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);color:var(--accent)}.dp-filter-pill--dim{background:var(--bg-card);border:1px solid var(--border-default);color:var(--text-primary)}.dp-filter-pill-icon{flex-shrink:0;font-size:10px}.dp-filter-pill-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-filter-pill-eq{color:var(--text-tertiary);margin:0 1px}.dp-filter-pill-remove{background:none;border:none;padding:0 0 0 2px;cursor:pointer;color:var(--text-tertiary);font-size:14px;line-height:1;flex-shrink:0}.dp-filter-pill-remove:hover{color:var(--text-primary)}.dp-filter-add-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:1px dashed var(--border-default);border-radius:var(--radius-full);padding:2px var(--sp-2);font-size:var(--text-xs);color:var(--text-tertiary);cursor:pointer;transition:color .15s,border-color .15s}.dp-filter-add-btn:hover{color:var(--text-primary);border-color:var(--border-active)}.dp-filter-add-icon{font-size:12px;line-height:1}.dp-filter-add-popover{position:absolute;top:calc(100% + 4px);left:0;z-index:200;background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--sp-2);gap:var(--sp-2);box-shadow:var(--shadow-md);min-width:240px;display:flex;flex-direction:column}.dp-filter-add-popover-title{font-size:var(--text-xs);color:var(--text-tertiary);font-weight:600}.dp-filter-clear-btn{background:none;border:none;padding:2px var(--sp-1);font-size:var(--text-xs);color:var(--text-tertiary);cursor:pointer;white-space:nowrap;text-decoration:underline;text-underline-offset:2px}.dp-filter-clear-btn:hover{color:var(--color-error)}.dp-var-bar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2)}.dp-var-picker{display:flex;align-items:center;gap:var(--sp-1)}.dp-var-label{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap}.dp-var-select{min-width:100px;max-width:180px}.dp-var-input{min-width:100px;max-width:160px}.dp-vars-section{gap:var(--sp-2)}.dp-var-row{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--sp-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-base);gap:var(--sp-2)}.dp-var-row-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.dp-var-form{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-card);margin-top:var(--sp-1)}.dp-snap-compare-hint{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);background:var(--purple-soft);border:1px solid rgba(123,129,190,.25)}.dp-history-snap-item--base{background:var(--purple-soft);border-radius:var(--radius-sm);padding:var(--sp-1) var(--sp-2)}.dp-snap-diff-header{padding-bottom:var(--sp-2);border-bottom:1px solid var(--border-default)}.dp-snap-diff-section{display:flex;flex-direction:column;gap:var(--sp-1)}.dp-snap-diff-section-title{display:flex;align-items:center;gap:var(--sp-1);margin-bottom:var(--sp-05)}.dp-snap-diff-item{display:flex;align-items:baseline;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);border-left:2px solid transparent}.dp-snap-diff-item-title{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-snap-diff-item-meta{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap}.dp-snap-diff-item--added{background:var(--green-soft);border-left-color:var(--green)}.dp-snap-diff-item--removed{background:#e53e3e12;border-left-color:var(--error)}.dp-snap-diff-item--removed .dp-snap-diff-item-title{text-decoration:line-through;color:var(--text-secondary)}.dp-snap-diff-item--changed{background:var(--orange-soft);border-left-color:var(--orange)}.mock-dl-embed-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:10;display:flex;align-items:center;justify-content:center}.mock-dl-embed-overlay.visible{display:flex}.mock-dl-embed-modal{width:640px;max-width:92%;max-height:85%;background:var(--surface-ink);border-radius:var(--radius-xl);box-shadow:0 8px 32px #00000026}.mock-dl-embed-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-dl-embed-header h3{font-size:var(--text-md);font-weight:700;color:var(--text-primary);margin:0}.mock-dl-embed-body{padding:var(--sp-5)}.mock-dl-embed-preview{background:var(--surface-inset);border-radius:var(--radius-md);border:1px solid var(--border-default);height:120px;font-size:var(--text-xs);color:var(--text-tertiary)}.mock-dl-embed-preview-bar{position:absolute;top:0;left:0;right:0;height:22px;background:var(--surface);border-bottom:1px solid var(--border-subtle);padding:0 var(--sp-2)}.mock-dl-embed-preview-dot{width:6px;height:6px;border-radius:var(--radius-full);background:var(--text-placeholder)}.mock-dl-embed-preview-content{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}.mock-dl-embed-preview-box{width:50px;height:36px;background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.mock-dl-embed-row{gap:var(--sp-3)}.mock-dl-embed-label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);min-width:140px}.mock-dl-embed-radio-group{display:flex;gap:var(--sp-2)}.mock-dl-embed-radio{font-size:var(--text-xs);color:var(--text-secondary)}.mock-dl-embed-radio input[type=radio]{accent-color:var(--purple)}.mock-dl-embed-param-row{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border-subtle);font-size:var(--text-xs);color:var(--text-secondary)}.mock-dl-embed-param-name{font-weight:500}.mock-dl-embed-code{width:100%;min-height:64px;max-height:100px;padding:var(--sp-2) var(--sp-3);background:var(--surface-inset);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary);resize:none}.mock-dl-embed-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle)}.mock-dl-mobile-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:10;display:flex;align-items:center;justify-content:center}.mock-dl-mobile-overlay.visible{display:flex}.mock-dl-mobile-panel{width:720px;max-width:95%;max-height:90%;background:var(--surface-ink);border-radius:var(--radius-xl);box-shadow:0 8px 32px #00000026}.mock-dl-mobile-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-dl-mobile-header h3{font-size:var(--text-md);font-weight:700;color:var(--text-primary);margin:0}.mock-dl-mobile-body{padding:var(--sp-5);display:flex;gap:var(--sp-5)}.mock-dl-mobile-frame-wrap{display:flex;align-items:flex-start;justify-content:center}.mock-dl-mobile-frame{width:375px;background:var(--gray-800);border-radius:var(--radius-2xl);padding:var(--sp-3);box-shadow:0 4px 24px #0003;transition:width var(--duration-base),height var(--duration-base)}.mock-dl-mobile-frame.landscape{width:667px}.mock-dl-mobile-frame.landscape .mock-dl-mobile-screen{min-height:300px;max-height:340px}.mock-dl-mobile-notch{width:120px;height:22px;background:var(--gray-800);border-radius:0 0 14px 14px;margin:0 auto;top:-12px;z-index:2}.mock-dl-mobile-screen{background:var(--surface-ink);border-radius:var(--radius-2xl);min-height:500px;padding:var(--sp-4) var(--sp-3);max-height:560px}.mock-dl-mobile-selector{width:100%;padding:var(--sp-2) var(--sp-3);background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary)}.mock-dl-mobile-selector-label{font-weight:600;font-size:var(--text-2xs);color:var(--text-placeholder)}.mock-dl-mobile-kpi{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--sp-3);text-align:center}.mock-dl-mobile-kpi-label{font-size:var(--text-2xs);color:var(--text-tertiary)}.mock-dl-mobile-kpi-value{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);margin-top:var(--sp-0_5)}.mock-dl-mobile-kpi-change{font-size:var(--text-2xs);margin-top:var(--sp-0_5)}.mock-dl-mobile-kpi-change.up{color:var(--success)}.mock-dl-mobile-kpi-change.down{color:var(--error)}.mock-dl-mobile-chart-placeholder{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--sp-3);height:100px;font-size:var(--text-xs);color:var(--text-tertiary)}.mock-dl-mobile-table{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.mock-dl-mobile-table table{width:100%;font-size:var(--text-2xs);border-collapse:collapse}.mock-dl-mobile-table th,.mock-dl-mobile-table td{padding:var(--sp-1) var(--sp-2);text-align:left;border-bottom:1px solid var(--border-subtle)}.mock-dl-mobile-table th{font-weight:600;color:var(--text-placeholder);font-size:var(--text-3xs);text-transform:uppercase}.mock-dl-mobile-table td{color:var(--text-secondary)}.mock-dl-mobile-scroll-hint{position:absolute;right:0;top:0;bottom:0;width:24px;background:linear-gradient(to right,transparent,rgba(0,0,0,.08))}.mock-dl-mobile-scroll-hint svg{opacity:.4}.mock-dl-mobile-controls{width:170px}.mock-dl-mobile-control-label{font-size:var(--text-xs);font-weight:600;color:var(--text-placeholder)}.mock-dl-mobile-orientation-btns{display:flex;gap:var(--sp-1)}.mock-dl-mobile-orientation-btns button{padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface);color:var(--text-secondary);font-family:var(--font-sans)}.mock-dl-mobile-orientation-btns button.active{background:var(--purple-soft);border-color:var(--purple);color:var(--purple);font-weight:600}.mock-dl-mobile-scale-row input[type=range]{accent-color:var(--purple)}.mock-dl-mobile-scale-val{font-size:var(--text-xs);color:var(--text-tertiary);min-width:30px;text-align:right}.mock-dl-mobile-chart-icon{opacity:.3;margin-right:var(--sp-1_5);flex-shrink:0}.mock-dl-mobile-save-group{margin-top:auto}.mock-dl-mobile-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle)}.mock-dl-code-editor-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:10;display:none;align-items:center;justify-content:center}.mock-dl-code-editor-overlay.visible{display:flex}.mock-dl-code-editor-panel{width:820px;max-width:95%;max-height:90%;background:var(--surface-ink);border-radius:var(--radius-xl);box-shadow:0 8px 32px #00000026}.mock-dl-code-editor-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-dl-code-editor-header h3{font-size:var(--text-md);font-weight:700;color:var(--text-primary);margin:0}.mock-dl-code-editor-tabs{display:flex;gap:0;border-bottom:1px solid var(--border-subtle);padding:0 var(--sp-5)}.mock-dl-code-editor-tab{padding:var(--sp-2) var(--sp-4);font-size:var(--text-sm);font-weight:500;color:var(--text-tertiary);border-bottom:2px solid transparent;background:none;border-top:none;border-left:none;border-right:none;font-family:var(--font-sans);transition:color var(--duration-fast),border-color var(--duration-fast)}.mock-dl-code-editor-tab:hover{color:var(--text-secondary)}.mock-dl-code-editor-tab.active{color:var(--purple);border-bottom-color:var(--purple);font-weight:600}.mock-dl-code-editor-content{display:none;padding:var(--sp-4) var(--sp-5);max-height:420px}.mock-dl-code-editor-content.active{display:block}.mock-dl-code-editor-param-row{padding:var(--sp-2) var(--sp-3);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.mock-dl-code-editor-param-key{font-size:var(--text-xs);font-weight:600;color:var(--purple);min-width:100px}.mock-dl-code-editor-param-val input{width:100%;padding:var(--sp-1) var(--sp-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-sans);background:var(--surface-ink);color:var(--text-secondary)}.mock-dl-code-editor-param-type{font-size:var(--text-2xs);color:var(--text-placeholder)}.mock-dl-code-editor-code-wrap{display:flex;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-inset)}.mock-dl-code-editor-lines{padding:var(--sp-3) var(--sp-2);background:var(--surface);border-right:1px solid var(--border-default);font-size:var(--text-xs);color:var(--text-placeholder);line-height:1.7;text-align:right;-webkit-user-select:none;user-select:none;min-width:32px}.mock-dl-code-editor-textarea{padding:var(--sp-3);font-size:var(--text-xs);line-height:1.7;color:var(--text-primary);border:none;background:transparent;resize:none;min-height:280px;outline:none;-moz-tab-size:2;tab-size:2}.mock-dl-code-editor-url-row{padding:var(--sp-3);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.mock-dl-code-editor-method{padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase}.mock-dl-code-editor-method.get{background:var(--green-soft);color:var(--green)}.mock-dl-code-editor-method.post{background:var(--orange-soft);color:var(--orange)}.mock-dl-code-editor-url-text{font-size:var(--text-xs);color:var(--text-secondary)}.mock-dl-code-editor-json-area{width:100%;min-height:200px;padding:var(--sp-3);font-size:var(--text-xs);line-height:1.6;color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-inset);resize:vertical}.mock-dl-code-editor-config-label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);min-width:120px}.mock-dl-code-editor-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle)}.mock-dl-code-editor-status{font-size:var(--text-xs);color:var(--success)}.mock-dl-code-editor-status.error{color:var(--error)}.mock-dl-code-editor-status-dot{width:6px;height:6px;border-radius:var(--radius-full);background:var(--success)}.mock-dl-code-editor-status-dot.error{background:var(--error)}.mock-dl-selector-variants{margin-top:var(--sp-4)}.mock-dl-selector-variants-title{margin-bottom:var(--sp-3)}.mock-dl-selector-type-card{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--sp-3);background:var(--surface);transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.mock-dl-selector-type-card:hover{border-color:var(--purple)}.mock-dl-selector-type-card.active{border-color:var(--purple);box-shadow:0 0 0 2px var(--purple-soft)}.mock-dl-selector-type-name{margin-bottom:var(--sp-2)}.mock-dl-selector-type-preview{min-height:44px}.mock-dl-selector-type-preview input[type=text],.mock-dl-selector-type-preview input[type=date]{width:100%;padding:var(--sp-1) var(--sp-2);border:1px solid var(--border-default);border-radius:var(--radius-xs);font-size:var(--text-xxs);background:var(--surface-ink);color:var(--text-secondary);font-family:var(--font-sans)}.mock-dl-selector-type-preview .checkbox-group label{font-size:var(--text-xxs);color:var(--text-secondary)}.mock-dl-selector-type-preview .checkbox-group input{accent-color:var(--purple)}.mock-dl-selector-date-range{width:100%}.mock-dl-selector-date-range input{padding:var(--sp-1) var(--sp-1_5);border:1px solid var(--border-default);border-radius:var(--radius-xs);font-size:var(--text-2xs);background:var(--surface-ink);color:var(--text-secondary);font-family:var(--font-sans)}.mock-dl-selector-date-range-arrow{color:var(--text-placeholder);font-size:var(--text-mid)}.mock-dl-selector-chips-wrap{display:flex;flex-wrap:wrap;gap:var(--sp-1);padding:var(--sp-1);border:1px solid var(--border-default);border-radius:var(--radius-xs);background:var(--surface-ink);width:100%;min-height:28px}.mock-dl-selector-chip{padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:500}.mock-dl-selector-chip.purple{background:var(--purple-soft);color:var(--purple)}.mock-dl-selector-chip.blue{background:var(--blue-soft);color:var(--blue)}.mock-dl-selector-chip.pink{background:var(--pink-soft);color:var(--pink)}.mock-dl-selector-chip-x{font-size:var(--text-xxs);opacity:.6}.mock-dl-selector-chip-x:hover{opacity:1}.mock-dl-selector-type-use-btn{margin-top:var(--sp-2);width:100%;padding:var(--sp-1) 0;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-ink);font-size:var(--text-xxs);color:var(--text-secondary);font-family:var(--font-sans);transition:background var(--duration-fast),color var(--duration-fast)}.mock-dl-selector-type-use-btn:hover{background:var(--purple-soft);color:var(--purple);border-color:var(--purple)}.mock-dl-selector-demo{margin-top:var(--sp-4);padding:var(--sp-3);border:1px dashed var(--border-default);border-radius:var(--radius-md);display:none}.mock-dl-selector-demo.visible{display:block}.mock-dl-selector-demo-label{font-size:var(--text-2xs);font-weight:600;color:var(--text-placeholder);margin-bottom:var(--sp-2)}.mock-dl-ctx-menu{position:absolute;width:200px;background:var(--surface-ink);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:0 6px 24px #00000024;z-index:50;display:none;flex-direction:column;padding:var(--sp-1) 0}.mock-dl-ctx-menu.visible{display:flex}.mock-dl-ctx-item{padding:var(--sp-2) var(--sp-3);font-size:var(--text-xs);color:var(--text-secondary);transition:background .1s}.mock-dl-ctx-item:hover{background:var(--purple-soft);color:var(--purple)}.mock-dl-ctx-item svg{opacity:.7}.mock-dl-ctx-item:hover svg{opacity:1}.mock-dl-editor-narrow{max-width:560px}.mock-dl-collections-create{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-subtle)}.mock-dl-template-picker{border-bottom:1px solid var(--border-subtle);background:var(--surface-raised)}.mock-dl-template-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}.mock-dl-template-card{background:var(--surface-ink);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--sp-3);transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.mock-dl-template-card:hover{border-color:var(--purple);box-shadow:var(--neu-sm)}.mock-dl-template-icon{width:40px;height:40px;background:var(--purple-soft);border-radius:var(--radius-md);font-size:var(--text-xl)}.mock-dl-ql-select{max-width:180px}.mock-dl-geomap-select{max-width:160px}.mock-dl-geomap-select-sm{max-width:120px}.mock-dl-geomap-svg{opacity:.15}.mock-dl-chart-area-fixed{height:120px}.mock-dl-ctx-item-danger{color:var(--error)}.mock-dl-edit-undo-wrap{margin-left:var(--sp-3)}.mock-dl-empty-state{grid-column:1/-1;padding:var(--sp-8)}.mock-dl-revisions-create{padding:var(--sp-2) var(--sp-4) 0}.mock-dl-revisions-divider{height:1px;background:var(--border-subtle);margin:var(--sp-1) 0;flex-shrink:0}.mock-dl-revision-title--editable{display:inline-flex;align-items:center;gap:5px;cursor:text;border-radius:4px;padding:1px 3px;margin:-1px -3px;transition:background .15s}.mock-dl-revision-title--editable .mock-dl-revision-edit-icon{opacity:0;color:var(--text-placeholder);flex-shrink:0;transition:opacity .15s}.mock-dl-revision-title--editable:hover{background:var(--surface-hover)}.mock-dl-revision-title--editable:hover .mock-dl-revision-edit-icon{opacity:1}.mock-dl-revision-rename-input{width:100%;max-width:280px}.dl-filter-add-btn{margin-top:var(--sp-2)}.mock-dl-embed-code-label{letter-spacing:.5px;margin-bottom:var(--sp-2);text-transform:uppercase;font-weight:600;font-size:var(--text-xxs);color:var(--text-placeholder)}.mock-dl-embed-row-top{align-items:flex-start}.mock-dl-tenant-readonly{opacity:.7;cursor:default}.mock-dl-palette-panel{max-width:620px;width:100%}.dl-palette-add-color-btn{margin-top:var(--sp-2)}.mock-dl-conn-catalog-panel{max-width:860px;width:100%}.mock-dl-conn-catalog-search{width:220px}.mock-dl-conn-catalog-empty{text-align:center;padding:var(--sp-8) 0}.mock-dl-schedule-panel{max-width:480px;width:100%}.mock-dl-schedule-cron-hint{margin-top:var(--sp-0_5)}.mock-dl-rls-panel{max-width:780px;width:100%}.mock-dl-rls-enable-row{gap:var(--sp-2_5)}.mock-dl-rls-field-section{margin-top:var(--sp-5)}.mock-dl-selector-config-panel{max-width:560px}.mock-dl-leaflet-map{height:100%;width:100%;z-index:0}.mock-dl-stub-banner{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-3);background:color-mix(in srgb,var(--orange) 8%,transparent);border-bottom:1px solid color-mix(in srgb,var(--orange) 20%,transparent);flex-shrink:0}.mock-dl-cf-badge{font-size:var(--text-xxs);font-weight:600;color:var(--orange);background:color-mix(in srgb,var(--orange) 10%,transparent);border-radius:var(--radius-full);padding:1px var(--sp-1_5);white-space:nowrap;flex-shrink:0}.mock-dl-cf-source-clear{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--text-xxs);font-weight:500;color:var(--purple);background:var(--purple-soft);border:none;border-radius:var(--radius-full);padding:2px var(--sp-2);cursor:pointer;white-space:nowrap;transition:opacity .15s}.mock-dl-cf-source-clear:hover{opacity:.8}.mock-dl-cf-field-label{opacity:.65;font-weight:400}.mock-dl-cf-alias-tag{font-size:var(--text-xxs);font-weight:500;color:var(--purple);background:color-mix(in srgb,var(--purple) 15%,transparent);border-radius:var(--radius-full);padding:1px var(--sp-1_5);white-space:nowrap}.mock-dl-drill-breadcrumb{display:flex;align-items:center;flex-shrink:0}.mock-dl-drill-sep{color:var(--text-tertiary);font-size:var(--text-xxs);margin:0 var(--sp-0_5)}.mock-dl-drill-hint{text-align:center;padding-top:var(--sp-1);font-style:italic}.mock-dl-bookmark-btn{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-md);background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:var(--text-xs);transition:color .15s,background .15s}.mock-dl-bookmark-btn:hover{color:var(--purple);background:var(--purple-soft)}.mock-dl-bookmark-btn.active{color:var(--purple)}.mock-dl-bookmark-count{font-size:var(--text-xxs);font-weight:700;color:var(--purple);background:var(--purple-soft);border-radius:var(--radius-full);padding:0 var(--sp-1);min-width:14px;text-align:center}.mock-dl-bookmark-menu{right:0;top:calc(100% + 4px);min-width:220px;max-height:240px;overflow-y:auto}.mock-dl-bookmark-empty{font-size:var(--text-xs);color:var(--text-tertiary);padding:var(--sp-3) var(--sp-3);text-align:center}.mock-dl-bookmark-item{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);cursor:pointer;transition:background .15s}.mock-dl-bookmark-item:hover{background:var(--surface-hover)}.mock-dl-workbook-form{padding:var(--sp-4);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.mock-dl-workbook-card{padding:var(--sp-4);background:var(--surface-ink);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:box-shadow .15s}.mock-dl-workbook-card:hover{box-shadow:var(--shadow-sm)}.mock-dl-workbook-dash-item{padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-sm);transition:background .15s}.mock-dl-workbook-dash-item:hover{background:var(--surface-hover)}.mock-dl-workbook-dash-item span{font-size:var(--text-xs)}.mock-dl-workbook-card-footer{padding-top:var(--sp-3);border-top:1px solid var(--border-subtle);margin-top:auto}.oauth-callback-page{min-height:100vh;background:var(--surface)}.oauth-callback-panel{background:var(--surface-ink);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--sp-8);max-width:480px;width:90%}.oauth-callback-icon{font-size:2.5rem;color:var(--success)}.oauth-callback-token{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--sp-3);font-size:var(--text-xs);word-break:break-all;color:var(--text-secondary)}.mock-dl-integrations-page{padding:var(--sp-5);background:var(--surface)}.mock-dl-int-sections{display:flex;flex-direction:column;gap:var(--sp-8)}.mock-dl-int-section-header{display:flex;align-items:baseline;gap:var(--sp-3);padding-bottom:var(--sp-3);border-bottom:1px solid var(--border-default);margin-bottom:var(--sp-4)}.mock-dl-int-section-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.mock-dl-int-section-desc{font-size:var(--text-xs);color:var(--text-tertiary)}.mock-dl-int-section-count{margin-left:auto;font-size:var(--text-xxs);color:var(--text-placeholder)}.mock-dl-integration-webhook-events{padding:var(--sp-4);background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-md)}.mock-dl-integration-conn-row{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2_5) var(--sp-3);background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-sm)}.mock-dl-oauth-hint{display:inline-block;margin-top:var(--sp-1);font-size:var(--text-xs);color:var(--purple);text-decoration:none;transition:opacity var(--transition-fast)}.mock-dl-oauth-hint:hover{opacity:.75}.mock-dl-editor-back{display:flex;align-items:center;gap:var(--sp-1_5);background:none;border:none;padding:0;cursor:pointer;color:var(--text-secondary);font-size:var(--text-sm);font-weight:600;transition:color var(--transition-fast)}.mock-dl-editor-back:hover{color:var(--text-primary)}.mock-dl-editor-back svg{flex-shrink:0}.mock-dl-integration-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);text-align:center}.mock-dl-cache-age{font-size:var(--text-2xs);color:var(--text-tertiary);white-space:nowrap;opacity:.7;transition:opacity var(--transition-fast)}.mock-dl-cache-age:hover{opacity:1}.mock-dl-card--alert-red{box-shadow:0 0 0 2px #ef444459,var(--neu-lg);transition:box-shadow var(--duration-base)}.mock-dl-card--alert-yellow{box-shadow:0 0 0 2px #f59e0b59,var(--neu-lg);transition:box-shadow var(--duration-base)}.mock-dl-card--alert-green{box-shadow:0 0 0 2px color-mix(in srgb,var(--success) 35%,transparent),var(--neu-lg);transition:box-shadow var(--duration-base)}.color-alert-red{color:var(--error)}.color-alert-yellow{color:var(--warning)}.color-alert-green{color:var(--success)}.mock-dl-threshold-badge{font-size:var(--text-2xs);font-weight:600;opacity:.8;margin-top:var(--sp-1)}.mock-dl-card-toolbar{min-width:0;flex-shrink:0;position:relative}.mock-dl-card-header--stacked{display:flex;flex-direction:column;gap:var(--sp-1);align-items:stretch}.mock-dl-card-header--stacked .mock-dl-card-toolbar{order:-1;width:100%}.mock-dl-card-header--stacked .mock-dl-card-btns{justify-content:flex-end;width:100%}.mock-dl-card-btns{flex-wrap:wrap;justify-content:flex-end;row-gap:var(--sp-1)}.mock-dl-row>div:has(.mock-dl-card:hover),.mock-dl-grid>div:has(.mock-dl-card:hover){z-index:20}.mock-dl-row>div:has(.mock-dl-widget-menu),.mock-dl-grid>div:has(.mock-dl-widget-menu){position:relative;z-index:200}.mock-dl-card.menu-open{position:relative;z-index:200}.react-grid-item:has(.mock-dl-widget-menu){z-index:50}.mock-dl-table-view{flex:1;min-height:0;max-height:180px}.mock-dl-data-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.mock-dl-data-table th{text-align:left;padding:3px 6px;color:var(--text-placeholder);font-weight:500;border-bottom:1px solid var(--border-default);position:sticky;top:0;background:var(--surface-ink)}.mock-dl-data-table th:last-child{text-align:right}.mock-dl-data-table td{padding:3px 6px;color:var(--text-primary);border-bottom:1px solid var(--border-subtle, var(--border-default));max-width:200px}.mock-dl-data-table td.text-right{text-align:right}.mock-dl-data-table tr:last-child td{border-bottom:none}.mock-dl-data-table tr:hover td{background:var(--surface-raised)}.mock-dl-data-table .mock-dl-table-delta{font-variant-numeric:tabular-nums;white-space:nowrap}.mock-dl-data-table .mock-dl-table-delta--up{color:var(--success)}.mock-dl-data-table .mock-dl-table-delta--down{color:var(--error)}.mock-dl-data-table .mock-dl-table-delta--flat{color:var(--text-tertiary)}.mock-dl-snapshot-banner{padding:.5rem 1rem;background:color-mix(in srgb,var(--warning) 12%,var(--surface-default));border-bottom:1px solid color-mix(in srgb,var(--warning) 30%,var(--border-default));font-size:.8125rem;color:var(--text-primary);flex-shrink:0}.mock-dl-snapshot-banner strong{font-weight:600}.mock-dl-snapshot-banner .mock-dl-snapshot-exit{font-size:.75rem;color:var(--text-secondary);background:none;border:1px solid var(--border-default);border-radius:6px;padding:.25rem .625rem;cursor:pointer;transition:background .15s,color .15s}.mock-dl-snapshot-banner .mock-dl-snapshot-exit:hover{background:var(--surface-hover);color:var(--text-primary)}.mock-dl-report-header{display:flex;align-items:center;gap:1rem;padding:.625rem 1rem;border-bottom:1px solid var(--border-default);background:var(--surface-ink);flex-shrink:0}.mock-dl-report-header .mock-dl-report-header-logo{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.mock-dl-report-header .mock-dl-report-header-title{flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mock-dl-report-header .mock-dl-report-header-client{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mock-dl-report-header .mock-dl-report-header-period{flex:1;text-align:right;white-space:nowrap;font-size:var(--text-xs);color:var(--text-tertiary);text-transform:capitalize}.mock-dl-report-logo-box{width:28px;height:28px;border-radius:var(--radius-sm);background:var(--purple);color:#fff;font-size:var(--text-sm);font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:0}.mock-dl-report-public{background:var(--bg-default);min-height:100vh}.mock-dl-report-body{padding:1rem}.mock-dl-report-snapshots{padding:.375rem 1rem;border-bottom:1px solid var(--border-subtle, var(--border-default));background:var(--surface-raised)}.mock-dl-report-snap-btn{padding:2px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:var(--text-xxs);transition:background .15s}.mock-dl-report-snap-btn:hover{background:var(--surface-raised)}.mock-dl-report-snap-btn.active{background:var(--purple);color:var(--text-on-accent, #fff);border-color:var(--purple)}.mock-dl-report-snap-period{display:block;font-size:var(--text-3xs);opacity:.7;margin-top:1px}.mock-dl-report-period-ctl{padding:.4rem 1rem;border-bottom:1px dashed var(--border-default)}.mock-dl-report-date-input{padding:2px 6px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-ink, transparent);color:var(--text-primary);font-size:var(--text-xxs)}.mock-dl-report-snapshot-badge{padding:.25rem 1rem;background:var(--surface-3, var(--surface-raised));border-bottom:1px dashed var(--border-default)}.mock-dl-report-footer{padding:.5rem 1rem;border-top:1px solid var(--border-default);background:var(--surface-ink)}.mock-dl-report-print-btn{display:flex;align-items:center;gap:.375rem;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:transparent;color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.mock-dl-report-print-btn:hover{background:var(--surface-raised);color:var(--text-primary)}@media print{.no-print,.mock-dl-report-snapshots,.mock-dl-report-snapshot-badge{display:none!important}@page{margin:16mm 14mm;size:A4}body{background:#fff!important;color:#1a1a1a!important}.mock-dl-report-public{background:#fff;min-height:auto}.mock-dl-report-header{background:#fff;border-bottom:1px solid #e2e8f0;padding:8px 0}.mock-dl-card{break-inside:avoid;page-break-inside:avoid;border:1px solid #e2e8f0!important;box-shadow:none!important;background:#fff!important}canvas{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.mock-dl-report-footer{border-top:1px solid #e2e8f0;background:#fff;margin-top:1rem}}.mock-dl-report-tmpl-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:600;display:flex;align-items:center;justify-content:center;padding:1.5rem}.mock-dl-report-tmpl-panel{width:100%;max-width:640px;max-height:90vh}.mock-dl-report-tmpl-panel .mock-dl-editor-footer{justify-content:space-between}.mock-dl-report-tmpl-cards{grid-template-columns:repeat(3,1fr)}@media (max-width: 540px){.mock-dl-report-tmpl-cards{grid-template-columns:1fr}}.mock-dl-report-tmpl-cards .mock-dl-report-tmpl-card-list,.mock-dl-report-tmpl-cards .mock-dl-report-tmpl-card-footer{text-align:left}.mock-dl-report-tmpl-card-list{list-style:none;padding:0;margin:var(--sp-2) 0 0;display:flex;flex-direction:column;gap:var(--sp-1);flex:1}.mock-dl-report-tmpl-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--border-subtle)}.mock-dl-report-tmpl-sources-list{text-transform:uppercase;letter-spacing:.04em}.mock-dl-report-tmpl-preview{padding:var(--sp-3);border-radius:var(--radius-md);background:var(--surface-inset);border:1px solid var(--border-subtle)}.mock-dl-report-tmpl-preview-row{padding:var(--sp-1) 0;border-bottom:1px solid var(--border-subtle)}.mock-dl-report-tmpl-preview-row:last-child{border-bottom:none}.mock-dl-report-tmpl-preview-row .truncate{color:var(--text-primary)}.mock-dl-report-tmpl-empty{padding:var(--sp-8) var(--sp-4);text-align:center;color:var(--text-secondary)}.mock-dl-report-tmpl-note{display:flex;align-items:flex-start;gap:.5rem;padding:.625rem .75rem;border-radius:var(--radius-md);background:var(--surface-inset);border:1px solid var(--border-subtle);line-height:1.5}.mock-dl-report-tmpl-note svg{flex-shrink:0;margin-top:1px}.mock-dl-section-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--border-subtle);background:var(--surface-1);width:100%;height:100%}.mock-dl-section-header .mock-dl-section-header-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.04em}.mock-dl-view-sections{display:flex;flex-direction:column}.mock-dl-section-block.is-dragging{opacity:.45}.mock-dl-section-header--block{height:auto;padding:var(--sp-2) var(--sp-3);position:sticky;top:0;z-index:10;border-top:1px solid var(--border-subtle)}.mock-dl-section-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--text-tertiary);cursor:grab;flex-shrink:0;padding:0}.mock-dl-section-drag-handle:hover{color:var(--text-secondary);background:var(--surface-inset)}.mock-dl-section-drag-handle:active{cursor:grabbing}.mock-dl-section-collapse-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;flex-shrink:0;margin-left:auto;padding:0}.mock-dl-section-collapse-btn:hover{color:var(--text-primary);background:var(--surface-inset)}.mock-dl-section-empty-hint{grid-column:1/-1;padding:var(--sp-4);text-align:center;border:1px dashed var(--border-subtle);border-radius:var(--radius-md)}.mock-dl-section-action-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;flex-shrink:0;padding:0}.mock-dl-section-action-btn:hover{color:var(--text-secondary);background:var(--surface-inset)}.mock-dl-section-action-btn--danger:hover{color:var(--color-error, #e53e3e);background:var(--surface-inset)}.mock-dl-section-footer{padding:var(--sp-2) var(--sp-4);flex-wrap:wrap;gap:var(--sp-2)}.mock-dl-add-section-btn{background:none;border:1px dashed var(--border-subtle);border-radius:var(--radius-sm);padding:var(--sp-1) var(--sp-2);cursor:pointer;color:var(--text-tertiary);transition:color .15s,border-color .15s}.mock-dl-add-section-btn:hover{color:var(--text-secondary);border-color:var(--border-default)}.mock-dl-section-drag-ghost{background:var(--surface-raised);border-radius:var(--radius-md);box-shadow:var(--neu-xl);opacity:.9;cursor:grabbing;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-default)}.mock-dl-section-icon{width:24px;height:24px;border-radius:var(--radius-sm);flex-shrink:0}.mock-dl-add-section-form{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-2) var(--sp-4);background:var(--surface-inset);border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.mock-dl-section-icon-picker{display:flex;align-items:center;gap:var(--sp-1)}.mock-dl-section-pick-icon{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--surface);cursor:pointer;transition:border-color .15s,background .15s}.mock-dl-section-pick-icon:hover{border-color:var(--border-default)}.mock-dl-section-pick-icon.active{border-color:var(--purple);background:var(--surface-raised)}.mock-dl-section-color-picker{display:flex;align-items:center;gap:var(--sp-1)}.mock-dl-section-pick-color{width:14px;height:14px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:border-color .15s,transform .1s;outline:2px solid transparent}.mock-dl-section-pick-color.icon-blue{background:var(--blue)}.mock-dl-section-pick-color.icon-green{background:var(--green)}.mock-dl-section-pick-color.icon-purple{background:var(--purple)}.mock-dl-section-pick-color.icon-orange{background:var(--orange)}.mock-dl-section-pick-color:hover{transform:scale(1.15)}.mock-dl-section-pick-color.active{border-color:var(--surface);outline-color:currentColor;transform:scale(1.2)}.mock-dl-report-section{margin-bottom:var(--sp-8)}.mock-dl-report-section-header{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);padding-bottom:var(--sp-3);border-bottom:1px solid var(--border-subtle)}.mock-dl-report-section-title{font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.mock-dl-report-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-4)}@media print{.mock-dl-report-section{break-before:auto}.mock-dl-report-section:not(:first-child){break-before:page}}.mock-dl-widget-menu-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-sm);background:transparent;border:none;cursor:pointer;color:var(--text-tertiary);transition:background .15s,color .15s;flex-shrink:0}.mock-dl-widget-menu-btn:hover,.mock-dl-widget-menu-btn.active{background:var(--surface-hover);color:var(--text-primary)}.dp-portal-menu{margin:0}.mock-dl-widget-menu{z-index:1100;min-width:164px;max-width:min(280px,100vw - 24px);overflow-y:auto}.mock-dl-section-pick{z-index:1101;overflow-y:auto}.mock-dl-dropdown-item--danger{color:var(--color-error, #e53e3e)}.mock-dl-dropdown-item--danger:hover{background:var(--surface-hover);color:var(--color-error, #e53e3e)}.mock-dl-tmpl-builder-inner{width:660px}.mock-dl-tmpl-builder-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle)}.mock-dl-tmpl-builder-row:last-child{border-bottom:none}.mock-dl-tmpl-builder-drag{color:var(--text-placeholder);cursor:grab;padding:var(--sp-1);flex-shrink:0}.mock-dl-tmpl-builder-drag:active{cursor:grabbing}.mock-dl-tmpl-color-picker{display:flex;gap:var(--sp-1);flex-shrink:0}.mock-dl-tmpl-color-dot{width:14px;height:14px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:border-color var(--duration-fast)}.mock-dl-tmpl-color-dot.is-active{border-color:var(--text-primary)}.mock-dl-tmpl-builder-widgets{display:flex;flex-wrap:wrap;gap:var(--sp-1_5) var(--sp-3);padding:var(--sp-2) 0 var(--sp-2) var(--sp-6);border-bottom:1px solid var(--border-subtle)}.mock-dl-issue-list{padding:0 var(--sp-2);display:flex;flex-direction:column;gap:2px}.mock-dl-issue-row,.mock-dl-issue-list-row{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);min-height:32px}.mock-dl-issue-row:hover,.mock-dl-issue-list-row:hover{background:var(--surface-hover, var(--surface-inset))}.mock-dl-issue-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.mock-dl-issue-status-dot--backlog,.mock-dl-issue-status-dot--unstarted{background:var(--text-placeholder)}.mock-dl-issue-status-dot--started{background:var(--blue)}.mock-dl-issue-status-dot--completed{background:var(--green)}.mock-dl-issue-status-dot--cancelled{background:var(--error)}.mock-dl-issue-priority-badge{padding:1px 5px;border-radius:var(--radius-xs);background:var(--surface-overlay, var(--surface-inset));color:var(--text-secondary);white-space:nowrap}.mock-dl-issue-due{white-space:nowrap}.mock-dl-progress-widget{padding:var(--space-sm, var(--sp-2))}.mock-dl-progress-bar-track{height:8px;border-radius:var(--radius-sm);background:var(--surface-inset);overflow:hidden}.mock-dl-progress-bar-fill{height:100%;width:var(--pct, 0%);border-radius:var(--radius-sm);background:var(--green);transition:width .4s ease}.mock-dl-progress-bar-fill.mock-dl-progress-bar--purple{background:var(--purple)}.mock-dl-progress-bar-fill.mock-dl-progress-bar--blue{background:var(--blue)}.mock-dl-progress-bar-fill.mock-dl-progress-bar--green{background:var(--green)}.mock-dl-progress-bar-fill.mock-dl-progress-bar--orange{background:var(--orange, #F97316)}.mock-dl-progress-bar-fill.mock-dl-progress-bar--pink{background:var(--pink)}.dp-ta-left{text-align:left}.dp-ta-center{text-align:center}.dp-ta-right{text-align:right}.mock-dl-comparison-widget{padding:var(--sp-2)}.mock-dl-comparison-row{padding:var(--sp-1) 0;border-bottom:1px solid var(--border-subtle)}.mock-dl-comparison-row:last-of-type{border-bottom:none}.mock-dl-comparison-val{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.mock-dl-comparison-delta{font-size:var(--text-sm);font-weight:700}.mock-dl-comparison-delta.positive{color:var(--green)}.mock-dl-comparison-delta.negative{color:var(--error)}.mock-dl-comparison-bar-track{height:8px;border-radius:var(--radius-sm);background:var(--surface-inset);overflow:hidden;margin-top:var(--sp-1)}.mock-dl-comparison-bar-fill{height:100%;width:var(--pct, 0%);border-radius:var(--radius-sm);transition:width .4s ease}.mock-dl-comparison-bar-fill.mock-dl-comparison-bar--purple{background:var(--purple)}.mock-dl-comparison-bar-fill.mock-dl-comparison-bar--blue{background:var(--blue)}.mock-dl-comparison-bar-fill.mock-dl-comparison-bar--green{background:var(--green)}.mock-dl-comparison-bar-fill.mock-dl-comparison-bar--orange{background:var(--orange, #F97316)}.mock-dl-comparison-cfg-group{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface)}.mock-dl-comparison-cfg-dir label{-webkit-user-select:none;user-select:none}.mock-dl-notetbl-widget{padding:0;overflow:hidden}.mock-dl-notetbl-scroll{overflow:auto;flex:1;min-height:0}.mock-dl-notetbl-widget-empty{display:flex;align-items:center;justify-content:center;flex:1;font-size:var(--text-xs);color:var(--text-tertiary)}.dl-delta{font-variant-numeric:tabular-nums;font-weight:600}.dl-delta--pos{color:var(--success)}.dl-delta--neg{color:var(--error)}.dl-delta--zero{color:var(--text-tertiary);font-weight:500}.dl-dval{font-variant-numeric:tabular-nums}.dl-dsup{font-size:.7em;margin-left:2px;font-weight:600;vertical-align:super}.dl-dsup--pos{color:var(--success)}.dl-dsup--neg{color:var(--error)}.dl-dsup--zero{color:var(--text-tertiary)}.mock-dl-notetbl-table .cval{display:flex;align-items:center;gap:var(--sp-1_5);width:100%;min-width:0;overflow:hidden}.mock-dl-notetbl-table .cval.r{justify-content:flex-end}.mock-dl-notetbl-table .ctext{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mock-dl-notetbl-table .cmono{font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.mock-dl-notetbl-table .cplace{color:var(--text-placeholder)}.mock-dl-notetbl-table a.clink{color:var(--blue);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mock-dl-notetbl-table a.clink:hover{text-decoration:underline}.mock-dl-notetbl-table .badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:1px var(--sp-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500;line-height:1.6;white-space:nowrap}.mock-dl-notetbl-table .badge .dot{width:6px;height:6px;border-radius:var(--radius-full);background:currentColor;opacity:.9}.mock-dl-notetbl-table .b-blue{background:var(--blue-soft);color:var(--blue)}.mock-dl-notetbl-table .b-purple{background:var(--purple-soft);color:var(--purple)}.mock-dl-notetbl-table .b-pink{background:var(--pink-soft);color:var(--pink)}.mock-dl-notetbl-table .b-green{background:var(--green-soft);color:var(--green)}.mock-dl-notetbl-table .b-orange{background:var(--orange-soft);color:var(--orange)}.mock-dl-notetbl-table .b-error{background:var(--error-soft);color:var(--error)}.mock-dl-notetbl-table .b-gray{background:var(--gray-200);color:var(--text-secondary)}.mock-dl-notetbl-table .chips{display:flex;gap:var(--sp-1);flex-wrap:nowrap;overflow:hidden}.mock-dl-notetbl-table .lchip{display:inline-flex;align-items:center;gap:var(--sp-1);height:22px;padding:0 var(--sp-1_5) 0 var(--sp-1);border-radius:var(--radius-s, 6px);background:var(--surface-inset);font-size:var(--text-xs);color:var(--text-primary);white-space:nowrap;flex:none;max-width:148px}.mock-dl-notetbl-table .lchip .lc-dot{width:16px;height:16px;border-radius:var(--radius-xs, 4px);display:grid;place-items:center;color:#fff;font-size:8px;font-weight:700;flex:none}.mock-dl-notetbl-table .lchip .lc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mock-dl-notetbl-table .bg-blue{background:var(--blue)}.mock-dl-notetbl-table .bg-purple{background:var(--purple)}.mock-dl-notetbl-table .bg-pink{background:var(--pink)}.mock-dl-notetbl-table .lc-more{display:inline-flex;align-items:center;height:22px;padding:0 var(--sp-1_5);border-radius:var(--radius-s, 6px);background:var(--surface-inset);font-size:var(--text-2xs);font-weight:600;color:var(--text-tertiary);flex:none;font-variant-numeric:tabular-nums}.mock-dl-notetbl-table .cuser{display:inline-flex;align-items:center;gap:var(--sp-1_5);min-width:0}.mock-dl-notetbl-table .uav{width:20px;height:20px;border-radius:var(--radius-full);display:grid;place-items:center;color:#fff;font-size:var(--text-3xs);font-weight:600;flex:none}.mock-dl-notetbl-table .u-blue{background:var(--blue)}.mock-dl-notetbl-table .u-pink{background:var(--pink)}.mock-dl-notetbl-table .u-purple{background:var(--purple)}.mock-dl-notetbl-table .u-green{background:var(--green)}.mock-dl-notetbl-table .cb{width:15px;height:15px;border-radius:var(--radius-xs, 4px);border:1.5px solid var(--border-strong);display:inline-grid;place-items:center;color:transparent}.mock-dl-notetbl-table .cb.on{background:var(--green);border-color:var(--green);color:#fff}.mock-dl-notetbl-table .cb .ic,.mock-dl-notetbl-table .cb svg{width:10px;height:10px}.mock-dl-notetbl-table .stars{display:inline-flex;gap:1px;color:var(--orange)}.mock-dl-notetbl-table .stars .off{color:var(--gray-300)}.mock-dl-notetbl-table .stars .ic{width:13px;height:13px}.mock-dl-notetbl-table .bar{height:5px;border-radius:var(--radius-full);background:var(--gray-200);width:48px;overflow:hidden;flex:none}.mock-dl-notetbl-table .bar>i{display:block;height:100%;background:var(--green);border-radius:var(--radius-full)}.mock-dl-notetbl-table .atts{display:inline-flex;align-items:center;gap:var(--sp-1);overflow:hidden}.mock-dl-notetbl-table .att-thumb{width:22px;height:22px;object-fit:cover;border-radius:var(--radius-xs, 4px);flex:none;box-shadow:inset 0 0 0 1px var(--border-subtle)}.mock-dl-notetbl-table .att-file{display:inline-flex;align-items:center;gap:3px;flex:none;max-width:120px;padding:1px var(--sp-1_5);background:var(--surface-inset);border-radius:var(--radius-full);font-size:var(--text-xs);color:var(--text-secondary)}.mock-dl-notetbl-table .att-file .att-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mock-dl-notetbl-table .att-file svg{width:11px;height:11px;flex:none}.mock-dl-notetbl-table .platlink{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--text-xs);color:var(--text-secondary)}.mock-dl-notetbl-table .platlink .pdot{width:8px;height:8px;border-radius:2px;flex:none}.mock-dl-nt-cell--cf{color:#1a202c}.mock-dl-nt-cell--cf .cmono,.mock-dl-nt-cell--cf .ctext,.mock-dl-nt-cell--cf .cplace{color:inherit}.mock-dl-notetbl-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.mock-dl-notetbl-table th{padding:var(--sp-1) var(--sp-2);text-align:left;font-weight:600;color:var(--text-secondary);background:var(--surface);border-bottom:1px solid var(--border-subtle);white-space:nowrap;position:sticky;top:0;z-index:1}.mock-dl-notetbl-table td{padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mock-dl-notetbl-table tr:last-child td{border-bottom:none}.mock-dl-notetbl-table tr:hover td{background:var(--surface-raised)}.mock-dl-notetbl-agg-row td{border-top:1px solid var(--border-subtle)!important;border-bottom:none!important;background:var(--surface)!important}.mock-dl-notetbl-agg-row td:hover{background:var(--surface)!important}.mock-dl-notetbl-agg-cell{padding:var(--sp-0_5) var(--sp-2)!important;font-size:var(--text-xxs)!important;font-weight:600;color:var(--text-secondary)!important;font-family:var(--font-mono, monospace);white-space:nowrap}.mock-dl-ds-browser{width:min(860px,94vw);max-height:80vh;min-height:480px;background:var(--surface-ink);border-radius:var(--radius-xl);box-shadow:0 8px 32px #00000026;display:flex;flex-direction:column;overflow:hidden}.mock-dl-ds-browser-body{display:grid;grid-template-columns:152px 244px 1fr;flex:1;height:0;overflow:hidden;border-top:1px solid var(--border-subtle)}.mock-dl-ds-browser-tabs{padding:var(--sp-3) var(--sp-2);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:2px;background:var(--surface)}.mock-dl-ds-browser-tab{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);font-size:var(--text-sm);transition:background var(--duration-fast),color var(--duration-fast)}.mock-dl-ds-browser-tab svg{flex-shrink:0}.mock-dl-ds-browser-tab:hover{background:var(--surface-hover);color:var(--text-primary)}.mock-dl-ds-browser-tab.active{background:var(--surface-raised);color:var(--text-primary);font-weight:500}.mock-dl-ds-browser-picker{padding:var(--sp-4);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--sp-2);overflow-y:auto}.mock-dl-ds-browser-section-label{font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary);letter-spacing:.07em;text-transform:uppercase;margin-top:var(--sp-2);margin-bottom:var(--sp-1)}.mock-dl-ds-browser-section-label:first-child{margin-top:0}.mock-dl-ds-browser-item{display:flex;flex-direction:column;gap:2px;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);cursor:pointer;min-height:36px;justify-content:center;transition:background var(--duration-fast)}.mock-dl-ds-browser-item:hover{background:var(--surface-hover)}.mock-dl-ds-browser-item.selected{background:var(--surface-raised);outline:1px solid var(--purple);outline-offset:-1px}.mock-dl-ds-browser-preview{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2);overflow-y:auto}.mock-dl-ds-browser-preview-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);min-height:32px}.mock-dl-ds-browser-preview-row:hover{background:var(--surface-hover)}.mock-dl-ds-browser-type-badge{display:inline-block;padding:2px 6px;border-radius:var(--radius-xs);background:var(--surface-inset);color:var(--text-tertiary);font-size:var(--text-xxs)}.mock-dl-ds-preview-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.mock-dl-ds-preview-table th,.mock-dl-ds-preview-table td{padding:3px 6px;text-align:left;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mock-dl-ds-preview-table th{font-size:var(--text-xxs);color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle)}.mock-dl-ds-preview-table tr+tr td{border-top:1px solid var(--border-subtle)}.mock-dl-label-chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px 6px;border-radius:var(--radius-sm);background:var(--surface-overlay, var(--surface-inset));font-size:var(--text-xxs)}.mock-dl-label-chip button{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:0;line-height:1}.csat-dashboard{padding:var(--sp-4) var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4);overflow-y:auto;flex:1}.csat-filters{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.csat-error{color:var(--red);font-size:var(--text-sm);padding:var(--sp-2) var(--sp-3);background:color-mix(in srgb,var(--red) 8%,transparent);border-radius:var(--radius-sm)}.csat-skeleton-grid,.csat-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3)}.csat-kpi-card{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-4);display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);text-align:center}.csat-kpi-emoji{font-size:var(--text-2_5xl);line-height:1}.csat-kpi-value{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary)}.csat-kpi-label{font-size:var(--text-xs);color:var(--text-tertiary)}.csat-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.csat-panel{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.csat-panel--full{grid-column:1/-1}.csat-panel-title{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.csat-empty{font-size:var(--text-sm);color:var(--text-tertiary);text-align:center;padding:var(--sp-4) 0}.csat-dist-bar{display:flex;flex-direction:column;gap:var(--sp-2)}.csat-dist-row{display:flex;align-items:center;gap:var(--sp-2)}.csat-dist-label{font-size:var(--text-md);width:22px;text-align:center;flex-shrink:0}.csat-dist-track{flex:1;height:10px;background:var(--surface-sunken);border-radius:var(--radius-pill);overflow:hidden}.csat-dist-fill{height:100%;width:var(--bar-w, 0%);border-radius:var(--radius-pill);transition:width .4s ease}.csat-dist-fill--score-1{background:var(--red)}.csat-dist-fill--score-2{background:var(--orange)}.csat-dist-fill--score-3{background:var(--green)}.csat-dist-fill--score-4{background:var(--purple)}.csat-dist-count{font-size:var(--text-xs);color:var(--text-tertiary);min-width:70px;text-align:right}.csat-week-chart{display:flex;align-items:flex-end;gap:var(--sp-3);height:100px}.csat-week-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);height:100%}.csat-week-bar-wrap{flex:1;width:100%;display:flex;align-items:flex-end}.csat-week-bar{width:100%;height:var(--bar-h, 0%);background:var(--purple);border-radius:var(--radius-sm) var(--radius-sm) 0 0;min-height:2px;transition:height .4s ease}.csat-week-label{font-size:var(--text-xxs);color:var(--text-tertiary);white-space:nowrap}.csat-week-avg{font-size:var(--text-xxs);color:var(--purple);font-weight:600}.csat-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.csat-table th{text-align:left;padding:var(--sp-1_5) var(--sp-2);color:var(--text-tertiary);font-weight:500;border-bottom:1px solid var(--border-subtle);font-size:var(--text-xs)}.csat-table td{padding:var(--sp-1_5) var(--sp-2);color:var(--text-primary);border-bottom:1px solid var(--border-subtle)}.csat-table tr:last-child td{border-bottom:none}.csat-score-badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:500}.csat-score-badge--score-1{background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red)}.csat-score-badge--score-2{background:color-mix(in srgb,var(--orange) 12%,transparent);color:var(--orange)}.csat-score-badge--score-3{background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green)}.csat-score-badge--score-4{background:color-mix(in srgb,var(--purple) 12%,transparent);color:var(--purple)}.dp-edit-toolbar-sticky{position:sticky;top:0;z-index:50;background:var(--surface);box-shadow:0 2px 6px #00000014}.dp-history-btn .badge{margin-left:var(--sp-1)}.dp-history-tabs{padding:var(--sp-3) var(--sp-4) 0;border-bottom:1px solid var(--border-subtle)}.dp-history-tabs .badge{margin-left:var(--sp-1)}.dp-history-filters{flex-wrap:wrap}.dp-history-item{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-default)}.dp-history-item:hover{background:var(--surface-hover)}.dp-history-item+.dp-history-item{border-top:1px solid var(--border-subtle)}.dp-history-snap-create{align-items:center}.dp-history-snap-item{padding:var(--sp-3);border-radius:var(--radius-sm);background:var(--surface-raised);transition:background var(--duration-fast) var(--ease-default)}.dp-history-snap-item:hover{background:var(--surface-hover)}.mock-ab{flex-direction:row;background:var(--surface);--tab-accent: var(--orange)}.mock-ab .btn-accent{background:var(--orange)}.mock-ab-sidebar{width:200px;min-width:200px;background:var(--surface-ink);border-right:1px solid var(--border-subtle)}.mock-ab-sidebar-logo{padding:var(--sp-3_5) var(--sp-4);font-size:var(--text-base);font-weight:700;color:var(--orange);border-bottom:1px solid var(--border-subtle)}.mock-ab-sidebar-logo svg{width:18px;height:18px}.mock-ab-sidebar-nav{padding:var(--sp-2);gap:var(--sp-0_5)}.mock-ab-sidebar-item{padding:var(--sp-2) 10px;border-radius:var(--radius-s);font-size:var(--text-sm);color:var(--text-secondary);transition:background .1s}.mock-ab-sidebar-item:hover{background:var(--border-subtle)}.mock-ab-sidebar-item.active{background:var(--orange-soft);color:var(--orange);font-weight:500}.mock-ab-sidebar-item svg{width:16px;height:16px}.mock-ab-sidebar-section{font-size:var(--text-2xs);font-weight:600;color:var(--text-placeholder);padding:var(--sp-3) 10px 4px}.mock-ab-sidebar-bottom{padding:var(--sp-2);border-top:1px solid var(--border-subtle);gap:var(--sp-0_5)}.mock-ab-header{padding:var(--sp-2_5) var(--sp-5);border-bottom:1px solid var(--border-subtle);background:var(--surface-ink)}.mock-ab-tabs{display:flex;gap:0;margin-left:var(--sp-6)}.mock-ab-canvas{background-image:radial-gradient(circle,var(--gray-300) 1px,transparent 1px);background-size:20px 20px}[data-theme=dark] .mock-ab-canvas{background-image:radial-gradient(circle,var(--gray-300) .5px,transparent .5px)}.mock-ab-node{position:absolute;left:var(--node-x, 0);top:var(--node-y, 0);background:var(--surface-ink);border-radius:var(--radius-sm);padding:var(--sp-3) var(--sp-4);box-shadow:0 2px 8px #0000001a;font-size:var(--text-xs);font-weight:500;color:var(--text-primary)}.mock-ab-node-icon{width:28px;height:28px;border-radius:var(--radius-s);font-size:var(--text-mid)}.mock-ab-nodes-panel{position:absolute;left:0;top:0;bottom:0;width:260px;background:var(--surface-ink);border-right:1px solid var(--border-subtle);display:none;flex-direction:column;z-index:5;animation:slideInLeft .2s var(--ease-default)}.mock-ab-nodes-panel.visible{display:flex}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}.mock-ab-nodes-header{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.mock-ab-nodes-search{margin:var(--sp-2) var(--sp-3);padding:var(--sp-2) 10px;border-radius:var(--radius-s);border:1px solid var(--border-default);background:var(--surface);font-size:var(--text-xs);color:var(--text-primary);font-family:var(--font-sans)}.mock-ab-nodes-category{font-size:var(--text-2xs);font-weight:600;color:var(--text-placeholder);padding:var(--sp-2_5) 16px 4px}.mock-ab-nodes-list{padding:0 var(--sp-2) var(--sp-2);gap:var(--sp-0_5)}.mock-ab-node-item{padding:var(--sp-2) 10px;border-radius:var(--radius-s);font-size:var(--text-xs);color:var(--text-secondary)}.mock-ab-node-item:hover{background:var(--border-subtle)}.mock-ab-node-item-icon{width:24px;height:24px;border-radius:var(--radius-s);font-size:var(--text-xxs)}.mock-ab-section{background:var(--surface)}.mock-ab-section.hidden{display:none}.mock-ab-cred-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-ab-cred-header h2{font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.mock-ab-cred-header h3{font-size:var(--text-base);font-weight:600;margin:0}.mock-ab-cred-list{padding:var(--sp-2) var(--sp-3);gap:var(--sp-0_5)}.mock-ab-cred-row{padding:var(--sp-2_5) var(--sp-3);border-radius:var(--radius-sm);transition:background .1s}.mock-ab-cred-row:hover{background:var(--border-subtle)}.mock-ab-cred-icon{width:32px;height:32px;border-radius:var(--radius-sm);font-size:var(--text-sm)}.mock-ab-cred-info{gap:var(--sp-0_5)}.mock-ab-cred-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.mock-ab-cred-type{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-ab-cred-used{font-size:var(--text-xxs);color:var(--text-placeholder)}.mock-ab-tpl-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-ab-tpl-header h2{font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.mock-ab-tpl-search{max-width:260px;padding:var(--sp-1_5) var(--sp-2_5);border-radius:var(--radius-s);border:1px solid var(--border-default);background:var(--surface-ink);font-size:var(--text-xs);color:var(--text-primary);font-family:var(--font-sans)}.mock-ab-tpl-grid{padding:var(--sp-4) var(--sp-5);display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-4);align-content:start}.mock-ab-tpl-card{background:var(--surface-ink);border-radius:var(--radius-base);padding:var(--sp-4);box-shadow:0 1px 3px #0000000f;transition:transform .1s,box-shadow .1s;gap:var(--sp-2_5)}.mock-ab-tpl-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.mock-ab-tpl-card-icons{display:flex;gap:var(--sp-1)}.mock-ab-tpl-card-icon{width:24px;height:24px;border-radius:var(--radius-s);font-size:var(--text-2xs)}.mock-ab-tpl-card-icon.ab-tpl-icon-rule{width:32px;height:32px;border-radius:var(--radius-m);background:var(--surface-inset);color:var(--orange);border:1px solid var(--border-subtle)}.mock-ab-tpl-card-icon.ab-tpl-icon-rule svg{width:18px;height:18px}.mock-ab-tpl-card-desc{font-size:var(--text-xxs);color:var(--text-tertiary);line-height:1.4}.mock-ab-tpl-card-meta{font-size:var(--text-2xs);color:var(--text-placeholder);margin-top:auto}.mock-ab-list{background:var(--surface)}.mock-ab-list.hidden{display:none}.mock-ab-list-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-ab-list-header h2{font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.mock-ab-list-toolbar{padding:var(--sp-2_5) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-ab-list-search{max-width:260px;padding:var(--sp-1_5) var(--sp-2_5);border-radius:var(--radius-s);border:1px solid var(--border-default);background:var(--surface-ink);font-size:var(--text-xs);color:var(--text-primary);font-family:var(--font-sans)}.mock-ab-list-search::placeholder{color:var(--text-placeholder)}.mock-ab-list-filter{padding:var(--sp-1) var(--sp-2_5);border-radius:var(--radius-xs);font-size:var(--text-xxs);color:var(--text-tertiary);border:1px solid transparent;background:none;font-family:var(--font-sans)}.mock-ab-list-filter:hover{color:var(--text-primary)}.mock-ab-list-filter.active{color:var(--orange);border-color:var(--orange);background:var(--orange-soft)}.mock-ab-list-items{padding:var(--sp-2) var(--sp-3)}.mock-ab-wf-row{padding:var(--sp-2_5) var(--sp-3);border-radius:var(--radius-sm);transition:background .1s}.mock-ab-wf-row:hover{background:var(--border-subtle)}.mock-ab-wf-row:hover .mock-ab-wf-actions{opacity:1}.mock-ab-wf-icon{width:32px;height:32px;border-radius:var(--radius-sm);font-size:var(--text-mid)}.mock-ab-wf-info{gap:var(--sp-0_5)}.mock-ab-wf-title{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.mock-ab-wf-meta{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-ab-wf-tags{display:flex;gap:var(--sp-1)}.mock-ab-wf-tags .tag{font-size:var(--text-2xs);padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-xs)}.mock-ab-wf-status{font-size:var(--text-xxs);font-weight:500;min-width:60px}.mock-ab-wf-status.active .mock-ab-wf-status-dot{background:var(--success)}.mock-ab-wf-status.active{color:var(--success)}.mock-ab-wf-status.inactive .mock-ab-wf-status-dot{background:var(--gray-400)}.mock-ab-wf-status.inactive{color:var(--text-tertiary)}.mock-ab-wf-status.error .mock-ab-wf-status-dot{background:var(--error)}.mock-ab-wf-status.error{color:var(--error)}.mock-ab-wf-status-dot{width:6px;height:6px;border-radius:var(--radius-full)}.mock-ab-wf-actions{display:flex;gap:var(--sp-1);opacity:0;transition:opacity .1s}.mock-ab-dropdown{position:absolute;top:100%;right:var(--sp-5);width:180px;background:var(--surface-ink);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000001f;z-index:6;display:none;flex-direction:column;padding:var(--sp-1)}.mock-ab-dropdown.visible{display:flex}.mock-ab-tag-dropdown{right:var(--sp-16)}.mock-ab-dropdown-option{padding:var(--sp-2) 12px;border-radius:var(--radius-s);font-size:var(--text-xs);color:var(--text-secondary);font-family:var(--font-sans)}.mock-ab-dropdown-option:hover{background:var(--border-subtle)}.mock-ab-dropdown-option.active{color:var(--orange);background:var(--orange-soft)}.mock-ab-empty-state{flex-direction:column;gap:var(--sp-2);padding:var(--sp-16) 20px}.mock-ab-empty-icon{font-size:var(--text-3xl);opacity:.3}.mock-ab-empty-title{font-size:var(--text-mid);font-weight:600;color:var(--text-secondary)}.mock-ab-empty-text{font-size:var(--text-xs);color:var(--text-placeholder)}.mock-ab-minimap{position:absolute;bottom:var(--header-height);right:var(--sp-4);width:140px;height:90px;background:var(--surface-ink);border-radius:var(--radius-s);border:1px solid var(--border-default);box-shadow:0 2px 8px #0000001a;z-index:4}.mock-ab-minimap-viewport{position:absolute;left:10%;top:15%;width:50%;height:60%;border:1.5px solid var(--orange);border-radius:var(--radius-xs);background:#e8a0400d}.mock-ab-minimap-node{position:absolute;width:8px;height:5px;background:var(--gray-400);border-radius:var(--radius-xs)}.mock-ab-sticky{position:absolute;width:160px;padding:var(--sp-2_5) var(--sp-3);background:var(--warning-soft);border-radius:var(--radius-xs);border-left:3px solid var(--warning);font-size:var(--text-xxs);color:var(--text-secondary);line-height:1.4;box-shadow:0 1px 4px #0000000f;z-index:1}.mock-ab-settings{padding:var(--sp-5)}.mock-ab-settings h3{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.mock-ab-settings-row{gap:var(--sp-4)}.mock-ab-settings-row select,.mock-ab-settings-row input[type=text]{max-width:200px}.mock-ab-settings-label{font-size:var(--text-sm);color:var(--text-secondary)}.mock-ab-docs-section{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6}.mock-ab-docs-section h4{margin-top:var(--sp-3)}.mock-ab-docs-section p{margin:var(--sp-1) 0}.mock-ab-add-field{font-size:var(--text-xs);color:var(--blue);background:none;border:1px dashed var(--border-default);border-radius:var(--radius-s);padding:var(--sp-2);text-align:center;font-family:var(--font-sans);transition:all .1s}.mock-ab-add-field:hover{border-color:var(--blue);background:var(--blue-soft)}.mock-ab-exec-toolbar{padding:var(--sp-2_5) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.mock-ab-exec-date-filter{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-xs);border:1px solid var(--border-default);background:var(--surface);font-size:var(--text-xxs);color:var(--text-primary);font-family:var(--font-sans)}.mock-ab .pagination-btn:hover{border-color:var(--orange)}.mock-ab .pagination-btn.active{background:var(--orange);color:var(--text-on-accent);border-color:var(--orange)}.mock-ab-exec-detail-row td{padding:0!important;background:var(--surface)}.mock-ab-exec-detail{padding:var(--sp-3) var(--sp-4)}.mock-ab-exec-detail-header{font-size:var(--text-sm)}.mock-ab-exec-node{font-size:var(--text-xs);color:var(--text-secondary);padding:var(--sp-1) 0}.mock-ab-executions{padding:0}.mock-ab .data-table tr:hover td{background:var(--border-subtle)}.mock-ab-editor.hidden{display:none}.mock-ab-node.selected{outline:2px solid var(--orange);outline-offset:2px}.mock-ab-panel{width:380px;max-width:50%;z-index:5}.mock-ab-panel-tabs{display:flex;border-bottom:1px solid var(--border-subtle)}.mock-ab-panel-tabs .tab{text-align:center}.mock-ab-panel-body{padding:var(--sp-4)}.mock-ab .form-input.code{font-size:var(--text-xs);background:var(--gray-800);color:var(--gray-100);border-color:transparent;min-height:60px}.mock-ab-panel-footer .btn-sm{padding:var(--sp-1_5) var(--sp-4)}.mock-ab-output{border-top:1px solid var(--border-subtle);max-height:220px}.mock-ab .tab-pill{--tab-accent: var(--orange)}.mock-ab-output-json{font-size:var(--text-xxs);color:var(--text-secondary);line-height:1.6;white-space:pre;padding:var(--sp-2);background:var(--surface);border-radius:var(--radius-s)}.mock-ab-io-split{border-top:1px solid var(--border-subtle);display:flex;flex-direction:row;max-height:260px;min-height:140px}.mock-ab-io-panel+.mock-ab-io-panel{border-left:1px solid var(--border-subtle)}.mock-ab-io-header{padding:var(--sp-1_5) var(--sp-3);font-size:var(--text-xxs);border-bottom:1px solid var(--border-subtle)}.mock-ab-io-title{font-weight:600;color:var(--text-primary)}.mock-ab-io-count{font-size:var(--text-2xs);color:var(--text-tertiary);background:var(--surface-raised);padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-sm)}.mock-ab-io-tabs{display:flex;gap:var(--sp-0_5);margin-left:auto}.mock-ab-io-body{overflow:auto;padding:0 var(--sp-2_5) var(--sp-1_5)}.mock-ab-io-pin{background:none;border:none;font-size:var(--text-mid);padding:var(--sp-0_5) var(--sp-1);border-radius:var(--radius-xs);margin-left:var(--sp-1);color:var(--text-tertiary)}.mock-ab-io-pin:hover{background:var(--surface-raised);color:var(--orange)}.mock-ab-cred-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:200}.mock-ab-cred-editor{width:520px;max-width:92vw;max-height:85vh;background:var(--surface);border-radius:var(--radius-md);box-shadow:0 12px 40px #00000040}.mock-ab-cred-body{padding:var(--sp-4) var(--sp-5);gap:var(--sp-3_5)}.mock-ab-cred-divider{height:1px;background:var(--border-subtle);margin:var(--sp-1) 0}.mock-ab-cred-test{margin-top:var(--sp-1)}.mock-ab-cred-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border)}.mock-ab-back{color:var(--text-tertiary);font-size:var(--text-lg)}.mock-ab-zoom{position:absolute;left:var(--sp-4);bottom:var(--sp-4)}.mock-ab-overview{padding:var(--sp-5);gap:var(--sp-5)}.mock-ab-overview-header h2{font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.mock-ab-overview-card{background:var(--surface-ink);border-radius:var(--radius-base);padding:var(--sp-4);box-shadow:0 1px 3px #0000000a}.mock-ab-overview-card-label{font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary)}.mock-ab-overview-card-value{font-size:var(--text-2_5xl);font-weight:700;color:var(--text-primary);line-height:1}.mock-ab-overview-card-sub{font-size:var(--text-xxs);color:var(--text-placeholder)}.mock-ab-overview-chart{background:var(--surface-ink);border-radius:var(--radius-base);padding:var(--sp-4);box-shadow:0 1px 3px #0000000a}.mock-ab-overview-chart-title{margin-bottom:var(--sp-3)}.mock-ab-overview-activity,.mock-ab-overview-stats{background:var(--surface-ink);border-radius:var(--radius-base);padding:var(--sp-4);box-shadow:0 1px 3px #0000000a}.mock-ab-overview-stats{margin-bottom:var(--sp-4)}.mock-ab-overview-stats .data-table{width:100%}.mock-ab-overview-stats .mock-ab-overview-activity-title,.mock-ab-overview-activity-title{margin-bottom:var(--sp-3)}.mock-ab-overview-activity-item{gap:var(--sp-2_5);padding:var(--sp-1_5) 0;border-bottom:1px solid var(--border-subtle)}.mock-ab-overview-activity-item:last-child{border-bottom:none}.mock-ab-overview-activity-status{font-size:var(--text-2xs);padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-base);font-weight:500}.mock-ab-overview-activity-name{font-size:var(--text-sm);color:var(--text-primary)}.mock-ab-overview-activity-time{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-ab-versions{padding:var(--sp-4) var(--sp-5)}.mock-ab-version-row{gap:var(--sp-2_5);padding:var(--sp-2_5) var(--sp-3);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface);transition:background .1s}.mock-ab-version-row:hover{background:var(--border-subtle)}.mock-ab-version-row.active{border-color:var(--orange);background:var(--orange-soft)}.mock-ab-version-row.active .mock-ab-version-badge{background:var(--orange);color:var(--text-on-accent);border-color:var(--orange)}.mock-ab-version-badge{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--surface-ink);font-size:var(--text-xs);font-weight:700;color:var(--text-secondary);border:1px solid var(--border-subtle)}.mock-ab-version-title{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.mock-ab-version-meta{font-size:var(--text-xxs);color:var(--text-tertiary);display:flex;gap:var(--sp-2);margin-top:var(--sp-0_5)}.mock-ab-versions-diff{border:1px solid var(--border-subtle);border-radius:var(--radius-base)}.mock-ab-versions-diff-title{padding:var(--sp-2_5) var(--sp-4);background:var(--surface);border-bottom:1px solid var(--border-subtle)}.mock-ab-versions-diff-content{padding:var(--sp-3) var(--sp-4);font-size:var(--text-xs)}.mock-ab-diff-line{padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-xs);margin-bottom:var(--sp-0_5)}.mock-ab-diff-line.added{background:var(--green-soft);color:var(--success)}.mock-ab-diff-line.unchanged{color:var(--text-placeholder)}#abDebugToggle{margin-right:var(--sp-2)}#abDebugToggle.active{background:var(--orange-soft);color:var(--orange);border-color:var(--orange)}.mock-ab-canvas.debug-mode .mock-ab-node-badge{display:block}.mock-ab-canvas.debug-mode .mock-ab-node{border-color:var(--success)}.mock-ab-canvas.debug-mode .mock-ab-node:has(.mock-ab-node-badge.error){border-color:var(--error)}.mock-ab-expr-btn{display:inline-flex;align-items:center;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-xs);padding:var(--sp-0_5) var(--sp-1_5);font-size:var(--text-2xs);font-family:JetBrains Mono,monospace;color:var(--blue);margin-left:var(--sp-1);vertical-align:middle}.mock-ab-expr-btn:hover{background:var(--blue-soft)}.mock-ab-expr-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:200}.mock-ab-expr-editor{width:720px;max-width:90vw;max-height:80vh;background:var(--surface);border-radius:var(--radius-md);box-shadow:0 12px 40px #00000040}.mock-ab-expr-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border)}.mock-ab-expr-header h3{font-size:var(--text-base);font-weight:600;margin:0}.mock-ab-expr-tabs{display:flex;gap:var(--sp-1);margin-left:var(--sp-2)}.mock-ab-expr-tab{padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-s);font-size:var(--text-xs);color:var(--text-tertiary)}.mock-ab-expr-tab.active{background:var(--blue-soft);color:var(--blue);font-weight:500}.mock-ab-expr-body{display:flex;min-height:0}.mock-ab-expr-input-area{padding:var(--sp-4)}.mock-ab-expr-textarea{min-height:120px;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--blue);font-family:JetBrains Mono,monospace;font-size:var(--text-sm);resize:none}.mock-ab-expr-preview{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--sp-3)}.mock-ab-expr-preview-label{font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;margin-bottom:var(--sp-1)}.mock-ab-expr-preview-value{font-family:JetBrains Mono,monospace;font-size:var(--text-mid);color:var(--success)}.mock-ab-expr-sidebar{width:200px;border-left:1px solid var(--border);padding:var(--sp-3);background:var(--surface-raised)}.mock-ab-expr-sidebar-title{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--sp-2)}.mock-ab-expr-var{padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);margin-bottom:var(--sp-0_5)}.mock-ab-expr-var:hover{background:var(--surface-hover)}.mock-ab-expr-var-name{font-family:JetBrains Mono,monospace;font-size:var(--text-xs);color:var(--blue);display:block}.mock-ab-expr-var-desc{font-size:var(--text-2xs);color:var(--text-tertiary);display:block}.mock-ab-expr-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border)}.mock-ab-share-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:10;display:none;align-items:center;justify-content:center}.mock-ab-share-overlay.visible{display:flex}.mock-ab-share-overlay .toggle.on{background:var(--blue)}.mock-ab-share-modal{width:480px;max-width:90%;max-height:80%;background:var(--surface-ink);border-radius:var(--radius-xl);box-shadow:0 8px 32px #00000026}.mock-ab-share-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-ab-share-body{padding:var(--sp-5)}.mock-ab-share-user{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md)}.mock-ab-share-user:hover{background:var(--surface-raised)}.mock-ab-share-avatar{width:32px;height:32px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600}.mock-ab-tag-manager-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:50;display:none;align-items:center;justify-content:center}.mock-ab-tag-manager-overlay.visible{display:flex}.mock-ab-tag-manager{width:400px;max-width:92%;max-height:80vh;background:var(--surface-ink);border-radius:var(--radius-xl);box-shadow:0 8px 32px #00000026}.mock-ab-tag-manager-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-ab-tag-manager-header h3{font-size:var(--text-base);font-weight:600;margin:0;color:var(--text-primary)}.mock-ab-tag-manager-body{padding:var(--sp-4) var(--sp-5)}.mock-ab-tag-manager-section-title{margin-bottom:var(--sp-2)}.mock-ab-tag-manager-divider{height:1px;background:var(--border-subtle);margin:var(--sp-3) 0}.mock-ab-tag-manager-assign-list{gap:var(--sp-0_5);margin-bottom:var(--sp-3)}.mock-ab-tag-manager-assign-row{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-primary)}.mock-ab-tag-manager-assign-row:hover{background:var(--border-subtle)}.mock-ab-tag-manager-assign-row input[type=checkbox]{accent-color:var(--orange);width:14px;height:14px}.mock-ab-tag-manager-dot{width:8px;height:8px;border-radius:var(--radius-full)}.mock-ab-tag-manager-list{gap:var(--sp-0_5);margin-bottom:var(--sp-3)}.mock-ab-tag-manager-row{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-primary)}.mock-ab-tag-manager-row:hover{background:var(--border-subtle)}.mock-ab-tag-manager-row .btn-icon-sm{opacity:0;transition:opacity .15s}.mock-ab-tag-manager-row:hover .btn-icon-sm{opacity:1}.mock-ab-tag-manager-color-dot{width:18px;height:18px;border-radius:var(--radius-full);border:2px solid transparent;transition:border-color .15s}.mock-ab-tag-manager-color-dot:hover{border-color:var(--border-default)}.mock-ab-tag-manager-color-dot.active{border-color:var(--text-primary)}.mock-ab-evaluations{padding:var(--sp-5);height:100%}.mock-ab-evaluations-header h2{font-size:var(--text-xl);font-weight:700;margin:0;color:var(--text-primary)}.mock-ab-eval-run-row:hover td{background:var(--border-subtle)}.mock-ab-eval-run-row.selected td{background:var(--orange-soft)}.mock-ab-eval-pass-bar{width:60px;height:6px;border-radius:var(--radius-xs);background:var(--border-subtle);display:inline-block;vertical-align:middle;margin-right:var(--sp-1_5)}.mock-ab-eval-pass-fill{height:100%;width:var(--pass-rate, 0%);border-radius:var(--radius-xs);transition:width .3s ease}.mock-ab-eval-running{animation:evalRunningPulse 1.5s ease-in-out infinite}@keyframes evalRunningPulse{0%,to{opacity:1}50%{opacity:.4}}.mock-ab-eval-detail{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--neu-sm)}.mock-ab-eval-detail .data-table{margin:0;border-radius:0}.mock-ab-eval-detail .data-table td{font-size:var(--text-sm)}.mock-ab-eval-detail .data-table td.text-mono{font-size:var(--text-xxs)}.mock-ab-eval-detail-header{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.mock-ab-eval-detail-header h3{font-size:var(--text-md);font-weight:600;margin:0;color:var(--text-primary)}.mock-ab-eval-status-pass{color:var(--success);font-weight:600}.mock-ab-eval-status-fail{color:var(--error);font-weight:600}.mock-ab-eval-summary{gap:var(--sp-5);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border-subtle);font-size:var(--text-sm);color:var(--text-secondary);background:var(--surface-inset)}.mock-ab-eval-summary-item strong{font-weight:600;color:var(--text-primary)}.mock-ab-settings-page{display:flex;height:100%;gap:0}.mock-ab-settings-sidebar{width:200px;border-right:1px solid var(--border-default);padding:var(--sp-4) 0}.mock-ab-settings-sidebar-title{font-size:var(--text-xs);font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;padding:0 var(--sp-4) var(--sp-3)}.mock-ab-settings-nav-item{padding:var(--sp-2) var(--sp-4);font-size:var(--text-sm);color:var(--text-secondary);transition:all var(--duration-fast)}.mock-ab-settings-nav-item:hover{color:var(--text-primary);background:var(--surface-raised)}.mock-ab-settings-nav-item.active{color:var(--orange);background:color-mix(in srgb,var(--orange) 10%,transparent);font-weight:600}.mock-ab-settings-content{padding:var(--sp-5)}.mock-ab-settings-tab h2{font-size:var(--text-lg);font-weight:700;margin:0 0 var(--sp-4);color:var(--text-primary)}.mock-ab-settings-form{max-width:480px}.mock-ab-settings-form label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);margin-bottom:var(--sp-0_5)}.mock-ab-settings-placeholder{flex-direction:column;padding:var(--sp-10);text-align:center}.mock-ab-settings-placeholder-title{font-size:var(--text-md);font-weight:700;color:var(--text-secondary);margin-bottom:var(--sp-2)}.mock-ab-settings-placeholder-text{font-size:var(--text-sm);color:var(--text-tertiary)}.mock-ab-settings-usage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);margin-bottom:var(--sp-5)}.mock-ab-settings-usage-card{padding:var(--sp-4);border-radius:var(--radius-md);background:var(--surface-ink);border:1px solid var(--border-default)}.mock-ab-settings-usage-label{font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:var(--sp-1)}.mock-ab-settings-usage-value{font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.mock-ab-settings-usage-limit{font-size:var(--text-sm);font-weight:400;color:var(--text-tertiary)}.mock-ab-settings-usage-bar{height:6px;background:var(--border-default);border-radius:var(--radius-xs);margin-top:var(--sp-2)}.mock-ab-settings-usage-fill{height:100%;border-radius:var(--radius-xs);transition:width .5s}.mock-ab-projects-page{padding:var(--sp-6);height:100%}.mock-ab-projects-header{margin-bottom:var(--sp-5)}.mock-ab-projects-header h2{font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.mock-ab-projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}.mock-ab-projects-card{background:var(--surface-ink);border-radius:var(--radius-md);display:flex;transition:transform var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast);border:1px solid var(--border-subtle)}.mock-ab-projects-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.mock-ab-projects-card-border{width:5px}.mock-ab-projects-card-body{padding:var(--sp-4)}.mock-ab-projects-card-name{font-size:var(--text-base);font-weight:600;color:var(--text-primary)}.mock-ab-projects-card-desc{font-size:var(--text-xs);color:var(--text-tertiary)}.mock-ab-projects-card-meta{display:flex;gap:var(--sp-4);margin-top:var(--sp-1)}.mock-ab-projects-card-stat{font-size:var(--text-xs);color:var(--text-secondary)}.mock-ab-projects-card-stat svg{color:var(--text-tertiary)}.mock-ab-projects-card-footer{margin-top:var(--sp-2)}.mock-ab-projects-avatars{display:flex}.mock-ab-projects-avatars .mock-ab-projects-avatar+.mock-ab-projects-avatar{margin-left:-var(--sp-2)}.mock-ab-projects-avatar{width:28px;height:28px;border-radius:var(--radius-full);font-size:var(--text-xxs);font-weight:600;border:2px solid var(--surface-ink)}.mock-ab-projects-avatar-more{background:var(--surface-inset)!important;color:var(--text-tertiary)!important;font-size:var(--text-2xs)}.mock-ab-projects-detail{position:absolute;top:0;right:0;width:360px;height:100%;background:var(--surface-ink);border-left:1px solid var(--border-default);z-index:20;display:none;flex-direction:column;animation:slideIn .25s var(--ease-default)}.mock-ab-projects-detail.visible{display:flex}.mock-ab-projects-detail-header{padding:var(--sp-4) var(--sp-4) var(--sp-2)}.mock-ab-projects-detail-header h3{font-size:var(--text-md);font-weight:700;color:var(--text-primary);margin:0}.mock-ab-projects-detail-tabs{display:flex;gap:0;padding:0 var(--sp-4);border-bottom:1px solid var(--border-default)}.mock-ab-projects-detail-tab{padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);font-weight:500;color:var(--text-tertiary);border-bottom:2px solid transparent;transition:color var(--duration-fast),border-color var(--duration-fast)}.mock-ab-projects-detail-tab:hover{color:var(--text-primary)}.mock-ab-projects-detail-tab.active{color:var(--orange);border-bottom-color:var(--orange)}.mock-ab-projects-detail-content{padding:var(--sp-4)}.mock-ab-projects-tab-content{display:none}.mock-ab-projects-tab-content.active{display:block}.mock-ab-projects-wf-item{padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle)}.mock-ab-projects-wf-item:last-child{border-bottom:none}.mock-ab-projects-wf-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.mock-ab-projects-wf-time{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-ab-projects-member-item{padding:var(--sp-3) 0;border-bottom:1px solid var(--border-subtle)}.mock-ab-projects-member-item:last-child{border-bottom:none}.mock-ab-projects-member-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.mock-ab-projects-member-email{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-ab-projects-role-select{width:100px;padding:var(--sp-1) var(--sp-2);font-size:var(--text-xxs)}.mock-ab-projects-color-picker{display:flex;gap:var(--sp-2)}.mock-ab-projects-color-swatch{width:28px;height:28px;border-radius:var(--radius-full);border:3px solid transparent;transition:border-color var(--duration-fast),transform var(--duration-fast)}.mock-ab-projects-color-swatch:hover{transform:scale(1.15)}.mock-ab-projects-color-swatch.active{border-color:var(--text-primary)}.mock-ab-projects-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);display:none;align-items:center;justify-content:center;z-index:9999}.mock-ab-projects-modal-overlay.visible{display:flex}.mock-ab-projects-modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--neu-lg);width:420px;max-width:90vw}.mock-ab-projects-modal-header{padding:var(--sp-4) var(--sp-5) var(--sp-3)}.mock-ab-projects-modal-header h3{font-size:var(--text-md);font-weight:700;color:var(--text-primary);margin:0}.mock-ab-projects-modal-body{padding:0 var(--sp-5) var(--sp-4)}.mock-ab-projects-modal-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-default);background:var(--surface-raised)}.mock-ab-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--overlay-bg);display:none;align-items:center;justify-content:center;animation:fadeIn .15s var(--ease-default)}.mock-ab-overlay.visible{display:flex}.mock-ab-modal{background:var(--surface-ink);border-radius:var(--radius-lg);box-shadow:var(--neu-lg);width:540px;max-width:94vw;max-height:90vh;animation:slideUp .2s var(--ease-default)}@keyframes slideUp{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.mock-ab-modal-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-ab-modal-header h3{font-size:var(--text-md);font-weight:600;color:var(--text-primary);margin:0}.mock-ab-modal-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle);justify-content:flex-end}.mock-ab-retry-btn{margin-left:var(--sp-2);color:var(--orange)!important;border-color:var(--orange)!important;font-size:var(--text-2xs)!important;padding:var(--sp-0_5) 8px!important}.mock-ab-retry-btn:hover{background:var(--orange-soft)!important}.mock-ab-retry-modal{width:480px}.mock-ab-retry-body{padding:var(--sp-4) var(--sp-5)}.mock-ab-retry-info{padding:var(--sp-3);background:var(--surface);border-radius:var(--radius-sm)}.mock-ab-retry-info-row{font-size:var(--text-sm);color:var(--text-secondary)}.mock-ab-retry-label{font-size:var(--text-xs);color:var(--text-tertiary);min-width:70px}.mock-ab-retry-error{font-size:var(--text-sm);color:var(--error)}.mock-ab-retry-warning{display:flex;align-items:flex-start;gap:var(--sp-2);font-size:var(--text-xs);color:var(--text-tertiary);padding:var(--sp-2) var(--sp-3);background:var(--orange-soft);border-radius:var(--radius-sm);line-height:1.4}.mock-ab-retry-spinner{gap:var(--sp-3);padding:var(--sp-3);font-size:var(--text-sm);color:var(--text-secondary)}.mock-ab-spinner{width:20px;height:20px;border:2px solid var(--border-default);border-top-color:var(--orange);border-radius:var(--radius-full);animation:abSpin .6s linear infinite}@keyframes abSpin{to{transform:rotate(360deg)}}.mock-ab-code-modal{width:720px;max-width:96vw}.mock-ab-code-lang-tabs{display:flex;border-bottom:1px solid var(--border-subtle);padding:0 var(--sp-5)}.mock-ab-code-lang-tabs .tab{padding:var(--sp-2) var(--sp-4)}.mock-ab-code-toolbar{padding:var(--sp-2) var(--sp-5);display:flex;gap:var(--sp-2);border-bottom:1px solid var(--border-subtle);background:var(--surface)}.mock-ab-code-editor-wrap{display:flex;min-height:200px;max-height:300px;border-bottom:1px solid var(--border-subtle)}.mock-ab-code-lines{width:36px;background:var(--surface);padding:var(--sp-2) 0;align-items:flex-end;border-right:1px solid var(--border-subtle)}.mock-ab-code-lines span{font-size:var(--text-xxs);color:var(--text-placeholder);line-height:1.5;padding-right:var(--sp-2)}.mock-ab-code-textarea{border:none;outline:none;resize:none;font-size:var(--text-xs);line-height:1.5;padding:var(--sp-2) var(--sp-3);background:var(--surface-ink);color:var(--text-primary);-moz-tab-size:2;tab-size:2}.mock-ab-code-output-header{padding:var(--sp-2) var(--sp-5);font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);background:var(--surface);border-bottom:1px solid var(--border-subtle)}.mock-ab-code-output-status{font-size:var(--text-xs);font-weight:400}.mock-ab-code-output-body{padding:var(--sp-2) var(--sp-5);font-size:var(--text-xxs);color:var(--text-secondary);line-height:1.5;max-height:120px;background:var(--surface-ink);white-space:pre-wrap}.mock-ab-code-statusbar{padding:var(--sp-1) var(--sp-5);font-size:var(--text-2xs);color:var(--text-placeholder);display:flex;gap:var(--sp-4);background:var(--surface);border-top:1px solid var(--border-subtle)}.mock-ab-ai-agent-node{padding:0!important;min-width:160px;min-height:80px;flex-direction:column!important;align-items:stretch!important;z-index:3}.mock-ab-ai-agent-node:hover .mock-ab-ai-model-select{display:block}.mock-ab-ai-agent-inner{padding:var(--sp-3_5) var(--sp-5)}.mock-ab-ai-port{position:absolute}.mock-ab-ai-port-dot{width:10px;height:10px;border-radius:var(--radius-full);border:2px solid var(--surface-ink)}.mock-ab-ai-port-label{font-size:var(--text-3xs);color:var(--text-placeholder)}.mock-ab-ai-port-top{top:-6px;left:50%;transform:translate(-50%);flex-direction:column}.mock-ab-ai-port-right{right:-6px;top:50%;transform:translateY(-50%);flex-direction:row-reverse}.mock-ab-ai-port-bottom{bottom:-6px;left:50%;transform:translate(-50%);flex-direction:column-reverse}.mock-ab-ai-port-left{left:-6px;top:50%;transform:translateY(-50%)}.mock-ab-ai-subnode{position:absolute;display:flex;gap:var(--sp-1)}.mock-ab-ai-subnode-badge{font-size:var(--text-3xs);font-weight:500;padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-sm)}.mock-ab-ai-model-select{position:absolute;bottom:-24px;left:50%;transform:translate(-50%);font-size:var(--text-2xs);padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-ink);color:var(--text-secondary);font-family:var(--font-sans);display:none}.mock-ab-chat-panel{position:fixed;top:0;right:0;bottom:0;width:360px;z-index:999;background:var(--surface-ink);border-left:1px solid var(--border-subtle);box-shadow:var(--neu-lg);display:none;flex-direction:column;animation:slideInRight .25s var(--ease-default)}.mock-ab-chat-panel.visible{display:flex}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.mock-ab-chat-header{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.mock-ab-chat-title{font-size:var(--text-base);font-weight:600;color:var(--text-primary)}.mock-ab-chat-model-badge{font-size:var(--text-2xs);font-weight:500;padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-full);background:var(--orange-soft);color:var(--orange)}.mock-ab-chat-messages{padding:var(--sp-4)}.mock-ab-chat-msg-user{align-items:flex-end}.mock-ab-chat-msg-assistant{align-items:flex-start}.mock-ab-chat-bubble-user{background:color-mix(in srgb,var(--blue) 15%,transparent);color:var(--text-primary);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md) var(--radius-md) var(--radius-sm) var(--radius-md);font-size:var(--text-sm);line-height:1.5;max-width:85%}.mock-ab-chat-bubble-assistant{background:var(--surface);color:var(--text-primary);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md) var(--radius-md) var(--radius-md) var(--radius-sm);font-size:var(--text-sm);line-height:1.5;max-width:85%}.mock-ab-chat-time{font-size:var(--text-2xs);color:var(--text-placeholder);margin-top:var(--sp-0_5)}.mock-ab-typing-dots{display:flex;gap:var(--sp-1);padding:var(--sp-1) 0}.mock-ab-typing-dots span{width:6px;height:6px;border-radius:var(--radius-full);background:var(--text-placeholder);animation:abTypingDot 1.4s infinite ease-in-out}.mock-ab-typing-dots span:nth-child(2){animation-delay:.2s}.mock-ab-typing-dots span:nth-child(3){animation-delay:.4s}@keyframes abTypingDot{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.mock-ab-chat-input-area{padding:var(--sp-3);border-top:1px solid var(--border-subtle);display:flex;gap:var(--sp-2);align-items:flex-end}.mock-ab-chat-input{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);font-family:var(--font-sans);background:var(--surface);color:var(--text-primary);resize:none;min-height:36px;max-height:100px}.mock-ab-chat-send{width:36px;height:36px;border-radius:var(--radius-md);border:none;background:var(--orange);color:#fff;transition:opacity .15s}.mock-ab-chat-send:hover{opacity:.85}.mock-ab-wait-node{border:2px solid var(--orange)!important}.mock-ab-wait-glow{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--orange) 15%,transparent);animation:abWaitPulse 2s ease-in-out infinite;z-index:-1}@keyframes abWaitPulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.mock-ab-wait-badge{font-size:var(--text-3xs);font-weight:600;padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-full);background:var(--orange-soft);color:var(--orange);margin-left:auto;animation:abWaitPulse 2s ease-in-out infinite}.mock-ab-wait-modal{width:480px}.mock-ab-wait-body{padding:var(--sp-4) var(--sp-5)}.mock-ab-wait-form-preview{padding:var(--sp-3);background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.mock-ab-activation-modal{width:420px;text-align:center;padding:var(--sp-6) var(--sp-5) var(--sp-4)}.mock-ab-activation-icon{margin-bottom:var(--sp-3)}.mock-ab-activation-title{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin:0 0 var(--sp-2)}.mock-ab-activation-desc{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;margin:0 0 var(--sp-4)}.mock-ab-activation-triggers{text-align:left;background:var(--surface);border-radius:var(--radius-md);padding:var(--sp-3);margin-bottom:var(--sp-3)}.mock-ab-activation-trigger-item{font-size:var(--text-sm);color:var(--text-secondary)}.mock-ab-activation-checkbox{font-size:var(--text-sm);color:var(--text-tertiary);margin-bottom:var(--sp-2)}.mock-ab-banners{gap:0}.mock-ab-banner{padding:var(--sp-2) var(--sp-4);font-size:var(--text-sm);color:var(--text-primary);border-bottom:1px solid var(--border-subtle);animation:fadeIn .3s var(--ease-default)}.mock-ab-banner-blue{background:color-mix(in srgb,var(--blue) 10%,var(--surface-ink))}.mock-ab-banner-blue svg{color:var(--blue)}.mock-ab-banner-orange{background:color-mix(in srgb,var(--orange) 10%,var(--surface-ink))}.mock-ab-banner-orange svg{color:var(--orange)}.mock-ab-banner-msg{line-height:1.4}.mock-ab-banner-close{background:none;border:none;font-size:var(--text-lg);color:var(--text-tertiary);padding:0 var(--sp-1);line-height:1}.mock-ab-banner-close:hover{color:var(--text-primary)}.mock-ab-depmap-modal{width:560px}.mock-ab-depmap-body{padding:var(--sp-4) var(--sp-5);max-height:60vh}.mock-ab-depmap-center{display:flex;justify-content:center}.mock-ab-depmap-current{padding:var(--sp-3) var(--sp-4);background:var(--orange-soft);border:2px solid var(--orange);border-radius:var(--radius-md);font-size:var(--text-sm)}.mock-ab-depmap-section-title{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary)}.mock-ab-depmap-item{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);background:var(--surface);transition:background .1s}.mock-ab-depmap-item:hover{background:var(--border-subtle)}.mock-ab-depmap-item-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.mock-ab-depmap-item-time{font-size:var(--text-2xs);color:var(--text-placeholder)}.mock-ab-depmap-open{font-size:var(--text-xs);color:var(--orange);text-decoration:none;font-weight:500}.mock-ab-depmap-open:hover{text-decoration:underline}.mock-ab .ab-binary-list{padding:var(--sp-3)}.mock-ab .ab-binary-item{padding:var(--sp-3);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);transition:background .1s}.mock-ab .ab-binary-item:hover{background:var(--surface-raised)}.mock-ab .ab-binary-preview{width:80px;min-width:80px;height:60px;border-radius:var(--radius-sm);background:var(--surface)}.mock-ab .ab-binary-preview img{width:100%;height:100%;object-fit:cover}.mock-ab .ab-binary-info{gap:var(--sp-0_5)}.mock-ab .ab-binary-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.mock-ab .ab-binary-meta{font-size:var(--text-xs);color:var(--text-tertiary)}.mock-ab .ab-form-builder{padding:var(--sp-4) var(--sp-5);max-height:60vh}.mock-ab .ab-form-field-row{padding:var(--sp-2) var(--sp-2_5);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);transition:background .1s,border-color .1s}.mock-ab .ab-form-field-row:hover{background:var(--surface-raised);border-color:var(--border-default)}.mock-ab .ab-form-field-drag{cursor:grab;color:var(--text-placeholder);font-size:var(--text-xs);-webkit-user-select:none;user-select:none;padding:0 var(--sp-1)}.mock-ab .ab-form-completion{border-top:1px solid var(--border-subtle);padding-top:var(--sp-4)}.mock-ab .ab-cred-tabs{display:flex;gap:var(--sp-2);padding:var(--sp-2) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-ab .ab-cred-sharing{padding:var(--sp-4) var(--sp-5)}.mock-ab .ab-cred-share-item{padding:var(--sp-2) var(--sp-2_5);border-radius:var(--radius-sm);transition:background .1s}.mock-ab .ab-cred-share-item:hover{background:var(--surface-raised)}.mock-ab .ab-cred-share-avatar{width:32px;height:32px;min-width:32px;border-radius:50%;font-size:var(--text-xs);font-weight:600;color:var(--text-on-accent)}.mock-ab .ab-cred-share-info{gap:var(--sp-0_5);font-size:var(--text-sm);color:var(--text-primary)}.mock-ab .ab-tidy-animate .mock-ab-node{transition:transform .4s var(--ease-default)}.mock-ab .ab-settings-section{padding:var(--sp-4) 20px;border-top:1px solid var(--border-subtle)}.mock-ab .ab-settings-row{gap:var(--sp-4);font-size:var(--text-sm);color:var(--text-secondary)}@keyframes ab-spin{to{transform:rotate(360deg)}}.mock-ab-exec-pagination{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4)}.rule-builder{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-m);padding:var(--sp-4);margin-bottom:var(--sp-3)}.rule-builder-header{padding-bottom:var(--sp-2);border-bottom:1px solid var(--border-subtle)}.rule-builder-section{padding:var(--sp-2) 0}.rule-builder-section-title{font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary);letter-spacing:.05em}.rule-builder-footer{padding-top:var(--sp-2);border-top:1px solid var(--border-subtle)}.mock-nc-filter-remove{width:24px;height:24px;border-radius:var(--radius-s);border:none;background:transparent;color:var(--text-tertiary);font-size:var(--text-md);transition:background .1s,color .1s}.mock-nc-filter-remove:hover{background:var(--status-error-bg, rgba(255, 0, 0, .1));color:var(--red, #e53e3e)}.mock-ab-overlay-sm{width:420px;max-width:94vw}.mock-ab-overlay-md{width:480px;max-width:94vw}.mock-ab-overlay-lg{width:560px;max-width:94vw}.mock-ab-overlay-code{width:640px;max-width:96vw;height:80vh;max-height:90vh}.mock-ab-overlay-header,.mock-ab-overlay-hint{margin-bottom:var(--sp-3)}.mock-ab-overlay-footer{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border-subtle)}.mock-ab-chat-area{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-4);min-height:160px}.mock-ab-chat-placeholder{text-align:center;margin-top:var(--sp-8)}.mock-ab-shortcut-row{padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle)}.mock-ab-shortcut-row:last-child{border-bottom:none}.mock-ab-kbd{display:inline-block;padding:var(--sp-0_5) var(--sp-2);background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);line-height:1}.mock-ab-dep-row{padding:var(--sp-2) var(--sp-3);background:var(--surface);border-radius:var(--radius-sm)}.mock-ab-overview-chart-placeholder{height:160px;background:var(--surface);border-radius:var(--radius-sm)}.mock-ab-input-readonly{opacity:.6;cursor:default}.mock-ab-settings-tab-header{margin-bottom:var(--sp-4)}.mock-ab-settings-actions{margin-top:var(--sp-3)}.mock-ab-th-actions{width:110px}.mock-ab-fill-30{width:30%}.mock-ab-fill-37{width:37%}.mock-ab-fill-15{width:15%}.mock-ab-community-search{margin-bottom:var(--sp-3)}.mock-ab-community-section{margin-bottom:var(--sp-4)}.mock-ab-section-heading{margin:0 0 var(--sp-2)}.mock-ab-install-btn{margin-top:auto}.mock-ab-version-subtitle{margin-left:var(--sp-3)}.mock-ab-share-invite{margin-bottom:var(--sp-4)}.mock-ab-share-users{margin-top:var(--sp-2)}.mock-ab-share-role-select{width:100px}.mock-ab-share-role-select-sm{width:85px;padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs)}.mock-ab-field-type-select{width:120px}.mock-ab-nodes-search-input{margin:var(--sp-2) var(--sp-3)}.mock-ab-canvas-actions{position:absolute;right:var(--sp-4);bottom:calc(var(--header-height) + var(--sp-4));display:flex;gap:var(--sp-2);z-index:5}.mock-ab-sticky-top{top:40px;left:60px}.mock-ab-sticky-bottom{top:250px;left:300px}.mock-ab-minimap-node-1{left:15%;top:30%}.mock-ab-minimap-node-2{left:35%;top:30%}.mock-ab-minimap-node-3{left:55%;top:20%}.mock-ab-minimap-node-4{left:55%;top:45%}.mock-ab-minimap-node-5{left:75%;top:30%}.ab-condition-row{padding:var(--sp-1) 0}.ab-label-40{width:40px}.ab-action-indent{padding-left:48px}.ab-trigger-option{padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);background:transparent;transition:background var(--duration-fast)}.ab-trigger-option.active{background:var(--surface-hover, var(--surface-raised))}.ab-trigger-detail{padding-left:var(--sp-4)}.ab-rf-canvas{flex:1;width:100%;height:100%;background:var(--bg-primary)}.ab-rf-bg{opacity:.4}.ab-rf-controls{background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-s);box-shadow:var(--shadow-s)}.mock-ab-overview-agents{margin-bottom:var(--sp-4)}.mock-ab-overview-agents-header{margin-bottom:var(--sp-2)}.ab-agents-canvas{position:relative;height:360px;border:1px solid var(--border-default);border-radius:var(--radius-m);overflow:hidden;background:var(--bg-primary)}.ab-agents-empty{gap:var(--sp-1);padding:var(--sp-4)}.ab-agents-empty .ab-agents-empty-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.mock-ab-agents-view,.mock-ab-agents-view .mock-ab-agents-view-canvas{min-height:0}.mock-ab-agents-view .mock-ab-agents-view-canvas .ab-agents-canvas{height:100%}.mock-ab-pipelines{min-height:0}.ab-pipe-filter-list{max-height:140px;overflow-y:auto;gap:var(--sp-1);padding:var(--sp-1) 0}.ab-dev-badge{font-size:10px;line-height:1.4;padding:1px var(--sp-1);border-radius:var(--radius-s);background:var(--surface-inset);color:var(--text-tertiary);white-space:nowrap}.mock-ab-agent-cfg .mock-ab-agent-cfg-row{padding:var(--sp-1_5) 0;border-bottom:1px solid var(--border-subtle)}.mock-ab-agent-cfg .mock-ab-agent-cfg-note{margin-top:var(--sp-2);font-style:italic}.ab-agent-node{display:flex;flex-direction:column;gap:var(--sp-1_5);width:250px;padding:12px 14px;border-radius:var(--radius-m);border:1.5px solid var(--border-default);border-left:3px solid var(--border-default);background:var(--surface-raised);box-shadow:var(--shadow-s);transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.ab-agent-node--active{border-left-color:var(--success, #4caf50)}.ab-agent-node-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ab-agent-node-trigger{font-family:var(--font-mono, monospace)}.ab-agent-node-controls{margin-top:var(--sp-1);padding-top:var(--sp-2);border-top:1px solid var(--border-subtle, var(--border-default))}.mock-ab-expr-var-group{font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);padding:var(--sp-2) var(--sp-2) var(--sp-1);margin-top:var(--sp-1)}.mock-ab-expr-var-val{font-size:var(--text-2xs);color:var(--text-tertiary);max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ab-tpl-categories{flex-wrap:wrap;padding-bottom:var(--sp-1)}.ab-rf-handle{width:8px!important;height:8px!important;border:2px solid var(--border-default)!important;background:var(--surface-raised)!important;transition:border-color var(--duration-fast),background var(--duration-fast)}.ab-rf-handle:hover{border-color:var(--orange)!important;background:var(--orange)!important}.ab-rf-handle--yes{top:30%!important;border-color:var(--success, #4caf82)!important}.ab-rf-handle--no{top:70%!important;border-color:var(--error, #e3506a)!important}.ab-cond-row{padding:var(--sp-2);border:1px solid var(--border-subtle, var(--border-default));border-radius:var(--radius-s);background:var(--surface-inset)}.ap-ss{position:relative;width:100%}.ap-ss__trigger{width:100%;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-default);border-radius:var(--radius-s);background:var(--surface-raised);color:var(--text-primary);font-size:var(--text-xs);cursor:pointer;text-align:left}.ap-ss__trigger--active,.ap-ss__trigger:hover{border-color:var(--accent, #5b8def)}.ap-ss__trigger-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-ss__chevron{transition:transform var(--duration-fast);font-size:11px;color:var(--text-tertiary)}.ap-ss__chevron--up{transform:rotate(180deg)}.ap-ss__dropdown{position:absolute;z-index:50;top:calc(100% + 4px);left:0;right:0;background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-s);box-shadow:0 6px 20px #0000001f;overflow:hidden}.ap-ss__search{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-default);color:var(--text-tertiary)}.ap-ss__search-input{flex:1;border:none;background:transparent;outline:none;color:var(--text-primary);font-size:var(--text-xs)}.ap-ss__search-clear{border:none;background:transparent;cursor:pointer;color:var(--text-tertiary)}.ap-ss__list{max-height:220px;overflow-y:auto;padding:4px}.ap-ss__item{width:100%;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border:none;background:transparent;cursor:pointer;text-align:left;border-radius:4px;color:var(--text-primary);font-size:var(--text-xs)}.ap-ss__item:hover{background:var(--surface-inset)}.ap-ss__item--selected{background:var(--surface-inset);font-weight:600}.ap-ss__item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-ss__item-hint{font-size:10px;color:var(--text-tertiary)}.ap-ss__item-count{font-size:10px;color:var(--text-tertiary);background:var(--surface-inset);padding:0 5px;border-radius:8px}.ap-ss__item-check{color:var(--accent, #5b8def)}.ap-ss__empty{padding:var(--sp-3);text-align:center;color:var(--text-tertiary);font-size:var(--text-xs)}.ap-cat-tree{position:relative;width:100%}.ap-cat-tree__trigger{width:100%;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-default);border-radius:var(--radius-s);background:var(--surface-raised);color:var(--text-primary);font-size:var(--text-xs);cursor:pointer;text-align:left}.ap-cat-tree__trigger--active,.ap-cat-tree__trigger:hover{border-color:var(--accent, #5b8def)}.ap-cat-tree__trigger-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-cat-tree__trigger-count{font-size:10px;background:var(--accent, #5b8def);color:#fff;padding:0 6px;border-radius:8px}.ap-cat-tree__chevron{font-size:11px;color:var(--text-tertiary);transition:transform var(--duration-fast)}.ap-cat-tree__chevron--up{transform:rotate(180deg)}.ap-cat-tree__dropdown{position:absolute;z-index:50;top:calc(100% + 4px);left:0;right:0;background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-s);box-shadow:0 6px 20px #0000001f;overflow:hidden}.ap-cat-tree__search{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-default);color:var(--text-tertiary)}.ap-cat-tree__search-input{flex:1;border:none;background:transparent;outline:none;color:var(--text-primary);font-size:var(--text-xs)}.ap-cat-tree__search-clear{border:none;background:transparent;cursor:pointer;color:var(--text-tertiary)}.ap-cat-tree__list{max-height:260px;overflow-y:auto;padding:4px}.ap-cat-tree__row{display:flex;align-items:center;gap:2px}.ap-cat-tree__row--l1{padding-left:16px}.ap-cat-tree__row--l2{padding-left:32px}.ap-cat-tree__row--l3{padding-left:48px}.ap-cat-tree__row--l4{padding-left:64px}.ap-cat-tree__expand{width:18px;height:18px;flex-shrink:0;border:none;background:transparent;cursor:pointer;color:var(--text-tertiary);font-size:10px;display:flex;align-items:center;justify-content:center;transition:transform var(--duration-fast)}.ap-cat-tree__expand--open{transform:rotate(90deg)}.ap-cat-tree__expand-gap{width:18px;flex-shrink:0}.ap-cat-tree__item{flex:1;display:flex;align-items:center;gap:var(--sp-2);min-width:0;padding:var(--sp-1) var(--sp-2);border:none;background:transparent;cursor:pointer;text-align:left;border-radius:4px;color:var(--text-primary);font-size:var(--text-xs)}.ap-cat-tree__item:hover{background:var(--surface-inset)}.ap-cat-tree__item--selected{background:var(--surface-inset);font-weight:600}.ap-cat-tree__item--parent{font-weight:600}.ap-cat-tree__item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-cat-tree__item-check{color:var(--accent, #5b8def)}.ap-cat-tree__mark{background:var(--warning, #e8a33d);color:inherit;padding:0 1px;border-radius:2px}.ap-cat-tree__chips{display:flex;flex-wrap:wrap;gap:4px;padding:var(--sp-2);border-top:1px solid var(--border-default)}.ap-cat-tree__chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;background:var(--surface-inset);padding:2px 4px 2px 8px;border-radius:10px;color:var(--text-primary)}.ap-cat-tree__chip-remove{border:none;background:transparent;cursor:pointer;color:var(--text-tertiary);display:flex}.ap-cat-tree__footer{padding:var(--sp-2);border-top:1px solid var(--border-default)}.ap-cat-tree__clear{border:none;background:transparent;cursor:pointer;color:var(--text-tertiary);font-size:var(--text-xs);display:inline-flex;align-items:center;gap:4px}.ap-cat-tree__clear:hover{color:var(--error, #e3506a)}.ap-cat-tree__empty{padding:var(--sp-3);text-align:center;color:var(--text-tertiary);font-size:var(--text-xs)}[data-theme=dark] .abf-nbadge.run,[data-theme=dark] .abf-nbadge.warn,[data-theme=dark] .abf-badge.warn{color:#ecc860}[data-theme=dark] .abf-nbadge.done,[data-theme=dark] .abf-badge.ok{color:#a9e05a}[data-theme=dark] .abf-badge.auto{color:#9bb8f0}[data-theme=dark] .abf-insp-note{color:#e0cd8a}[data-theme=dark] .abf-insp-note.info{color:#9bb8f0}[data-theme=dark] .abf-node--output .abf-nico{color:#ecc860}[data-theme=dark] .abf-btn--primary{color:#0f1a00}[data-theme=dark] .abf-nbadge.fail,[data-theme=dark] .abf-badge.fail{color:#f8a0a0}.abf-main{overflow:hidden;min-width:0;height:100%}.abf-main .c-accent{color:var(--accent)}.abf-main .c-tertiary{color:var(--text-tertiary)}.abf-main .c-error{color:var(--error)}.abf-main .fw-500{font-weight:500}.abf-main .w-full{width:100%}.abf-main .abf-grow{flex:1}.abf-topbar{display:flex;align-items:flex-end;gap:var(--sp-3);margin-bottom:var(--sp-3)}.abf-topbar .tt{display:flex;flex-direction:column;gap:2px}.abf-topbar h2{font-size:var(--text-lg);font-weight:700;letter-spacing:-.01em}.abf-topbar .sub{font-size:var(--text-xs);color:var(--text-tertiary)}.abf-bar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.abf-divider{width:1px;height:20px;background:var(--border-default);margin:0 var(--sp-1)}.abf-field{height:32px;padding:0 var(--sp-2_5);border-radius:var(--radius-s);border:1px solid var(--border-default);background:var(--surface-ink);color:var(--text-primary);font-size:var(--text-xs);font-family:inherit;display:inline-flex;align-items:center;gap:var(--sp-1_5);cursor:pointer;transition:border-color var(--duration-fast)}.abf-field:hover{border-color:var(--border-strong)}.abf-field.name{min-width:190px;cursor:text;font-weight:600}.abf-field .chev{color:var(--text-tertiary);font-size:9px;margin-left:auto}.abf-field .count{font-family:var(--font-mono);color:var(--text-tertiary);font-size:var(--text-2xs)}input.abf-field{outline:none}input.abf-field:focus{border-color:var(--accent)}.abf-btn{height:32px;padding:0 var(--sp-3);border-radius:var(--radius-s);border:1px solid var(--border-default);background:var(--surface-raised);box-shadow:var(--neu-sm);color:var(--text-secondary);font-size:var(--text-xs);font-weight:600;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-1_5);transition:transform var(--duration-fast),box-shadow var(--duration-fast),background var(--duration-fast)}.abf-btn:hover{transform:translateY(-1px)}.abf-btn:active{box-shadow:var(--neu-inset-sm);transform:translateY(0)}.abf-btn .ic{font-size:12px}.abf-btn--ghost{box-shadow:none;background:transparent;border-color:transparent;color:var(--text-secondary)}.abf-btn--ghost:hover{background:var(--surface)}.abf-btn--outline{box-shadow:none;background:transparent}.abf-btn--accent{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.abf-btn--accent:hover{filter:brightness(1.04)}.abf-btn--primary{background:var(--success);border-color:var(--success);color:#2a3a00;text-shadow:0 1px 0 rgba(255,255,255,.25)}.abf-btn--danger{background:transparent;border-color:transparent;box-shadow:none;color:var(--text-tertiary)}.abf-btn--danger:hover{color:var(--error);background:var(--error-soft)}.abf-btn--on{background:var(--success-soft);border-color:var(--success);color:var(--text-primary);box-shadow:none}.abf-btn--sm{height:28px;padding:0 var(--sp-2_5);font-size:var(--text-2xs)}.abf-btn--icon{width:32px;padding:0;justify-content:center}.abf-btn[disabled]{opacity:.5;pointer-events:none}.abf-btn.run{min-width:120px;justify-content:center}.abf-toggle{display:inline-flex;align-items:center;gap:var(--sp-2);height:32px;padding:0 var(--sp-2_5) 0 var(--sp-3);border-radius:var(--radius-full);border:1px solid var(--border-default);background:var(--surface-raised);box-shadow:var(--neu-sm);cursor:pointer;font-size:var(--text-xs);font-weight:600;color:var(--text-secondary)}.abf-toggle .sw{width:34px;height:18px;border-radius:var(--radius-full);background:var(--surface-inset);box-shadow:var(--neu-inset-sm);position:relative;transition:background var(--duration-base)}.abf-toggle .sw:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--surface-ink);box-shadow:var(--neu-sm);transition:left var(--duration-base)}.abf-toggle.on{color:var(--text-primary)}.abf-toggle.on .sw{background:var(--success)}.abf-toggle.on .sw:after{left:18px}.abf-stage{position:relative;flex:1;display:flex;gap:var(--sp-3);min-height:0;margin-top:var(--sp-3)}.abf-palette{width:188px;flex-shrink:0;background:var(--surface-raised);border-radius:var(--radius-md);box-shadow:var(--neu-sm);padding:var(--sp-3) var(--sp-2_5);display:flex;flex-direction:column;gap:var(--sp-1);overflow-y:auto}.abf-p-h{font-size:var(--text-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);font-weight:700;padding:var(--sp-1) var(--sp-2)}.abf-palette>div:not(:first-child) .abf-p-h{margin-top:var(--sp-2)}.abf-pal-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);cursor:grab;border:1px solid transparent;transition:background var(--duration-fast),border-color var(--duration-fast)}.abf-pal-item:hover{background:var(--surface);border-color:var(--border-default)}.abf-pal-item:active{cursor:grabbing;box-shadow:var(--neu-inset-sm)}.abf-pi-ico{width:24px;height:24px;border-radius:var(--radius-s);display:grid;place-items:center;font-size:12px;flex-shrink:0;border-left:3px solid var(--text-tertiary)}.abf-pi-tx{display:flex;flex-direction:column;line-height:1.2;min-width:0}.abf-pi-tt{font-size:var(--text-xs);font-weight:600;color:var(--text-primary)}.abf-pi-sb{font-size:var(--text-3xs);color:var(--text-tertiary)}.abf-p-tip{margin-top:auto;font-size:var(--text-3xs);color:var(--text-tertiary);line-height:1.45;padding:var(--sp-2);border-top:1px solid var(--border-subtle)}.abf-cardsw{margin-top:auto;display:flex;flex-direction:column;gap:var(--sp-1_5);padding:var(--sp-2) var(--sp-1);border-top:1px solid var(--border-subtle)}.abf-cardsw .abf-cl{font-size:var(--text-3xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-weight:700;padding:0 var(--sp-1)}.abf-canvas-wrap{position:relative;flex:1;border-radius:var(--radius-md);border:1px solid var(--border-default);background-color:var(--surface-inset);overflow:hidden;min-width:0}.abf-canvas-wrap.drop-target{outline:2px dashed var(--accent);outline-offset:-4px}.abf-canvas{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(var(--border-strong) 1.1px,transparent 1.1px);background-size:22px 22px;cursor:grab}.abf-canvas.panning,.abf-canvas.space{cursor:grabbing}.abf-world{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}.abf-edges{position:absolute;top:0;left:0;width:4000px;height:3000px;pointer-events:none;overflow:visible}.abf-edges path.abf-edge{fill:none;stroke:var(--text-tertiary);stroke-width:1.6;opacity:.5}.abf-edges path.abf-edge.yes{stroke:var(--success);opacity:.75}.abf-edges path.abf-edge.no{stroke:var(--error);opacity:.75}.abf-edges path.abf-edge.dash{stroke-dasharray:5 4;opacity:.4}.abf-edges path.abf-edge.hot{opacity:.95;stroke-width:2.2}.abf-edges path.abf-hit{fill:none;stroke:transparent;stroke-width:16;pointer-events:stroke;cursor:pointer}.abf-edges .abf-flow{fill:var(--accent);opacity:0}.abf-edges .abf-flow.run{opacity:.9}.abf-edges path.abf-temp{stroke:var(--accent);stroke-dasharray:6 4;stroke-width:2.4;opacity:.85;fill:none}.abf-canvas.connecting,.abf-canvas.connecting .abf-node{cursor:crosshair}.abf-canvas-wrap.connecting-mode .abf-cv-controls,.abf-canvas-wrap.connecting-mode .abf-legend,.abf-canvas-wrap.connecting-mode .abf-flowhint{pointer-events:none}.abf-node.drop-ok{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft),var(--neu-md)}.abf-edge-label{font-family:var(--font-mono);font-size:9px;font-weight:700;paint-order:stroke;stroke:var(--surface-inset);stroke-width:3px}.abf-edge-label.yes{fill:var(--success)}.abf-edge-label.no{fill:var(--error)}.abf-edge-add{cursor:pointer}.abf-edge-add circle{fill:var(--surface-raised);stroke:var(--border-strong);stroke-width:1.2}.abf-edge-add:hover circle{stroke:var(--accent)}.abf-edge-add text{fill:var(--text-tertiary);font-size:13px;font-weight:700;text-anchor:middle}.abf-edge-add:hover text{fill:var(--accent)}.abf-node{position:absolute;width:184px;background:var(--surface-raised);border:1px solid var(--border-default);border-left:3px solid var(--text-tertiary);border-radius:var(--radius-sm);box-shadow:var(--neu-sm);padding:var(--sp-2) var(--sp-2_5);display:flex;flex-direction:column;gap:var(--sp-1);cursor:grab;-webkit-user-select:none;user-select:none;transition:box-shadow var(--duration-fast),transform var(--duration-fast),border-color var(--duration-fast)}.abf-node:hover{box-shadow:var(--neu-md)}.abf-node.dragging{cursor:grabbing;box-shadow:var(--neu-lg);z-index:20}.abf-node.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft),var(--neu-md)}.abf-nhead{display:flex;align-items:center;gap:var(--sp-2)}.abf-nico{width:26px;height:26px;border-radius:var(--radius-s);display:grid;place-items:center;font-size:13px;background:var(--surface-inset);flex-shrink:0;box-shadow:var(--neu-inset-sm)}.abf-nt{display:flex;flex-direction:column;line-height:1.2;min-width:0;flex:1}.abf-ntitle{font-size:var(--text-sm);font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.abf-nkind{font-size:var(--text-3xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:600}.abf-nsub{font-size:var(--text-2xs);color:var(--text-secondary);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:34px;margin-top:-2px}.abf-nfoot{display:flex;align-items:center;gap:var(--sp-1_5);padding-left:34px;min-height:16px}.abf-nbadge{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-3xs);font-weight:700;padding:1px 7px;border-radius:var(--radius-full);letter-spacing:.02em}.abf-nbadge .dot{width:5px;height:5px;border-radius:50%;background:currentColor}.abf-nbadge.idle{background:var(--surface-inset);color:var(--text-tertiary)}.abf-nbadge.run{background:var(--warning-soft);color:#9a7b1a}.abf-nbadge.run .dot{animation:abf-pulse 1s var(--ease-default) infinite}.abf-nbadge.done{background:var(--success-soft);color:#4d7a06}.abf-nbadge.fail{background:var(--error-soft);color:var(--error)}.abf-nbadge.warn{background:var(--warning-soft);color:#9a7b1a}.abf-nprog{height:4px;border-radius:var(--radius-full);background:var(--surface-inset);overflow:hidden;margin:2px 0 0 34px;box-shadow:var(--neu-inset-sm)}.abf-nprog>i{display:block;height:100%;background:var(--warning);border-radius:inherit;transition:width .3s linear}.abf-node.node--trigger{border-left-color:var(--orange);border-left-width:4px}.abf-node.node--source{border-left-color:var(--success)}.abf-node.node--agent{border-left-color:var(--accent)}.abf-node.node--instruction{border-left-color:var(--text-tertiary);border-left-style:dashed}.abf-node.node--condition{border-left-color:var(--purple)}.abf-node.node--action{border-left-color:var(--teal)}.abf-node.node--notify{border-left-color:var(--pink)}.abf-node.node--output{border-left-color:var(--warning)}.abf-node.node--trigger .abf-nico{color:var(--orange)}.abf-node.node--source .abf-nico{color:var(--success)}.abf-node.node--agent .abf-nico{color:var(--accent)}.abf-node.node--instruction .abf-nico{color:var(--text-tertiary)}.abf-node.node--condition .abf-nico{color:var(--purple)}.abf-node.node--action .abf-nico{color:var(--teal)}.abf-node.node--notify .abf-nico{color:var(--pink)}.abf-node.node--output .abf-nico{color:#b08a18}.abf-node.node--running{border-color:var(--warning);box-shadow:0 0 0 2px var(--warning-soft),var(--neu-md)}.abf-node.node--warn{border-color:#ecc94b99}.abf-node.node--disabled{opacity:.62;filter:saturate(.7)}.abf-h{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--surface-ink);border:1.8px solid var(--text-tertiary);transform:translate(-50%,-50%);z-index:3;cursor:crosshair;transition:transform var(--duration-fast),border-color var(--duration-fast)}.abf-h:hover{transform:translate(-50%,-50%) scale(1.35);border-color:var(--accent)}.abf-h.in{left:0}.abf-h.out{left:100%}.abf-h.yes{border-color:var(--success);background:var(--success-soft)}.abf-h.no{border-color:var(--error);background:var(--error-soft)}.abf-h-tag{position:absolute;left:calc(100% + 9px);font-size:var(--text-3xs);font-weight:700;transform:translateY(-50%);pointer-events:none;font-family:var(--font-mono)}.abf-h-tag.yes{color:var(--success)}.abf-h-tag.no{color:var(--error)}.abf-node-add{position:absolute;left:100%;top:50%;transform:translate(50%,-50%);width:18px;height:18px;border-radius:50%;background:var(--surface-raised);box-shadow:var(--neu-sm);border:1px solid var(--border-default);display:none;place-items:center;font-size:12px;color:var(--accent);cursor:pointer;z-index:4;margin-left:7px}.abf-node:hover .abf-node-add,.abf-node.selected .abf-node-add{display:grid}.abf-node-add:hover{background:var(--accent);color:#fff}@keyframes abf-pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes abf-flow-dash{to{stroke-dashoffset:-18}}.abf-edges path.abf-edge.running{stroke-dasharray:6 6;animation:abf-flow-dash .6s linear infinite}.abf-cv-controls{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;gap:var(--sp-1_5);z-index:6}.abf-cv-controls .grp{display:flex;flex-direction:column;background:var(--surface-raised);border-radius:var(--radius-s);box-shadow:var(--neu-sm);overflow:hidden}.abf-cv-controls button{width:32px;height:30px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:14px;display:grid;place-items:center}.abf-cv-controls button:hover{background:var(--surface)}.abf-cv-controls .zlabel{font-size:var(--text-3xs);text-align:center;color:var(--text-tertiary);font-family:var(--font-mono);padding:2px 0;border-block:1px solid var(--border-subtle)}.abf-legend{position:absolute;left:12px;bottom:12px;display:flex;gap:var(--sp-2_5);flex-wrap:wrap;max-width:60%;background:var(--surface-raised);box-shadow:var(--neu-sm);border-radius:var(--radius-s);padding:var(--sp-1_5) var(--sp-2_5);font-size:var(--text-2xs);color:var(--text-secondary);z-index:6}.abf-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:-1px}.abf-legend i.bg-orange{background:var(--orange)}.abf-legend i.bg-success{background:var(--success)}.abf-legend i.bg-accent{background:var(--accent)}.abf-legend i.bg-purple{background:var(--purple)}.abf-legend i.bg-blue{background:var(--blue)}.abf-legend i.bg-teal{background:var(--teal)}.abf-legend i.bg-pink{background:var(--pink)}.abf-legend i.bg-warning{background:var(--warning)}.abf-flowhint{position:absolute;left:12px;top:12px;display:flex;align-items:center;gap:var(--sp-2);z-index:6;font-size:var(--text-2xs);color:var(--text-tertiary);background:var(--surface-raised);box-shadow:var(--neu-sm);border-radius:var(--radius-full);padding:var(--sp-1) var(--sp-2_5)}.abf-flowhint .arrow{font-family:var(--font-mono);letter-spacing:-2px;color:var(--text-placeholder)}.abf-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;padding:var(--sp-6)}.abf-empty .e-card{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);max-width:340px}.abf-empty .e-ic{width:54px;height:54px;border-radius:var(--radius-md);background:var(--surface-raised);box-shadow:var(--neu-md);display:grid;place-items:center;font-size:22px;color:var(--text-tertiary)}.abf-empty h4{font-size:var(--text-md);font-weight:700}.abf-empty p{font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.5}.abf-qmenu{position:absolute;z-index:30;background:var(--surface-raised);border-radius:var(--radius-sm);box-shadow:var(--neu-lg);border:1px solid var(--border-default);padding:var(--sp-1);min-width:188px;max-height:330px;overflow-y:auto}.abf-qmenu--tb{left:0;top:38px;min-width:220px}.abf-qmenu--tpl{left:0;top:38px;min-width:248px}.abf-q-h{font-size:var(--text-3xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:700;padding:var(--sp-1_5) var(--sp-2) var(--sp-1)}.abf-q-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);cursor:pointer;font-size:var(--text-xs);color:var(--text-primary)}.abf-q-item:hover{background:var(--surface)}.abf-q-item .count{font-family:var(--font-mono);color:var(--text-tertiary);font-size:var(--text-2xs)}.abf-q-item .qi-ico,.abf-qi-ico{width:22px;height:22px;border-radius:var(--radius-s);display:grid;place-items:center;font-size:11px;border-left:3px solid var(--text-tertiary);flex-shrink:0}.abf-q-item--tpl{align-items:flex-start}.abf-q-tplico{margin-top:2px}.abf-q-tpltx{display:flex;flex-direction:column;line-height:1.3}.abf-q-tpltx .tt{font-weight:600}.abf-q-tpltx .sb{font-size:var(--text-2xs);color:var(--text-tertiary)}.abf-inspector{position:absolute;top:0;right:0;bottom:0;width:344px;z-index:20;background:var(--surface-raised);border-radius:var(--radius-md);box-shadow:var(--neu-lg);display:flex;flex-direction:column;overflow:hidden}.abf-inspector.modal{position:fixed;top:0;right:0;bottom:0;left:0;width:auto;border-radius:0;background:var(--overlay-bg);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);box-shadow:none;display:grid;place-items:center;z-index:50}.abf-inspector.modal .abf-insp-inner{width:420px;max-width:92vw;max-height:86vh;background:var(--surface-raised);border-radius:var(--radius-md);box-shadow:var(--neu-lg);display:flex;flex-direction:column;overflow:hidden}.abf-insp-inner{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:0}.abf-insp-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-3) var(--sp-2_5)}.abf-ih-ico{width:30px;height:30px;border-radius:var(--radius-s);display:grid;place-items:center;font-size:14px;background:var(--surface-inset);box-shadow:var(--neu-inset-sm);border-left:3px solid var(--text-tertiary)}.abf-ih-tx{flex:1;min-width:0}.abf-ih-tt{font-size:var(--text-sm);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.abf-ih-kd{font-size:var(--text-3xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:600}.abf-close{width:26px;height:26px;border-radius:var(--radius-s);display:grid;place-items:center;cursor:pointer;color:var(--text-tertiary);font-size:14px;border:none;background:transparent}.abf-close:hover{background:var(--surface);color:var(--text-primary)}.abf-seg{display:inline-flex;background:var(--surface-inset);border-radius:var(--radius-s);padding:2px;box-shadow:var(--neu-inset-sm)}.abf-seg button{border:none;background:transparent;font-family:inherit;font-size:var(--text-2xs);font-weight:600;color:var(--text-tertiary);padding:3px 9px;border-radius:var(--radius-xs);cursor:pointer;display:flex;align-items:center;gap:4px}.abf-seg button.on{background:var(--surface-raised);color:var(--text-primary);box-shadow:var(--neu-sm)}.abf-insp-modetab{padding:0 var(--sp-3) var(--sp-2);display:flex;align-items:center;gap:var(--sp-2)}.abf-insp-modetab .abf-mt-l{font-size:var(--text-2xs);color:var(--text-tertiary)}.abf-insp-body{flex:1;overflow-y:auto;padding:var(--sp-1) var(--sp-3) var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3)}.abf-insp-body::-webkit-scrollbar{width:8px}.abf-insp-body::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full);border:2px solid var(--surface-raised)}.abf-fg{display:flex;flex-direction:column;gap:var(--sp-1_5)}.abf-fg>label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.abf-req{color:var(--error);font-size:var(--text-2xs)}.abf-hint{font-size:var(--text-2xs);color:var(--text-tertiary);line-height:1.4}.abf-control{height:34px;width:100%;padding:0 var(--sp-2_5);border-radius:var(--radius-s);border:1px solid var(--border-default);background:var(--surface-ink);font-size:var(--text-sm);font-family:inherit;color:var(--text-primary);outline:none;transition:border-color var(--duration-fast)}.abf-control:focus{border-color:var(--accent)}.abf-control.mono{font-family:var(--font-mono);font-size:var(--text-xs)}select.abf-control{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-tertiary) 50%),linear-gradient(135deg,var(--text-tertiary) 50%,transparent 50%);background-position:calc(100% - 16px) 14px,calc(100% - 11px) 14px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:28px}textarea.abf-control{height:auto;min-height:74px;padding:var(--sp-2);resize:vertical;line-height:1.5}.abf-seg-row{display:inline-flex;background:var(--surface-inset);border-radius:var(--radius-s);padding:2px;box-shadow:var(--neu-inset-sm);width:100%}.abf-seg-row button{flex:1;border:none;background:transparent;font-family:inherit;font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary);padding:6px;border-radius:var(--radius-xs);cursor:pointer}.abf-seg-row button.on{background:var(--surface-raised);color:var(--text-primary);box-shadow:var(--neu-sm)}.abf-sw-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2_5);border-radius:var(--radius-s);background:var(--surface-ink);border:1px solid var(--border-default)}.abf-sw-tx{display:flex;flex-direction:column;gap:1px}.abf-sw-tt{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.abf-sw-sb{font-size:var(--text-2xs);color:var(--text-tertiary)}.abf-switch{width:38px;height:22px;border-radius:var(--radius-full);background:var(--surface-inset);box-shadow:var(--neu-inset-sm);position:relative;cursor:pointer;flex-shrink:0;transition:background var(--duration-base);border:none}.abf-switch:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--surface-ink);box-shadow:var(--neu-sm);transition:left var(--duration-base)}.abf-switch.on{background:var(--teal)}.abf-switch.on:after{left:19px}.abf-cond-list{display:flex;flex-direction:column;gap:var(--sp-2)}.abf-cond-block{display:flex;flex-direction:column;gap:var(--sp-1_5)}.abf-cond-block.set{padding:var(--sp-1_5);border:1px solid var(--border-subtle);border-radius:var(--radius-s);background:var(--surface-ink)}.abf-cond-block.set .abf-cond-row{grid-template-columns:1fr auto}.abf-cond-set-list{display:flex;flex-direction:column;gap:2px;max-height:160px;overflow-y:auto;padding-left:var(--sp-1)}.abf-cond-row{display:grid;grid-template-columns:1fr 56px 1fr auto;gap:var(--sp-1_5);align-items:center}.abf-cond-row .abf-control{height:32px;padding:0 var(--sp-2);font-size:var(--text-xs)}.abf-rm{width:28px;height:28px;border-radius:var(--radius-s);border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;font-size:13px}.abf-rm:hover{background:var(--error-soft);color:var(--error)}.abf-add-row{align-self:flex-start}.abf-ref-list{display:flex;flex-direction:column;gap:var(--sp-2)}.abf-ref-block{display:flex;flex-direction:column;gap:var(--sp-1_5);padding:var(--sp-1_5);border:1px solid var(--border-subtle);border-radius:var(--radius-s);background:var(--surface-ink)}.abf-ref-row{display:grid;grid-template-columns:1fr auto;gap:var(--sp-1_5);align-items:center}.abf-sched-every{display:grid;grid-template-columns:88px 1fr;gap:var(--sp-1_5);align-items:center}.abf-insp-foot{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2_5) var(--sp-3);border-top:1px solid var(--border-subtle)}.abf-insp-note{display:flex;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2_5);border-radius:var(--radius-s);background:var(--warning-soft);font-size:var(--text-2xs);color:#8a6d12;line-height:1.45}.abf-insp-note .ic{flex-shrink:0}.abf-insp-note.info{background:var(--accent-soft);color:#2c5aa8}.abf-insp-note.err{background:var(--error-soft);color:#a4262c}.abf-ref-file{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2);border:1px solid var(--border-subtle);border-radius:var(--radius-s);background:var(--surface-ink)}.abf-rf-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-2xs)}.abf-rf-pick{cursor:pointer}.abf-rf-pick.is-busy{opacity:.6;pointer-events:none}.abf-statusbar{display:flex;align-items:stretch;gap:var(--sp-3);margin-top:var(--sp-3);min-height:54px}.abf-runstatus,.abf-history{background:var(--surface-raised);border-radius:var(--radius-md);box-shadow:var(--neu-sm);padding:var(--sp-2_5) var(--sp-3)}.abf-runstatus{flex:1;display:flex;flex-direction:column;justify-content:center;gap:var(--sp-1_5);min-width:0}.abf-rs-h{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:700}.abf-run-row{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs)}.abf-run-row .nm{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.abf-run-row .cnt{font-family:var(--font-mono);color:var(--text-tertiary);font-size:var(--text-2xs)}.abf-progress{width:160px;height:7px;border-radius:var(--radius-full);background:var(--surface-inset);overflow:hidden;box-shadow:var(--neu-inset-sm)}.abf-progress>i{display:block;height:100%;background:var(--success);border-radius:inherit;transition:width .3s linear}.abf-progress.warn>i{background:var(--warning)}.abf-badge{font-size:var(--text-2xs);font-weight:700;padding:2px 9px;border-radius:var(--radius-full);white-space:nowrap}.abf-badge--xs{font-size:9px;padding:1px 7px}.abf-badge.ok{background:var(--success-soft);color:#4d7a06}.abf-badge.warn{background:var(--warning-soft);color:#9a7b1a}.abf-badge.auto{background:var(--accent-soft);color:#2c5aa8}.abf-badge.err{background:var(--error-soft, #f8d7da);color:#a4262c}.abf-badge.neutral{background:var(--surface-inset);color:var(--text-tertiary)}.abf-history{width:288px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--sp-1)}.abf-h-title{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:700;margin-bottom:2px}.abf-h-row{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);color:var(--text-secondary)}.abf-h-row .ts{font-size:var(--text-2xs);color:var(--text-tertiary);font-family:var(--font-mono);flex-shrink:0}.abf-h-row .nm{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.abf-h-row--clickable{cursor:pointer;border-radius:var(--radius-xs);padding:2px 4px;margin:0 -4px}.abf-h-row--clickable:hover{background:var(--surface-inset)}.abf-runlog{width:480px;max-width:94vw}.abf-log-list{display:flex;flex-direction:column;gap:var(--sp-1_5)}.abf-log-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2_5);border:1px solid var(--border-subtle);border-radius:var(--radius-s);background:var(--surface-ink)}.abf-log-ico{display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0;border-radius:var(--radius-xs);font-size:var(--text-sm)}.abf-log-tx{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.abf-log-tx .tt{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:6px}.abf-log-tx .sb{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.abf-log-branch{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--purple);background:var(--purple-soft);padding:1px 6px;border-radius:var(--radius-full)}.abf-versions{width:680px;max-width:95vw}.abf-ver-body{flex:1;display:grid;grid-template-columns:248px 1fr;gap:0;overflow:hidden;min-height:0}.abf-ver-list{overflow-y:auto;padding:var(--sp-2);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--sp-1)}.abf-ver-row{display:flex;flex-direction:column;gap:2px;padding:var(--sp-2) var(--sp-2_5);cursor:pointer;border-radius:var(--radius-s);border:1px solid transparent}.abf-ver-row:hover{background:var(--surface-inset)}.abf-ver-row.on{background:var(--accent-soft);border-color:var(--accent)}.abf-ver-row .ts{font-size:var(--text-xs);font-weight:600;color:var(--text-primary);font-family:var(--font-mono)}.abf-ver-row .meta{font-size:var(--text-2xs);color:var(--text-tertiary)}.abf-ver-diff{overflow-y:auto;padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.abf-ver-diffhead{font-size:var(--text-xs);color:var(--text-secondary);font-weight:600}.abf-ver-difflist{display:flex;flex-direction:column;gap:var(--sp-1_5)}.abf-ver-diffrow{display:grid;grid-template-columns:16px 18px auto 1fr;gap:var(--sp-1_5);align-items:center;padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);background:var(--surface-ink);border-left:3px solid var(--border-default)}.abf-ver-diffrow .mk{font-weight:800;text-align:center}.abf-ver-diffrow .ic{text-align:center}.abf-ver-diffrow .tt{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);white-space:nowrap}.abf-ver-diffrow .sb{font-size:var(--text-2xs);color:var(--text-tertiary);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.abf-ver-diffrow.added{border-left-color:var(--success)}.abf-ver-diffrow.added .mk{color:var(--success)}.abf-ver-diffrow.removed{border-left-color:var(--error)}.abf-ver-diffrow.removed .mk{color:var(--error)}.abf-ver-diffrow.changed{border-left-color:var(--warning)}.abf-ver-diffrow.changed .mk{color:var(--warning)}.abf-ver-edges{display:flex;gap:var(--sp-2);font-size:var(--text-xs);font-weight:600}.abf-ver-edges .added{color:var(--success)}.abf-ver-edges .removed{color:var(--error)}.abf-toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%) translateY(20px);z-index:70;background:var(--text-primary);color:var(--surface);font-size:var(--text-xs);font-weight:600;padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-full);box-shadow:var(--neu-md);opacity:0;transition:opacity var(--duration-base),transform var(--duration-base);pointer-events:none}.abf-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.abf-node.nv-b{padding:0;overflow:hidden;border-left-width:1px;gap:0}.abf-node.nv-b .abf-nhead{padding:var(--sp-2) var(--sp-2_5);border-bottom:1px solid var(--border-subtle)}.abf-node.nv-b .abf-nico{box-shadow:none;background:#ffffff80}[data-theme=dark] .abf-node.nv-b .abf-nico{background:#ffffff14}.abf-node.nv-b.node--trigger .abf-nhead{background:var(--orange-soft)}.abf-node.nv-b.node--source .abf-nhead{background:var(--success-soft)}.abf-node.nv-b.node--agent .abf-nhead{background:var(--accent-soft)}.abf-node.nv-b.node--instruction .abf-nhead{background:var(--surface-inset)}.abf-node.nv-b.node--condition .abf-nhead{background:var(--purple-soft)}.abf-node.nv-b.node--action .abf-nhead{background:var(--teal-soft)}.abf-node.nv-b.node--notify .abf-nhead{background:var(--pink-soft)}.abf-node.nv-b.node--output .abf-nhead{background:var(--warning-soft)}.abf-node.nv-b .abf-nbody{padding:var(--sp-2) var(--sp-2_5) var(--sp-2_5);display:flex;flex-direction:column;gap:var(--sp-1)}.abf-node.nv-b .abf-nsub{padding-left:0;margin:0}.abf-node.nv-b .abf-nfoot{padding-left:0}.abf-node.nv-b .abf-nprog{margin-left:0}.abf-node.nv-c{border-left-width:4px;gap:3px}.abf-node.nv-c .abf-nhead{justify-content:space-between;align-items:center}.abf-node.nv-c .abf-nico{width:auto;height:auto;background:none;box-shadow:none;border-radius:0;font-size:13px}.abf-node.nv-c .abf-nt{flex-direction:row;align-items:center;gap:6px}.abf-node.nv-c .abf-nkind{display:none}.abf-node.nv-c .abf-nsub{padding-left:22px}.abf-node.nv-c .abf-cstat{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-2xs);font-weight:700;color:var(--text-tertiary);font-family:var(--font-mono);flex-shrink:0}.abf-node.nv-c .abf-cstat .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.abf-node.nv-c .abf-cstat.run,.abf-node.nv-c .abf-cstat.warn{color:#9a7b1a}.abf-node.nv-c .abf-cstat.done{color:#4d7a06}.abf-node.nv-c .abf-cstat.fail{color:var(--error)}[data-theme=dark] .abf-node.nv-c .abf-cstat.run,[data-theme=dark] .abf-node.nv-c .abf-cstat.warn{color:#ecc860}[data-theme=dark] .abf-node.nv-c .abf-cstat.done{color:#a9e05a}.abf-edges path.abf-edge.sel{opacity:1;stroke:var(--accent);stroke-width:2.6}.abf-edges path.abf-edge.sel.yes{stroke:var(--success)}.abf-edges path.abf-edge.sel.no{stroke:var(--error)}.abf-edge-del{cursor:pointer}.abf-edge-del circle{fill:var(--surface-raised);stroke:var(--error);stroke-width:1.3}.abf-edge-del:hover circle{fill:var(--error-soft)}.abf-edge-del text{fill:var(--error);font-size:11px;font-weight:700;text-anchor:middle}.abf-edge-end{fill:var(--accent);stroke:var(--surface-ink);stroke-width:2;cursor:grab}.abf-edge-end:hover{stroke:var(--accent-soft)}.abf-minimap{position:absolute;top:12px;right:12px;width:188px;height:120px;background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-s);box-shadow:var(--neu-sm);overflow:hidden;z-index:6}.abf-minimap svg{display:block;width:100%;height:100%;cursor:pointer}.abf-mm-view{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.2}.abf-mm-cap{position:absolute;top:4px;left:7px;font-size:var(--text-3xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);pointer-events:none}.abf-marquee{position:absolute;z-index:8;border:1.4px dashed var(--accent);background:var(--accent-soft);border-radius:3px;pointer-events:none}.abf-world.relayout .abf-node{transition:left .36s var(--ease-default),top .36s var(--ease-default),box-shadow var(--duration-fast),transform var(--duration-fast),border-color var(--duration-fast)}.abf-alignbar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:9;display:flex;align-items:center;gap:var(--sp-1);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-full);box-shadow:var(--neu-md);padding:var(--sp-1) var(--sp-1_5)}.abf-ab-cnt{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-2xs);font-weight:600;color:var(--text-tertiary);padding:0 var(--sp-2) 0 var(--sp-2_5);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}.abf-ab-cnt b{color:var(--accent);font-size:var(--text-sm);font-family:var(--font-mono)}.abf-ab-grp{display:flex;gap:2px;padding-left:var(--sp-1_5);margin-left:var(--sp-0_5);border-left:1px solid var(--border-subtle)}.abf-alignbar button{width:28px;height:28px;border:none;background:transparent;border-radius:var(--radius-s);display:grid;place-items:center;cursor:pointer;color:var(--text-secondary);transition:background var(--duration-fast),color var(--duration-fast)}.abf-alignbar button:hover{background:var(--surface);color:var(--text-primary)}.abf-alignbar button:active{box-shadow:var(--neu-inset-sm)}.abf-alignbar button[disabled]{opacity:.32;pointer-events:none}.abf-alignbar button svg{width:15px;height:15px;display:block}.abf-ab-del:hover{background:var(--error-soft);color:var(--error)}.abf-ab-x{font-size:14px;color:var(--text-tertiary)}.mock-nocodb{flex-direction:row;background:var(--surface-ink);--tab-accent: var(--green)}.mock-nocodb .data-table th{padding:var(--sp-2) var(--sp-3);z-index:1;position:relative}.mock-nocodb .data-table td{padding:var(--sp-2) var(--sp-3);cursor:cell}.mock-nocodb .data-table tr:hover td{background:var(--border-subtle)}.mock-nocodb .data-table tr:hover .mock-nc-expand-btn{opacity:1}.mock-nocodb .data-table .col-checkbox{width:40px}.mock-nocodb .data-table .col-row-num{color:var(--text-placeholder);font-size:var(--text-xxs)}.mock-nocodb .data-table .col-checkbox input[type=checkbox]{accent-color:var(--blue)}.mock-nocodb .data-table tbody td:hover{outline:2px solid var(--blue);outline-offset:-2px}.mock-nocodb .data-table th:not(.col-checkbox):not(.col-row-num):after{content:"";position:absolute;right:0;top:25%;width:3px;height:50%;cursor:col-resize;background:var(--border-default);opacity:0;transition:opacity .15s}.mock-nocodb .data-table th:hover:after{opacity:1}.mock-nocodb .data-table td.mock-nc-cell-selected{outline:2px solid var(--blue);outline-offset:-2px;background:var(--surface-ink)}.mock-nocodb .data-table td.mock-nc-cell-range{background:var(--blue-soft);outline:1px solid var(--blue);outline-offset:-1px}.mock-nocodb .data-table td.mock-nc-cell-copied{outline:2px dashed var(--blue);outline-offset:-2px;animation:mock-nc-copied-pulse 1.5s ease-in-out infinite}.mock-nc-toolbar{padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.mock-nc-views{display:flex;gap:0}.mock-nc-grid{overflow:auto}.mock-nc-sidebar-wrap{position:sticky;top:0;align-self:flex-start;height:100vh;flex-shrink:0;width:220px;min-width:220px;overflow:hidden;transition:width .22s ease,min-width .22s ease}.mock-nc-sidebar-wrap--collapsed{width:22px;min-width:22px}.mock-nc-sidebar-wrap--collapsed .mock-nc-sidebar{display:none}.mock-nc-sidebar{width:220px;min-width:220px;background:var(--surface-ink);border-right:1px solid var(--border-default);padding:var(--sp-3) 0;overflow-x:hidden}.mock-nc-sidebar-base,.mock-nc-sidebar-table,.mock-nc-sidebar-view{min-width:0}.mock-nc-sidebar-header{padding:var(--sp-1_5) 12px 10px 16px;display:flex;align-items:center;justify-content:space-between}.mock-nc-sidebar-base{padding:var(--sp-1_5) var(--sp-4)}.mock-nc-sidebar-base svg{width:14px;height:14px;color:var(--text-tertiary)}.mock-nc-sidebar-table{padding:var(--sp-1) 16px 5px 34px;font-size:var(--text-xs);color:var(--text-secondary);border-radius:0}.mock-nc-sidebar-table:hover{background:var(--border-subtle)}.mock-nc-sidebar-table.active{background:var(--blue-soft);color:var(--blue);font-weight:500}.mock-nc-sidebar-table svg{width:12px;height:12px}.mock-nc-sidebar-view{padding:var(--sp-1) 16px 4px 52px;font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-nc-sidebar-view:hover{color:var(--text-secondary)}.mock-nc-sidebar-view.active{color:var(--blue);font-weight:500}.mock-nc-sidebar-view svg{width:10px;height:10px}.mock-nc-sidebar-add{padding:var(--sp-2) 16px 8px 34px;font-size:var(--text-xs);color:var(--text-placeholder)}.mock-nc-sidebar-add:hover{color:var(--blue)}.mock-nc-kanban-toolbar{padding:var(--sp-2) var(--sp-3) 0 var(--sp-3)}.mock-nc-kanban{display:flex;gap:var(--sp-3);padding:var(--sp-3);overflow-x:auto}.mock-nc-kanban-col{width:240px;min-width:240px}.mock-nc-kanban-col.collapsed{width:40px;min-width:40px;align-items:center;padding:var(--sp-3) var(--sp-1);background:var(--surface);border-radius:var(--radius-sm)}.mock-nc-kanban-col.collapsed .mock-nc-kanban-col-header{writing-mode:vertical-lr;text-orientation:mixed;padding:var(--sp-2) 0}.mock-nc-kanban-col.collapsed .mock-nc-kanban-card,.mock-nc-kanban-col.collapsed .mock-nc-kanban-add{display:none}.mock-nc-kanban-col-header{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);padding:var(--sp-1_5) var(--sp-2)}.mock-nc-kanban-col-header .count{font-weight:400;color:var(--text-placeholder);font-size:var(--text-xxs)}.mock-nc-kanban-card{background:var(--surface-ink);border-radius:var(--radius-sm);padding:var(--sp-2_5) var(--sp-3);box-shadow:0 1px 3px #0000000f;transition:box-shadow .1s}.mock-nc-kanban-card:hover{box-shadow:0 2px 8px #0000001a}.mock-nc-kanban-card:hover .mock-nc-kanban-card-drag{opacity:1}.mock-nc-kanban-card-title{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.mock-nc-kanban-card-meta{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-nc-kanban-card-field{font-size:var(--text-xxs);color:var(--text-secondary)}.mock-nc-gallery{padding:var(--sp-4);display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-4);align-content:start}.mock-nc-gallery-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--neu-sm);transition:transform .15s,box-shadow .15s}.mock-nc-gallery-card:hover{transform:translateY(-2px);box-shadow:var(--neu-md)}.mock-nc-gallery-cover{height:120px;background:var(--surface);color:var(--text-placeholder);font-size:var(--text-2_5xl)}.mock-nc-gallery-body{padding:var(--sp-3)}.mock-nc-gallery-field{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-nc-form{display:flex;justify-content:center;padding:var(--sp-8) var(--sp-4)}.mock-nc-form-card{width:100%;max-width:560px;background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--neu-lg);padding:var(--sp-8);gap:var(--sp-5);align-self:flex-start}.mock-nc-form-title{font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.mock-nc-form-desc{font-size:var(--text-sm);color:var(--text-tertiary);line-height:1.5}.mock-nc-form-empty{max-width:360px;padding:var(--sp-4)}.mock-nc-calendar{padding:var(--sp-3)}.mock-nc-cal-header{padding:var(--sp-1) 0 8px}.mock-nc-cal-nav button{font-family:var(--font-sans)}.mock-nc-cal-cell{min-height:70px}.mock-nc-cal-date.today{background:var(--green)}.mock-nc-fields-panel{position:absolute;top:100%;left:0;width:280px;max-height:400px;background:var(--surface-ink);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000001f;z-index:20;display:flex;flex-direction:column;overflow:hidden}.mock-nc-fields-header{padding:var(--sp-2_5) var(--sp-3);border-bottom:1px solid var(--border-subtle)}.mock-nc-fields-list{padding:var(--sp-2);gap:var(--sp-0_5)}.mock-nc-field-row{padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);font-size:var(--text-xs);color:var(--text-secondary)}.mock-nc-field-row:hover{background:var(--border-subtle)}.mock-nc-field-drag{color:var(--text-placeholder);cursor:grab;font-size:var(--text-2xs)}.mock-nc-field-type{font-size:var(--text-2xs);color:var(--text-placeholder)}.mock-nc-fields-footer{padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border-subtle)}.mock-nc-fields-add{font-size:var(--text-xs);color:var(--blue)}.mock-nc-fields-add:hover{text-decoration:underline}.mock-nc-filter-panel{position:absolute;top:100%;left:0;z-index:20;width:440px;max-height:320px;background:var(--surface-ink);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000001f;display:flex;flex-direction:column;overflow:hidden}.mock-nc-filter-header{padding:var(--sp-2_5) var(--sp-3);border-bottom:1px solid var(--border-subtle);font-size:var(--text-xs);font-weight:600;color:var(--text-primary);flex-shrink:0}.mock-nc-filter-list{padding:var(--sp-2) var(--sp-3)}.mock-nc-filter-row{font-size:var(--text-xs)}.mock-nc-filter-footer{padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border-subtle);flex-shrink:0}.mock-nc-filter-add{font-size:var(--text-xs);color:var(--blue);cursor:pointer}.mock-nc-filter-add:hover{text-decoration:underline}.mock-nc-filter-conjunction{min-width:44px;padding:var(--sp-1) var(--sp-1_5);border-radius:var(--radius-xs);text-align:center;background:var(--border-subtle);border:none;font-family:var(--font-sans)}.mock-nc-filter-conjunction:hover{color:var(--blue)}.mock-nc-filter-remove{width:20px;height:20px;border-radius:var(--radius-xs);color:var(--text-placeholder);font-size:var(--text-mid);border:none;background:none;font-family:var(--font-sans)}.mock-nc-filter-remove:hover{color:var(--error);background:var(--error-soft)}.mock-nc-sort-panel{position:absolute;top:100%;left:0;z-index:20;width:360px;max-height:280px;background:var(--surface-ink);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000001f;display:flex;flex-direction:column;overflow:hidden}.mock-nc-sort-header{padding:var(--sp-2_5) var(--sp-3);border-bottom:1px solid var(--border-subtle);font-size:var(--text-xs);font-weight:600;color:var(--text-primary);flex-shrink:0}.mock-nc-sort-list{padding:var(--sp-2) var(--sp-3)}.mock-nc-sort-row{font-size:var(--text-xs)}.mock-nc-sort-footer{padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border-subtle);flex-shrink:0}.mock-nc-sort-add{font-size:var(--text-xs);color:var(--blue);cursor:pointer}.mock-nc-sort-add:hover{text-decoration:underline}.mock-nc-add-row{padding:var(--sp-2) var(--sp-3);font-size:var(--text-xs);color:var(--text-placeholder);border-top:1px solid var(--border-subtle)}.mock-nc-add-row:hover{color:var(--blue);background:var(--blue-soft)}.mock-nc-expand-btn{width:20px;height:20px;border-radius:var(--radius-xs);color:var(--text-placeholder);font-size:var(--text-xs);opacity:0;transition:opacity .1s}.mock-nc-expand-btn:hover{background:var(--blue-soft);color:var(--blue)}.mock-nc-expand-panel{width:480px;max-width:70%;z-index:11}.mock-nc-expand-title{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.mock-nc-expand-body{padding:var(--sp-5)}.mock-nc-expand-footer{padding:var(--sp-3) var(--sp-5)}.mock-nc-expand-footer .btn-sm{padding:var(--sp-1_5) var(--sp-4)}.mock-nc-expand-footer-info{color:var(--text-secondary);font-size:.8rem}.mock-nc-aggregation-row td{background:var(--surface)!important;font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary);border-top:2px solid var(--border-default);cursor:default}.mock-nc-aggregation-row td:hover{outline:none}.mock-nc-groupby-panel{position:absolute;top:100%;left:0;z-index:20;width:360px;max-height:280px;background:var(--surface-ink);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000001f;display:flex;flex-direction:column;overflow:hidden}.mock-nc-groupby-header{padding:var(--sp-2_5) var(--sp-3);border-bottom:1px solid var(--border-subtle);font-size:var(--text-xs);font-weight:600;color:var(--text-primary);flex-shrink:0}.mock-nc-groupby-list{padding:var(--sp-2) var(--sp-3)}.mock-nc-groupby-row{font-size:var(--text-xs)}.mock-nc-groupby-footer{padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border-subtle);flex-shrink:0}.mock-nc-groupby-add{font-size:var(--text-xs);color:var(--blue);cursor:pointer}.mock-nc-groupby-add:hover{text-decoration:underline}.mock-nc-sidebar-drag{font-size:var(--text-2xs);color:var(--text-placeholder);opacity:0;transition:opacity .15s;cursor:grab;margin-right:var(--sp-0_5);-webkit-user-select:none;user-select:none;letter-spacing:-2px}.mock-nc-sidebar-table:hover .mock-nc-sidebar-drag,.mock-nc-sidebar-view:hover .mock-nc-sidebar-drag{opacity:1}.mock-nc-sidebar-view-add{padding:var(--sp-1) 16px 4px 52px;font-size:var(--text-xxs);color:var(--text-placeholder)}.mock-nc-sidebar-view-add:hover{color:var(--blue)}.mock-nc-kanban-add{padding:var(--sp-2);border:1px dashed var(--border-default);border-radius:var(--radius-s);font-size:var(--text-xs);color:var(--text-placeholder);text-align:center;transition:color .15s,border-color .15s}.mock-nc-kanban-add:hover{color:var(--blue);border-color:var(--blue)}.mock-nc-kanban-card-drag{position:absolute;right:var(--sp-2);top:var(--sp-2);font-size:var(--text-xs);color:var(--text-placeholder);opacity:0;transition:opacity .15s;cursor:grab;letter-spacing:-3px;line-height:1;-webkit-user-select:none;user-select:none}.mock-nc-cal-modes{display:flex;gap:0;border:1px solid var(--border-default);border-radius:var(--radius-s)}.mock-nc-cal-mode-btn{padding:var(--sp-1) var(--sp-2_5);font-size:var(--text-xxs);background:var(--surface);border:none;border-right:1px solid var(--border-default);color:var(--text-tertiary);font-family:var(--font-sans)}.mock-nc-cal-mode-btn:last-child{border-right:none}.mock-nc-cal-mode-btn.active{background:var(--blue);color:var(--text-on-accent)}.mock-nc-form-layout{display:flex}.mock-nc-form-config{width:260px;min-width:260px;border-left:1px solid var(--border-subtle);background:var(--surface-ink);padding:var(--sp-4)}.mock-nc-form-config-row{font-size:var(--text-xs);color:var(--text-secondary)}.pf-page{min-height:100vh;background:var(--surface);display:flex;justify-content:center;align-items:flex-start;padding:var(--sp-10) var(--sp-4)}.pf-card{width:100%;max-width:560px;background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--neu-lg);padding:var(--sp-8);align-self:flex-start}.pf-title{font-size:var(--text-xl);font-weight:700;color:var(--text-primary)}.pf-desc{font-size:var(--text-sm);color:var(--text-tertiary);line-height:1.5}.pf-field-hint{font-size:var(--text-xs);color:var(--text-placeholder);margin-bottom:var(--sp-1)}.pf-field-error{font-size:var(--text-xs);color:var(--error);margin-top:var(--sp-1);display:block}.pf-submit-error{font-size:var(--text-sm);color:var(--error)}.pf-success-icon{width:56px;height:56px;border-radius:50%;background:color-mix(in srgb,var(--green) 15%,transparent);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:var(--text-xl);font-weight:700;margin:0 auto}.pf-error-icon{width:56px;height:56px;border-radius:50%;background:color-mix(in srgb,var(--error) 12%,transparent);color:var(--error);display:flex;align-items:center;justify-content:center;font-size:var(--text-xl);font-weight:700;margin:0 auto}.pf-branding{font-size:var(--text-xs);color:var(--text-placeholder);text-align:center;margin-top:var(--sp-2)}.mock-nc-form-share-url{display:flex;gap:var(--sp-1)}.mock-nc-form-share-url input{padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-xs);border:1px solid var(--border-default);background:var(--surface);font-size:var(--text-xxs);color:var(--text-secondary)}.mock-nc-form-share-url button{padding:var(--sp-1_5) var(--sp-2_5);border-radius:var(--radius-xs);background:var(--blue);color:var(--text-on-accent);border:none;font-size:var(--text-xxs);font-family:var(--font-sans)}.mock-nc-expand-tabs{display:flex;border-bottom:1px solid var(--border-subtle)}.mock-nc-expand-tab{padding:var(--sp-2);text-align:center;font-size:var(--text-xs);color:var(--text-tertiary);border-bottom:2px solid transparent}.mock-nc-expand-tab.active{color:var(--blue);border-bottom-color:var(--blue)}.mock-nc-expand-tab-content{display:none;flex-direction:column}.mock-nc-expand-tab-content.active{display:flex}.mock-nc-expand-type-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:var(--radius-xs);font-size:var(--text-3xs);font-weight:700;margin-right:var(--sp-1);background:var(--border-subtle);color:var(--text-placeholder)}.mock-nc-expand-activity{padding:var(--sp-4) var(--sp-5)}.mock-nc-sidebar-divider{height:1px;background:var(--border-subtle);margin:var(--sp-2) var(--sp-4)}.mock-nc-format-panel{position:absolute;top:100%;left:0;right:0;z-index:20;background:var(--surface-ink);border-bottom:1px solid var(--border-default);box-shadow:0 4px 12px #00000014;max-height:360px;display:flex;flex-direction:column}.mock-nc-format-header{padding:var(--sp-2_5) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.mock-nc-format-rules{padding:var(--sp-2) var(--sp-4)}.mock-nc-format-rule{padding:var(--sp-2_5);margin-bottom:var(--sp-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface)}.mock-nc-format-rule>.mock-nc-filter-remove{position:absolute;top:var(--sp-2);right:var(--sp-2)}.mock-nc-format-rule-header{font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary);margin-bottom:var(--sp-1_5)}.mock-nc-format-rule-row{margin-bottom:var(--sp-2)}.mock-nc-format-label{font-size:var(--text-xxs);color:var(--text-tertiary);margin-right:var(--sp-1)}.mock-nc-format-swatch{width:20px;height:20px;border-radius:var(--radius-xs);border:2px solid transparent;transition:border-color .1s}.mock-nc-format-swatch:hover{border-color:var(--text-tertiary)}.mock-nc-format-swatch.active{border-color:var(--blue)}.mock-nc-format-footer{padding:var(--sp-2) 16px 12px}.mock-nc-import-panel{position:absolute;top:100%;left:0;right:0;z-index:20;background:var(--surface-ink);border-bottom:1px solid var(--border-default);box-shadow:0 4px 12px #00000014;display:flex;flex-direction:column}.mock-nc-import-header{padding:var(--sp-2_5) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.mock-nc-import-body{padding:var(--sp-5) var(--sp-4)}.mock-nc-import-dropzone{justify-content:center;border:2px dashed var(--border-default);border-radius:var(--radius-md);padding:var(--sp-8);flex-direction:column;color:var(--text-tertiary);transition:border-color .1s,background .1s}.mock-nc-import-dropzone:hover{border-color:var(--blue);background:var(--blue-soft)}.mock-nc-import-dropzone-text{font-size:var(--text-mid);font-weight:500;color:var(--text-secondary)}.mock-nc-import-dropzone-hint{font-size:var(--text-xs);color:var(--text-placeholder)}.mock-nc-import-types{display:flex;gap:var(--sp-2);margin-top:var(--sp-4);justify-content:center}.mock-nc-import-type-badge{padding:var(--sp-1) var(--sp-2_5);border-radius:var(--radius-s);font-size:var(--text-xxs);font-weight:600;background:var(--surface);border:1px solid var(--border-default);color:var(--text-secondary)}.mock-nc-automations{padding:var(--sp-4) var(--sp-5)}.mock-nc-automations-header{margin-bottom:var(--sp-4)}.mock-nc-automations-header h3{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.mock-nc-automations-list{margin-bottom:var(--sp-5)}.mock-nc-automation-row{padding:var(--sp-2_5) var(--sp-3);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface)}.mock-nc-automation-row:hover{background:var(--border-subtle)}.mock-nc-automation-icon{width:32px;height:32px;border-radius:var(--radius-sm)}.mock-nc-automation-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.mock-nc-automation-meta{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.mock-nc-automation-builder{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-base);padding:var(--sp-4)}.mock-nc-automation-builder-title{margin-bottom:var(--sp-3)}.mock-nc-automation-builder-row{margin-bottom:var(--sp-2_5)}.mock-nc-automation-builder-arrow{text-align:center;font-size:var(--text-lg);color:var(--text-placeholder);padding:var(--sp-1) 0}.mock-nc-collaborators{padding:var(--sp-4) var(--sp-5)}.mock-nc-collaborators-header{margin-bottom:var(--sp-4)}.mock-nc-collaborators-header h3{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.mock-nc-collab-avatar{width:28px;height:28px;border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:600}.mock-nc-schema{padding:var(--sp-5);max-width:640px}.mock-nc-schema h3{font-size:var(--text-md);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-4)}.mock-nc-schema-section{margin-bottom:var(--sp-5)}.mock-nc-schema-info{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-5)}.mock-nc-schema-info-row{display:flex;justify-content:space-between;font-size:var(--text-sm);color:var(--text-secondary)}.mock-nc-schema-danger{border:1px solid var(--error-soft);border-radius:var(--radius-sm);padding:var(--sp-4);background:color-mix(in srgb,var(--error) 4%,var(--surface))}.mock-nc-schema-danger-title{font-size:var(--text-sm);font-weight:600;color:var(--error);margin-bottom:var(--sp-3)}.mock-nc-schema-danger-row{gap:var(--sp-4)}.mock-nc-api{padding:var(--sp-4) var(--sp-5)}.mock-nc-api-header{margin-bottom:var(--sp-4)}.mock-nc-api-header h3{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.mock-nc-api-swagger{margin-top:var(--sp-5);border:1px solid var(--border-subtle);border-radius:var(--radius-base)}.mock-nc-api-swagger-title{padding:var(--sp-2_5) var(--sp-4);background:var(--surface);border-bottom:1px solid var(--border-subtle)}.mock-nc-api-endpoint{padding:var(--sp-2) var(--sp-4);gap:var(--sp-2_5);font-size:var(--text-xs);border-bottom:1px solid var(--border-subtle)}.mock-nc-api-endpoint:hover{background:var(--border-subtle)}.mock-nc-api-method{padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-xs);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase}.mock-nc-api-method.get{background:var(--blue-soft);color:var(--blue)}.mock-nc-api-method.post{background:var(--green-soft);color:var(--success)}.mock-nc-api-method.patch{background:var(--orange-soft);color:var(--orange)}.mock-nc-api-method.delete{background:var(--error-soft);color:var(--error)}.mock-nc-api-endpoint-response{padding:var(--sp-2) var(--sp-4);background:var(--surface);border-bottom:1px solid var(--border-subtle)}.mock-nc-api-endpoint-response pre{font-size:var(--text-xxs);margin:0}.mock-nc-map{padding:0}.mock-nc-map-container{width:100%;height:100%}.mock-nc-map-placeholder{width:100%;height:100%;background:var(--surface);background-image:linear-gradient(var(--border-subtle) 1px,transparent 1px),linear-gradient(90deg,var(--border-subtle) 1px,transparent 1px);background-size:40px 40px}.mock-nc-map-grid{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 3%,transparent),color-mix(in srgb,var(--green) 3%,transparent),color-mix(in srgb,var(--purple) 3%,transparent))}.mock-nc-map-pin{position:absolute;flex-direction:column;transform:translate(-50%,-100%);z-index:2}.mock-nc-map-pin:hover{z-index:3}.mock-nc-map-pin-label{font-size:var(--text-2xs);font-weight:600;color:var(--text-primary);background:var(--surface-ink);padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-xs);box-shadow:0 1px 4px #0000001f;margin-top:var(--sp-0_5)}.mock-nc-map-zoom{position:absolute;bottom:var(--sp-4);right:var(--sp-4);z-index:4}.mock-nc-share-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:100}.mock-nc-share-overlay.visible{display:block}.mock-nc-share-panel{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:420px;max-width:90vw;background:var(--surface-ink);border-radius:var(--radius-md);box-shadow:0 8px 32px #0003;z-index:101}.mock-nc-share-panel.visible{display:block}.mock-nc-share-header{padding:var(--sp-3_5) var(--sp-5);font-size:var(--text-base);font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--border-subtle)}.mock-nc-share-body{padding:var(--sp-4) var(--sp-5)}.mock-nc-share-row{font-size:var(--text-sm);color:var(--text-secondary)}.mock-nc-field-editor-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:200}.mock-nc-field-editor-overlay.visible{display:block}.mock-nc-field-editor{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:480px;max-width:90vw;max-height:80vh;background:var(--surface);border-radius:var(--radius-md);box-shadow:0 12px 40px #00000040;z-index:201;flex-direction:column}.mock-nc-field-editor.visible{display:flex}.mock-nc-field-editor .form-input{width:100%;box-sizing:border-box}.mock-nc-field-editor-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border)}.mock-nc-field-editor-body{padding:var(--sp-5)}.mock-nc-field-editor-field{margin-bottom:var(--sp-4)}.mock-nc-field-editor-label{margin-bottom:var(--sp-1_5)}.mock-nc-field-editor-option{padding:var(--sp-1_5) var(--sp-2_5);background:var(--surface-raised);border:1px solid var(--border-light);border-radius:var(--radius-s);font-size:var(--text-xs);color:var(--text-primary)}.mock-nc-field-editor-option .btn-icon-xs{margin-left:auto}.mock-nc-field-editor-option-dot{width:10px;height:10px;border-radius:var(--radius-full)}.mock-nc-field-editor-add-option{background:none;border:1px dashed var(--border);border-radius:var(--radius-s);padding:var(--sp-1_5);font-size:var(--text-xs);color:var(--blue);text-align:center;margin-top:var(--sp-1_5)}.mock-nc-field-editor-add-option:hover{background:var(--blue-soft)}.mock-nc-field-editor-hint{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-1_5)}.mock-nc-field-editor-config{margin-top:var(--sp-3)}.mock-nc-field-editor-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border)}.mock-nc-base-home{padding:var(--sp-6);height:100%}.mock-nc-base-home-header{margin-bottom:var(--sp-2)}.mock-nc-base-home-actions{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-5)}.mock-nc-base-home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-4)}.mock-nc-base-card{display:flex;align-items:flex-start;gap:var(--sp-3_5);padding:var(--sp-4);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-base);transition:box-shadow .15s}.mock-nc-base-card:hover{box-shadow:0 2px 12px #00000014}.mock-nc-base-card-placeholder{border-style:dashed;opacity:.7}.mock-nc-base-card-placeholder:hover{opacity:1}.mock-nc-base-card-icon{width:40px;height:40px;border-radius:var(--radius-sm)}.mock-nc-base-card-star{color:var(--orange);font-size:var(--text-xs)}.mock-nc-base-card-desc{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.mock-nc-base-card-stats{font-size:var(--text-xxs);color:var(--text-placeholder);margin-top:var(--sp-1_5);display:flex;gap:var(--sp-1)}.mock-nc-base-card-dot{width:8px;height:8px;border-radius:var(--radius-full);position:absolute;top:var(--sp-3);right:var(--sp-3)}.mock-nc-toolbar-search{padding:var(--sp-1) var(--sp-2_5);border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);font-size:var(--text-xs)}.mock-nc-toolbar-search svg{color:var(--text-tertiary)}.mock-nc-toolbar-search-input{border:none;background:transparent;outline:none;color:var(--text-primary);font-size:var(--text-xs);width:140px}.mock-nc-toolbar-search-input::placeholder{color:var(--text-tertiary)}.mock-nc-toolbar-search-count{color:var(--text-tertiary);font-size:var(--text-xxs)}.mock-nc-bulk-actions .btn{gap:var(--sp-1)}@keyframes mock-nc-copied-pulse{0%,to{outline-color:var(--blue)}50%{outline-color:transparent}}.mock-nc-clipboard-hints{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-1_5);padding:var(--sp-1) var(--sp-4);background:var(--surface);border-top:1px solid var(--border-subtle);font-size:var(--text-xxs);color:var(--text-placeholder);overflow:hidden;max-height:28px}.mock-nc-clipboard-hints:hover{max-height:none;z-index:2;position:relative}.mock-nc-clipboard-hint{display:inline-flex;align-items:center;gap:3px;white-space:nowrap;flex-shrink:0}.mock-nc-clipboard-hint kbd{font-size:var(--text-3xs);padding:1px var(--sp-1);border-radius:var(--radius-xs);border:1px solid var(--border-default);background:var(--surface-ink);color:var(--text-tertiary);line-height:1.4;font-family:var(--font-mono, monospace)}.mock-nc-sidebar-actions-btn{margin-left:auto;background:none;border:none;color:var(--text-placeholder);font-size:var(--text-mid);padding:0 var(--sp-1);border-radius:var(--radius-xs);opacity:0;transition:opacity .15s;line-height:1;font-family:var(--font-sans)}.mock-nc-sidebar-actions-btn:hover{background:var(--border-subtle);color:var(--text-primary)}.mock-nc-sidebar-table:hover .mock-nc-sidebar-actions-btn{opacity:1}.mock-nc-sidebar-actions-menu{display:none;position:absolute;left:100%;top:0;background:var(--surface-ink);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:0 4px 16px #0000001f;min-width:160px;z-index:20;padding:var(--sp-1) 0}.mock-nc-sidebar-actions-menu.visible{display:block}.mock-nc-sidebar-actions-item{padding:var(--sp-1_5) var(--sp-3);font-size:var(--text-xs);color:var(--text-secondary)}.mock-nc-sidebar-actions-item:hover{background:var(--surface-hover)}.mock-nc-sidebar-actions-item.danger{color:var(--error)}.mock-nc-sidebar-actions-item.danger:hover{background:var(--error-soft)}.mock-nc-sidebar-actions-item svg{color:var(--text-tertiary)}.mock-nc-sidebar-actions-item.danger svg{color:var(--error)}.mock-nc-sidebar-dup-view{margin-left:auto;background:none;border:none;color:var(--text-placeholder);padding:var(--sp-0_5) var(--sp-1);border-radius:var(--radius-xs);opacity:0;transition:opacity .15s}.mock-nc-sidebar-dup-view:hover{background:var(--border-subtle);color:var(--blue)}.mock-nc-sidebar-dup-view:hover svg{color:var(--blue)}.mock-nc-sidebar-view:hover .mock-nc-sidebar-dup-view{opacity:1}.mock-nc-duplicate-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:100}.mock-nc-duplicate-overlay.visible{display:block}.mock-nc-duplicate-modal{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface-ink);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:0 8px 32px #0000002e;width:400px;max-width:90vw;z-index:101;flex-direction:column}.mock-nc-duplicate-modal.visible{display:flex}.mock-nc-duplicate-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle);font-size:var(--text-mid)}.mock-nc-duplicate-body{padding:var(--sp-5)}.mock-nc-duplicate-options{gap:var(--sp-2_5)}.mock-nc-duplicate-option{font-size:var(--text-sm);color:var(--text-primary)}.mock-nc-duplicate-footer{justify-content:flex-end;padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle)}.mock-nc-import-modal-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:100}.mock-nc-import-modal-overlay.visible{display:block}.mock-nc-import-modal{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface-ink);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:0 8px 32px #0000002e;width:520px;max-width:90vw;max-height:85vh;z-index:101;flex-direction:column}.mock-nc-import-modal.visible{display:flex}.mock-nc-import-modal-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-nc-import-modal-tabs{display:flex;gap:0;border-bottom:1px solid var(--border-subtle)}.mock-nc-import-modal-tab{padding:var(--sp-2_5) var(--sp-4);font-size:var(--text-xs);font-weight:500;color:var(--text-tertiary);text-align:center;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.mock-nc-import-modal-tab:hover{color:var(--text-secondary)}.mock-nc-import-modal-tab.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:600}.mock-nc-import-modal-pane{display:none;padding:var(--sp-5);flex-direction:column;gap:var(--sp-3)}.mock-nc-import-modal-pane.active{display:flex}.mock-nc-import-modal-row{display:flex;gap:var(--sp-3)}.mock-nc-import-modal-preview{margin-top:var(--sp-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.mock-nc-import-modal-preview .data-table{font-size:var(--text-xxs)}.mock-nc-import-modal-preview .data-table th{padding:var(--sp-1_5) var(--sp-2_5)}.mock-nc-import-modal-preview .data-table td{padding:var(--sp-1) var(--sp-2_5)}.mock-nc-import-modal-preview-hint{padding:var(--sp-1_5) var(--sp-2_5);font-size:var(--text-xxs);color:var(--text-tertiary);background:var(--surface);border-top:1px solid var(--border-subtle)}.mock-nc-import-modal-table-item{padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);font-size:var(--text-xs);color:var(--text-secondary)}.mock-nc-import-modal-table-item:hover{background:var(--border-subtle)}.mock-nc-import-modal-table-item input[type=checkbox]{accent-color:var(--blue)}.mock-nc-import-modal-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle)}.mock-nc-view-lock-icon{font-size:var(--text-2xs);margin-left:auto;opacity:.7;transition:opacity .15s}.mock-nc-view-lock-icon:hover{opacity:1}.mock-nc-sidebar-view:not([data-locked=true]) .mock-nc-view-lock-icon{opacity:.3}.mock-nc-view-personal-icon{font-size:var(--text-2xs);margin-left:auto;opacity:.7}.mock-nc-view-personal-badge{font-size:var(--text-3xs)!important;padding:var(--sp-0_5) 5px!important;border-radius:var(--radius-xs);background:var(--purple-soft);color:var(--purple);font-weight:600;line-height:1.4}.mock-nc-extensions-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:100}.mock-nc-extensions-overlay.visible{display:block}.mock-nc-extensions{display:none;position:fixed;top:0;right:0;bottom:0;width:360px;max-width:90vw;background:var(--surface-ink);border-left:1px solid var(--border-default);box-shadow:-4px 0 24px #0000001a;z-index:101;flex-direction:column;animation:slideIn .25s var(--ease-default)}.mock-nc-extensions.visible{display:flex}.mock-nc-extensions-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle);font-size:var(--text-mid);color:var(--text-primary)}.mock-nc-extensions-search{padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-nc-extensions-search svg{color:var(--text-placeholder)}.mock-nc-extensions-search .form-input{border:none;background:transparent;font-size:var(--text-sm);padding:0;box-shadow:none}.mock-nc-extensions-search .form-input:focus{box-shadow:none}.mock-nc-extensions-body{padding:var(--sp-4) var(--sp-5)}.mock-nc-ext-card{display:flex;align-items:flex-start;gap:var(--sp-2_5);padding:var(--sp-2_5) var(--sp-3);border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border-subtle)}.mock-nc-ext-icon{width:32px;height:32px;border-radius:var(--radius-sm)}.mock-nc-ext-name .tag{font-size:var(--text-3xs);padding:var(--sp-0_5) var(--sp-1)}.mock-nc-ext-desc{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.mock-nc-ext-actions{align-items:flex-end}.mock-nc-ext-actions .btn-sm{font-size:var(--text-2xs);padding:var(--sp-0_5) var(--sp-1_5)}.mock-nc-ext-marketplace-card{padding:var(--sp-3);border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border-subtle)}.mock-nc-ext-marketplace-card:hover{border-color:var(--blue)}.mock-nc-ext-marketplace-desc{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-nc-ext-marketplace-footer{margin-top:var(--sp-1)}.mock-nc-ext-marketplace-installs{font-size:var(--text-2xs);color:var(--text-placeholder)}.mock-nc-notifications-dot{position:absolute;top:var(--sp-0_5);right:var(--sp-1);width:7px;height:7px;border-radius:var(--radius-full);background:var(--error);border:1.5px solid var(--surface-ink)}.mock-nc-notifications-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:100;opacity:0;pointer-events:none;transition:opacity .3s}.mock-nc-notifications-overlay.visible{opacity:1;pointer-events:auto}.mock-nc-notifications{display:flex;position:fixed;top:0;right:0;bottom:0;width:360px;max-width:90vw;background:var(--surface-ink);border-left:1px solid var(--border-default);box-shadow:-4px 0 24px #0000001a;z-index:101;flex-direction:column;transform:translate(100%);transition:transform .36s cubic-bezier(.34,1.4,.64,1)}.mock-nc-notifications.visible{transform:translate(0)}.mock-nc-notifications-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle);font-size:var(--text-mid);color:var(--text-primary)}.mock-nc-notifications-header .settings-close{margin-left:auto}.mock-nc-notif-item{display:flex;align-items:flex-start;gap:var(--sp-2_5);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle);transition:background .15s}.mock-nc-notif-item:hover{background:var(--surface-hover, var(--border-subtle))}.mock-nc-notif-item.unread{background:var(--blue-soft)}.mock-nc-notif-item.unread:hover{background:color-mix(in srgb,var(--blue-soft) 60%,var(--border-subtle))}.mock-nc-notif-avatar{width:28px;height:28px;border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:600}.mock-nc-notif-message{font-size:var(--text-xs);color:var(--text-secondary);line-height:1.4}.mock-nc-notif-message strong{color:var(--text-primary);font-weight:600}.mock-nc-notif-time{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.mock-nc-notif-type-icon{font-size:var(--text-xxs);color:var(--text-placeholder);margin-top:var(--sp-0_5);width:16px;height:16px}.mock-nc-notif-unread-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--blue);margin-top:var(--sp-1_5)}.mock-nc-extdb-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:var(--overlay-bg);display:none}.mock-nc-extdb-overlay.visible{display:block}.mock-nc-extdb-panel{position:fixed;top:0;right:-420px;width:420px;height:100%;background:var(--surface);box-shadow:var(--neu-lg);z-index:301;transition:right .3s var(--ease-default)}.mock-nc-extdb-panel.visible{right:0}.mock-nc-extdb-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-default)}.mock-nc-extdb-header h3{margin:0;font-size:var(--text-md)}.mock-nc-extdb-body{padding:var(--sp-4)}.mock-nc-extdb-card{padding:var(--sp-3);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-ink);display:flex;gap:var(--sp-3);align-items:flex-start}.mock-nc-extdb-card-error{border-color:var(--error)}.mock-nc-extdb-card-disconnected{opacity:.6}.mock-nc-extdb-card-icon{width:36px;height:36px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:700;color:#fff}.mock-nc-extdb-card-icon.icon-blue{background:var(--blue)}.mock-nc-extdb-card-icon.icon-purple{background:var(--purple)}.mock-nc-extdb-card-icon.icon-orange{background:var(--orange)}.mock-nc-extdb-card-icon.icon-muted{background:var(--text-tertiary)}.mock-nc-extdb-card-host{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-nc-extdb-card-sync{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.mock-nc-extdb-card-status{font-size:var(--text-xxs)}.mock-nc-extdb-status-dot{width:8px;height:8px;border-radius:var(--radius-full)}.mock-nc-extdb-status-connected{background:var(--success)}.mock-nc-extdb-status-error{background:var(--error)}.mock-nc-extdb-status-disconnected{background:var(--text-placeholder)}.mock-nc-extdb-card-actions{display:flex;gap:var(--sp-1)}.mock-nc-extdb-new-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:310;background:var(--overlay-bg);display:none}.mock-nc-extdb-new-overlay.visible{display:block}.mock-nc-extdb-new-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:520px;max-width:90vw;max-height:85vh;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--neu-lg);z-index:311;display:none}.mock-nc-extdb-new-modal.visible{display:block}.mock-nc-extdb-new-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-default)}.mock-nc-extdb-new-body{padding:var(--sp-4) var(--sp-5)}.mock-nc-extdb-new-field label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);margin-bottom:var(--sp-1);display:block}.mock-nc-extdb-new-row{display:flex;gap:var(--sp-3)}.mock-nc-extdb-type-grid{display:flex;gap:var(--sp-2);flex-wrap:wrap}.mock-nc-extdb-type-option{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);border:1px solid var(--border-default);font-size:var(--text-xs);color:var(--text-secondary);background:var(--surface-ink)}.mock-nc-extdb-type-option:hover{border-color:var(--text-tertiary)}.mock-nc-extdb-type-option.active{border-color:var(--green);background:color-mix(in srgb,var(--green) 10%,transparent);color:var(--green);font-weight:600}.mock-nc-extdb-new-test{padding-top:var(--sp-2)}.mock-nc-extdb-new-test.testing .mock-nc-extdb-test-status:after{content:"Testing...";color:var(--blue)}.mock-nc-extdb-new-test.success .mock-nc-extdb-test-status:after{content:"✓ Connection OK";color:var(--success)}.mock-nc-extdb-test-status{font-size:var(--text-xs);color:var(--text-tertiary)}.mock-nc-extdb-new-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-default)}.mock-nc-erd-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:var(--overlay-bg);display:none}.mock-nc-erd-overlay.visible{display:block}.mock-nc-erd-panel{position:fixed;top:40px;right:40px;bottom:40px;left:40px;z-index:301;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--neu-lg);display:none;flex-direction:column}.mock-nc-erd-panel.visible{display:flex}.mock-nc-erd-header{padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-default)}.mock-nc-erd-header h3{margin:0;font-size:var(--text-md)}.mock-nc-erd-controls{display:flex;gap:var(--sp-1)}.mock-nc-erd-canvas{position:relative;flex:1;overflow:auto;background:var(--surface-ink)}.mock-nc-erd-connectors{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mock-nc-erd-table{position:absolute;left:var(--erd-left, 0);top:var(--erd-top, 0);z-index:2;width:200px;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);border:1px solid var(--border-default)}.mock-nc-erd-table-header{padding:var(--sp-2) var(--sp-3);color:#fff;font-weight:700;font-size:var(--text-sm)}.mock-nc-erd-table-fields{padding:var(--sp-1) 0}.mock-nc-erd-field{padding:var(--sp-1) var(--sp-3);font-size:var(--text-xxs);color:var(--text-secondary)}.mock-nc-erd-field.hidden{display:none}.mock-nc-erd-field-link{color:var(--blue);font-weight:500}.mock-nc-erd-field-type{margin-left:auto;font-size:var(--text-3xs);font-weight:700;color:var(--text-placeholder)}.mock-nc-richtext-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:var(--overlay-bg);display:none}.mock-nc-richtext-overlay.visible{display:block}.mock-nc-richtext-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:640px;max-width:90vw;max-height:80vh;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--neu-lg);z-index:301;display:none;flex-direction:column}.mock-nc-richtext-panel.visible{display:flex}.mock-nc-richtext-panel.fullscreen{top:0;left:0;transform:none;width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0}.mock-nc-richtext-header{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-default)}.mock-nc-richtext-header-actions{display:flex;gap:var(--sp-2)}.mock-nc-richtext-toolbar{padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border-default);flex-wrap:wrap}.mock-nc-richtext-sep{width:1px;height:20px;background:var(--border-default);margin:0 var(--sp-1)}.mock-nc-richtext-content{padding:var(--sp-4);font-size:var(--text-sm);line-height:1.7;color:var(--text-primary);min-height:200px}.mock-nc-richtext-content h2{font-size:var(--text-md);margin:var(--sp-3) 0 var(--sp-1)}.mock-nc-richtext-content ul{padding-left:var(--sp-5);margin:var(--sp-2) 0}.mock-nc-richtext-content code{font-size:var(--text-xs);background:var(--surface-ink);padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-sm)}.mock-nc-richtext-content pre{background:var(--surface-ink);padding:var(--sp-3);border-radius:var(--radius-sm);font-size:var(--text-xs);overflow-x:auto;margin:var(--sp-2) 0}.mock-nc-richtext-footer{padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--border-default)}.mock-nc-richtext-charcount{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-nc-richtext-footer-actions{display:flex;gap:var(--sp-2)}.mock-nc-audit-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:var(--overlay-bg);display:none}.mock-nc-audit-overlay.visible{display:block}.mock-nc-audit-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:860px;max-width:94vw;max-height:88vh;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--neu-lg);z-index:301;display:none;flex-direction:column}.mock-nc-audit-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-default)}.mock-nc-audit-header h3{margin:0;font-size:var(--text-md);font-weight:700}.mock-nc-audit-filters{padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}.mock-nc-audit-filters select,.mock-nc-audit-filters input[type=date]{font-size:var(--text-xs);padding:var(--sp-1) var(--sp-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-ink);color:var(--text-primary);font-family:var(--font-sans)}.mock-nc-audit-body{padding:0}.mock-nc-audit-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.mock-nc-audit-table thead th{text-align:left;padding:var(--sp-2) var(--sp-3);font-weight:600;color:var(--text-tertiary);border-bottom:1px solid var(--border-default);position:sticky;top:0;background:var(--surface);text-transform:uppercase;letter-spacing:.03em;font-size:var(--text-2xs)}.mock-nc-audit-table tbody td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);vertical-align:middle}.mock-nc-audit-table tbody tr:hover{background:var(--surface-raised)}.mock-nc-audit-avatar{width:22px;height:22px;border-radius:var(--radius-full);font-size:var(--text-3xs);font-weight:700;color:var(--text-on-accent)}.mock-nc-audit-badge{display:inline-block;padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:600}.mock-nc-audit-badge-created{background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success)}.mock-nc-audit-badge-updated{background:color-mix(in srgb,var(--blue) 15%,transparent);color:var(--blue)}.mock-nc-audit-badge-deleted{background:color-mix(in srgb,var(--error) 15%,transparent);color:var(--error)}.mock-nc-audit-badge-viewed{background:var(--surface-raised);color:var(--text-tertiary)}.mock-nc-audit-timestamp{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-nc-audit-detail{font-size:var(--text-xxs);color:var(--text-tertiary);max-width:180px}.mock-nc-audit-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-default);font-size:var(--text-xs);color:var(--text-tertiary)}.mock-nc-audit-page-btn{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-ink);font-size:var(--text-xxs);color:var(--text-secondary);font-family:var(--font-sans)}.mock-nc-audit-page-btn:hover{border-color:var(--green);color:var(--green)}.mock-nc-audit-page-btn.active{background:var(--green);color:var(--text-on-accent);border-color:var(--green)}.mock-nc-audit-page-btn:disabled{opacity:.4;cursor:default}.mock-nc-backup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:var(--overlay-bg);display:none}.mock-nc-backup-overlay.visible{display:block}.mock-nc-backup-panel{position:fixed;top:0;right:-480px;width:480px;height:100%;background:var(--surface);box-shadow:var(--neu-lg);z-index:301;transition:right .3s var(--ease-default)}.mock-nc-backup-panel.visible{right:0}.mock-nc-backup-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-default)}.mock-nc-backup-header h3{margin:0;font-size:var(--text-md);font-weight:700}.mock-nc-backup-body{flex:1;padding:var(--sp-4) var(--sp-5)}.mock-nc-backup-section-title{font-size:var(--text-xs);font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--sp-1)}.mock-nc-backup-item{padding:var(--sp-3);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-ink)}.mock-nc-backup-item-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2)}.mock-nc-backup-item-date{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-nc-backup-item-meta{display:flex;align-items:center;gap:.5rem;margin-top:.25rem;font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-nc-backup-type-badge{display:inline-block;padding:var(--sp-0_5) var(--sp-1_5);border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:600}.mock-nc-backup-type-manual{background:color-mix(in srgb,var(--purple) 15%,transparent);color:var(--purple)}.mock-nc-backup-type-scheduled{background:color-mix(in srgb,var(--blue) 15%,transparent);color:var(--blue)}.mock-nc-backup-status-complete{color:var(--success);font-weight:500}.mock-nc-backup-status-progress{color:var(--blue);font-weight:500}.mock-nc-backup-spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--border-default);border-top-color:var(--blue);border-radius:var(--radius-full);animation:ncBackupSpin .8s linear infinite}@keyframes ncBackupSpin{to{transform:rotate(360deg)}}.mock-nc-backup-item-actions{display:flex;gap:var(--sp-1);margin-top:.5rem}.mock-nc-backup-item-actions .btn-sm{font-size:var(--text-xxs);padding:var(--sp-0_5) var(--sp-2)}.mock-nc-backup-schedule{padding:var(--sp-3);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-ink)}.mock-nc-backup-schedule select{font-size:var(--text-xs);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-family:var(--font-sans)}.mock-nc-backup-schedule-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:.5rem}.mock-nc-backup-schedule-row:last-child{margin-bottom:0}.mock-nc-backup-confirm{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:380px;max-width:90vw;padding:var(--sp-5);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--neu-lg);z-index:320;display:none;text-align:center}.mock-nc-backup-confirm.visible{display:block}.mock-nc-backup-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:319;background:var(--overlay-bg);display:none}.mock-nc-backup-confirm-overlay.visible{display:block}.mock-nc-backup-confirm-icon{font-size:var(--text-4xl);margin-bottom:var(--sp-3)}.mock-nc-backup-confirm-title{font-size:var(--text-md);font-weight:700;color:var(--text-primary);margin-bottom:var(--sp-2)}.mock-nc-backup-confirm-text{font-size:var(--text-sm);color:var(--text-tertiary);margin-bottom:var(--sp-4)}.mock-nc-backup-confirm-actions{display:flex;gap:var(--sp-2);justify-content:center}.mock-nc-kanban-config-panel{position:absolute;top:0;right:-300px;width:300px;height:100%;background:var(--surface);border-left:1px solid var(--border-default);box-shadow:var(--neu-sm);z-index:50;transition:right .25s var(--ease-default)}.mock-nc-kanban-config-panel.visible{right:0}.mock-nc-kanban-config-header{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-default)}.mock-nc-kanban-config-header h4{margin:0;font-size:var(--text-sm);font-weight:700}.mock-nc-kanban-config-body{padding:var(--sp-3) var(--sp-4)}.mock-nc-kanban-config-section-title{font-size:var(--text-2xs);font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--sp-1)}.mock-nc-kanban-config-select{width:100%;font-size:var(--text-xs);padding:var(--sp-1_5) var(--sp-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-ink);color:var(--text-primary);font-family:var(--font-sans)}.mock-nc-kanban-config-field-row{padding:var(--sp-1) 0}.mock-nc-kanban-config-field-name{font-size:var(--text-xs);color:var(--text-primary)}.mock-nc-kanban-config-field-name.locked{color:var(--text-tertiary)}.mock-nc-kanban-config-field-lock{font-size:var(--text-2xs);color:var(--text-placeholder)}.mock-nc-kanban-config-size-group{display:flex;gap:var(--sp-1)}.mock-nc-kanban-config-size-btn{padding:var(--sp-1) 0;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-ink);font-size:var(--text-xxs);font-weight:500;color:var(--text-secondary);text-align:center;font-family:var(--font-sans);transition:all var(--duration-fast)}.mock-nc-kanban-config-size-btn:hover{border-color:var(--text-tertiary)}.mock-nc-kanban-config-size-btn.active{border-color:var(--green);background:color-mix(in srgb,var(--green) 10%,transparent);color:var(--green);font-weight:600}.mock-nc-kanban-card-cover{height:40px;border-radius:var(--radius-sm) 8px 0 0;margin:-var(--sp-2_5) -12px 6px -12px;display:none}.mock-nc-kanban-card-cover.visible{display:block}.mock-nc-kanban-card-cover-green{background:linear-gradient(135deg,var(--green),color-mix(in srgb,var(--green) 60%,var(--blue)))}.mock-nc-kanban-card-cover-blue{background:linear-gradient(135deg,var(--blue),color-mix(in srgb,var(--blue) 60%,var(--purple)))}.mock-nc-kanban-card-cover-orange{background:linear-gradient(135deg,var(--orange),color-mix(in srgb,var(--orange) 60%,var(--pink)))}.mock-nc-kanban-card-cover-red{background:linear-gradient(135deg,var(--error),color-mix(in srgb,var(--error) 60%,var(--orange)))}.mock-nc-gallery-config-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:49;display:none}.mock-nc-gallery-config-overlay.visible{display:block}.mock-nc-gallery-config-panel{position:absolute;top:var(--sp-10);right:var(--sp-4);width:280px;background:var(--surface-ink);border-radius:var(--radius-lg);box-shadow:0 8px 24px #00000024;z-index:50;display:none;flex-direction:column}.mock-nc-gallery-config-panel.visible{display:flex}.mock-nc-gallery-config-header{padding:var(--sp-3) var(--sp-3_5);border-bottom:1px solid var(--border-subtle)}.mock-nc-gallery-config-body{padding:var(--sp-3_5);max-height:420px}.mock-nc-gallery-config-radio-group{display:flex;gap:var(--sp-1_5)}.mock-nc-gallery-config-radio{padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface);font-size:var(--text-xxs);color:var(--text-secondary);text-align:center;font-family:var(--font-sans)}.mock-nc-gallery-config-radio:hover{border-color:var(--blue)}.mock-nc-gallery-config-radio.active{border-color:var(--blue);background:var(--blue-soft);color:var(--blue);font-weight:600}.mock-nc-gallery-config-field-row{padding:var(--sp-1) 0;font-size:var(--text-xs);color:var(--text-secondary)}.mock-nc-gallery-config-preview{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.mock-nc-gallery-config-preview-cover{height:48px;background:var(--blue-soft);font-size:var(--text-mid);color:var(--blue);font-weight:600}.mock-nc-gallery-config-preview-body{padding:var(--sp-2) var(--sp-2_5)}.mock-nc-gallery-config-preview-title{font-size:var(--text-xxs);font-weight:600;color:var(--text-primary)}.mock-nc-gallery-config-preview-field{font-size:var(--text-2xs);color:var(--text-tertiary)}.mock-nc-gallery-card.has-cover .mock-nc-gallery-cover{height:40px;background:linear-gradient(135deg,var(--blue-soft),var(--purple-soft))}.mock-nc-cal-panel-wrapper{display:flex}.mock-nc-cal-panel-side{width:280px;min-width:280px;border-left:1px solid var(--border-subtle);background:var(--surface-ink);display:none;flex-direction:column}.mock-nc-cal-panel-side.visible{display:flex}.mock-nc-cal-panel-header{padding:var(--sp-3) var(--sp-3_5);border-bottom:1px solid var(--border-subtle)}.mock-nc-cal-panel-body{padding:var(--sp-3_5)}.mock-nc-cal-panel-record{padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border-subtle);cursor:grab;font-size:var(--text-xs);color:var(--text-secondary)}.mock-nc-cal-panel-record:hover{border-color:var(--blue);background:var(--blue-soft)}.mock-nc-cal-panel-record .drag-handle{color:var(--text-placeholder);font-size:var(--text-2xs);cursor:grab}.mock-nc-cal-panel-record .name{font-weight:500;color:var(--text-primary)}.mock-nc-cal-panel-hint{font-size:var(--text-xxs);color:var(--text-placeholder);font-style:italic;line-height:1.4;padding:var(--sp-2) 0}.mock-nc-form-logic-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:49;display:none}.mock-nc-form-logic-overlay.visible{display:block}.mock-nc-form-logic-panel{position:fixed;top:0;right:-360px;width:360px;height:100vh;background:var(--surface-ink);box-shadow:-8px 0 24px #0000001f;z-index:50;transition:right .2s ease}.mock-nc-form-logic-panel.visible{right:0}.mock-nc-form-logic-header{padding:var(--sp-3_5) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.mock-nc-form-logic-body{flex:1;display:flex;flex-direction:column;padding:var(--sp-4);gap:var(--sp-5)}.mock-nc-form-logic-section{display:flex;flex-direction:column;gap:var(--sp-2_5)}.mock-nc-form-logic-section-title{padding-bottom:var(--sp-1);border-bottom:1px solid var(--border-subtle);font-weight:600;font-size:var(--text-sm);color:var(--text-primary)}.mock-nc-form-logic-rule{padding:var(--sp-2_5);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border-subtle)}.mock-nc-form-logic-rule-row{display:flex;align-items:center;gap:var(--sp-1_5);flex-wrap:wrap}.mock-nc-form-logic-rule-row select,.mock-nc-form-logic-rule-row input{padding:var(--sp-1) var(--sp-1_5);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-ink);font-size:var(--text-xxs);color:var(--text-primary);font-family:var(--font-sans)}.mock-nc-form-logic-rule-row select{min-width:80px}.mock-nc-form-logic-rule-row input{min-width:60px}.mock-nc-form-logic-rule-row .keyword{font-size:var(--text-2xs);font-weight:600;color:var(--text-placeholder);text-transform:uppercase}.mock-nc-form-logic-rule-remove{align-self:flex-end;padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-sm);border:none;background:var(--error-soft);color:var(--error);font-size:var(--text-xxs);font-family:var(--font-sans)}.mock-nc-form-logic-rule-remove:hover{background:var(--error);color:var(--text-on-accent)}.mock-nc-form-logic-prefill-table{width:100%;font-size:var(--text-xxs);border-collapse:collapse}.mock-nc-form-logic-prefill-table th{text-align:left;padding:var(--sp-1) var(--sp-1_5);font-weight:600;color:var(--text-placeholder);border-bottom:1px solid var(--border-subtle);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.3px}.mock-nc-form-logic-prefill-table td{padding:var(--sp-1) var(--sp-1_5);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.mock-nc-form-logic-prefill-table td:first-child{color:var(--purple)}.mock-nc-form-logic-url-preview{padding:var(--sp-2) var(--sp-2_5);background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);font-size:var(--text-2xs);color:var(--text-tertiary);word-break:break-all;line-height:1.5}.mock-nc-form-logic-after-row{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-xs);color:var(--text-secondary);padding:var(--sp-0_5) 0}.mock-nc-form-logic-after-row input[type=text]{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface);font-size:var(--text-xxs);color:var(--text-primary);font-family:var(--font-sans);margin-left:var(--sp-2)}.mock-nc-formula-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:49;display:none}.mock-nc-formula-overlay.visible{display:block}.mock-nc-formula-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);width:560px;max-width:92vw;max-height:80vh;background:var(--surface-ink);border-radius:var(--radius-lg);box-shadow:var(--neu-lg);z-index:50;display:flex;flex-direction:column;opacity:0;transition:opacity .15s ease,transform .15s ease}.mock-nc-formula-panel.visible{display:flex;opacity:1;transform:translate(-50%,-50%) scale(1)}.mock-nc-formula-header{display:flex;align-items:center;padding:var(--sp-3_5) var(--sp-4);gap:var(--sp-2_5);border-bottom:1px solid var(--border-subtle)}.mock-nc-formula-header .settings-close{margin-left:auto}.mock-nc-formula-header-field{font-size:var(--text-xxs);color:var(--text-tertiary);padding:var(--sp-0_5) var(--sp-2);background:var(--border-subtle);border-radius:var(--radius-sm)}.mock-nc-formula-content{display:flex;flex:1;overflow:hidden}.mock-nc-formula-editor-area{flex:1;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--border-subtle)}.mock-nc-formula-textarea{width:100%;min-height:120px;padding:var(--sp-3_5) var(--sp-4);font-size:var(--text-xs);line-height:1.7;color:var(--text-primary);background:var(--surface);border:none;resize:none;outline:none}.mock-nc-formula-textarea::placeholder{color:var(--text-placeholder)}.mock-nc-formula-autocomplete{display:flex;flex-direction:column;overflow:auto;border-top:1px solid var(--border-subtle);background:var(--surface-ink);padding:var(--sp-1_5) 0;max-height:160px}.mock-nc-formula-ac-title{padding:var(--sp-1) var(--sp-3_5);font-size:var(--text-2xs);font-weight:600;color:var(--text-placeholder);text-transform:uppercase;letter-spacing:.3px}.mock-nc-formula-ac-item{display:flex;justify-content:space-between;cursor:pointer;padding:var(--sp-1) var(--sp-3_5);font-size:var(--text-xs);color:var(--text-secondary)}.mock-nc-formula-ac-item:hover{background:var(--blue-soft);color:var(--blue)}.mock-nc-formula-ac-item .type-badge{font-size:var(--text-3xs);color:var(--text-placeholder)}.mock-nc-formula-status{display:flex;align-items:center;gap:.35rem;font-size:var(--text-xxs)}.mock-nc-formula-status.valid{color:var(--success)}.mock-nc-formula-status.error{color:var(--error)}.mock-nc-formula-status-icon{font-size:var(--text-mid)}.mock-nc-formula-reference{width:200px;min-width:200px;padding:var(--sp-2_5) 0}.mock-nc-formula-ref-title{padding:var(--sp-1) var(--sp-3_5);font-size:var(--text-2xs);font-weight:600;color:var(--text-placeholder);text-transform:uppercase;letter-spacing:.3px;margin-bottom:var(--sp-1)}.mock-nc-formula-ref-item{display:flex;flex-direction:column;cursor:pointer;padding:var(--sp-1) var(--sp-3_5);gap:var(--sp-0_5)}.mock-nc-formula-ref-item:hover{background:var(--border-subtle)}.mock-nc-formula-ref-func{font-size:var(--text-xs);font-weight:600;color:var(--purple)}.mock-nc-formula-ref-desc{font-size:var(--text-2xs);color:var(--text-tertiary);line-height:1.3}.mock-nc-formula-footer{display:flex;gap:.5rem;justify-content:flex-end;padding:var(--sp-2_5) var(--sp-4);border-top:1px solid var(--border-subtle)}.mock-nocodb .data-table th:hover .mock-nc-quick-hide-btn{opacity:1}.mock-nc-agg-cell{cursor:pointer!important;transition:background .15s;position:relative}.mock-nc-agg-cell:hover{background:var(--surface-raised)!important;color:var(--text-secondary)!important}.mock-nocodb .mock-nc-filter-group-toggle{background:var(--green-soft);color:var(--green);font-weight:700}.mock-nocodb .mock-nc-filter-group-toggle:hover{background:var(--green);color:var(--text-on-accent)}.mock-nocodb .mock-nc-filter-conjunction-or{background:var(--orange-soft);color:var(--orange);font-weight:700}.mock-nocodb .mock-nc-filter-conjunction-or:hover{background:var(--orange);color:var(--text-on-accent)}.mock-nocodb .mock-nc-filter-add-group{color:var(--green);margin-left:var(--sp-2)}.mock-nocodb .mock-nc-filter-group .mock-nc-filter-group .mock-nc-filter-group-toggle{background:var(--purple-soft);color:var(--purple)}.mock-nocodb .mock-nc-filter-group .mock-nc-filter-group .mock-nc-filter-group-toggle:hover{background:var(--purple);color:var(--text-on-accent)}.mock-nocodb .mock-nc-filter-panel{width:520px;max-height:420px}.mock-nc-attach-dropzone{margin:0 var(--sp-4) var(--sp-4);padding:var(--sp-4);border:2px dashed var(--border-default);border-radius:var(--radius-md);gap:var(--sp-2);color:var(--text-tertiary);font-size:var(--text-xs);transition:border-color .2s,background .2s}.mock-nc-attach-dropzone:hover{border-color:var(--green);background:var(--green-soft)}.mock-nc-attach-dropzone a{color:var(--green);font-weight:600;text-decoration:none}.mock-nc-attach-dropzone a:hover{text-decoration:underline}.mock-nc-attach-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:60;display:none}.mock-nc-attach-overlay.visible{display:block}.mock-nc-attach-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:720px;max-width:94vw;max-height:90vh;background:var(--surface-ink);border-radius:var(--radius-lg);box-shadow:0 24px 64px #00000040;z-index:61;display:flex;flex-direction:column}.mock-nc-attach-modal-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-nc-attach-modal-body{flex:1;position:relative;min-height:320px;background:var(--surface)}.mock-nc-attach-preview-area{display:flex;align-items:center;justify-content:center;padding:var(--sp-6);min-height:280px}.mock-nc-attach-preview-img{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--border-subtle) 0%,var(--surface-raised) 100%);width:100%;max-width:480px;height:260px;border-radius:var(--radius-md)}.mock-nc-attach-nav{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:var(--radius-full);border:1px solid var(--border-default);background:var(--surface-ink);color:var(--text-secondary);font-size:var(--text-xl);font-weight:300;z-index:2;transition:background .15s,border-color .15s}.mock-nc-attach-nav:hover{background:var(--surface-raised);border-color:var(--green);color:var(--green)}.mock-nc-attach-nav-prev{left:var(--sp-3)}.mock-nc-attach-nav-next{right:var(--sp-3)}.mock-nc-attach-modal-footer{display:flex;align-items:center;padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle);flex-wrap:wrap;gap:var(--sp-3)}.mock-nc-attach-info{display:flex;gap:.75rem;margin-left:auto;flex-wrap:wrap}.mock-nc-attach-info-item{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-nc-attach-info-item strong{color:var(--text-secondary);font-weight:600}.mock-nc-linksel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:62;display:none}.mock-nc-linksel-overlay.visible{display:block}.mock-nc-linksel-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:500px;max-width:94vw;max-height:80vh;background:var(--surface-ink);border-radius:var(--radius-lg);box-shadow:0 24px 64px #00000038;z-index:63;display:flex;flex-direction:column}.mock-nc-linksel-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.mock-nc-linksel-selected{display:flex;flex-wrap:wrap;gap:var(--sp-1_5);padding:var(--sp-2) var(--sp-5) 0}.mock-nc-linksel-chip{display:inline-flex;align-items:center;gap:.25rem;background:var(--green-soft);color:var(--green);padding:var(--sp-0_5) var(--sp-2);border-radius:var(--radius-md);font-size:var(--text-xxs);font-weight:600}.mock-nc-linksel-chip-remove{cursor:pointer;font-size:var(--text-sm);line-height:1;color:var(--green);opacity:.7}.mock-nc-linksel-chip-remove:hover{opacity:1}.mock-nc-linksel-count{font-size:var(--text-xxs);color:var(--text-tertiary);padding:var(--sp-1) var(--sp-5)}.mock-nc-linksel-search{padding:var(--sp-2) var(--sp-5)}.mock-nc-linksel-list{flex:1;padding:0 var(--sp-5);max-height:320px}.mock-nc-linksel-record{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle);transition:background .1s}.mock-nc-linksel-record:hover{background:var(--surface-raised)}.mock-nc-linksel-record-title{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.mock-nc-linksel-record-sub{font-size:var(--text-xxs);color:var(--text-tertiary)}.mock-nc-content .nc-col-frozen{position:sticky;left:0;z-index:2;background:var(--surface-ink)}.mock-nc-content .nc-col-frozen:after{content:"";position:absolute;right:0;top:0;bottom:0;width:2px;background:var(--blue);opacity:.4}.nc-admin-section{margin-top:var(--sp-5)}.nc-admin-section h4{margin-bottom:var(--sp-3)}.nc-admin-plugin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-4);transition:border-color var(--duration-fast)}.nc-admin-plugin-card:hover{border-color:var(--blue)}.nc-admin-plugin-icon{width:32px;height:32px;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:700}.nc-admin-plugin-desc{font-size:var(--text-xs);color:var(--text-tertiary);line-height:var(--leading-normal)}.nc-admin-plugin-footer{margin-top:var(--sp-1)}.nc-admin-user-status{font-size:var(--text-xs)}.nc-admin-user-status:before{content:"";width:6px;height:6px;border-radius:var(--radius-full)}.nc-admin-user-status.active{color:var(--success)}.nc-admin-user-status.active:before{background:var(--success)}.nc-admin-user-status.inactive{color:var(--text-placeholder)}.nc-admin-user-status.inactive:before{background:var(--text-placeholder)}.nc-admin-user-status.suspended{color:var(--error)}.nc-admin-user-status.suspended:before{background:var(--error)}.mock-nc-field-editor-option-dot.dot-success{background:var(--success)}.mock-nc-field-editor-option-dot.dot-orange{background:var(--orange)}.mock-nc-field-editor-option-dot.dot-error{background:var(--error)}.mock-nc-field-editor-option-dot.dot-blue{background:var(--blue)}.mock-nc-field-editor-option-dot.dot-purple{background:var(--purple, #8b5cf6)}.mock-nc-field-editor-option-dot.dot-pink{background:var(--pink, #ec4899)}.mock-nc-field-editor-option-dot.dot-warning{background:var(--warning, #f59e0b)}.mock-nc-field-editor-option-dot.dot-neutral{background:var(--text-tertiary)}.mock-nc-sidebar-base-link{color:var(--blue)}.mock-nc-json-output{font-size:var(--text-xxs);color:var(--text-secondary);line-height:1.6;white-space:pre;padding:var(--sp-2);background:var(--surface);border-radius:var(--radius-s)}.mock-nc-gallery-cover-initials{font-size:var(--text-4xl);font-weight:700}.mock-nc-row-active{border-left:3px solid var(--success)}.mock-nc-row-lead{border-left:3px solid var(--blue)}.mock-nc-row-pending{border-left:3px solid var(--orange)}.mock-nc-row-churned{border-left:3px solid var(--error)}.mock-nc-cal-date-outside{color:var(--text-placeholder)}.mock-nc-format-swatch-green{background:var(--success-soft)}.mock-nc-format-swatch-blue{background:var(--info-soft)}.mock-nc-format-swatch-yellow{background:var(--warning-soft)}.mock-nc-format-swatch-red{background:var(--error-soft)}.mock-nc-format-swatch-gray{background:var(--gray-200)}.mock-nc-format-btn-bold{font-weight:700}.mock-nc-format-btn-italic{font-style:italic}.mock-nc-toolbar-undo-redo{display:flex;gap:var(--sp-0_5);margin-right:var(--sp-2)}.mock-nc-toolbar-undo-redo .mock-nc-toolbar-btn{font-size:var(--text-mid);padding:var(--sp-1) var(--sp-2)}.mock-nc-toolbar-undo-redo .disabled{opacity:.4}.mock-nc-toolbar-separator{width:1px;height:16px;background:var(--border-default);margin:0 var(--sp-1)}.mock-nc-base-home-header h2{font-size:var(--text-xl);font-weight:600;color:var(--text-primary)}.mock-nc-base-home-header p{font-size:var(--text-sm);color:var(--text-tertiary);margin-top:var(--sp-1)}.mock-nc-collaborators-invite{margin-bottom:var(--sp-4)}.mock-nc-collaborators-invite .form-select{width:120px;flex:none}.mock-nc-schema-danger-desc{font-size:var(--text-xs);color:var(--text-tertiary)}.mock-nc-col-avatar{width:40px}.mock-nc-col-actions{width:80px}.mock-nc-share-row-mt{margin-top:var(--sp-2)}.mock-nc-base-card-icon.icon-blue{background:var(--blue-soft);color:var(--blue)}.mock-nc-base-card-icon.icon-green{background:var(--green-soft);color:var(--success)}.mock-nc-base-card-icon.icon-muted{background:var(--surface-raised);color:var(--text-placeholder)}.mock-nc-base-card-dot.dot-blue{background:var(--blue)}.mock-nc-base-card-dot.dot-green{background:var(--success)}.mock-nc-base-card-name-muted{color:var(--text-tertiary)}.mock-nc-field-editor-formula{min-height:80px;font-size:var(--text-xs)}.mock-nc-dropdown{position:absolute;top:100%;left:0;z-index:100;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-s);padding:var(--sp-1);min-width:120px}.mock-nc-dropdown-item{display:flex;align-items:center;gap:var(--sp-2);padding:6px 12px;cursor:pointer;border-radius:var(--radius-xs);font-size:var(--text-xs);color:var(--text-primary)}.mock-nc-dropdown-item:hover{background:var(--surface-raised)}.mock-nc-dropdown-divider{height:1px;background:var(--border-subtle);margin:var(--sp-1) 0}.mock-nc-sidebar-add-table{padding:var(--sp-1) var(--sp-3) var(--sp-1) calc(var(--sp-3) + 20px);font-size:var(--text-xs);color:var(--text-tertiary);gap:var(--sp-1)}.mock-nc-sidebar-add-table svg{width:12px;height:12px;flex-shrink:0}.mock-nc-sidebar-add-table:hover{color:var(--blue)}.nc-grid-rows-short .data-table td,.nc-grid-rows-short .data-table th{height:28px;padding-top:0;padding-bottom:0}.nc-grid-rows-medium .data-table td,.nc-grid-rows-medium .data-table th{height:36px}.nc-grid-rows-tall .data-table td,.nc-grid-rows-tall .data-table th{height:52px}.nc-grid-rows-extra .data-table td,.nc-grid-rows-extra .data-table th{height:72px}.nc-grid-rows-custom .data-table td,.nc-grid-rows-custom .data-table th{height:var(--row-height-px, 36px);padding-top:0;padding-bottom:0}body.nc-row-resizing{-webkit-user-select:none;user-select:none;cursor:row-resize!important}body.nc-row-resizing *{cursor:row-resize!important}.data-table .nc-virt-spacer td{padding:0;border:none;background:transparent}.mock-nc-dropdown-item.active{font-weight:600;color:var(--blue)}.mock-nc-format-btn-bold.active,.mock-nc-format-btn-italic.active{background:var(--blue-soft);color:var(--blue)}.data-table th.nc-add-col-th{width:40px;min-width:40px;padding:0;text-align:center;cursor:pointer;color:var(--text-tertiary);border-left:1px solid var(--border-subtle)}.data-table th.nc-add-col-th:hover{background:var(--surface-hover);color:var(--text-primary)}.mock-nc-audit-panel{display:none}.mock-nc-audit-panel.visible{display:flex}.mock-nc-backup-panel{display:none}.mock-nc-backup-panel.visible{display:flex}.data-table tr.nc-row-selected td{background:var(--blue-muted, rgba(59, 130, 246, .07))}.data-table tr.nc-row-selected .nc-row-num-td{background:var(--blue, #3b82f6);color:#fff}.data-table td.nc-cell-selected{outline:2px solid var(--blue, #3b82f6);outline-offset:-2px;position:relative;overflow:visible}.data-table td.nc-cell-fill-target{background:color-mix(in srgb,var(--blue, #3b82f6) 15%,transparent);outline:1px dashed var(--blue, #3b82f6);outline-offset:-1px}.data-table th.nc-col-selected{background:var(--blue-muted, rgba(59, 130, 246, .1));color:var(--blue, #3b82f6)}.data-table td.nc-col-selected-cell{background:var(--blue-muted, rgba(59, 130, 246, .05))}.data-table th:has(.nc-col-rename-input){display:flex;align-items:center;gap:var(--sp-1);white-space:nowrap}.data-table td.nc-cell-editing-td{overflow:visible;position:relative;padding:0}.data-table td.nc-cell-editing-td input.nc-cell-editing,.data-table td.nc-cell-editing-td textarea.nc-cell-editing{padding:0 var(--sp-1_5);border:none;border-radius:0;background:var(--surface-ink);box-shadow:none;width:100%;height:100%;min-height:100%;resize:none;outline:2px solid var(--blue);outline-offset:-2px}.data-table td.nc-cell-editing-td textarea.nc-cell-editing-text{position:absolute;top:0;left:0;width:max(100%,240px);height:100%;overflow-y:auto;z-index:20;padding:var(--sp-1_5);white-space:pre-wrap;box-shadow:0 4px 16px #0000002e}.data-table td.nc-cell-editing-td textarea.nc-cell-editing-longtext{position:absolute;top:0;left:0;width:max(100%,240px);height:auto;overflow-y:auto;min-height:72px;max-height:320px;z-index:20;padding:var(--sp-1_5);white-space:pre-wrap;box-shadow:0 4px 16px #0000002e}.mock-nc-toolbar.nc-toolbar-2row,.mock-nc-toolbar.nc-toolbar-3row{padding:0;flex-direction:column}.nc-height-input-wrap{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--border-default);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--neu-sm);height:28px;padding:0 var(--sp-1_5);background:var(--surface)}.nc-height-input-label{font-size:var(--text-3xs);font-weight:700;color:var(--text-tertiary);letter-spacing:.02em}.nc-height-input{width:36px;border:none;background:transparent;font-size:var(--text-xs);color:var(--text-primary);text-align:center;padding:0;outline:none;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.nc-height-input::-webkit-inner-spin-button,.nc-height-input::-webkit-outer-spin-button{-webkit-appearance:none}.nc-height-input-unit{font-size:var(--text-3xs);color:var(--text-tertiary)}#ncViewGrid:focus{outline:none}.data-table th:hover .nc-col-sort-btn{opacity:1}.data-table th.nc-col-sorted{background:color-mix(in srgb,var(--tab-accent) 5%,transparent)}#ncViewGrid.mock-nc-view{overflow:auto;min-height:0}.mock-nc-grid{overflow:visible;position:relative}.mock-nc-grid .data-table thead tr:first-child th{position:sticky;top:28px;z-index:4;background:var(--surface-ink)}.mock-nc-grid .data-table thead tr:nth-child(2) th{position:sticky;top:46px;z-index:4;background:var(--surface-ink)}.mock-nc-grid .data-table tfoot tr td{position:sticky;bottom:28px;z-index:3;background:var(--surface-ink)}.mock-nc-grid:not(.nc-wrap-text) .data-table{table-layout:fixed}.mock-nc-grid:not(.nc-wrap-text) .data-table td{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mock-nc-grid.nc-wrap-text .data-table td{white-space:normal;word-break:break-word;vertical-align:top}.nc-col-letters-row th{padding:1px var(--sp-1);height:18px;background:var(--surface-inset);border-bottom:1px solid var(--border-subtle);font-size:var(--text-2xs);font-family:var(--font-mono, monospace);font-weight:500;color:var(--text-tertiary);text-align:center;-webkit-user-select:none;user-select:none;cursor:default;letter-spacing:.02em}.nc-col-letters-row th.nc-col-letter-cell{cursor:pointer;transition:background .12s,color .12s}.nc-col-letters-row th.nc-col-letter-cell:hover{background:var(--border-subtle);color:var(--text-secondary)}tr:hover .nc-row-drag-handle{visibility:visible}.data-table td.nc-cell-range-sel{background:color-mix(in srgb,var(--blue) 14%,transparent);outline:2px solid color-mix(in srgb,var(--blue) 50%,transparent);outline-offset:-1px}.data-table td.nc-cell-copied{outline:2px dashed var(--blue);outline-offset:-2px;animation:nc-copied-pulse 1.5s ease-in-out infinite}@keyframes nc-copied-pulse{0%,to{outline-color:var(--blue)}50%{outline-color:color-mix(in srgb,var(--blue) 35%,transparent)}}.data-table td.nc-formula-ref-cell{outline:2px dashed var(--nc-ref-color, var(--blue));outline-offset:-1px;position:relative;z-index:1}.data-table tr.nc-row-checked td{background:color-mix(in srgb,var(--blue) 8%,transparent)}.mock-nc-sidebar-base:hover .nc-base-drag-handle{opacity:1}.data-table tr.nc-row--color-red td{background:#fff5f5}.data-table tr.nc-row--color-red:hover td{background:color-mix(in srgb,#FC8181 15%,#FFF5F5)}.data-table tr.nc-row--color-orange td{background:#fffaf0}.data-table tr.nc-row--color-orange:hover td{background:color-mix(in srgb,#F6AD55 15%,#FFFAF0)}.data-table tr.nc-row--color-yellow td{background:ivory}.data-table tr.nc-row--color-yellow:hover td{background:color-mix(in srgb,#ECC94B 15%,#FFFFF0)}.data-table tr.nc-row--color-green td{background:#f0fff4}.data-table tr.nc-row--color-green:hover td{background:color-mix(in srgb,#68D391 15%,#F0FFF4)}.data-table tr.nc-row--color-blue td{background:#ebf8ff}.data-table tr.nc-row--color-blue:hover td{background:color-mix(in srgb,#63B3ED 15%,#EBF8FF)}.data-table tr.nc-row--color-purple td{background:#faf5ff}.data-table tr.nc-row--color-purple:hover td{background:color-mix(in srgb,#B794F4 15%,#FAF5FF)}.data-table tr.nc-row--color-pink td{background:#fff5f7}.data-table tr.nc-row--color-pink:hover td{background:color-mix(in srgb,#F687B3 15%,#FFF5F7)}.data-table tr.nc-row--color-gray td{background:#f7fafc}.data-table tr.nc-row--color-gray:hover td{background:color-mix(in srgb,#A0AEC0 15%,#F7FAFC)}.nc-row-color-popover{position:fixed;z-index:9999;background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-m);padding:var(--sp-2);box-shadow:var(--shadow-lg);min-width:160px}.data-table tr.nc-sub-row td{font-size:var(--text-xs);opacity:.85;border-top:1px dashed var(--border-subtle);border-bottom:1px dashed var(--border-subtle);background:color-mix(in srgb,var(--border-subtle) 30%,transparent)}.data-table tr.nc-sub-row:hover td{background:color-mix(in srgb,var(--border-subtle) 50%,transparent)}tr:hover .nc-row-expand-btn{display:inline-block}.nc-ctx-menu{padding:var(--sp-1_5)}.mock-nocodb .data-table th{text-transform:none;letter-spacing:normal}.mock-nocodb .data-table th:not(.col-checkbox):not(.col-row-num):after{pointer-events:none}.data-table th:hover .nc-col-resize-handle:after{opacity:1}.data-table td.nc-cell--match{background:oklch(from var(--purple) l c h/.18);outline:1px solid var(--purple);outline-offset:-1px}.data-table td.nc-cell--dupe{background:oklch(from var(--warning, #F6AD55) l c h/.2);outline:1px solid var(--warning, #F6AD55);outline-offset:-1px}.data-table th.nc-col-dupe-active{background:oklch(from var(--warning, #F6AD55) l c h/.15);color:var(--text-primary)}body.nc-resizing{-webkit-user-select:none;user-select:none;cursor:col-resize!important}body.nc-resizing *{cursor:col-resize!important}.data-table td.nc-heatmap--accent{background:rgba(99,179,237,calc(var(--nc-heatmap-opacity, 0) * .55))}.data-table td.nc-heatmap--success{background:rgba(104,211,145,calc(var(--nc-heatmap-opacity, 0) * .55))}.data-table td.nc-heatmap--warning{background:rgba(246,173,85,calc(var(--nc-heatmap-opacity, 0) * .55))}.data-table td.nc-heatmap--error{background:rgba(252,129,129,calc(var(--nc-heatmap-opacity, 0) * .55))}.nc-phantom-row td{height:28px;background:var(--surface-1, #fbfaf7);border-top:1px dashed var(--border-subtle, rgba(0, 0, 0, .08));color:var(--text-placeholder)}.nc-phantom-row td.col-row-num{text-align:center;color:var(--text-placeholder);font-weight:600}.nc-hints-wrap{display:flex;align-items:center}.data-table td{color:var(--nc-cell-tc, inherit);background-color:var(--nc-cell-bg, inherit);font-family:var(--nc-cell-ff, inherit);font-size:var(--nc-cell-fs, inherit)}.mock-nc-dropdown--right{right:0;left:auto;min-width:200px}.mock-nc-dropdown-label{padding:var(--sp-1) var(--sp-2_5);font-size:var(--text-3xs);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.mock-neuron{display:flex;flex:1;overflow:hidden;height:100%}.nr-content{display:flex;flex-direction:column;flex:1;overflow:hidden}.nr-sidebar{width:240px;min-width:220px;display:flex;flex-direction:column;border-right:1px solid var(--border-subtle);background:var(--surface);overflow:hidden;flex-shrink:0}.nr-sidebar-header{display:flex;align-items:center;gap:var(--sp-2);padding:12px 14px 8px}.nr-sidebar-header .nr-sidebar-icon{width:28px;height:28px;background:var(--purple-soft);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.nr-sidebar-header .nr-sidebar-icon svg{width:16px;height:16px;color:var(--purple)}.nr-sidebar-header .nr-sidebar-title{flex:1;font-size:var(--text-sm);font-weight:700;color:var(--text-primary);letter-spacing:.02em}.nr-sidebar-new-btn{margin:0 12px 10px}.nr-sidebar-section{padding-top:var(--sp-1)}.nr-sidebar-section-label{padding:8px 14px 4px;font-size:var(--text-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.nr-sidebar-divider{height:1px;background:var(--border-subtle);margin:6px 0}.nr-sidebar-scroll{flex:1;overflow-y:auto}.nr-diagram-item{display:flex;align-items:center;gap:var(--sp-2);padding:5px 12px;cursor:pointer}.nr-diagram-item:hover,.nr-diagram-item.active{background:var(--purple-soft)}.nr-diagram-item.active .nr-diag-name{color:var(--purple);font-weight:600}.nr-diagram-item .nr-diag-icon{width:26px;height:26px;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);flex-shrink:0}.nr-diagram-item .nr-diag-info{flex:1;min-width:0}.nr-diagram-item .nr-diag-name{font-size:var(--text-xs);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nr-diagram-item .nr-diag-meta{font-size:var(--text-2xs);color:var(--text-tertiary)}.nr-diagram-item .nr-diag-more{opacity:0;flex-shrink:0;position:relative;padding:3px;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .15s,background .15s}.nr-diagram-item .nr-diag-more svg{width:14px;height:14px;color:var(--text-tertiary);display:block}.nr-diagram-item .nr-diag-more:hover,.nr-diagram-item .nr-diag-more--open{background:var(--surface-raised);opacity:1!important}.nr-diagram-item:hover .nr-diag-more{opacity:1}.nr-diag-dropdown{position:absolute;top:calc(100% + 4px);right:0;width:172px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000001f;padding:var(--sp-1);z-index:200}.nr-diag-dd-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:6px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-primary);background:none;border:none;cursor:pointer;text-align:left;transition:background .12s}.nr-diag-dd-item:hover{background:var(--surface-raised)}.nr-diag-dd-item--danger{color:var(--error)}.nr-diag-dd-item--danger:hover{background:rgba(var(--error-rgb, 220, 53, 69),.08)}.nr-diag-dd-sep{height:1px;background:var(--border-subtle);margin:4px 0}.nr-type-badge{display:inline-flex;align-items:center;font-size:var(--text-3xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:1px 5px;border-radius:var(--radius-sm)}.nr-type-badge.canvas{background:var(--pink-soft);color:var(--pink)}.nr-type-badge.orgchart{background:var(--orange-soft);color:var(--orange)}.nr-header{display:flex;align-items:center;gap:var(--sp-1_5);padding:0 16px;border-bottom:1px solid var(--border-subtle);background:var(--surface);flex-shrink:0;min-height:48px}.nr-header-breadcrumb{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-sm);color:var(--text-secondary);margin-right:var(--sp-1)}.nr-header-breadcrumb .nr-breadcrumb-mod{color:var(--text-tertiary)}.nr-header-breadcrumb .nr-breadcrumb-mod:hover{color:var(--text-secondary);cursor:pointer}.nr-header-breadcrumb .nr-breadcrumb-sep{color:var(--text-tertiary)}.nr-header-breadcrumb .nr-breadcrumb-title{font-weight:600;color:var(--text-primary);cursor:pointer}.nr-header-breadcrumb .nr-breadcrumb-title:hover{color:var(--purple)}.nr-header-breadcrumb .nr-breadcrumb-input{font-size:var(--text-xs);font-weight:600;color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--purple);border-radius:var(--radius-xs);padding:1px 6px;outline:none;width:180px}.nr-header-breadcrumb .nr-breadcrumb-input:focus{box-shadow:0 0 0 2px var(--purple-soft)}.nr-header-type-pill{display:flex;align-items:center;gap:var(--sp-1);padding:2px 9px;background:var(--purple-soft);color:var(--purple);border-radius:var(--radius-xl);font-size:var(--text-xxs);font-weight:600}.nr-header-type-pill svg{width:11px;height:11px}.nr-header-divider{width:1px;height:20px;background:var(--border-subtle);margin:0 4px}.nr-header-group{display:flex;align-items:center;gap:2px}.nr-header-right{display:flex;align-items:center;gap:var(--sp-1);margin-left:auto}.nr-save-indicator{font-size:var(--text-xxs);color:var(--text-tertiary);margin-right:var(--sp-1)}.nr-save-indicator.saving{color:var(--orange)}.nr-save-indicator.saved{color:var(--green)}.nr-zoom-pct{font-size:var(--text-xxs);color:var(--text-tertiary);min-width:34px;text-align:center}.nr-canvas-wrap{flex:1;position:relative;overflow:hidden;background:var(--surface);cursor:default}.nr-canvas-wrap .react-flow__pane{cursor:default!important}.nr-canvas-wrap .react-flow__node:focus,.nr-canvas-wrap .react-flow__node:focus-visible{outline:none}.nr-canvas-wrap .react-flow__edge:hover .react-flow__edge-path{stroke-width:2.5}.nr-canvas-wrap .react-flow__edge.selected .react-flow__edge-path{stroke:var(--purple)!important}.nr-canvas-wrap .react-flow__edge.nr-edge-neural .react-flow__edge-path{stroke-dasharray:6 4;animation:nr-edge-flow 2s linear infinite;opacity:.75}.nr-canvas-wrap .react-flow__edge.nr-edge-neural:hover .react-flow__edge-path,.nr-canvas-wrap .react-flow__edge.nr-edge-neural.selected .react-flow__edge-path{opacity:1;stroke-dasharray:none;animation:none}@keyframes nr-edge-flow{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}@keyframes nr-node-pulse{0%,to{filter:drop-shadow(0 0 4px rgba(123,129,190,.25))}50%{filter:drop-shadow(0 0 10px rgba(123,129,190,.55))}}.nr-rf-node{width:var(--nw, 140px);height:var(--nh, 40px);cursor:pointer;overflow:visible;position:relative}.nr-rf-node__fill{width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);background:var(--nb, var(--purple));transition:filter .2s;animation:nr-node-pulse 4s ease-in-out infinite}.nr-rf-node:hover .nr-rf-node__fill{filter:brightness(.92) drop-shadow(0 0 10px rgba(123,129,190,.45))!important;animation:none}.nr-rf-node--selected .nr-rf-node__fill{outline:2.5px solid var(--purple);outline-offset:2px}.nr-rf-node--rounded .nr-rf-node__fill{border-radius:var(--radius-md)}.nr-rf-node--pill .nr-rf-node__fill{border-radius:100px}.nr-rf-node--circle .nr-rf-node__fill{border-radius:50%}.nr-rf-node--diamond .nr-rf-node__fill{clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);border-radius:0}.nr-rf-node--hexagon .nr-rf-node__fill{clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%);border-radius:0}.nr-rf-node--cloud .nr-rf-node__fill{border-radius:40% 60% 60% 40%/40% 40% 60% 60%}.nr-rf-node__text{font-size:var(--text-sm);font-weight:600;text-align:center;padding:6px 12px;pointer-events:none;-webkit-user-select:none;user-select:none;word-break:break-word;color:var(--nc, #fff)}.nr-rf-node__input{background:transparent;border:none;outline:none;font-size:var(--text-sm);font-weight:600;text-align:center;width:calc(100% - 16px);color:var(--nc, #fff);font-family:inherit}.nr-branch-btn{position:absolute;width:20px;height:20px;border-radius:50%;background:var(--nb, var(--purple));border:2px solid var(--surface);color:var(--nc, #fff);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;box-shadow:0 2px 8px color-mix(in srgb,var(--nb, var(--purple)) 50%,transparent);transition:filter .15s,transform .15s;padding:0}.nr-branch-btn:hover{filter:brightness(1.18);transform:scale(1.2)}.nr-branch-btn--top{top:-10px;left:50%;transform:translate(-50%)}.nr-branch-btn--top:hover{transform:translate(-50%) scale(1.2)}.nr-branch-btn--right{right:-10px;top:50%;transform:translateY(-50%)}.nr-branch-btn--right:hover{transform:translateY(-50%) scale(1.2)}.nr-branch-btn--bottom{bottom:-10px;left:50%;transform:translate(-50%)}.nr-branch-btn--bottom:hover{transform:translate(-50%) scale(1.2)}.nr-branch-btn--left{left:-10px;top:50%;transform:translateY(-50%)}.nr-branch-btn--left:hover{transform:translateY(-50%) scale(1.2)}.nr-rf-handle{width:8px!important;height:8px!important;background:var(--purple)!important;border:2px solid var(--surface)!important;border-radius:50%!important;opacity:0;transition:opacity .12s}.react-flow__node:hover .nr-rf-handle{opacity:1}.nr-node-toolbar-wrap{position:relative}.nr-node-toolbar{display:flex;align-items:center;gap:2px;padding:3px 5px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);box-shadow:var(--neu-sm)}.nr-node-toolbar-btn{width:24px;height:24px;border:none;background:transparent;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary)}.nr-node-toolbar-btn svg{width:12px;height:12px}.nr-node-toolbar-btn:hover,.nr-node-toolbar-btn--active{background:var(--purple-soft);color:var(--purple)}.nr-node-toolbar-btn--danger:hover{background:#e53e3e14;color:var(--error)}.nr-node-toolbar-sep{width:1px;height:14px;background:var(--border-subtle);margin:0 1px}.nr-node-color-dot{display:block;width:11px;height:11px;border-radius:50%;background:var(--dot, var(--purple));border:1.5px solid rgba(255,255,255,.45);box-shadow:0 0 0 1px #0000001f;flex-shrink:0}.nr-node-shape-thumb{display:flex;align-items:center;justify-content:center}.nr-node-shape-thumb svg{width:13px;height:13px;fill:currentColor}.nr-node-picker{position:absolute;top:calc(100% + 5px);left:0;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);box-shadow:var(--neu-md);padding:var(--sp-1_5);z-index:100;animation:nr-ctx-appear .08s ease-out}.nr-node-picker--color{display:grid;grid-template-columns:repeat(4,20px);gap:var(--sp-1)}.nr-node-picker--shape{display:flex;gap:3px}.nr-color-swatch{width:20px;height:20px;border-radius:var(--radius-xs);cursor:pointer;background:var(--dot, var(--purple));border:2px solid transparent;transition:transform .1s,border-color .1s}.nr-color-swatch:hover{transform:scale(1.18)}.nr-color-swatch.active{border-color:var(--purple);box-shadow:0 0 0 1px var(--purple)}.nr-shape-btn{width:28px;height:28px;border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);padding:0}.nr-shape-btn svg{width:16px;height:16px;fill:currentColor}.nr-shape-btn:hover{background:var(--purple-soft);color:var(--purple)}.nr-shape-btn.active{background:var(--purple-soft);color:var(--purple);border-color:var(--purple)}.nr-empty-canvas-hint{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:8px 14px;font-size:var(--text-xs);color:var(--text-tertiary);box-shadow:var(--neu-sm);pointer-events:none;margin-top:var(--sp-4)}.nr-empty-canvas-or{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-3)}.nr-empty-canvas-btn{margin-top:var(--sp-2);padding:6px 16px;font-size:var(--text-xs);font-weight:600;color:var(--purple);background:var(--purple-soft);border:1px solid var(--purple);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease,transform .1s ease}.nr-empty-canvas-btn:hover{background:var(--purple);color:#fff;transform:translateY(-1px)}.nr-empty-canvas-btn:active{transform:translateY(0)}.react-flow__edge-label{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);padding:2px 7px;font-size:var(--text-xxs);color:var(--text-secondary);white-space:nowrap}.nr-edge-label-edit{position:fixed;z-index:9999;transform:translate(-50%,-50%)}.nr-edge-label-input{background:var(--surface);border:1px solid var(--purple);border-radius:var(--radius-xs);padding:4px 10px;font-size:var(--text-xs);font-family:inherit;color:var(--text-primary);outline:none;min-width:120px;box-shadow:var(--neu-sm)}.nr-rf-minimap{border:1px solid var(--border-subtle)!important;border-radius:var(--radius-sm)!important;box-shadow:var(--neu-sm)!important;opacity:.85}.nr-rf-minimap .react-flow__minimap-mask{fill:var(--purple-soft)!important;opacity:.3}.nr-zoom-controls{position:absolute;bottom:16px;right:16px;display:flex;flex-direction:column;align-items:center;gap:2px;z-index:10}.nr-zoom-btn{width:30px;height:30px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);box-shadow:var(--neu-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:15px;font-weight:600;color:var(--text-secondary)}.nr-zoom-btn svg{width:14px;height:14px}.nr-zoom-btn:hover{color:var(--text-primary);background:var(--surface-raised)}.nr-zoom-btn:active{box-shadow:var(--neu-inset-sm)}.nr-zoom-label{font-size:var(--text-2xs);color:var(--text-tertiary);padding:2px 0;min-width:36px;text-align:center}.nr-ctx-menu{position:fixed;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--neu-md);padding:4px 0;min-width:215px;z-index:9999;animation:nr-ctx-appear .08s ease-out}@keyframes nr-ctx-appear{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.nr-ctx-label{padding:5px 14px 2px;font-size:var(--text-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.nr-ctx-item{display:flex;align-items:center;gap:9px;padding:7px 14px;font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;transition:background .08s}.nr-ctx-item .nr-ctx-ico{width:15px;height:15px;flex-shrink:0;color:var(--text-secondary);display:flex;align-items:center;justify-content:center}.nr-ctx-item .nr-ctx-ico svg{width:14px;height:14px}.nr-ctx-item .nr-ctx-label-text{flex:1}.nr-ctx-item .nr-ctx-kbd{margin-left:auto;font-size:var(--text-xxs);color:var(--text-tertiary);font-family:monospace;white-space:nowrap}.nr-ctx-item:hover{background:var(--purple-soft);color:var(--purple)}.nr-ctx-item:hover .nr-ctx-ico{color:var(--purple)}.nr-ctx-item.danger,.nr-ctx-item.danger .nr-ctx-ico{color:var(--error)}.nr-ctx-item.danger:hover{background:#e53e3e14;color:var(--error)}.nr-ctx-item.disabled{opacity:.38;cursor:not-allowed;pointer-events:none}.nr-ctx-sep{height:1px;background:var(--border-subtle);margin:4px 0}.nr-home{flex:1;overflow-y:auto;padding:24px 28px}.nr-home-section{margin-bottom:var(--sp-8)}.nr-home-section-title{font-size:var(--text-xs);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--sp-3_5)}.nr-diagram-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-3)}.nr-diagram-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);overflow:hidden;cursor:pointer;transition:box-shadow .15s,transform .12s}.nr-diagram-card:hover{box-shadow:var(--neu-md);transform:translateY(-1px)}.nr-diagram-card .nr-card-thumb{height:96px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.nr-diagram-card .nr-card-thumb svg{width:100%;height:100%}.nr-diagram-card .nr-card-body{padding:10px 12px}.nr-diagram-card .nr-card-name{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nr-diagram-card .nr-card-footer{display:flex;align-items:center;gap:var(--sp-1_5);margin-top:5px}.nr-diagram-card .nr-card-time{font-size:var(--text-xxs);color:var(--text-tertiary);margin-left:auto}.nr-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);padding:var(--sp-10);text-align:center}.nr-empty-state .nr-empty-icon{width:64px;height:64px;background:var(--purple-soft);border-radius:50%;display:flex;align-items:center;justify-content:center}.nr-empty-state .nr-empty-icon svg{width:32px;height:32px;color:var(--purple)}.nr-empty-state h3{font-size:15px;font-weight:700;color:var(--text-primary)}.nr-empty-state p{font-size:var(--text-sm);color:var(--text-secondary);max-width:280px}.nr-canvas-wrap[data-node-theme=dark-neon],.nr-canvas-wrap[data-node-theme=dark-neon] .react-flow__background{background:#0f172a}.nr-canvas-wrap[data-node-theme=dark-neon] .react-flow__edge-path{stroke:#6b92e54d}.nr-canvas-wrap[data-node-theme=sketch],.nr-canvas-wrap[data-node-theme=sketch] .react-flow__background{background:#f9f5ee}.nr-rf-node--theme-neu-pill .nr-rf-node__shell{width:100%;height:100%;background:var(--surface);box-shadow:8px 8px 16px var(--shadow-dark, rgba(0, 0, 0, .12)),-8px -8px 16px var(--shadow-light, rgba(255, 255, 255, .8));border-radius:var(--radius-md);padding:3px;transition:all .2s ease}.nr-rf-node--theme-neu-pill .nr-rf-node__shell:hover{transform:translateY(-2px);box-shadow:12px 12px 24px var(--shadow-dark, rgba(0, 0, 0, .16)),-12px -12px 24px var(--shadow-light, rgba(255, 255, 255, .9))}.nr-rf-node--theme-neu-pill .nr-rf-node__fill{border-radius:calc(var(--radius-md) - 3px);background:linear-gradient(135deg,rgba(255,255,255,.16) 0%,transparent 55%),var(--nb);animation:none}.nr-rf-node--theme-glass .nr-rf-node__fill{background:#ffffff73;border:1.5px solid var(--nb);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--nb);box-shadow:0 4px 16px #00000014,inset 0 1px #fffc;animation:none}.nr-rf-node--theme-glass .nr-rf-node__fill:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001f}.nr-rf-node--theme-glass .nr-rf-node__text,.nr-rf-node--theme-glass .nr-rf-node__input{color:var(--text-primary)}@keyframes nr-node-pulse-neon{0%,to{box-shadow:0 0 8px color-mix(in srgb,var(--nb) 30%,transparent)}50%{box-shadow:0 0 20px color-mix(in srgb,var(--nb) 65%,transparent)}}.nr-rf-node--theme-dark-neon .nr-rf-node__fill{background:#1a2235;border:1.5px solid var(--nb);color:var(--nb);box-shadow:0 0 10px color-mix(in srgb,var(--nb) 35%,transparent);animation:nr-node-pulse-neon 4s ease-in-out infinite}.nr-rf-node--theme-dark-neon .nr-rf-node__fill:hover{transform:translateY(-2px);box-shadow:0 0 24px color-mix(in srgb,var(--nb) 65%,transparent);animation:none}.nr-rf-node--theme-dark-neon .nr-rf-node__text,.nr-rf-node--theme-dark-neon .nr-rf-node__input{color:var(--nb)}.nr-rf-node--theme-ghost .nr-rf-node__fill{background:transparent;border:2px solid var(--nb);color:var(--nb);animation:none;transition:background .15s ease,color .15s ease}.nr-rf-node--theme-ghost .nr-rf-node__fill:hover{background:var(--nb);color:#fff;transform:translateY(-1px)}.nr-rf-node--theme-ghost .nr-rf-node__text,.nr-rf-node--theme-ghost .nr-rf-node__input{color:var(--nb)}.nr-rf-node--theme-leftbar .nr-rf-node__fill{background:var(--surface);padding:0;border-radius:var(--radius-sm);box-shadow:0 2px 8px #0000001a;animation:none;overflow:hidden;align-items:stretch;gap:0;justify-content:flex-start;flex-direction:row}.nr-rf-node--theme-leftbar .nr-rf-node__fill:hover{transform:translateY(-2px);box-shadow:0 6px 18px #00000024}.nr-rf-node__stripe{width:4px;background:var(--nb);flex-shrink:0;align-self:stretch}.nr-rf-node__leftbar-content{padding:5px 10px;display:flex;flex-direction:column;justify-content:center;flex:1;min-width:0}.nr-rf-node__leftbar-title{font-size:var(--text-xxs);font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nr-rf-node__input--leftbar{color:var(--text-primary);font-size:var(--text-xxs);text-align:left}.nr-rf-node--theme-circle .nr-rf-node__fill{border-radius:50%!important;aspect-ratio:1;box-shadow:6px 6px 12px var(--shadow-dark, rgba(0, 0, 0, .1)),-4px -4px 10px var(--shadow-light, rgba(255, 255, 255, .7));animation:nr-node-pulse 4s ease-in-out infinite}.nr-rf-node--theme-circle .nr-rf-node__fill:hover{transform:translateY(-3px)}.nr-rf-node--theme-flat-pill .nr-rf-node__fill{border-radius:100px!important;box-shadow:0 3px 8px color-mix(in srgb,var(--nb) 45%,transparent);animation:none}.nr-rf-node--theme-flat-pill .nr-rf-node__fill:hover{transform:translateY(-2px);filter:brightness(1.08)}.nr-rf-node--theme-sketch .nr-rf-node__fill{background:#fffef9;border:2px dashed var(--nb);color:#4a5568;animation:none}.nr-rf-node--theme-sketch .nr-rf-node__fill:hover{transform:translateY(-2px)}.nr-rf-node--theme-sketch .nr-rf-node__text,.nr-rf-node--theme-sketch .nr-rf-node__input{color:#4a5568}@keyframes nr-edge-dot{0%{stroke-dashoffset:22}to{stroke-dashoffset:0}}.react-flow__edge.nr-edge-dot-travel .react-flow__edge-path{stroke-dasharray:2 18!important;stroke-width:4!important;stroke-linecap:round;animation:nr-edge-dot 1.2s linear infinite}@keyframes nr-edge-breath{0%,to{stroke-width:1;stroke-opacity:.2}50%{stroke-width:3.5;stroke-opacity:1}}.react-flow__edge.nr-edge-glow-breath .react-flow__edge-path{animation:nr-edge-breath 2.2s ease-in-out infinite}@keyframes nr-edge-spark{0%,84%,to{stroke-opacity:.12;stroke-width:1}86%{stroke-opacity:1;stroke-width:3}88%{stroke-opacity:.2;stroke-width:1}90%{stroke-opacity:.85;stroke-width:2}}.react-flow__edge.nr-edge-electric .react-flow__edge-path{stroke-dasharray:3 5;animation:nr-edge-spark 2.4s ease infinite}@keyframes nr-edge-packet{0%{stroke-dashoffset:200;stroke-opacity:0}5%{stroke-opacity:1}72%{stroke-dashoffset:0;stroke-opacity:1}84%{stroke-opacity:0}to{stroke-opacity:0}}.react-flow__edge.nr-edge-packet .react-flow__edge-path{stroke-dasharray:24 1000;stroke-width:2.5;stroke-opacity:0;animation:nr-edge-packet 2.2s cubic-bezier(.4,0,.6,1) infinite}@keyframes nr-edge-wave{0%{stroke-dashoffset:12}to{stroke-dashoffset:0}}.react-flow__edge.nr-edge-wave .react-flow__edge-path{stroke-dasharray:2 5;stroke-width:2.5;animation:nr-edge-wave .65s linear infinite}.nr-header-prefs-anchor{position:relative}.nr-canvas-prefs{position:absolute;top:8px;right:8px;z-index:9999;width:268px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--neu-md);padding:var(--sp-3);animation:nr-ctx-appear .08s ease-out}.nr-prefs-section:not(:first-child){margin-top:var(--sp-3)}.nr-prefs-section-title{font-size:var(--text-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--sp-2)}.nr-prefs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-1_5)}.nr-prefs-grid--anim{grid-template-columns:repeat(4,1fr)}.nr-prefs-thumb{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:6px 4px 5px;border-radius:var(--radius-sm);border:1.5px solid var(--border-subtle);cursor:pointer;transition:border-color .12s,background .1s;background:var(--surface)}.nr-prefs-thumb:hover,.nr-prefs-thumb--active{border-color:var(--purple);background:var(--purple-soft)}.nr-prefs-thumb__preview{width:36px;height:22px;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.nr-prefs-thumb__label{font-size:var(--text-3xs);font-weight:600;color:var(--text-secondary);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.nr-prefs-thumb--active .nr-prefs-thumb__label{color:var(--purple)}.nr-prefs-thumb[data-theme=neu-pill] .nr-prefs-thumb__preview{background:#ecf0f3;box-shadow:3px 3px 6px #0000001a,-3px -3px 6px #ffffffb3}.nr-prefs-thumb[data-theme=glass] .nr-prefs-thumb__preview{background:#b4d2ff66;border:1px solid rgba(107,146,229,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.nr-prefs-thumb[data-theme=dark-neon] .nr-prefs-thumb__preview{background:#1a2235;border:1px solid #6B92E5;box-shadow:0 0 6px #6b92e580}.nr-prefs-thumb[data-theme=ghost] .nr-prefs-thumb__preview{background:transparent;border:1.5px solid var(--purple)}.nr-prefs-thumb[data-theme=leftbar] .nr-prefs-thumb__preview{background:var(--surface-raised);border-left:3px solid var(--purple);border-radius:2px}.nr-prefs-thumb[data-theme=circle] .nr-prefs-thumb__preview{background:#ecf0f3;border-radius:50%!important;width:22px;height:22px;box-shadow:3px 3px 6px #0000001a,-2px -2px 5px #ffffffb3}.nr-prefs-thumb[data-theme=flat-pill] .nr-prefs-thumb__preview{background:#7b81be;border-radius:100px!important}.nr-prefs-thumb[data-theme=sketch] .nr-prefs-thumb__preview{background:#fffef9;border:2px dashed #7B81BE}.nr-prefs-thumb[data-anim] .nr-prefs-thumb__preview{width:44px;height:18px;background:transparent;border:none}.nr-prefs-anim-line{stroke:var(--purple);stroke-width:1.5;fill:none;stroke-linecap:round}.nr-prefs-anim-line--dashed{stroke-dasharray:4 3}.nr-prefs-anim-line--dotted{stroke-dasharray:1.5 3;stroke-width:2.5}.nr-prefs-anim-line--thin{stroke-width:1;stroke-dasharray:2 4}.nr-prefs-anim-line--spark{stroke-dasharray:3 4}.nr-prefs-anim-line--packet{stroke-dasharray:10 30;stroke-width:2}.nr-prefs-anim-line--wave{stroke-dasharray:1.5 3.5}.nr-history-overlay{position:fixed;top:0;right:0;bottom:0;width:340px;background:var(--surface);border-left:1px solid var(--border);box-shadow:-4px 0 24px #0000001f;z-index:1000;display:flex;flex-direction:column}.nr-history-header{padding:12px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:var(--sp-1_5)}.nr-history-title{font-size:var(--text-sm);font-weight:600;flex:1}.nr-history-body{flex:1;overflow-y:auto;padding:var(--sp-2)}.nr-history-item{display:flex;align-items:center;gap:var(--sp-2_5);padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);margin-bottom:var(--sp-1_5)}.nr-history-item:hover{background:var(--surface-hover)}.nr-hv-num{font-size:var(--text-2xs);font-weight:700;color:var(--purple);min-width:26px}.nr-hv-info{flex:1;min-width:0}.nr-hv-name{font-size:var(--text-xs);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nr-hv-meta{font-size:var(--text-2xs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.nr-history-empty{padding:32px 16px;text-align:center;color:var(--text-tertiary);font-size:var(--text-xs);line-height:1.5}.nr-history-skeleton{height:60px;background:var(--surface-hover);border-radius:var(--radius-sm);margin-bottom:var(--sp-1_5);animation:nr-skeleton-pulse 1.4s ease-in-out infinite}@keyframes nr-skeleton-pulse{0%,to{opacity:.5}50%{opacity:1}}.nr-export-panel{position:fixed;top:48px;right:72px;z-index:500;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--sp-2);min-width:200px}.nr-export-panel-title{padding:4px 8px 8px;font-size:var(--text-2xs);color:var(--text-tertiary);letter-spacing:.06em;border-bottom:1px solid var(--border-subtle);margin-bottom:var(--sp-1)}.nr-export-option{display:flex;align-items:center;gap:var(--sp-2_5);width:100%;padding:8px 10px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background .12s}.nr-export-option:hover:not(:disabled){background:var(--surface-hover)}.nr-export-option:disabled{opacity:.5;cursor:not-allowed}.nr-export-option svg{flex-shrink:0;color:var(--text-secondary)}.nr-export-option span{flex:1;display:flex;flex-direction:column;gap:1px}.nr-export-option span strong{font-size:var(--text-xs);font-weight:500;color:var(--text-primary)}.nr-export-option span small{font-size:var(--text-2xs);color:var(--text-tertiary)}.nr-export-spinner{width:12px;height:12px;border:2px solid var(--border-subtle);border-top-color:var(--purple);border-radius:50%;animation:nr-spin .7s linear infinite;flex-shrink:0}@keyframes nr-spin{to{transform:rotate(360deg)}}.nr-export-panel-divider{height:1px;background:var(--border-subtle);margin:4px 0}.nr-ai-btn{color:var(--purple);font-weight:600}.nr-ai-overlay-bg{display:flex;align-items:center;justify-content:center}.nr-ai-generate-panel{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:420px;max-width:94vw;display:flex;flex-direction:column;overflow:hidden}.nr-ai-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 12px;border-bottom:1px solid var(--border-subtle)}.nr-ai-panel-title{font-size:var(--text-sm);font-weight:600;color:var(--text-1)}.nr-ai-panel-body{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.nr-ai-panel-hint{font-size:var(--text-xs);color:var(--text-2);margin:0}.nr-ai-panel-actions{display:flex;justify-content:flex-end;gap:var(--sp-2)}.nr-ai-preview-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--sp-1);max-height:300px;overflow-y:auto}.nr-ai-preview-item{font-size:var(--text-xs);color:var(--text-1);padding:6px 10px;background:var(--surface-raised);border-radius:var(--radius-sm);border-left:2px solid var(--purple)}.nr-ai-mode-tabs{display:flex;border-bottom:1px solid var(--border-subtle)}.nr-ai-mode-tab{flex:1;padding:8px 0;font-size:var(--text-xs);font-weight:500;color:var(--text-2);background:none;border:none;cursor:pointer;transition:color .15s,border-bottom .15s;border-bottom:2px solid transparent;margin-bottom:-1px}.nr-ai-mode-tab.active{color:var(--purple);border-bottom-color:var(--purple)}.nr-ai-mode-tab:hover:not(.active){color:var(--text-1)}.nr-ai-field-row{display:flex;flex-direction:column;gap:var(--sp-1)}.nr-ai-field-label{font-size:var(--text-xxs);font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}.nr-ai-optional{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-3)}.nr-ai-panel-hint--warn{color:var(--color-warning, #f59e0b)}.mock-axon{display:flex;flex:1;overflow:hidden;height:100%}.ax-content{display:flex;flex-direction:column;flex:1;overflow:hidden}.ax-sidebar{width:220px;min-width:200px;display:flex;flex-direction:column;border-right:1px solid var(--border-subtle);background:var(--surface);overflow:hidden;flex-shrink:0}.ax-sidebar-header{display:flex;align-items:center;gap:var(--sp-2);padding:12px 14px 8px}.ax-sidebar-header .ax-sidebar-icon{width:28px;height:28px;background:var(--blue-soft);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.ax-sidebar-header .ax-sidebar-icon svg{width:16px;height:16px;color:var(--blue)}.ax-sidebar-header .ax-sidebar-title{flex:1;font-size:var(--text-sm);font-weight:700;color:var(--text-primary)}.ax-sidebar-scroll{flex:1;overflow-y:auto}.ax-sidebar-new-deal{padding:0 12px 10px}.ax-sidebar-section{padding-top:var(--sp-0_5)}.ax-sidebar-section-label{padding:8px 14px 3px;font-size:var(--text-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.ax-sidebar-divider{height:1px;background:var(--border-subtle);margin:5px 0}.ax-nav-item{display:flex;align-items:center;gap:9px;padding:6px 14px;cursor:pointer;font-size:var(--text-sm);color:var(--text-primary)}.ax-nav-item svg{width:15px;height:15px;color:var(--text-secondary);flex-shrink:0}.ax-nav-item .ax-nav-label{flex:1}.ax-nav-item:hover{background:var(--blue-soft);color:var(--blue)}.ax-nav-item:hover svg{color:var(--blue)}.ax-nav-item.active{background:var(--blue-soft);color:var(--blue);font-weight:600}.ax-nav-item.active svg{color:var(--blue)}.ax-nav-item .ax-nav-badge{margin-left:auto;background:var(--blue);color:#fff;border-radius:var(--radius-base);font-size:var(--text-2xs);font-weight:700;padding:1px 6px;min-width:18px;text-align:center}.ax-header{display:flex;align-items:center;gap:var(--sp-1_5);padding:0 16px;border-bottom:1px solid var(--border-subtle);background:var(--surface);flex-shrink:0;min-height:48px}.ax-header-breadcrumb{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-sm);color:var(--text-secondary)}.ax-header-breadcrumb .ax-breadcrumb-title{font-weight:600;color:var(--text-primary)}.ax-header-breadcrumb .ax-breadcrumb-sep{color:var(--text-tertiary)}.ax-header-breadcrumb .ax-breadcrumb-service{color:var(--text-tertiary);font-size:var(--text-xs)}.ax-header-divider{width:1px;height:20px;background:var(--border-subtle);margin:0 4px}.ax-header-right{margin-left:auto;display:flex;align-items:center;gap:var(--sp-1)}.ax-home{flex:1;overflow-y:auto;padding:20px 24px}.ax-kpi-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-7)}.ax-kpi-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);padding:14px 16px}.ax-kpi-card .ax-kpi-label{font-size:var(--text-xxs);color:var(--text-tertiary);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.ax-kpi-card .ax-kpi-value{font-size:22px;font-weight:700;color:var(--text-primary);margin:4px 0 2px}.ax-kpi-card .ax-kpi-delta{font-size:var(--text-xxs);color:var(--green)}.ax-kpi-card .ax-kpi-delta.down{color:var(--error)}.ax-section-title{font-size:var(--text-xxs);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--sp-3)}.ax-pipeline-cols{display:flex;gap:var(--sp-2_5);overflow-x:auto;margin-bottom:var(--sp-7);padding-bottom:var(--sp-1)}.ax-pipeline-col{min-width:180px;flex-shrink:0}.ax-pipeline-col .ax-col-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--surface-inset);border-radius:var(--radius-sm) var(--radius-sm) 0 0;font-size:var(--text-xxs);font-weight:700;color:var(--text-secondary)}.ax-pipeline-col .ax-col-amount{font-size:var(--text-2xs);color:var(--text-tertiary)}.ax-pipeline-col .ax-col-cards{background:var(--surface-inset);border-radius:0 0 var(--radius-sm) var(--radius-sm);padding:var(--sp-1_5);display:flex;flex-direction:column;gap:5px;min-height:60px}.ax-deal-card{background:var(--surface);border-radius:var(--radius-xs);box-shadow:var(--neu-sm);padding:8px 10px;cursor:pointer}.ax-deal-card:hover{box-shadow:var(--neu-md)}.ax-deal-card--dragging{box-shadow:var(--shadow-lg);opacity:.92}.ax-deal-card .ax-deal-name{font-size:var(--text-xs);font-weight:600;color:var(--text-primary)}.ax-deal-card .ax-deal-value{font-size:var(--text-xxs);color:var(--blue);font-weight:600;margin-top:var(--sp-0_5)}.ax-activity-list{display:flex;flex-direction:column;gap:var(--sp-2)}.ax-activity-item{display:flex;align-items:flex-start;gap:var(--sp-2_5);padding:10px 12px;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--neu-sm)}.ax-activity-item .ax-act-body{flex:1;min-width:0}.ax-activity-item .ax-act-title{font-size:var(--text-xs);font-weight:600;color:var(--text-primary)}.ax-activity-item .ax-act-meta{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.ax-stats-bar{display:flex;align-items:center;gap:var(--sp-4);padding:10px 16px;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);margin-bottom:var(--sp-4);flex-shrink:0}.ax-stat-group{display:flex;flex:1;gap:0}.ax-stat-item{display:flex;flex-direction:column;gap:1px;padding:0 20px;border-right:1px solid var(--border-subtle)}.ax-stat-item:first-child{padding-left:0}.ax-stat-item:last-child{border-right:none}.ax-stat-label{font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);white-space:nowrap}.ax-stat-value{font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.ax-stat-value--green{color:var(--green)}.ax-pipeline-col.ax-col--blue .ax-col-header{border-top:3px solid var(--blue)}.ax-pipeline-col.ax-col--purple .ax-col-header{border-top:3px solid var(--purple)}.ax-pipeline-col.ax-col--orange .ax-col-header{border-top:3px solid var(--orange)}.ax-pipeline-col.ax-col--pink .ax-col-header{border-top:3px solid var(--pink)}.ax-pipeline-col.ax-col--green .ax-col-header{border-top:3px solid var(--green)}.ax-col-header{display:flex;align-items:center;justify-content:space-between;padding:7px 10px 5px;background:var(--surface-inset);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.ax-col-name{font-size:var(--text-xxs);font-weight:700;color:var(--text-secondary)}.ax-col-count{font-size:var(--text-2xs);background:var(--surface-raised);border-radius:var(--radius-sm);padding:1px 5px;color:var(--text-tertiary);font-weight:600}.ax-col-total{font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary);padding:3px 10px 5px;background:var(--surface-inset);border-bottom:1px solid var(--border-subtle)}.ax-col-add{background:none;border:1px dashed var(--border-subtle);border-radius:var(--radius-xs);color:var(--text-placeholder);font-size:var(--text-xxs);padding:5px 8px;width:100%;cursor:pointer;transition:all var(--duration-fast);margin-top:var(--sp-0_5)}.ax-col-add:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.ax-deal-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-1);margin-bottom:3px}.ax-deal-priority{width:7px;height:7px;border-radius:50%;flex-shrink:0}.ax-deal-priority.ax-priority--urgent{background:var(--error)}.ax-deal-priority.ax-priority--high{background:var(--orange)}.ax-deal-priority.ax-priority--medium{background:var(--blue)}.ax-deal-priority.ax-priority--low{background:var(--border-strong)}.ax-deal-foot{display:flex;justify-content:space-between;font-size:var(--text-2xs);color:var(--text-tertiary);margin-top:var(--sp-1)}.ax-activity-panel{width:240px;min-width:220px;flex-shrink:0;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);overflow:hidden}.ax-activity-panel-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 9px;border-bottom:1px solid var(--border-subtle);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary)}.ax-activity-scroll{flex:1;overflow-y:auto;padding:var(--sp-1_5);display:flex;flex-direction:column;gap:2px}.ax-activity-item{display:flex;align-items:flex-start;gap:var(--sp-2);padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast);border-left:2px solid transparent}.ax-activity-item:hover{background:var(--surface-raised)}.ax-activity-item.ax-activity--urgent{border-left-color:var(--orange)}.ax-act-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:var(--sp-1)}.ax-act-dot.ax-act-dot--call{background:var(--blue)}.ax-act-dot.ax-act-dot--email{background:var(--green)}.ax-act-dot.ax-act-dot--meeting{background:var(--orange)}.ax-act-dot.ax-act-dot--task{background:var(--purple)}.ax-act-dot.ax-act-dot--note{background:var(--text-tertiary)}.ax-act-body{flex:1;min-width:0}.ax-act-title{font-size:var(--text-xs);color:var(--text-primary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-act-meta{font-size:var(--text-2xs);color:var(--text-tertiary);margin-top:1px}.ax-pipeline-view{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:12px 16px 0}.ax-pipeline-view .ax-pipeline-cols{flex:1;overflow-x:auto;overflow-y:hidden;display:flex;gap:var(--sp-2_5);padding-bottom:var(--sp-3);align-items:flex-start;margin-bottom:0}.ax-pipeline-view .ax-pipeline-col{min-width:200px;width:220px;flex-shrink:0;display:flex;flex-direction:column;max-height:100%}.ax-pipeline-view .ax-pipeline-col .ax-col-cards{flex:1;overflow-y:auto;min-height:80px}.ax-col--over .ax-col-cards{background:var(--blue-soft)!important;border:1px dashed var(--blue)}.ax-pipeline-tabs{display:flex;gap:var(--sp-1);margin-bottom:var(--sp-2_5);flex-shrink:0}.ax-pipeline-tab{padding:4px 12px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;color:var(--text-secondary);background:none;border:1px solid var(--border-subtle);cursor:pointer;transition:all var(--duration-fast)}.ax-pipeline-tab:hover{background:var(--surface-raised)}.ax-pipeline-tab.active{background:var(--blue-soft);color:var(--blue);border-color:var(--blue);font-weight:600}.ax-quick-create{display:flex;flex-direction:column;gap:var(--sp-1_5);padding:var(--sp-1_5);background:var(--surface);border-radius:var(--radius-xs);border:1px solid var(--border-subtle);margin-top:var(--sp-1)}.ax-quick-create-actions{display:flex;gap:var(--sp-1_5)}.ax-pipeline-loading{flex:1;display:flex;align-items:center;justify-content:center}.ax-col--placeholder{opacity:.35;pointer-events:none;-webkit-user-select:none;user-select:none}.ax-no-pipeline-banner{flex-shrink:0;margin:0 0 12px;padding:10px 16px;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-secondary);text-align:center}.ax-create-overlay-footer{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--border-subtle)}.ax-list-view{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:var(--sp-4);gap:var(--sp-3)}.ax-list-toolbar{display:flex;align-items:center;gap:var(--sp-2_5);flex-shrink:0}.ax-list-toolbar>:first-child{flex:1}.ax-contacts-company-filter{width:170px;flex-shrink:0}.ax-contacts-subbar{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0;flex-wrap:wrap}.ax-source-filters{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap;flex:1}.ax-filter-pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;border:1px solid var(--border-subtle);background:var(--surface);color:var(--text-secondary);font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:background .12s,color .12s,border-color .12s;white-space:nowrap}.ax-filter-pill:hover{background:var(--surface-hover);color:var(--text-primary)}.ax-filter-pill.active{background:var(--blue-soft);border-color:var(--blue);color:var(--blue);font-weight:600}.ax-list-counter{font-size:var(--text-xxs);color:var(--text-tertiary);margin-left:auto;white-space:nowrap}.ax-sort-th{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .12s}.ax-sort-th:hover{color:var(--text-secondary)!important}.ax-sort-th.active{color:var(--text-primary)!important}.ax-sort-icon{font-size:var(--text-3xs);opacity:.6}.ax-list-loading{flex:1;display:flex;align-items:center;justify-content:center}.ax-list-table-wrap{flex:1;overflow:auto;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm)}.ax-list-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.ax-list-table thead tr{border-bottom:1px solid var(--border-subtle)}.ax-list-table th{padding:8px 12px;text-align:left;font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);white-space:nowrap}.ax-list-table tbody tr{border-bottom:1px solid var(--border-subtle)}.ax-list-table tbody tr:last-child{border-bottom:none}.ax-list-table td{padding:9px 12px;vertical-align:middle}.ax-list-row{cursor:pointer;transition:background var(--duration-fast)}.ax-list-row:hover{background:var(--surface-raised)}.ax-list-row--selected{background:var(--blue-soft)}.ax-row-name{display:flex;align-items:center;gap:9px}.ax-row-avatar{width:28px;height:28px;border-radius:50%;background:var(--blue-soft);color:var(--blue);font-size:var(--text-xxs);font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ax-row-avatar--company{border-radius:var(--radius-sm);background:var(--purple-soft, var(--surface-inset));color:var(--purple)}.ax-row-muted{color:var(--text-secondary)}.ax-row-sub{font-size:var(--text-2xs);color:var(--text-tertiary);margin-top:1px}.ax-contact-overlay-bg{display:flex;align-items:stretch;justify-content:flex-end}.ax-contact-detail{width:min(1080px,94vw);max-width:94vw;height:100%;background:var(--surface);display:flex;flex-direction:column;overflow:hidden;box-shadow:-4px 0 24px #00000024}.ax-detail-header{display:flex;align-items:center;gap:var(--sp-3);padding:16px 16px 12px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.ax-detail-avatar{width:40px;height:40px;border-radius:50%;background:var(--blue-soft);color:var(--blue);font-size:var(--text-md);font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ax-detail-title-block{flex:1;min-width:0}.ax-detail-name{font-size:15px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-detail-subtitle{font-size:var(--text-xs);color:var(--text-secondary);margin-top:1px}.ax-detail-header-actions{display:flex;gap:var(--sp-1);flex-shrink:0}.ax-detail-tabs{padding:0 16px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.ax-detail-body{flex:1;overflow-y:auto;padding:var(--sp-4)}.ax-detail-section{margin-bottom:var(--sp-5)}.ax-detail-section:last-child{margin-bottom:0}.ax-detail-section-title{font-size:var(--text-2xs);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--sp-2_5)}.ax-detail-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.ax-detail-field{display:flex;flex-direction:column;gap:var(--sp-1)}.ax-detail-label{font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.ax-detail-value{font-size:var(--text-sm);color:var(--text-primary)}.ax-detail-link{font-size:var(--text-sm);color:var(--blue);text-decoration:none}.ax-detail-link:hover{text-decoration:underline}.ax-detail-notes{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;white-space:pre-wrap}.ax-detail-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.ax-quick-action{display:inline-flex;align-items:center;gap:var(--sp-1_5);padding:6px 12px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;text-decoration:none;cursor:pointer;transition:all var(--duration-fast);border:1px solid var(--border-subtle);color:var(--text-secondary);background:var(--surface)}.ax-quick-action:hover{box-shadow:var(--neu-sm)}.ax-quick-action--call:hover{color:var(--green);border-color:var(--green);background:var(--green-soft, var(--surface-raised))}.ax-quick-action--email:hover{color:var(--blue);border-color:var(--blue);background:var(--blue-soft)}.ax-quick-action--ledger:hover{color:var(--purple);border-color:var(--purple);background:var(--surface-raised)}.ax-quick-action--done{color:var(--green);font-size:var(--text-xs);font-weight:500;padding:6px 12px}.ax-detail-activities{display:flex;flex-direction:column;gap:var(--sp-1_5)}.ax-detail-activity-item{display:flex;align-items:flex-start;gap:var(--sp-2_5);padding:8px 10px;border-radius:var(--radius-sm);background:var(--surface-raised)}.ax-detail-activity-item.ax-activity--done{opacity:.6}.ax-detail-deals{display:flex;flex-direction:column;gap:var(--sp-2)}.ax-detail-deal-item{padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-raised);box-shadow:var(--neu-sm)}.ax-detail-deal-name{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-1_5)}.ax-detail-deal-meta{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.ax-detail-deal-value{font-size:var(--text-xs);font-weight:600;color:var(--blue)}.ax-detail-deal-stage{font-size:var(--text-xxs);color:var(--text-tertiary)}.ax-detail-empty{text-align:center;padding:32px 16px;color:var(--text-tertiary);font-size:var(--text-sm)}.ax-create-overlay{width:min(700px,94vw);padding:28px 32px 24px;max-height:90vh;display:flex;flex-direction:column}.ax-create-overlay>.flex-col-g3{overflow-y:auto;flex:1;padding-right:var(--sp-1)}.ax-create-overlay-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-6);font-size:var(--text-md);font-weight:700;color:var(--text-primary);flex-shrink:0}.ax-overlay-close{background:none;border:none;color:var(--text-tertiary);font-size:var(--text-md);cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm)}.ax-overlay-close:hover{background:var(--surface-raised);color:var(--text-primary)}.ax-create-overlay-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.ax-import-overlay{width:520px}.ax-import-body{display:flex;flex-direction:column;gap:var(--sp-4);margin-bottom:var(--sp-5)}.ax-import-zone{border:2px dashed var(--border-default);border-radius:var(--radius-md);padding:32px 20px;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);cursor:pointer;transition:border-color .15s ease,background .15s ease;text-align:center}.ax-import-zone:hover,.ax-import-zone--over{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 6%,transparent)}.ax-import-zone--ready{border-color:var(--success);background:color-mix(in srgb,var(--success) 6%,transparent)}.ax-import-file-input{display:none}.ax-import-zone-icon{color:var(--text-tertiary);font-size:22px;line-height:1}.ax-import-zone-label{font-size:var(--text-mid);font-weight:500;color:var(--text-primary)}.ax-import-zone-filename{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);word-break:break-all}.ax-import-zone-hint{font-size:var(--text-xs);color:var(--text-tertiary)}.ax-import-columns{display:flex;flex-direction:column;gap:var(--sp-1_5)}.ax-import-columns-label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.ax-import-columns-list{display:flex;flex-wrap:wrap;gap:var(--sp-1_5)}.ax-import-columns-hint{font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.5}.ax-import-stats{display:flex;gap:var(--sp-4);justify-content:center;padding:20px 0 8px}.ax-import-stat{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1)}.ax-import-stat-num{font-size:32px;font-weight:700;line-height:1}.ax-import-stat-num--created{color:var(--success)}.ax-import-stat-num--updated{color:var(--blue)}.ax-import-stat-num--errors{color:var(--error)}.ax-import-stat-label{font-size:var(--text-xs);color:var(--text-tertiary)}.ax-import-errors{display:flex;flex-direction:column;gap:var(--sp-2)}.ax-import-errors-title{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.ax-import-errors-list{display:flex;flex-direction:column;gap:var(--sp-1_5);max-height:160px;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--sp-2)}.ax-import-error-row{display:flex;align-items:center;gap:var(--sp-2)}.ax-import-error-reason{font-size:var(--text-xs);color:var(--text-secondary)}.ax-activities-view{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:var(--sp-4);gap:var(--sp-3)}.ax-activities-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-shrink:0;flex-wrap:wrap}.ax-activities-toolbar-right{display:flex;align-items:center;gap:var(--sp-2_5)}.ax-activities-scroll{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-4)}.ax-activity-group{display:flex;flex-direction:column;gap:2px}.ax-activity-group-title{font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);padding:6px 0 6px 4px;display:flex;align-items:center;gap:var(--sp-1_5)}.ax-activity-group-count{background:var(--surface-raised);border-radius:var(--radius-sm);padding:1px 6px;font-size:var(--text-2xs);font-weight:600}.ax-activity-row{display:flex;align-items:flex-start;gap:var(--sp-2_5);padding:9px 12px 9px 10px;border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--neu-sm);transition:box-shadow var(--duration-fast);cursor:pointer}.ax-activity-row:hover{box-shadow:var(--neu-md)}.ax-activity-row:hover .ax-activity-delete{opacity:1}.ax-activity-row--done{opacity:.55}.ax-activity-row--done .ax-activity-title{text-decoration:line-through}.ax-activity-check{width:18px;height:18px;border:1.5px solid var(--border-strong);border-radius:50%;flex-shrink:0;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-top:1px;transition:all var(--duration-fast);color:#fff}.ax-activity-check:hover{border-color:var(--blue);background:var(--blue-soft)}.ax-activity-check.checked{background:var(--green);border-color:var(--green)}.ax-activity-body{flex:1;min-width:0}.ax-activity-title{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:var(--sp-1_5);flex-wrap:wrap}.ax-activity-type-label{font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);background:var(--surface-raised);padding:1px 5px;border-radius:var(--radius-xs)}.ax-activity-meta{display:flex;align-items:center;gap:var(--sp-2_5);margin-top:3px}.ax-activity-time{font-size:var(--text-xxs);color:var(--text-secondary);font-weight:500}.ax-activity-time--overdue{color:var(--error);font-weight:600}.ax-activity-created{font-size:var(--text-xxs);color:var(--text-tertiary)}.ax-activity-desc{font-size:var(--text-xs);color:var(--text-secondary);margin-top:var(--sp-1);line-height:1.45}.ax-activity-delete{background:none;border:none;color:var(--text-tertiary);cursor:pointer;opacity:0;padding:3px;border-radius:var(--radius-xs);display:flex;align-items:center;flex-shrink:0;transition:all var(--duration-fast);margin-top:1px}.ax-activity-delete:hover{color:var(--error);opacity:1;background:var(--surface-raised)}.ax-inbox-view{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:var(--sp-4);gap:var(--sp-3)}.ax-inbox-toolbar{flex-shrink:0}.ax-inbox-toolbar--row{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.ax-inbox-search{width:240px;flex-shrink:0}.ax-inbox-source-pills{display:flex;align-items:center;gap:var(--sp-1_5);flex-wrap:wrap;flex-shrink:0}.ax-lead-source-badge-inner{display:inline-flex;align-items:center;gap:var(--sp-1)}.ax-lead-source-badge-inner svg{flex-shrink:0}.ax-inbox-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-3);align-content:start}.ax-lead-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);padding:14px 16px;display:flex;flex-direction:column;gap:var(--sp-2);transition:box-shadow var(--duration-fast)}.ax-lead-card:hover{box-shadow:var(--neu-md)}.ax-lead-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.ax-lead-card-source{display:flex;align-items:center;gap:var(--sp-1_5);flex-wrap:wrap}.ax-lead-card-date{font-size:var(--text-2xs);color:var(--text-tertiary);white-space:nowrap}.ax-lead-card-name{font-size:var(--text-mid);font-weight:600;color:var(--text-primary)}.ax-lead-card-contacts{display:flex;flex-direction:column;gap:var(--sp-1)}.ax-lead-card-contact-item{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-xs);color:var(--text-secondary);text-decoration:none}.ax-lead-card-contact-item:hover{color:var(--blue)}.ax-lead-card-contact-item svg{flex-shrink:0;opacity:.6}.ax-lead-card-notes{font-size:var(--text-xs);color:var(--text-secondary);line-height:1.4;padding:6px 8px;background:var(--surface-raised);border-radius:var(--radius-xs);border-left:2px solid var(--border-subtle)}.ax-lead-card-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-1)}.ax-lead-card-qualified-note{font-size:var(--text-xxs);color:var(--green);font-weight:600;margin-top:var(--sp-1);display:flex;align-items:center;gap:var(--sp-1)}.ax-lead-card-qualified-note:before{content:"✓";font-size:var(--text-xs)}.ax-lead-card{cursor:pointer;transition:box-shadow var(--duration-fast),transform .12s}.ax-lead-card:hover{box-shadow:var(--neu-md);transform:translateY(-1px)}.ax-detail-avatar--lead{background:var(--purple-soft, var(--blue-soft));color:var(--purple, var(--blue))}.ax-detail-badges{display:flex;gap:var(--sp-1_5);flex-wrap:wrap;margin-top:var(--sp-1)}.ax-detail-converted{color:var(--success, #10b981);font-weight:500}.ax-lead-detail-notes{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.55;padding:10px 12px;background:var(--surface-raised);border-radius:var(--radius-sm);white-space:pre-wrap}.ax-detail-footer{display:flex;gap:var(--sp-2);justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--border-subtle);flex-shrink:0}.ax-qualify-lead-info{background:var(--surface-raised);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:var(--sp-1)}.ax-qualify-lead-name{font-size:var(--text-mid);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-1)}.ax-qualify-lead-meta{font-size:var(--text-xs);color:var(--text-secondary)}.ax-qualify-hint{font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.5;padding:8px 10px;background:var(--surface-raised);border-radius:var(--radius-xs);border-left:2px solid var(--blue);margin:0}.ax-detail-orders{display:flex;flex-direction:column;gap:var(--sp-2)}.ax-detail-order-item{padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-raised);box-shadow:var(--neu-sm)}.ax-detail-order-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-1_5)}.ax-detail-order-id{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.ax-detail-order-shop{font-size:var(--text-xxs);color:var(--text-tertiary)}.ax-detail-order-meta{display:flex;align-items:center;gap:var(--sp-1_5);flex-wrap:wrap;margin-bottom:var(--sp-1)}.ax-detail-order-total{font-size:var(--text-xs);font-weight:600;color:var(--blue);margin-left:auto}.ax-detail-order-date{font-size:var(--text-2xs);color:var(--text-tertiary)}.ax-detail-orders-toolbar{display:flex;justify-content:flex-end;margin-bottom:var(--sp-2)}.ax-detail-order-items{margin:var(--sp-1_5) 0 var(--sp-1);display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--border-subtle);padding-top:var(--sp-1_5)}.ax-detail-order-item-row{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-2xs);color:var(--text-secondary)}.ax-detail-order-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-detail-order-item-qty{color:var(--text-tertiary);white-space:nowrap}.ax-detail-order-item-price{font-weight:500;color:var(--text-primary);white-space:nowrap}.ax-deal-overlay-bg{display:flex;align-items:stretch;justify-content:flex-end}.ax-deal-detail{width:460px;max-width:90vw;height:100%;background:var(--surface);display:flex;flex-direction:column;overflow:hidden;box-shadow:-4px 0 24px #00000024}.ax-deal-detail-header{display:flex;align-items:center;gap:var(--sp-3);padding:16px 16px 12px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.ax-deal-detail-icon{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--purple-soft, var(--surface-inset));color:var(--purple);display:flex;align-items:center;justify-content:center;flex-shrink:0}.ax-deal-detail-icon svg{width:18px;height:18px}.ax-deal-detail-title{flex:1;font-size:15px;font-weight:700;color:var(--text-primary);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-deal-detail-tabs{padding:0 16px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.ax-deal-detail-body{flex:1;overflow-y:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-4)}.ax-deal-info-section{background:var(--surface-raised);border-radius:var(--radius-sm);padding:var(--sp-3_5)}.ax-deal-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.ax-deal-info-field{display:flex;flex-direction:column;gap:var(--sp-1)}.ax-deal-notes-section{margin-top:var(--sp-3)}.ax-deal-notes-section .ax-detail-notes{margin-top:var(--sp-1)}.ax-deal-actions-row{display:flex;gap:var(--sp-2_5);flex-wrap:wrap;padding-top:var(--sp-1)}.ax-deal-won-actions{display:flex;flex-direction:column;gap:var(--sp-2)}.ax-deal-create-project-btn,.ax-deal-create-invoice-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:8px 14px;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--duration-fast)}.ax-deal-create-project-btn svg,.ax-deal-create-invoice-btn svg{width:14px;height:14px}.ax-deal-create-project-btn{background:var(--blue-soft);color:var(--blue);border:1px solid var(--blue)}.ax-deal-create-project-btn:hover{background:var(--blue);color:#fff}.ax-deal-create-invoice-btn{background:var(--green-soft);color:var(--success);border:1px solid var(--success)}.ax-deal-create-invoice-btn:hover{background:var(--success);color:#fff}.ax-deal-shop-banner{display:flex;align-items:center;gap:var(--sp-2);padding:8px 14px;background:rgba(var(--accent-rgb, 99, 102, 241),.08);border:1px solid var(--accent, #6366f1);border-radius:var(--radius-sm);color:var(--accent, #6366f1);font-size:var(--text-xs);margin-bottom:var(--sp-2)}.ax-deal-won-banner{display:flex;align-items:center;gap:var(--sp-2);padding:10px 14px;background:var(--green-soft, rgba(34, 197, 94, .1));border:1px solid var(--green);border-radius:var(--radius-sm);color:var(--green);font-size:var(--text-sm);font-weight:600}.ax-deal-lost-banner{display:flex;align-items:center;gap:var(--sp-2);padding:10px 14px;background:#ef444414;border:1px solid var(--error);border-radius:var(--radius-sm);color:var(--error);font-size:var(--text-sm);font-weight:600}.ax-reports-view{display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-5);overflow-y:auto;flex:1}.ax-reports-period{display:flex;gap:var(--sp-1_5)}.ax-reports-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-4)}.ax-report-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);padding:var(--sp-4)}.ax-top-managers{display:flex;flex-direction:column;gap:var(--sp-2);padding-top:var(--sp-1)}.ax-top-manager-row{display:flex;align-items:center;gap:var(--sp-2_5);font-size:var(--text-sm)}.ax-top-manager-rank{width:18px;height:18px;border-radius:50%;background:var(--surface-hover);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xs);font-weight:700;color:var(--text-tertiary);flex-shrink:0}.ax-top-manager-name{flex:1;color:var(--text-primary);font-weight:500}.ax-top-manager-deals{color:var(--text-tertiary);font-size:var(--text-xs)}.ax-top-manager-rev{font-weight:700;color:var(--text-primary);min-width:60px;text-align:right}.ax-detail-avatar--company{border-radius:var(--radius-sm);background:var(--purple-soft, var(--surface-inset));color:var(--purple)}.ax-edit-form{display:flex;flex-direction:column;gap:var(--sp-3)}.ax-edit-form-footer{display:flex;justify-content:flex-end;gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border-subtle);margin-top:var(--sp-1)}.ax-company-contacts-list{display:flex;flex-direction:column;gap:var(--sp-2)}.ax-company-contact-item{display:flex;align-items:center;gap:var(--sp-2_5);padding:8px 10px;border-radius:var(--radius-sm);background:var(--surface-raised)}.ax-row-avatar--sm{width:24px;height:24px;font-size:var(--text-2xs)}.ax-pipeline-toolbar{display:flex;align-items:center;gap:var(--sp-2);padding:8px 16px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.ax-pipeline-search{width:220px;flex-shrink:0}.ax-pipeline-owner-select{width:180px;flex-shrink:0}.ax-pipeline-mode-toggle{display:flex;align-items:center;gap:2px;margin-left:auto;background:var(--surface-inset);border-radius:var(--radius-sm);padding:var(--sp-0_5)}.ax-mode-btn{display:flex;align-items:center;justify-content:center;width:28px;height:26px;border-radius:calc(var(--radius-sm) - 2px);border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;transition:background .15s,color .15s}.ax-mode-btn:hover{background:var(--surface-hover);color:var(--text-secondary)}.ax-mode-btn.active{background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-xs)}.ax-pipeline-list{flex:1;overflow:auto;padding:0 16px 16px}.ax-list-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.ax-list-table th{text-align:left;padding:10px 10px 8px;font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle);white-space:nowrap}.ax-list-table td{padding:9px 10px;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.ax-list-row--deal{cursor:pointer;transition:background .12s}.ax-list-row--deal:hover td{background:var(--surface-hover)}.ax-list-row--deal:last-child td{border-bottom:none}.ax-list-deal-name{font-weight:500;color:var(--text-primary);max-width:240px}.ax-list-deal-value{font-weight:600;color:var(--text-primary);white-space:nowrap}.ax-pipeline-list-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:var(--text-sm);padding:48px 24px}.ax-pipeline-settings{width:680px;max-width:95vw;max-height:85vh;display:flex;flex-direction:column;gap:0}.ax-stage-list-header{display:grid;grid-template-columns:20px 14px 1fr 120px 90px 48px 28px 28px;gap:var(--sp-2);padding:6px 14px 4px;font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle)}.ax-stage-list{flex:1;overflow-y:auto;padding:6px 0}.ax-stage-row{display:grid;grid-template-columns:20px 14px 1fr 120px 90px 48px 28px 28px;gap:var(--sp-2);align-items:center;padding:5px 14px;border-radius:var(--radius-sm);transition:background .12s}.ax-stage-row:hover{background:var(--surface-raised)}.ax-stage-row--dragging{box-shadow:var(--neu-md);background:var(--surface-raised)}.ax-stage-drag{color:var(--text-tertiary);cursor:grab;display:flex;align-items:center}.ax-stage-drag:active{cursor:grabbing}.ax-stage-swatch{width:14px;height:14px;border-radius:50%;flex-shrink:0;display:inline-block}.ax-stage-name-wrap{overflow:hidden}.ax-stage-name-text{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);cursor:default;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-stage-name-input{font-size:var(--text-sm);height:28px;padding:0 8px}.ax-stage-colors{display:flex;gap:var(--sp-1);flex-wrap:wrap}.ax-stage-color-dot{width:14px;height:14px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .1s;flex-shrink:0}.ax-stage-color-dot:hover{transform:scale(1.2)}.ax-stage-color-dot.active{border-color:var(--text-primary)}.ax-stage-prob{display:flex;align-items:center;gap:3px}.ax-stage-prob-input{width:52px;height:28px;padding:0 6px;font-size:var(--text-xs);text-align:right}.ax-stage-prob-label{font-size:var(--text-xxs);color:var(--text-tertiary)}.ax-stage-deal-count{font-size:var(--text-xs);color:var(--text-tertiary);text-align:center}.ax-stage-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;transition:background .12s,color .12s}.ax-stage-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.ax-stage-btn--delete:hover{background:var(--error-soft, #fee2e2);color:var(--error, #ef4444)}.ax-stage-btn:disabled{opacity:.3;cursor:not-allowed}.ax-stage-add{padding:10px 14px;border-top:1px solid var(--border-subtle)}.ax-stage-add-form{display:flex;gap:var(--sp-2);align-items:center}.ax-tag-badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px 8px;border-radius:var(--radius-md);font-size:var(--text-xxs);font-weight:500;line-height:1.4;background:color-mix(in srgb,var(--tag-color, #718096) 15%,transparent);color:var(--tag-color, #718096);border:1px solid color-mix(in srgb,var(--tag-color, #718096) 30%,transparent);white-space:nowrap}.ax-tag-badge-remove{background:none;border:none;padding:0;cursor:pointer;font-size:var(--text-sm);line-height:1;color:inherit;opacity:.6}.ax-tag-badge-remove:hover{opacity:1}.ax-tag-list{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.ax-tag-input{position:relative}.ax-tag-input-chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1);padding:6px 10px;border-radius:var(--radius-md, 8px);border:1px solid var(--border-default);background:var(--surface-default);cursor:text;min-height:36px;transition:border-color .15s}.ax-tag-input-chips:focus-within{border-color:var(--accent, #4299e1)}.ax-tag-input-field{flex:1;min-width:80px;border:none;outline:none;background:transparent;font-size:var(--text-sm);color:var(--text-primary)}.ax-tag-input-field::placeholder{color:var(--text-tertiary)}.ax-tag-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface-default);border:1px solid var(--border-default);border-radius:var(--radius-md, 8px);box-shadow:var(--shadow-md);z-index:100;max-height:200px;overflow-y:auto}.ax-tag-dropdown-item{padding:8px 12px;cursor:pointer;font-size:var(--text-sm);display:flex;align-items:center;gap:var(--sp-1_5)}.ax-tag-dropdown-item:hover{background:var(--surface-hover)}.ax-tag-dropdown-create{color:var(--accent, #4299e1);font-weight:500}.ax-deal-tags-section{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border-subtle)}.ax-deal-tags-label-row{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1_5)}.ax-tag-edit-btn{background:none;border:none;padding:0;cursor:pointer;font-size:var(--text-xxs);color:var(--text-tertiary);text-decoration:underline}.ax-tag-edit-btn:hover{color:var(--purple)}.ax-deal-tags-edit{display:flex;flex-direction:column;gap:var(--sp-2)}.ax-deal-tags-edit-actions{display:flex;gap:var(--sp-2)}.ax-tag-save-btn,.ax-tag-cancel-btn{background:none;border:1px solid var(--border-default);border-radius:var(--radius-sm, 4px);padding:3px 10px;font-size:var(--text-xs);cursor:pointer;color:var(--text-secondary)}.ax-tag-save-btn:hover,.ax-tag-cancel-btn:hover{background:var(--surface-hover)}.ax-tag-save-btn{border-color:var(--accent, #4299e1);color:var(--accent, #4299e1)}.ax-tag-save-btn:hover{background:color-mix(in srgb,var(--purple) 10%,transparent)}.ax-tag-empty{color:var(--text-tertiary);font-size:var(--text-sm)}.ax-bulk-bar{display:flex;align-items:center;gap:var(--sp-2_5);padding:8px 14px;background:var(--surface-elevated, #f7f9fc);border:1px solid var(--border-default);border-radius:var(--radius-md, 8px);margin-bottom:var(--sp-2);box-shadow:var(--shadow-sm)}.ax-bulk-count{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);white-space:nowrap}.ax-bulk-actions{display:flex;align-items:center;gap:var(--sp-1_5);flex:1}.ax-bulk-btn-wrap{position:relative}.ax-bulk-clear{background:none;border:none;cursor:pointer;font-size:var(--text-mid);color:var(--text-tertiary);padding:2px 4px;border-radius:var(--radius-xs);line-height:1;margin-left:auto}.ax-bulk-clear:hover{background:var(--surface-hover);color:var(--text-primary)}.ax-bulk-popover{position:absolute;top:calc(100% + 4px);left:0;min-width:180px;max-height:240px;overflow-y:auto;background:var(--surface-default);border:1px solid var(--border-default);border-radius:var(--radius-md, 8px);box-shadow:var(--shadow-md);z-index:200;padding:4px 0}.ax-bulk-popover-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:7px 12px;background:none;border:none;text-align:left;cursor:pointer;font-size:var(--text-sm);color:var(--text-primary)}.ax-bulk-popover-item:hover{background:var(--surface-hover)}.ax-bulk-popover-item--muted{color:var(--text-tertiary);font-style:italic}.ax-bulk-popover-empty{padding:10px 12px;font-size:var(--text-xs);color:var(--text-tertiary)}.ax-cb-col{width:36px;padding:0 6px!important;text-align:center}.ax-list-row--bulk{background:color-mix(in srgb,var(--accent, #4299e1) 6%,transparent)!important}.ax-bulk--busy{opacity:.6;pointer-events:none}.ax-cf-section{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-3)}.ax-cf-section--empty{flex-direction:row;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3)}.ax-cf-section-header{display:flex;align-items:center;justify-content:space-between}.ax-cf-empty-label{font-size:var(--text-xs);color:var(--text-tertiary)}.ax-cf-fields{display:flex;flex-direction:column;gap:var(--sp-2)}.ax-cf-field-row{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:var(--sp-2)}.ax-cf-actions{display:flex;gap:var(--sp-2);padding-top:var(--sp-1)}.ax-cf-tabs{display:flex;border-bottom:1px solid var(--border-subtle);margin-bottom:var(--sp-3)}.ax-cf-tab{padding:var(--sp-2) var(--sp-4);font-size:var(--text-sm);color:var(--text-tertiary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s,border-color .15s}.ax-cf-tab.active{color:var(--text-primary);border-bottom-color:var(--purple);font-weight:500}.ax-cf-tab:hover:not(.active){color:var(--text-secondary)}.ax-cf-list{display:flex;flex-direction:column;gap:var(--sp-1_5);min-height:60px;margin-bottom:var(--sp-3)}.ax-cf-list-empty{font-size:var(--text-sm);color:var(--text-tertiary);text-align:center;padding:var(--sp-3) 0}.ax-cf-list-row{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.ax-cf-list-info{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.ax-cf-list-name{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.ax-cf-list-type{font-size:var(--text-xs);color:var(--text-tertiary);background:var(--surface-sunken);padding:1px var(--sp-1_5);border-radius:var(--radius-sm)}.ax-cf-list-options{font-size:var(--text-xs);color:var(--text-tertiary);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.ax-cf-form{border-top:1px solid var(--border-subtle);padding-top:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.ax-cf-form-title{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);display:flex;align-items:center;justify-content:space-between}.ax-cf-form-row{display:grid;grid-template-columns:1fr auto;gap:var(--sp-2)}.ax-invoice-deal-ref{display:grid;grid-template-columns:100px 1fr;gap:4px 8px;padding:10px 12px;background:var(--surface-inset);border-radius:var(--radius-sm);font-size:var(--text-sm)}.ax-invoice-total-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--green-soft);border-radius:var(--radius-sm);border:1px solid rgba(72,187,120,.3)}.ax-invoice-total-value{font-size:var(--text-md);font-weight:700;color:var(--success)}.ax-deal-act-tab{display:flex;flex-direction:column;flex:1;overflow:hidden}.ax-deal-act-toolbar{display:flex;align-items:center;padding:10px 16px 8px;border-bottom:1px solid var(--border)}.ax-deal-act-list{flex:1;overflow-y:auto;padding:8px 0}.ax-deal-act-row{display:flex;align-items:center;gap:var(--sp-2);padding:8px 16px;transition:background .15s}.ax-deal-act-row:hover{background:var(--surface-hover)}.ax-deal-act-row:hover .ax-deal-act-del-btn{opacity:1}.ax-deal-act-row.ax-activity--done .ax-deal-act-title{text-decoration:line-through;opacity:.55}.ax-deal-act-done-btn{flex-shrink:0;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;border-radius:50%;color:var(--text-tertiary);padding:0;transition:color .15s}.ax-deal-act-done-btn svg{width:16px;height:16px}.ax-deal-act-done-btn:hover,.ax-deal-act-done-btn--on{color:var(--success)}.ax-deal-act-done-btn--on:hover{color:var(--text-tertiary)}.ax-deal-act-done-btn:disabled{opacity:.4;cursor:default}.ax-deal-act-body{flex:1;display:flex;align-items:center;gap:var(--sp-2);cursor:pointer;min-width:0}.ax-deal-act-info{display:flex;flex-direction:column;gap:1px;min-width:0}.ax-deal-act-title{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-deal-act-meta{font-size:var(--text-xxs);color:var(--text-tertiary)}.ax-deal-act-del-btn{flex-shrink:0;opacity:0;transition:opacity .15s;color:var(--text-tertiary)}.ax-deal-act-del-btn:hover{color:var(--error)}.ax-stat-value--blue{color:var(--blue)}.ax-stat-value--red{color:var(--error)}.ax-home-command-layout{display:flex;gap:var(--sp-4);flex:1;overflow:hidden;min-height:0}.ax-home-leads-panel{width:280px;min-width:240px;flex-shrink:0;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);overflow:hidden}.ax-home-leads-footer{padding:6px 10px;border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end}.ax-home-lead-row{padding:8px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast)}.ax-home-lead-row:hover{background:var(--surface-raised)}.ax-home-lead-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);margin-bottom:var(--sp-0_5)}.ax-home-lead-meta{font-size:var(--text-xxs);color:var(--text-tertiary);display:flex;gap:var(--sp-2);flex-wrap:wrap}.ax-activity-section-label{font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);padding:6px 10px 2px}.ax-activity-section-label--overdue{color:var(--error)}.ax-lead-card--selected{background:var(--surface-raised);box-shadow:0 0 0 2px var(--blue)}.ax-bulk-bar-count{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);white-space:nowrap}.ax-lead-edit-form{display:flex;flex-direction:column;gap:var(--sp-2_5);padding:4px 0}.ax-detail-edit-btn{margin-right:var(--sp-1)}.ax-mailbox-overlay{display:flex;flex-direction:column;gap:var(--sp-4);padding:4px 0}.ax-mailbox-overlay-desc{font-size:var(--text-sm);color:var(--text-tertiary);margin:0}.ax-mailbox-list{display:flex;flex-direction:column;gap:var(--sp-2_5)}.ax-mailbox-card{border:1px solid var(--border-subtle);border-radius:var(--radius);padding:12px 14px;background:var(--surface-raised)}.ax-mailbox-card--inactive{opacity:.6}.ax-mailbox-card--editing,.ax-mailbox-card--adding{border-color:var(--blue);background:var(--surface)}.ax-mailbox-card-add-title{font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--sp-3)}.ax-mailbox-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2)}.ax-mailbox-card-title{display:flex;align-items:center;gap:var(--sp-1_5);flex-wrap:wrap}.ax-mailbox-card-name{font-size:var(--text-mid);font-weight:500;color:var(--text)}.ax-mailbox-card-actions{display:flex;gap:var(--sp-1);flex-shrink:0}.ax-mailbox-card-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:var(--sp-1_5);font-size:var(--text-xs);color:var(--text-tertiary)}.ax-mailbox-form{display:flex;flex-direction:column;gap:var(--sp-3)}.ax-mailbox-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.ax-mailbox-form-footer{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-1);padding-top:var(--sp-3);border-top:1px solid var(--border-subtle)}.ax-mailbox-toggle-row{display:flex;align-items:center;gap:var(--sp-2);padding:8px 0}.ax-mailbox-toggle-label{font-size:var(--text-sm);color:var(--text-tertiary)}.ax-mailbox-provider-tips{display:flex;flex-direction:column;gap:2px;padding:8px 10px;background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);font-size:var(--text-xxs);color:var(--text-tertiary)}.ax-mailbox-provider-tips .ax-mailbox-tip-label{font-weight:600;margin-bottom:var(--sp-0_5)}.ax-mailbox-pipe-info{display:flex;flex-direction:column;gap:var(--sp-1_5);padding:10px 12px;background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);font-size:var(--text-xs);color:var(--text-tertiary)}.ax-mailbox-pipe-info p{margin:0}.ax-mailbox-pipe-info code{display:block;padding:6px 8px;background:var(--surface-raised);border-radius:var(--radius-sm);font-family:monospace;font-size:var(--text-xxs);color:var(--text);overflow-x:auto;white-space:nowrap}.ax-mailbox-add-btn{display:flex;justify-content:center;padding:4px 0}.ax-company-deals-tab{display:flex;flex-direction:column;gap:var(--sp-3)}.ax-company-deal-list{display:flex;flex-direction:column;gap:var(--sp-1)}.ax-company-deal-row{display:flex;align-items:center;gap:var(--sp-2_5);padding:10px 12px;border-radius:var(--radius);background:var(--surface-raised);cursor:pointer;transition:background .15s}.ax-company-deal-row:hover{background:var(--surface-hover)}.ax-company-deal-stage-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ax-company-deal-info{flex:1;min-width:0}.ax-company-deal-name{font-size:var(--text-sm);font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-company-deal-meta{display:flex;gap:var(--sp-1);font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.ax-company-deal-right{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.ax-company-deal-value{font-size:var(--text-xs);font-weight:500;color:var(--text)}.ax-company-contacts-tab{display:flex;flex-direction:column;gap:var(--sp-3)}.ax-company-contacts-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.ax-company-contact-card{border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--surface-raised);overflow:hidden}.ax-company-contact-card-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;gap:var(--sp-2);border-bottom:1px solid var(--border-subtle)}.ax-company-contact-card-name-row{display:flex;align-items:center;gap:var(--sp-2_5);min-width:0}.ax-company-contact-card-name{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-sm);font-weight:500;color:var(--text)}.ax-company-contact-card-actions{display:flex;align-items:center;gap:var(--sp-1);flex-shrink:0}.ax-company-contact-card-body{display:flex;flex-direction:column;gap:var(--sp-1);padding:8px 12px}.ax-company-contact-card-row{display:flex;align-items:baseline;gap:var(--sp-2);font-size:var(--text-xs);text-decoration:none;color:var(--text);line-height:1.5}.ax-company-contact-card-row:hover .ax-detail-link{text-decoration:underline}.ax-company-contact-card-label{color:var(--text-tertiary);min-width:72px;flex-shrink:0;font-size:var(--text-xxs)}.ax-company-contact-card-notes{color:var(--text-tertiary);font-size:var(--text-xs);white-space:pre-wrap}.ax-company-contact-card-socials{display:flex;align-items:center;gap:var(--sp-2);padding-top:var(--sp-1)}.ax-social-link{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);background:var(--surface);color:var(--text-tertiary);transition:color .15s,background .15s;text-decoration:none}.ax-social-link:hover{color:var(--text);background:var(--surface-hover)}.ax-company-contact-form{display:flex;flex-direction:column;gap:var(--sp-2_5);padding-bottom:var(--sp-2)}.ax-company-contact-extra-row{display:flex;align-items:center;gap:var(--sp-1_5)}.ax-company-contact-extra-row .ax-contact-extra-label{width:100px;flex-shrink:0;font-size:var(--text-xs)}.ax-company-contact-extra-row .form-input{flex:1}.mock-ledger{display:flex;flex:1;overflow:hidden;height:100%}.lg-content{display:flex;flex-direction:column;flex:1;overflow:hidden}.lg-sidebar{width:220px;min-width:200px;display:flex;flex-direction:column;border-right:1px solid var(--border-subtle);background:var(--surface);overflow:hidden;flex-shrink:0}.lg-sidebar-header{display:flex;align-items:center;gap:var(--sp-2);padding:12px 14px 8px}.lg-sidebar-header .lg-sidebar-icon{width:28px;height:28px;background:var(--purple-soft);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.lg-sidebar-header .lg-sidebar-icon svg{width:16px;height:16px;color:var(--purple)}.lg-sidebar-header .lg-sidebar-title{flex:1;font-size:var(--text-sm);font-weight:700;color:var(--text-primary)}.lg-sidebar-scroll{flex:1;overflow-y:auto}.lg-sidebar-section{padding-top:var(--sp-0_5)}.lg-sidebar-section-label{padding:8px 14px 3px;font-size:var(--text-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.lg-sidebar-divider{height:1px;background:var(--border-subtle);margin:5px 0}.lg-nav-item{display:flex;align-items:center;gap:9px;padding:6px 14px;cursor:pointer;font-size:var(--text-sm);color:var(--text-primary)}.lg-nav-item svg{width:15px;height:15px;color:var(--text-secondary);flex-shrink:0}.lg-nav-item .lg-nav-label{flex:1}.lg-nav-item:hover{background:var(--purple-soft);color:var(--purple)}.lg-nav-item:hover svg{color:var(--purple)}.lg-nav-item.active{background:var(--purple-soft);color:var(--purple);font-weight:600}.lg-nav-item.active svg{color:var(--purple)}.lg-nav-item .lg-nav-badge{margin-left:auto;background:var(--error);color:#fff;border-radius:var(--radius-base);font-size:var(--text-2xs);font-weight:700;padding:1px 6px}.lg-header{display:flex;align-items:center;gap:var(--sp-1_5);padding:0 16px;border-bottom:1px solid var(--border-subtle);background:var(--surface);flex-shrink:0;min-height:48px}.lg-header-breadcrumb{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-sm)}.lg-header-breadcrumb .lg-breadcrumb-title{font-weight:600;color:var(--text-primary)}.lg-header-breadcrumb .lg-breadcrumb-sep,.lg-header-breadcrumb .lg-breadcrumb-service{color:var(--text-tertiary)}.lg-header-divider{width:1px;height:20px;background:var(--border-subtle);margin:0 4px}.lg-header-right{margin-left:auto;display:flex;align-items:center;gap:var(--sp-1)}.lg-period-select{width:160px;font-size:var(--text-xs)}.lg-home{flex:1;overflow-y:auto;padding:20px 24px}.lg-kpi-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-7)}.lg-kpi-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);padding:14px 16px}.lg-kpi-card .lg-kpi-label{font-size:var(--text-xxs);color:var(--text-tertiary);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.lg-kpi-card .lg-kpi-value{font-size:var(--text-xl);font-weight:700;color:var(--text-primary);margin:4px 0 2px}.lg-kpi-card .lg-kpi-sub{font-size:var(--text-xxs);color:var(--text-secondary)}.lg-kpi-card.overdue .lg-kpi-value{color:var(--error)}.lg-section-title{font-size:var(--text-xxs);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--sp-3)}.lg-invoices-list{display:flex;flex-direction:column;gap:var(--sp-1_5);margin-bottom:var(--sp-7)}.lg-invoice-row{display:flex;align-items:center;gap:var(--sp-3);padding:10px 14px;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--neu-sm);cursor:pointer}.lg-invoice-row:hover{box-shadow:var(--neu-md)}.lg-invoice-row .lg-inv-num{font-size:var(--text-xxs);font-weight:700;color:var(--text-tertiary);width:90px;flex-shrink:0;font-family:monospace}.lg-invoice-row .lg-inv-name{flex:1;font-size:var(--text-xs);font-weight:600;color:var(--text-primary);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lg-invoice-row .lg-inv-amount{font-size:var(--text-sm);font-weight:700;color:var(--purple);white-space:nowrap}.lg-invoice-row .lg-inv-date{font-size:var(--text-xxs);color:var(--text-tertiary);width:70px;text-align:right;flex-shrink:0}.lg-invoice-status{font-size:var(--text-2xs);font-weight:700;padding:2px 6px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.lg-invoice-status.draft{background:var(--surface-inset);color:var(--text-tertiary)}.lg-invoice-status.sent{background:var(--blue-soft);color:var(--blue)}.lg-invoice-status.paid{background:var(--green-soft);color:var(--green)}.lg-invoice-status.overdue{background:#e53e3e1a;color:var(--error)}.lg-invoice-status.cancelled{background:var(--surface-inset);color:var(--text-tertiary)}.lg-finance-panel{display:flex;gap:var(--sp-5);padding:18px 20px;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);margin-bottom:var(--sp-3_5);flex-shrink:0}.lg-finance-left{flex:1;min-width:0}.lg-finance-title{font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);margin-bottom:var(--sp-3_5)}.lg-balance-row{display:flex;align-items:center;gap:var(--sp-2_5);margin-bottom:var(--sp-2_5)}.lg-balance-row:last-child{margin-bottom:0}.lg-bal-label{font-size:var(--text-xxs);color:var(--text-secondary);font-weight:500;width:110px;flex-shrink:0}.lg-bal-track{flex:1;height:6px;background:var(--surface-inset);border-radius:3px;box-shadow:var(--neu-inset-sm);overflow:hidden}.lg-bal-fill{height:100%;border-radius:3px;width:var(--w, 0%);transition:width .4s var(--ease-default)}.lg-bal-fill--blue{background:var(--blue)}.lg-bal-fill--orange{background:var(--orange)}.lg-bal-fill--green{background:var(--green)}.lg-bal-amount{font-size:var(--text-xs);font-weight:700;color:var(--text-primary);white-space:nowrap;width:100px;text-align:right;flex-shrink:0}.lg-bal-amount--green{color:var(--green)}.lg-finance-right{width:180px;flex-shrink:0;display:flex;flex-direction:column;padding-left:var(--sp-5);border-left:1px solid var(--border-subtle)}.lg-cashflow-title{font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);margin-bottom:var(--sp-2)}.lg-sparkline{width:100%;height:56px;overflow:visible}.lg-sparkline-line{fill:none;stroke:var(--purple);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.lg-sparkline-dot{fill:var(--purple)}.lg-cashflow-months{display:flex;justify-content:space-between;margin-top:var(--sp-1)}.lg-cashflow-months span{font-size:var(--text-3xs);color:var(--text-tertiary)}.lg-cashflow-delta{font-size:var(--text-xxs);color:var(--green);font-weight:600;margin-top:var(--sp-2)}.lg-overdue-alert{display:flex;align-items:center;gap:var(--sp-2_5);padding:10px 14px;background:#e53e3e14;border:1px solid rgba(229,62,62,.2);border-radius:var(--radius-sm);margin-bottom:var(--sp-4);flex-shrink:0}.lg-alert-icon{width:16px;height:16px;color:var(--error);flex-shrink:0}.lg-alert-text{flex:1;font-size:var(--text-xs);color:var(--error)}.lg-alert-text strong{font-weight:700}.lg-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-2_5)}.lg-view-panel{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:var(--sp-3)}.lg-toolbar{display:flex;align-items:center;gap:var(--sp-2_5);flex-shrink:0}.lg-toolbar .lg-filter-select{width:150px}.lg-toolbar .lg-toolbar-right{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2)}.lg-toolbar .lg-count{font-size:var(--text-xs);color:var(--text-tertiary)}.lg-inv-delete{width:26px;height:26px;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-tertiary);flex-shrink:0;opacity:0;transition:opacity .15s}.lg-inv-delete svg{width:13px;height:13px}.lg-inv-delete:hover{color:var(--error);background:#e53e3e1a}.lg-invoice-row:hover .lg-inv-delete{opacity:1}.lg-invoice-row--skeleton{height:44px;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--neu-sm);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.lg-invoice-status.partially_paid{background:var(--orange-soft);color:var(--orange)}.lg-placeholder{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:var(--text-sm);padding:20px 0}.lg-invoice-row--overdue{border-left:3px solid var(--error);padding-left:11px;background:#e53e3e0a}.lg-invoice-row--overdue:hover{background:#e53e3e14!important}.lg-invoice-row--overdue .lg-inv-amount{color:var(--error)}.lg-company-overlay{width:640px;max-width:96vw;display:flex;flex-direction:column;max-height:90vh}.lg-cp-overlay-bg{display:flex;align-items:stretch;justify-content:flex-end}.lg-counterparty-panel{width:480px;max-width:92vw;height:100%;background:var(--surface);display:flex;flex-direction:column;overflow:hidden;box-shadow:-4px 0 24px #00000024}.lg-overlay-header{display:flex;align-items:center;gap:var(--sp-2_5);padding:16px 20px 14px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.lg-overlay-title{flex:1;font-size:15px;font-weight:700;color:var(--text-primary)}.lg-overlay-close{width:28px;height:28px;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-tertiary)}.lg-overlay-close:hover{background:var(--surface-hover);color:var(--text-primary)}.lg-overlay-body{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:var(--sp-1)}.lg-overlay-footer{display:flex;align-items:center;gap:var(--sp-2);padding:12px 20px;border-top:1px solid var(--border-subtle);flex-shrink:0}.lg-overlay-footer-right{margin-left:auto;display:flex;gap:var(--sp-2)}.lg-delete-confirm{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);color:var(--error)}.lg-form-section-label{font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);margin:10px 0 4px}.lg-form-section-label:first-child{margin-top:0}.lg-form-row{display:flex;gap:var(--sp-2_5);align-items:flex-start;flex-wrap:wrap}.lg-form-group{flex:1;min-width:140px;display:flex;flex-direction:column;gap:var(--sp-1)}.lg-form-group--full{flex-basis:100%}.lg-form-label{font-size:var(--text-xxs);font-weight:600;color:var(--text-secondary)}.lg-toolbar-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.lg-search-input{width:220px;flex-shrink:0}.lg-companies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-3_5)}.lg-company-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);padding:var(--sp-4);cursor:pointer;transition:box-shadow .15s;display:flex;flex-direction:column;gap:var(--sp-3)}.lg-company-card:hover{box-shadow:var(--neu-md)}.lg-company-card--skeleton{height:160px;animation:pulse 1.5s ease-in-out infinite}.lg-company-card-top{display:flex;align-items:flex-start;gap:var(--sp-3)}.lg-company-avatar{width:40px;height:40px;border-radius:var(--radius-sm);background:var(--purple-soft);color:var(--purple);font-size:var(--text-mid);font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.lg-company-card-info{flex:1;min-width:0}.lg-company-name{font-size:var(--text-mid);font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lg-company-legal-name{font-size:var(--text-xxs);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:var(--sp-0_5)}.lg-company-card-meta{display:flex;flex-direction:column;gap:5px}.lg-company-meta-row{display:flex;align-items:center;gap:var(--sp-1_5)}.lg-company-meta-label{font-size:var(--text-xxs);color:var(--text-tertiary);width:60px;flex-shrink:0}.lg-company-meta-val{font-size:var(--text-xxs);color:var(--text-primary);font-weight:500}.lg-company-meta-val--mono{font-family:monospace}.lg-company-meta-val--green{color:var(--green)}.lg-company-card-footer{border-top:1px solid var(--border-subtle);padding-top:var(--sp-2_5)}.lg-company-card-edit{font-size:var(--text-xxs);color:var(--text-tertiary);cursor:pointer}.lg-company-card-edit:hover{color:var(--purple)}.lg-companies-archived{margin-top:var(--sp-2)}.lg-company-archived-row{display:flex;align-items:center;gap:var(--sp-3);padding:8px 14px;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--neu-sm);cursor:pointer;margin-bottom:var(--sp-1_5);opacity:.7}.lg-company-archived-row:hover{opacity:1}.lg-company-archived-name{flex:1;font-size:var(--text-xs);font-weight:600;color:var(--text-primary)}.lg-company-archived-inn{font-size:var(--text-xxs);color:var(--text-tertiary);font-family:monospace}.lg-type-pills{display:flex;gap:var(--sp-1_5);flex-shrink:0}.lg-type-pill{font-size:var(--text-xxs);font-weight:600;padding:4px 10px;border-radius:var(--radius-xl);border:1px solid var(--border-subtle);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .15s}.lg-type-pill:hover{border-color:var(--purple);color:var(--purple)}.lg-type-pill.active{background:var(--purple-soft);border-color:var(--purple);color:var(--purple);font-weight:700}.lg-cp-table{display:flex;flex-direction:column;gap:var(--sp-1_5)}.lg-cp-row{display:flex;align-items:center;gap:var(--sp-3);padding:10px 14px;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--neu-sm);cursor:pointer}.lg-cp-row:hover{box-shadow:var(--neu-md)}.lg-cp-row--skeleton{height:48px;animation:pulse 1.5s ease-in-out infinite}.lg-cp-avatar{width:34px;height:34px;border-radius:var(--radius-sm);background:var(--blue-soft);color:var(--blue);font-size:var(--text-xs);font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.lg-cp-main{flex:1;min-width:0}.lg-cp-name{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lg-cp-legal{font-size:var(--text-xxs);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lg-cp-inn{font-size:var(--text-xxs);font-family:monospace;color:var(--text-tertiary);flex-shrink:0}.lg-cp-bank{font-size:var(--text-xxs);color:var(--text-secondary);flex-shrink:0;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lg-cp-edo-badge{font-size:var(--text-3xs);font-weight:700;padding:2px 6px;border-radius:var(--radius-sm);background:var(--green-soft);color:var(--green);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.lg-invoice-overlay{width:720px;max-width:96vw;display:flex;flex-direction:column;max-height:92vh}.lg-items-table{background:var(--surface-inset);border-radius:var(--radius-sm);overflow:visible;box-shadow:var(--neu-inset-sm)}.lg-items-head{display:flex;align-items:center;gap:var(--sp-1_5);padding:6px 10px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--surface);border-bottom:1px solid var(--border-subtle);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.lg-items-row{display:flex;align-items:center;gap:var(--sp-1_5);padding:6px 10px;border-bottom:1px solid var(--border-subtle)}.lg-items-row:last-of-type{border-bottom:none}.lg-item-col{display:flex;align-items:center}.lg-item-col--desc{flex:1;min-width:0}.lg-item-col--qty{width:64px;flex-shrink:0}.lg-item-col--price,.lg-item-col--vat{width:96px;flex-shrink:0}.lg-item-col--amount{width:100px;flex-shrink:0;justify-content:flex-end}.lg-item-col--del{width:24px;flex-shrink:0;justify-content:center}.lg-item-amount{font-size:var(--text-xs);font-weight:600;color:var(--text-primary);white-space:nowrap}.lg-item-del-btn{width:22px;height:22px;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-tertiary);flex-shrink:0}.lg-item-del-btn:hover{color:var(--error);background:#e53e3e1a}.lg-item-del-btn:disabled{opacity:.3;cursor:default}.lg-items-add-row{padding:6px 10px;background:var(--surface);border-top:1px solid var(--border-subtle);border-radius:0 0 var(--radius-sm) var(--radius-sm)}.lg-invoice-totals{align-self:flex-end;width:280px;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--neu-sm);padding:10px 14px;display:flex;flex-direction:column;gap:var(--sp-1_5)}.lg-total-row{display:flex;justify-content:space-between;align-items:center}.lg-total-row--main{padding-top:var(--sp-1_5);border-top:1px solid var(--border-subtle);margin-top:var(--sp-0_5)}.lg-total-row--rub{font-size:var(--text-xxs);color:var(--text-tertiary)}.lg-total-label{font-size:var(--text-xxs);color:var(--text-secondary)}.lg-total-val{font-size:var(--text-xs);font-weight:600;color:var(--text-primary)}.lg-total-val--main{font-size:15px;font-weight:700;color:var(--purple)}.lg-notes-input{width:100%;min-height:64px;resize:vertical;padding:8px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-inset);box-shadow:var(--neu-inset-sm);font-size:var(--text-xs);color:var(--text-primary);font-family:inherit;line-height:1.5;outline:none;box-sizing:border-box}.lg-notes-input:focus{border-color:var(--purple)}.lg-notes-input::placeholder{color:var(--text-tertiary)}.lg-form-group--sm{width:90px;flex:0 0 90px}.lg-inv-action{width:26px;height:26px;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-tertiary);flex-shrink:0;opacity:0;transition:opacity .15s}.lg-invoice-row:hover .lg-inv-action{opacity:1}.lg-inv-pay-btn:hover{color:var(--green);background:var(--green-soft)}.lg-payment-overlay{width:480px;max-width:96vw;display:flex;flex-direction:column}.lg-payment-invoice-info{background:var(--surface-inset);border-radius:var(--radius-sm);box-shadow:var(--neu-inset-sm);padding:12px 14px;display:flex;flex-direction:column;gap:var(--sp-1_5);margin-bottom:var(--sp-1)}.lg-pi-row{display:flex;align-items:center;gap:var(--sp-2_5)}.lg-pi-label{font-size:var(--text-xxs);color:var(--text-tertiary);width:90px;flex-shrink:0}.lg-pi-val{font-size:var(--text-xs);color:var(--text-primary);font-weight:500}.lg-pi-val--mono{font-family:monospace}.lg-pi-val--bold{font-weight:700}.lg-pi-val--green{color:var(--green);font-weight:700}.lg-pi-val--accent{color:var(--purple);font-weight:700}.lg-date-input{width:130px;flex-shrink:0}.lg-date-sep{font-size:var(--text-xs);color:var(--text-tertiary);flex-shrink:0}.lg-payments-total{font-size:var(--text-sm);font-weight:700;color:var(--purple)}.lg-payments-list{display:flex;flex-direction:column;gap:var(--sp-1_5)}.lg-payment-row{display:flex;align-items:center;gap:var(--sp-2_5);padding:10px 14px;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--neu-sm);cursor:default}.lg-payment-row:hover{box-shadow:var(--neu-md)}.lg-payment-row--skeleton{height:46px;animation:pulse 1.5s ease-in-out infinite}.lg-pay-icon{font-size:var(--text-md);flex-shrink:0;width:24px;text-align:center}.lg-pay-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lg-pay-desc{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lg-pay-invoice{font-size:var(--text-2xs);color:var(--text-tertiary);font-family:monospace}.lg-pay-cp{font-size:var(--text-xxs);color:var(--text-secondary);max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.lg-pay-method{font-size:var(--text-2xs);font-weight:700;padding:2px 7px;border-radius:var(--radius-sm);background:var(--surface-inset);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.lg-pay-amount{font-size:var(--text-sm);font-weight:700;color:var(--green);white-space:nowrap;flex-shrink:0}.lg-pay-date{font-size:var(--text-xxs);color:var(--text-tertiary);width:70px;text-align:right;flex-shrink:0}.lg-pay-delete{width:26px;height:26px;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-tertiary);flex-shrink:0;opacity:0;transition:opacity .15s}.lg-pay-delete svg{width:13px;height:13px}.lg-pay-delete:hover{color:var(--error);background:#e53e3e1a}.lg-payment-row:hover .lg-pay-delete{opacity:1}.lg-fav-toggle{display:flex;align-items:center;gap:5px;font-size:var(--text-xxs);font-weight:600;padding:5px 10px;border-radius:var(--radius-xl);border:1px solid var(--border-subtle);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .15s;flex-shrink:0}.lg-fav-toggle:hover{border-color:var(--orange);color:var(--orange)}.lg-fav-toggle.active{background:var(--orange-soft);border-color:var(--orange);color:var(--orange)}.lg-fav-toggle.active svg{fill:currentColor}.lg-chart-container{display:flex;flex-direction:column;gap:var(--sp-1)}.lg-chart-section{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--neu-sm);overflow:hidden}.lg-chart-section-header{display:flex;align-items:center;gap:var(--sp-2);padding:8px 12px;width:100%;border:none;background:var(--surface-inset);cursor:pointer;text-align:left;border-bottom:1px solid var(--border-subtle)}.lg-chart-section-header:hover{background:var(--purple-soft)}.lg-chart-chevron{color:var(--text-tertiary);flex-shrink:0;transition:transform .15s}.lg-chart-chevron.open{transform:rotate(90deg)}.lg-chart-section-label{flex:1;font-size:var(--text-xxs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.lg-chart-section-count{font-size:var(--text-2xs);font-weight:700;padding:1px 6px;border-radius:var(--radius-sm);background:var(--surface);color:var(--text-tertiary)}.lg-chart-row{display:flex;align-items:center;gap:var(--sp-2_5);padding:7px 14px;border-bottom:1px solid var(--border-subtle)}.lg-chart-row:last-child{border-bottom:none}.lg-chart-row:hover{background:var(--surface-hover)}.lg-chart-row--group{background:#00000005}.lg-chart-row--group .lg-chart-code{font-weight:800;color:var(--text-primary)}.lg-chart-row--group .lg-chart-name{font-weight:700}.lg-chart-row--sub{padding-left:var(--sp-7)}.lg-chart-row--skeleton{height:36px;animation:pulse 1.5s ease-in-out infinite}.lg-chart-code{font-size:var(--text-xs);font-weight:700;font-family:monospace;color:var(--text-tertiary);width:48px;flex-shrink:0}.lg-chart-name{flex:1;font-size:var(--text-xs);color:var(--text-primary);display:flex;align-items:center;gap:var(--sp-1_5)}.lg-chart-system-badge{font-size:var(--text-3xs);font-weight:700;padding:1px 5px;border-radius:var(--radius-s);background:var(--surface-inset);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.lg-chart-type{font-size:var(--text-2xs);font-weight:800;padding:2px 6px;border-radius:var(--radius-s);flex-shrink:0;letter-spacing:.02em}.lg-chart-type--blue{background:var(--blue-soft);color:var(--blue)}.lg-chart-type--orange{background:var(--orange-soft);color:var(--orange)}.lg-chart-type--purple{background:var(--purple-soft);color:var(--purple)}.lg-chart-fav-btn{width:24px;height:24px;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-tertiary);flex-shrink:0;opacity:0;transition:opacity .15s,color .15s}.lg-chart-row:hover .lg-chart-fav-btn{opacity:1}.lg-chart-fav-btn.active{opacity:1;color:var(--orange)}.lg-chart-fav-btn.active svg{fill:currentColor}.lg-chart-fav-btn:hover{color:var(--orange)}.lg-chart-fav-btn:disabled{opacity:.4;cursor:default}.lg-bank-stats-row{display:flex;gap:var(--sp-3_5);flex-shrink:0}.lg-bank-stat{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--neu-sm);padding:10px 16px;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:80px}.lg-bank-stat-val{font-size:22px;font-weight:800;color:var(--text-primary)}.lg-bank-stat-val--warn{color:var(--orange)}.lg-bank-stat-val--ok{color:var(--green)}.lg-bank-stat-label{font-size:var(--text-2xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.lg-bank-dropzone{border:2px dashed var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-5);display:flex;flex-direction:column;align-items:center;gap:var(--sp-1_5);cursor:pointer;transition:all .15s;flex-shrink:0}.lg-bank-dropzone:hover{border-color:var(--purple);background:var(--purple-soft)}.lg-bank-dropzone.drag-over{border-color:var(--purple);background:var(--purple-soft);transform:scale(1.005)}.lg-bank-dropzone.uploading{opacity:.6;cursor:default}.lg-bank-file-input{display:none}.lg-bank-drop-icon{color:var(--text-tertiary)}.lg-bank-drop-text{font-size:var(--text-sm);color:var(--text-secondary);text-align:center}.lg-bank-drop-link{color:var(--purple);font-weight:600;text-decoration:underline;cursor:pointer}.lg-bank-drop-hint{font-size:var(--text-xxs);color:var(--text-tertiary)}.lg-bank-status-tabs{display:flex;gap:var(--sp-1)}.lg-bank-tab{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--text-xxs);font-weight:600;padding:4px 10px;border-radius:var(--radius-xl);border:1px solid var(--border-subtle);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .15s}.lg-bank-tab:hover{border-color:var(--purple);color:var(--purple)}.lg-bank-tab.active{background:var(--purple-soft);border-color:var(--purple);color:var(--purple)}.lg-bank-tab-badge{font-size:var(--text-3xs);font-weight:800;padding:1px 5px;border-radius:var(--radius-sm);background:var(--error);color:#fff}.lg-bank-list{display:flex;flex-direction:column;gap:var(--sp-1)}.lg-bank-row{display:flex;align-items:center;gap:var(--sp-2_5);padding:9px 14px;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--neu-sm);transition:opacity .2s}.lg-bank-row--skeleton{height:44px;animation:pulse 1.5s ease-in-out infinite}.lg-bank-row.busy{opacity:.5;pointer-events:none}.lg-bank-row--matched{border-left:3px solid var(--green);padding-left:11px}.lg-bank-row--ignored{opacity:.5}.lg-bank-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.lg-bank-dot--unmatched{background:var(--orange)}.lg-bank-dot--matched{background:var(--green)}.lg-bank-dot--ignored{background:var(--text-tertiary)}.lg-bank-date{font-size:var(--text-xxs);color:var(--text-tertiary);width:60px;flex-shrink:0}.lg-bank-desc-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.lg-bank-desc{font-size:var(--text-xs);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lg-bank-cp{font-size:var(--text-2xs);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lg-bank-amount{font-size:var(--text-sm);font-weight:700;white-space:nowrap;flex-shrink:0}.lg-bank-amount--pos{color:var(--green)}.lg-bank-amount--neg{color:var(--error)}.lg-bank-actions{display:flex;gap:var(--sp-1);flex-shrink:0}.lg-bank-action-btn{width:24px;height:24px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .15s}.lg-bank-action-btn:disabled{opacity:.4;cursor:default}.lg-bank-action-btn--ok{background:var(--green-soft);color:var(--green)}.lg-bank-action-btn--ok:hover:not(:disabled){background:var(--green);color:#fff}.lg-bank-action-btn--skip{background:var(--surface-inset);color:var(--text-tertiary)}.lg-bank-action-btn--skip:hover:not(:disabled){background:#e53e3e1a;color:var(--error)}.lg-bank-action-btn--undo{background:var(--surface-inset);color:var(--text-tertiary)}.lg-bank-action-btn--undo:hover:not(:disabled){background:var(--blue-soft);color:var(--blue)}.lg-journal-list{display:flex;flex-direction:column;gap:var(--sp-1)}.lg-journal-entry{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--neu-sm);overflow:hidden}.lg-journal-entry--skeleton{height:46px;animation:pulse 1.5s ease-in-out infinite}.lg-journal-entry.draft{border-left:3px solid var(--border-subtle)}.lg-journal-entry.posted{border-left:3px solid var(--green)}.lg-journal-header{display:flex;align-items:center;gap:var(--sp-2_5);padding:10px 14px;cursor:pointer}.lg-journal-header:hover{background:var(--surface-hover)}.lg-journal-chevron{color:var(--text-tertiary);flex-shrink:0;transition:transform .15s}.lg-journal-chevron.open{transform:rotate(90deg)}.lg-journal-date{font-size:var(--text-xxs);color:var(--text-tertiary);width:64px;flex-shrink:0}.lg-journal-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.lg-journal-desc{font-size:var(--text-xs);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lg-journal-company{font-size:var(--text-2xs);color:var(--text-tertiary)}.lg-journal-src-badge{font-size:var(--text-3xs);font-weight:700;padding:2px 6px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.lg-journal-src-badge--blue{background:var(--blue-soft);color:var(--blue)}.lg-journal-src-badge--green{background:var(--green-soft);color:var(--green)}.lg-journal-src-badge--purple{background:var(--purple-soft);color:var(--purple)}.lg-journal-src-badge--orange{background:var(--orange-soft);color:var(--orange)}.lg-journal-src-badge--neutral{background:var(--surface-inset);color:var(--text-secondary)}.lg-journal-total{font-size:var(--text-xs);font-weight:700;color:var(--text-primary);flex-shrink:0}.lg-journal-status{font-size:var(--text-3xs);font-weight:700;padding:2px 6px;border-radius:var(--radius-sm);flex-shrink:0;text-transform:uppercase;letter-spacing:.04em}.lg-journal-status.posted{background:var(--green-soft);color:var(--green)}.lg-journal-status.draft{background:var(--surface-inset);color:var(--text-tertiary)}.lg-journal-lines{border-top:1px solid var(--border-subtle);background:var(--surface-inset)}.lg-journal-lines-head{display:flex;gap:var(--sp-2);padding:5px 16px 5px 30px;font-size:var(--text-3xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle)}.lg-journal-line{display:flex;gap:var(--sp-2);padding:6px 16px 6px 30px;border-bottom:1px solid var(--border-subtle)}.lg-journal-line:last-child{border-bottom:none}.lg-jl-col{display:flex;align-items:center;gap:var(--sp-1_5)}.lg-jl-col--account{width:200px;flex-shrink:0}.lg-jl-col--desc{flex:1;min-width:0}.lg-jl-col--debit,.lg-jl-col--credit{width:100px;flex-shrink:0;justify-content:flex-end}.lg-jl-code{font-size:var(--text-xxs);font-weight:700;font-family:monospace;color:var(--text-tertiary);flex-shrink:0}.lg-jl-acc-name{font-size:var(--text-xxs);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lg-jl-cp{font-size:var(--text-2xs);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lg-jl-desc{font-size:var(--text-2xs);color:var(--text-tertiary)}.lg-jl-amount{font-size:var(--text-xxs);font-weight:700;font-family:monospace}.lg-jl-amount--debit{color:var(--blue)}.lg-jl-amount--credit{color:var(--green)}.lg-cashflow-delta.negative{color:var(--error)}.lg-pl-summary{display:flex;gap:var(--sp-3);flex-shrink:0}.lg-pl-summary-card{flex:1;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);padding:14px 18px;display:flex;flex-direction:column;gap:var(--sp-1)}.lg-pl-summary-card--rev{border-left:3px solid var(--green)}.lg-pl-summary-card--exp{border-left:3px solid var(--orange)}.lg-pl-summary-card--profit{border-left:3px solid var(--purple)}.lg-pl-summary-card--profit.negative{border-left-color:var(--error)}.lg-pl-summary-label{font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary)}.lg-pl-summary-val{font-size:var(--text-lg);font-weight:800;color:var(--text-primary)}.negative .lg-pl-summary-val{color:var(--error)}.lg-pl-table{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);overflow:hidden}.lg-pl-head{display:flex;align-items:center;gap:var(--sp-2_5);padding:8px 16px;background:var(--surface-inset);border-bottom:1px solid var(--border-subtle);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.lg-pl-legend{display:flex;gap:var(--sp-3_5);padding:6px 16px;border-bottom:1px solid var(--border-subtle)}.lg-pl-legend-item{display:flex;align-items:center;gap:5px;font-size:var(--text-2xs);color:var(--text-secondary)}.lg-pl-legend-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.lg-pl-legend-dot--rev{background:var(--green)}.lg-pl-legend-dot--exp{background:var(--orange)}.lg-pl-row{display:flex;align-items:center;gap:var(--sp-2_5);padding:7px 16px;border-bottom:1px solid var(--border-subtle)}.lg-pl-row:hover{background:var(--surface-hover)}.lg-pl-row--skeleton{height:34px;animation:pulse 1.5s ease-in-out infinite}.lg-pl-total-row{display:flex;align-items:center;gap:var(--sp-2_5);padding:10px 16px;background:var(--surface-inset);border-top:2px solid var(--border-subtle)}.lg-pl-month{font-size:var(--text-xxs);font-weight:600;color:var(--text-secondary);width:36px;flex-shrink:0}.lg-pl-bars{flex:1;display:flex;flex-direction:column;gap:3px}.lg-pl-bar-track{height:7px;background:var(--surface-inset);border-radius:var(--radius-xs);overflow:hidden;box-shadow:var(--neu-inset-sm)}.lg-pl-bar{height:100%;border-radius:var(--radius-xs);transition:width .5s var(--ease-default)}.lg-pl-bar--rev{background:var(--green)}.lg-pl-bar--exp{background:var(--orange)}.lg-pl-revenue,.lg-pl-expenses,.lg-pl-profit{font-size:var(--text-xxs);font-weight:600;width:100px;text-align:right;flex-shrink:0;white-space:nowrap}.lg-pl-revenue{color:var(--green)}.lg-pl-expenses{color:var(--orange)}.lg-pl-profit{color:var(--purple)}.lg-pl-profit.negative{color:var(--error)}.lg-pl-total-val{font-size:var(--text-xs);font-weight:800}.lg-payroll-view{display:flex;gap:0;height:100%;overflow:hidden}.lg-payroll-sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;padding:16px 12px;gap:var(--sp-3);overflow-y:auto}.lg-payroll-sidebar-title{font-size:var(--text-xxs);font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-tertiary)}.lg-payroll-period-selector,.lg-payroll-periods-list{display:flex;flex-direction:column;gap:var(--sp-1_5)}.lg-payroll-period-card{padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface);cursor:pointer;display:flex;flex-direction:column;gap:var(--sp-1);transition:all var(--duration-fast)}.lg-payroll-period-card:hover{box-shadow:var(--neu-sm)}.lg-payroll-period-card--active{border-color:var(--purple);background:var(--surface-raised)}.lg-payroll-period-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.lg-payroll-period-company{font-size:var(--text-xxs);color:var(--text-tertiary)}.lg-payroll-period-totals{margin-top:var(--sp-1_5);display:flex;flex-direction:column;gap:2px}.lg-payroll-kv{display:flex;justify-content:space-between;font-size:var(--text-xxs);color:var(--text-secondary)}.lg-payroll-kv strong{color:var(--text-primary);font-size:var(--text-xs)}.lg-payroll-no-periods{font-size:var(--text-xs);color:var(--text-tertiary);text-align:center;padding:16px 0}.lg-payroll-main{flex:1;overflow-y:auto;padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4)}.lg-payroll-toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3)}.lg-payroll-period-label{display:flex;align-items:center;gap:var(--sp-2_5);font-size:var(--text-md);font-weight:700;color:var(--text-primary)}.lg-payroll-toolbar-actions{display:flex;gap:var(--sp-2)}.lg-payroll-entries,.lg-payroll-preview{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius)}.lg-payroll-entries-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.lg-payroll-entries-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.lg-payroll-table{width:100%;border-collapse:collapse;font-size:12.5px}.lg-payroll-table th{padding:8px 12px;font-size:var(--text-xxs);font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-tertiary);background:var(--surface-raised);border-bottom:1px solid var(--border-subtle);white-space:nowrap}.lg-payroll-table td{padding:8px 12px;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.lg-payroll-table tfoot td{padding-top:var(--sp-2_5);font-weight:700;font-size:var(--text-sm);border-top:2px solid var(--border-subtle);border-bottom:none}.lg-payroll-table .lg-pr-r{text-align:right}.lg-payroll-row:hover td{background:var(--surface-raised)}.lg-payroll-emp-name{font-weight:600;color:var(--text-primary)}.lg-payroll-emp-pos{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.lg-payroll-ndfl{color:var(--orange)}.lg-payroll-net{color:var(--green);font-weight:600}.lg-payroll-ins{color:var(--text-secondary)}.lg-payroll-cost{font-weight:600}.lg-payroll-rate{font-size:var(--text-2xs);color:var(--text-tertiary)}.lg-payroll-edit-btn{background:none;border:none;cursor:pointer;color:var(--text-tertiary);padding:var(--sp-1);border-radius:var(--radius-sm);opacity:0;transition:opacity var(--duration-fast)}.lg-payroll-row:hover .lg-payroll-edit-btn{opacity:1}.lg-salary-overlay{max-width:520px}.lg-salary-extra-row{display:flex;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-1_5)}.lg-salary-rm-btn{background:none;border:none;cursor:pointer;color:var(--text-tertiary);font-size:var(--text-xs);padding:4px 6px;border-radius:var(--radius-sm)}.lg-salary-rm-btn:hover{color:var(--red, #e74c3c)}.lg-salary-add-extra{background:none;border:1px dashed var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-xs);padding:5px 10px;cursor:pointer;width:100%;text-align:left;transition:all var(--duration-fast)}.lg-salary-add-extra:hover{border-color:var(--purple);color:var(--purple)}.lg-salary-preview-btn{margin-top:var(--sp-4);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-xs);padding:7px 14px;cursor:pointer;width:100%;font-weight:500;transition:all var(--duration-fast)}.lg-salary-preview-btn:hover:not(:disabled){box-shadow:var(--neu-sm);color:var(--purple)}.lg-salary-preview-btn:disabled{opacity:.5;cursor:default}.lg-salary-preview-block{margin-top:var(--sp-3);padding:var(--sp-3);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:var(--sp-1_5)}.lg-salary-preview-row{display:flex;justify-content:space-between;font-size:var(--text-sm);color:var(--text-secondary)}.lg-salary-preview-row strong{font-weight:600;color:var(--text-primary)}.lg-salary-preview-row--ndfl,.lg-salary-preview-row--ndfl strong{color:var(--orange)}.lg-salary-preview-row--net{color:var(--green)}.lg-salary-preview-row--net strong{color:var(--green);font-size:var(--text-mid)}.lg-salary-preview-row--cost{border-top:1px solid var(--border-subtle);padding-top:var(--sp-1_5);margin-top:var(--sp-0_5)}.lg-reports-tabs{display:flex;gap:var(--sp-1);padding:0 0 16px;border-bottom:1px solid var(--border-subtle);margin-bottom:var(--sp-1)}.lg-reports-tab{padding:5px 14px;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);background:transparent;border:1px solid transparent;cursor:pointer;transition:all .15s}.lg-reports-tab:hover{background:var(--surface-raised);color:var(--text-primary)}.lg-reports-tab.active{background:var(--purple);color:#fff;border-color:var(--purple)}.lg-balance-totals{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-4)}.lg-balance-total-card{flex:1;padding:12px 16px;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:var(--sp-1)}.lg-balance-total-label{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary)}.lg-balance-total-val{font-size:var(--text-xl);font-weight:700;color:var(--text-primary)}.lg-balance-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.lg-balance-col{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden}.lg-balance-col-header{padding:10px 14px;font-size:var(--text-xxs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);background:var(--surface);border-bottom:1px solid var(--border-subtle)}.lg-balance-section{padding:8px 0}.lg-balance-section-title{padding:6px 14px;font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.lg-balance-row{display:flex;align-items:center;gap:var(--sp-2);padding:5px 14px;font-size:var(--text-sm)}.lg-balance-row:hover{background:var(--surface-hover)}.lg-balance-code{width:48px;flex-shrink:0;font-size:var(--text-xxs);font-family:monospace;color:var(--text-tertiary)}.lg-balance-name{flex:1;color:var(--text-secondary)}.lg-balance-amount{font-weight:600;color:var(--text-primary);white-space:nowrap}.lg-balance-col-total{padding:10px 14px;font-size:var(--text-sm);font-weight:700;color:var(--text-primary);border-top:1px solid var(--border-subtle);background:var(--surface)}.lg-balance-empty{padding:6px 14px;color:var(--text-tertiary);font-size:var(--text-sm)}.lg-balance-loading,.lg-balance-no-data{padding:var(--sp-6);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.lg-receivables-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.lg-receivables-table th{padding:8px 12px;text-align:left;font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle)}.lg-receivables-table td{padding:9px 12px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.lg-receivables-table tr:hover td{background:var(--surface-hover)}.lg-receivables-num{font-family:monospace;font-size:var(--text-xs);color:var(--text-tertiary)!important}.lg-receivables-amount{font-weight:600;color:var(--text-primary)!important;text-align:right}.lg-receivables-days{text-align:right}.lg-receivables-row--critical td{color:var(--red)!important}.lg-receivables-loading,.lg-receivables-empty{text-align:center;color:var(--text-tertiary);padding:24px!important}.lg-vat-view{display:flex;height:100%;min-height:0}.lg-vat-sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow:hidden}.lg-vat-sidebar-title{padding:14px 14px 8px;font-size:var(--text-xxs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.lg-vat-create-form{display:flex;flex-direction:column;gap:var(--sp-1_5);padding:0 10px 10px}.lg-vat-create-form .form-input{font-size:var(--text-xs)}.lg-vat-year-filter{display:flex;gap:var(--sp-1);padding:4px 10px 8px;flex-wrap:wrap}.lg-vat-year-btn{padding:3px 8px;border-radius:var(--radius-xs);border:1px solid var(--border-subtle);background:none;color:var(--text-secondary);font-size:var(--text-xxs);cursor:pointer;transition:background .15s}.lg-vat-year-btn:hover{background:var(--surface-hover)}.lg-vat-year-btn--active{background:var(--purple);color:var(--on-accent);border-color:var(--purple)}.lg-vat-cards-list{flex:1;overflow-y:auto;padding:4px 8px}.lg-vat-card{padding:10px 12px;margin-bottom:var(--sp-1_5);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface-raised);cursor:pointer;transition:border-color .15s,background .15s}.lg-vat-card:hover{border-color:var(--border-strong)}.lg-vat-card--active{border-color:var(--purple);background:var(--surface-hover)}.lg-vat-card-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-1)}.lg-vat-card-company{font-size:var(--text-xxs);color:var(--text-tertiary);margin-bottom:var(--sp-1_5)}.lg-vat-card-payable{font-size:var(--text-xs);color:var(--text-secondary);margin-top:var(--sp-1_5)}.lg-vat-card-payable strong{color:var(--text-primary)}.lg-vat-loading,.lg-vat-no-reports{padding:var(--sp-4);text-align:center;color:var(--text-tertiary);font-size:var(--text-xs)}.lg-vat-main{flex:1;overflow-y:auto;padding:20px 24px}.lg-vat-detail-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-6);flex-wrap:wrap}.lg-vat-detail-title{font-size:var(--text-md);font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.lg-vat-detail-company{font-size:var(--text-sm);font-weight:400;color:var(--text-tertiary)}.lg-vat-detail-actions{display:flex;gap:var(--sp-2)}.lg-vat-amounts{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-base);padding:20px 24px;margin-bottom:var(--sp-5)}.lg-vat-amount-row{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap}.lg-vat-amount-block{flex:1;min-width:140px;text-align:center}.lg-vat-amount-block--payable{background:var(--surface-hover);border-radius:var(--radius-sm);padding:var(--sp-3)}.lg-vat-amount-label{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);margin-bottom:var(--sp-1_5)}.lg-vat-amount-value{font-size:var(--text-xl);font-weight:700;color:var(--text-primary);font-family:monospace}.lg-vat-amount-value--payable{color:var(--purple)}.lg-vat-amount-hint{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-1)}.lg-vat-amount-sep{font-size:var(--text-2xl);font-weight:300;color:var(--text-tertiary)}.lg-vat-meta{display:flex;gap:var(--sp-6);flex-wrap:wrap}.lg-vat-meta-item{display:flex;gap:var(--sp-1_5);font-size:var(--text-xs);color:var(--text-secondary)}.lg-vat-meta-item strong{color:var(--text-primary)}.lg-edo-view{display:flex;flex-direction:column;height:100%;min-height:0}.lg-edo-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border-subtle);gap:var(--sp-3);flex-wrap:wrap}.lg-edo-filters{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.lg-edo-filter-group{display:flex;gap:var(--sp-1)}.lg-edo-filter-btn{padding:4px 10px;border-radius:var(--radius-xs);border:1px solid var(--border-subtle);background:none;color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;transition:background .15s}.lg-edo-filter-btn:hover{background:var(--surface-hover)}.lg-edo-filter-btn--active{background:var(--purple);color:var(--on-accent);border-color:var(--purple)}.lg-edo-status-filter{font-size:var(--text-xs);width:140px}.lg-edo-loading{text-align:center;padding:var(--sp-8);color:var(--text-tertiary);font-size:var(--text-sm)}.lg-edo-table-wrap{flex:1;overflow:auto}.lg-edo-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.lg-edo-table th{padding:8px 12px;text-align:left;font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle);white-space:nowrap;position:sticky;top:0;background:var(--surface)}.lg-edo-table td{padding:9px 12px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);vertical-align:middle}.lg-edo-table tr:hover td{background:var(--surface-hover)}.lg-edo-doctype{color:var(--text-primary);font-weight:500}.lg-edo-docid{font-family:monospace;font-size:var(--text-xxs);color:var(--text-tertiary)}.lg-edo-signed{font-size:var(--text-xs);white-space:nowrap}.lg-edo-status-select{font-size:var(--text-xs);padding:3px 6px;min-width:110px}.lg-edo-file-link{color:var(--purple);font-size:var(--text-xs);text-decoration:none}.lg-edo-file-link:hover{text-decoration:underline}.lg-edo-overlay-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:200;display:flex;align-items:center;justify-content:center}.lg-edo-overlay{background:var(--surface-raised);border-radius:var(--radius-md);border:1px solid var(--border-subtle);width:440px;max-width:95vw;display:flex;flex-direction:column;box-shadow:var(--shadow-xl)}.lg-edo-overlay-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle);font-size:15px;font-weight:600;color:var(--text-primary)}.lg-edo-overlay-close{background:none;border:none;cursor:pointer;color:var(--text-tertiary);font-size:var(--text-xl);line-height:1;padding:0}.lg-edo-overlay-close:hover{color:var(--text-primary)}.lg-edo-overlay-body{padding:16px 20px;display:flex;flex-direction:column;gap:var(--sp-3)}.lg-edo-field{display:flex;flex-direction:column;gap:var(--sp-1)}.lg-edo-field label{font-size:var(--text-xs);font-weight:500;color:var(--text-secondary)}.lg-edo-field .form-input{font-size:var(--text-sm)}.lg-edo-overlay-footer{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:12px 20px;border-top:1px solid var(--border-subtle)}.lg-settings-body{padding:20px 24px;display:flex;flex-direction:column;gap:var(--sp-5);max-width:760px}.lg-settings-field{display:flex;flex-direction:column;gap:var(--sp-1_5)}.lg-settings-field-label{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.lg-settings-field-hint{font-size:var(--text-xs);color:var(--text-tertiary)}.lg-settings-textarea{width:100%;font-size:var(--text-sm);font-family:inherit;resize:vertical}.lg-settings-preview-hint{display:flex;align-items:flex-start;gap:var(--sp-1_5);font-size:var(--text-xs);color:var(--text-tertiary);padding:10px 12px;background:var(--bg-secondary);border-radius:var(--radius-s)}.lg-settings-preview-hint svg{flex-shrink:0;margin-top:1px}.mock-roster{display:flex;flex:1;overflow:hidden;height:100%}.rs-content{display:flex;flex-direction:column;flex:1;overflow:hidden}.rs-sidebar{width:220px;min-width:200px;display:flex;flex-direction:column;border-right:1px solid var(--border-subtle);background:var(--surface);overflow:hidden;flex-shrink:0}.rs-sidebar-header{display:flex;align-items:center;gap:var(--sp-2);padding:12px 14px 8px}.rs-sidebar-header .rs-sidebar-icon{width:28px;height:28px;background:var(--orange-soft);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.rs-sidebar-header .rs-sidebar-icon svg{width:16px;height:16px;color:var(--orange)}.rs-sidebar-header .rs-sidebar-title{flex:1;font-size:var(--text-sm);font-weight:700;color:var(--text-primary)}.rs-sidebar-cta{padding:0 12px 10px}.rs-sidebar-scroll{flex:1;overflow-y:auto}.rs-sidebar-section{padding-top:var(--sp-0_5)}.rs-sidebar-section-label{padding:8px 14px 3px;font-size:var(--text-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.rs-sidebar-divider{height:1px;background:var(--border-subtle);margin:5px 0}.rs-nav-item{display:flex;align-items:center;gap:9px;padding:6px 14px;cursor:pointer;font-size:var(--text-sm);color:var(--text-primary)}.rs-nav-item svg{width:15px;height:15px;color:var(--text-secondary);flex-shrink:0}.rs-nav-item:hover{background:var(--orange-soft);color:var(--orange)}.rs-nav-item:hover svg{color:var(--orange)}.rs-nav-item.active{background:var(--orange-soft);color:var(--orange);font-weight:600}.rs-nav-item.active svg{color:var(--orange)}.rs-header{display:flex;align-items:center;gap:var(--sp-1_5);padding:0 16px;border-bottom:1px solid var(--border-subtle);background:var(--surface);flex-shrink:0;min-height:48px}.rs-header-breadcrumb{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-sm)}.rs-header-breadcrumb .rs-breadcrumb-title{font-weight:600;color:var(--text-primary)}.rs-header-breadcrumb .rs-breadcrumb-sep,.rs-header-breadcrumb .rs-breadcrumb-service{color:var(--text-tertiary)}.rs-header-divider{width:1px;height:20px;background:var(--border-subtle);margin:0 4px}.rs-header-right{margin-left:auto;display:flex;align-items:center;gap:var(--sp-1)}.rs-home{flex:1;overflow-y:auto;padding:20px 24px}.rs-status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:var(--sp-1)}.rs-status-dot.active{background:var(--green)}.rs-status-dot.on_leave{background:var(--orange)}.rs-status-dot.terminated{background:var(--error)}.rs-dept-color{width:10px;height:10px;border-radius:50%;flex-shrink:0}.rs-dept-color--orange{background:var(--orange)}.rs-dept-color--purple{background:var(--purple)}.rs-dept-color--blue{background:var(--blue)}.rs-dept-color--green{background:var(--green)}.rs-dept-color--pink{background:var(--pink)}.rs-dept-card{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--neu-sm);padding:12px 14px;display:flex;align-items:center;gap:var(--sp-2_5);cursor:pointer}.rs-dept-card:hover{box-shadow:var(--neu-md)}.rs-dept-card .rs-dept-count{font-size:var(--text-xxs);color:var(--text-tertiary)}.rs-stat-bar{display:flex;align-items:center;gap:2px;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);padding:10px 16px;margin-bottom:var(--sp-4)}.rs-stat-pill{display:flex;align-items:center;gap:var(--sp-2_5);padding:4px 16px;border-right:1px solid var(--border-subtle)}.rs-stat-pill:last-of-type{border-right:none}.rs-stat-value{font-size:var(--text-2xl);font-weight:700;color:var(--orange);line-height:1;min-width:28px}.rs-stat-text{display:flex;flex-direction:column;gap:1px}.rs-stat-label{font-size:var(--text-xs);font-weight:600;color:var(--text-primary);line-height:1.2}.rs-stat-sub{font-size:var(--text-2xs);color:var(--text-tertiary);white-space:nowrap}.rs-stat-bar-end{margin-left:auto;padding-left:var(--sp-4)}.rs-orgchart-hero{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);padding:16px 20px 14px;margin-bottom:var(--sp-4)}.rs-orgchart-hero-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3_5)}.rs-section-label{font-size:var(--text-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.rs-org-svg{width:100%;max-width:560px;height:auto;display:block;margin:0 auto}.rs-org-line{stroke:var(--border-default);stroke-width:1.5;fill:none}.rs-org-ceo{fill:var(--orange-soft);stroke:var(--orange);stroke-width:1.5}.rs-org-dept{fill:var(--surface);stroke:var(--border-default);stroke-width:1}.rs-org-dept--purple{fill:var(--purple-soft);stroke:var(--purple)}.rs-org-dept--blue{fill:var(--blue-soft);stroke:var(--blue)}.rs-org-dept--orange{fill:var(--orange-soft);stroke:var(--orange)}.rs-org-text-name{font-size:var(--text-xs);font-weight:600;fill:var(--text-primary);font-family:inherit}.rs-org-text-pos{font-size:var(--text-2xs);fill:var(--text-secondary);font-family:inherit}.rs-org-text-dept{font-size:var(--text-xxs);font-weight:600;fill:var(--text-primary);font-family:inherit}.rs-people-section{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);padding:14px 16px}.rs-people-header{display:flex;align-items:center;gap:var(--sp-3_5);margin-bottom:var(--sp-3)}.rs-people-list{display:flex;flex-direction:column;gap:2px}.rs-person-row{display:flex;align-items:center;gap:var(--sp-3);padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background .1s}.rs-person-row:hover{background:var(--surface-raised)}.rs-person-avatar-wrap{position:relative;flex-shrink:0}.rs-online-indicator{position:absolute;bottom:0;right:0;width:9px;height:9px;border-radius:50%;background:var(--green);border:2px solid var(--surface)}.rs-online-text{font-size:var(--text-2xs);color:var(--green);font-weight:500;margin-left:var(--sp-1)}.rs-person-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-xxs);font-weight:700;color:#fff;flex-shrink:0;overflow:hidden}.rs-avatar--purple{background:var(--purple)}.rs-avatar--blue{background:var(--blue)}.rs-avatar--green{background:var(--green)}.rs-avatar--orange{background:var(--orange)}.rs-avatar--pink{background:var(--pink)}.rs-avatar--gray{background:var(--text-secondary)}.rs-avatar--photo{background:var(--bg-secondary)}.rs-avatar--photo img{width:100%;height:100%;object-fit:cover;display:block}.rs-person-info{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.rs-person-name{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rs-person-role{font-size:var(--text-xxs);color:var(--text-secondary)}.rs-dept-tag{font-size:var(--text-2xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-base);white-space:nowrap;flex-shrink:0}.rs-dept-tag--purple{background:var(--purple-soft);color:var(--purple)}.rs-dept-tag--blue{background:var(--blue-soft);color:var(--blue)}.rs-dept-tag--green{background:var(--green-soft);color:var(--green)}.rs-dept-tag--orange{background:var(--orange-soft);color:var(--orange)}.rs-dept-tag--pink{background:var(--pink-soft);color:var(--pink)}.rs-person-status-group{display:flex;flex-direction:column;gap:3px;min-width:130px;flex-shrink:0;align-items:flex-start}.rs-person-status{display:flex;align-items:center;gap:5px}.rs-person-meta-row{display:flex;align-items:center;gap:var(--sp-1_5)}.rs-status-text{font-size:var(--text-xxs);color:var(--text-tertiary)}.rs-account-badge{font-size:var(--text-2xs);font-weight:600;padding:1px 6px;border-radius:var(--radius-sm);white-space:nowrap;line-height:1.5}.rs-account-badge--registered{background:var(--green-soft);color:var(--green)}.rs-account-badge--invited{background:var(--orange-soft);color:var(--orange)}.rs-account-badge--none{background:var(--surface-inset);color:var(--text-tertiary)}.rs-activity-text{font-size:var(--text-2xs);color:var(--text-tertiary);white-space:nowrap}.rs-module-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.rs-module-chip{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;border-radius:var(--radius-base);font-size:var(--text-xxs);font-weight:500;border:none;cursor:pointer;white-space:nowrap;background:var(--surface-inset);color:var(--text-tertiary);transition:background .15s,color .15s}.rs-module-chip:hover{opacity:.75}.rs-module-chip--active{background:var(--success-soft);color:var(--success)}.rs-module-chip--paid{border:1px solid var(--purple);color:var(--purple)}.rs-module-chip--paid.rs-module-chip--active{background:var(--success-soft);color:var(--success);border-color:var(--success)}.rs-invite-modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--neu-xl);width:540px;max-width:95vw;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}.rs-invite-modal__header{display:flex;align-items:center;gap:var(--sp-2);padding:14px 18px 10px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.rs-invite-modal__section{padding:12px 18px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.rs-invite-modal__section-title{font-size:var(--text-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.rs-invite-modal__resource-list{max-height:160px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-1)}.rs-invite-modal__resource-row{display:flex;align-items:center;gap:var(--sp-2);padding:3px 0}.rs-invite-modal__resource-row .check-label{flex:1;min-width:0;font-size:var(--text-xs)}.rs-invite-modal__footer{display:flex;align-items:center;gap:var(--sp-2);justify-content:flex-end;padding:12px 18px;flex-shrink:0}.rs-pending-section{margin:12px 16px;padding:12px 14px;background:var(--surface-inset);border-radius:var(--radius-md);flex-shrink:0}.rs-pending-section__title{font-size:var(--text-xxs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--sp-1)}.rs-summary-modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--neu-xl);width:480px;max-width:95vw;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}.rs-summary-header{display:flex;align-items:center;gap:var(--sp-2);padding:14px 18px 10px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.rs-summary-body{flex:1;overflow-y:auto;padding:0 18px 12px}.rs-summary-row{display:flex;align-items:center;gap:var(--sp-2);padding:6px 0;font-size:var(--text-sm);border-bottom:1px solid var(--border-subtle)}.rs-summary-row span.color-secondary{min-width:120px;font-size:var(--text-xs)}.rs-summary-section{padding:10px 0;border-bottom:1px solid var(--border-subtle)}.rs-summary-section:last-child{border-bottom:none}.rs-summary-section-title{font-size:var(--text-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--sp-2);display:flex;align-items:center;gap:var(--sp-2)}.rs-summary-item{display:flex;align-items:center;gap:var(--sp-2);padding:3px 0;font-size:var(--text-xs);color:var(--text-primary)}.rs-summary-inline-add{display:flex;align-items:center;gap:var(--sp-1_5);padding:6px 0}.rs-directory{flex:1;overflow-y:auto;padding:16px 20px}.rs-dir-toolbar{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3_5);flex-wrap:wrap}.rs-dir-search{flex:1;min-width:160px;max-width:280px}.rs-dir-loading{display:flex;align-items:center;justify-content:center;padding:var(--sp-10)}.rs-dir-empty{text-align:center;padding:40px 20px;color:var(--text-tertiary);font-size:var(--text-sm)}.rs-create-emp-form{background:var(--surface-inset);border-radius:var(--radius-md);border:1px solid var(--border-subtle);padding:14px 16px;margin-bottom:var(--sp-3_5)}.rs-create-emp-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-2_5)}.rs-create-emp-row .neuro-input{flex:1;min-width:120px}.rs-create-emp-actions{display:flex;gap:var(--sp-2)}.rs-create-emp-from-member{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2_5);padding-bottom:var(--sp-2_5);border-bottom:1px solid var(--border-subtle)}.rs-create-emp-from-label{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.rs-create-emp-linked-badge{font-size:var(--text-xxs);color:var(--success);background:color-mix(in srgb,var(--success) 12%,var(--surface-inset));border:1px solid color-mix(in srgb,var(--success) 30%,transparent);border-radius:var(--radius-xs);padding:2px 6px;white-space:nowrap;flex-shrink:0}.rs-emp-detail-panel{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--neu-xl);width:480px;max-width:96vw;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}.rs-emp-detail-header{display:flex;align-items:center;gap:var(--sp-3);padding:16px 18px 12px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.rs-emp-detail-title{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.rs-emp-detail-name{font-size:15px;font-weight:700;color:var(--text-primary)}.rs-emp-detail-pos{font-size:var(--text-xs);color:var(--text-secondary)}.rs-emp-detail-close{background:none;border:none;cursor:pointer;color:var(--text-tertiary);font-size:var(--text-mid);padding:var(--sp-1);border-radius:var(--radius-xs);flex-shrink:0}.rs-emp-detail-close:hover{background:var(--surface-inset);color:var(--text-primary)}.rs-emp-detail-body{flex:1;overflow-y:auto;padding:16px 18px}.rs-emp-detail-fields{display:flex;flex-direction:column;gap:0}.rs-emp-field-row{display:flex;align-items:center;gap:var(--sp-3);padding:7px 0;border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm)}.rs-emp-field-row:last-child{border-bottom:none}.rs-emp-field-label{min-width:110px;flex-shrink:0;font-size:var(--text-xxs);color:var(--text-tertiary);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.rs-emp-field-value{flex:1;color:var(--text-primary)}.rs-emp-user-badge{display:flex;align-items:center;gap:5px;font-size:var(--text-xs)}.rs-emp-notes{padding-top:var(--sp-2_5)}.rs-emp-notes-text{font-size:var(--text-xs);color:var(--text-secondary);margin-top:var(--sp-1);line-height:1.5}.rs-emp-detail-form{display:flex;flex-direction:column;gap:var(--sp-2_5)}.rs-emp-form-row{display:flex;gap:var(--sp-2)}.rs-emp-form-row .neuro-input{flex:1}.rs-emp-notes-input{width:100%;resize:vertical;min-height:60px;font-family:inherit;font-size:var(--text-sm)}.rs-emp-detail-footer{display:flex;align-items:center;gap:var(--sp-2);padding:12px 18px;border-top:1px solid var(--border-subtle);flex-shrink:0}.rs-emp-delete-confirm{display:flex;align-items:center;gap:var(--sp-2)}.rs-emp-delete-text{font-size:var(--text-xs);color:var(--error)}.rs-emp-no-account{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.rs-no-account-label{font-size:var(--text-xs);color:var(--text-tertiary)}.rs-invite-chip{font-size:var(--text-xxs);font-weight:600;color:var(--purple);background:var(--accent-soft);border:1px solid var(--purple);border-radius:var(--radius-sm);padding:2px 8px;cursor:pointer;white-space:nowrap;transition:opacity .15s}.rs-invite-chip:hover{opacity:.8}.rs-invite-chip--link{color:var(--text-secondary);background:var(--surface-raised);border-color:var(--border-subtle)}.rs-quick-link-row{display:flex;align-items:center;gap:var(--sp-1_5);margin-top:var(--sp-1_5);flex-wrap:wrap}.rs-departments{flex:1;overflow-y:auto;padding:16px 20px}.rs-departments-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3_5)}.rs-dept-list{display:flex;flex-direction:column;gap:var(--sp-1_5)}.rs-dept-card{display:flex;align-items:center;gap:var(--sp-2_5);padding:10px 14px;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--neu-sm)}.rs-dept-card--clickable{cursor:pointer}.rs-dept-card--clickable:hover{box-shadow:var(--neu-md)}.rs-dept-card--child{margin-left:var(--sp-6);box-shadow:none;border:1px solid var(--border-subtle);background:var(--surface-inset)}.rs-dept-card .rs-dept-color{width:10px;height:10px;border-radius:50%;flex-shrink:0}.rs-dept-card .rs-dept-name{flex:1;font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.rs-dept-card .rs-dept-count{font-size:var(--text-xxs);color:var(--text-tertiary);flex-shrink:0}.rs-dept-child-badge{font-size:var(--text-2xs);color:var(--text-tertiary);background:var(--surface-raised);padding:1px 6px;border-radius:var(--radius-sm);flex-shrink:0}.rs-add-dept-form{background:var(--surface-inset);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-3_5)}.rs-dept-form-actions{display:flex;gap:var(--sp-2)}.rs-color-picker{display:flex;gap:var(--sp-1_5);align-items:center}.rs-color-dot{width:18px;height:18px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .1s}.rs-color-dot--orange{background:var(--orange)}.rs-color-dot--purple{background:var(--purple)}.rs-color-dot--blue{background:var(--blue)}.rs-color-dot--green{background:var(--green)}.rs-color-dot--pink{background:var(--pink)}.rs-color-dot.selected{transform:scale(1.2);border-color:var(--text-primary)}.rs-positions{flex:1;overflow-y:auto;padding:16px 20px}.rs-positions-groups{display:flex;flex-direction:column;gap:var(--sp-4)}.rs-positions-group{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);overflow:hidden}.rs-positions-group-header{display:flex;align-items:center;gap:var(--sp-2);padding:10px 14px;background:var(--surface-inset);border-bottom:1px solid var(--border-subtle)}.rs-positions-group-name{flex:1;font-size:var(--text-xs);font-weight:700;color:var(--text-primary)}.rs-positions-list{display:flex;flex-direction:column}.rs-position-row{display:flex;align-items:center;gap:var(--sp-2_5);padding:8px 14px;border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm)}.rs-position-row:last-child{border-bottom:none}.rs-position-row--clickable{cursor:pointer}.rs-position-row--clickable:hover{background:var(--surface-raised)}.rs-position-name{flex:1;color:var(--text-primary);font-weight:500}.rs-position-empcount{font-size:var(--text-xxs);color:var(--text-tertiary);min-width:40px;text-align:right;flex-shrink:0}.rs-orgchart-page{flex:1;overflow:hidden;height:100%;background:var(--surface-inset);position:relative}.rs-orgchart-toolbar{position:absolute;top:12px;right:12px;z-index:10;display:flex;gap:var(--sp-2)}.rs-flow-node{display:flex;align-items:center;gap:var(--sp-2);padding:8px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--border-default);min-width:160px;max-width:200px;background:var(--surface);font-family:var(--font-sans);box-shadow:var(--neu-sm)}.rs-flow-node--orange{border-color:var(--orange);background:var(--orange-soft)}.rs-flow-node--purple{border-color:var(--purple);background:var(--purple-soft)}.rs-flow-node--blue{border-color:var(--blue);background:var(--blue-soft)}.rs-flow-node--green{border-color:var(--green);background:var(--green-soft)}.rs-flow-node--pink{border-color:var(--pink);background:var(--pink-soft)}.rs-flow-node-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.rs-flow-node-info{display:flex;flex-direction:column;gap:1px;min-width:0}.rs-flow-node-name{font-size:var(--text-xs);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rs-flow-node-pos{font-size:var(--text-2xs);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rs-flow-node-dept{font-size:var(--text-2xs);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rs-flow-node-dept--orange{color:var(--orange)}.rs-flow-node-dept--purple{color:var(--purple)}.rs-flow-node-dept--blue{color:var(--blue)}.rs-flow-node-dept--green{color:var(--green)}.rs-flow-node-dept--pink{color:var(--pink)}.rs-orgchart-page .react-flow__edge-path{stroke:var(--border-default);stroke-width:1.5px}.rs-orgchart-empty{display:flex;align-items:center;justify-content:center}.neuro-input--sm{padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs);height:30px}.rs-avatar--xs{width:28px;height:28px;min-width:28px;font-size:var(--text-2xs);line-height:28px}.rs-access{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3)}.rs-access-toolbar{display:flex;align-items:center;gap:var(--sp-2)}.rs-access-toolbar .custom-select{width:160px}.rs-access-table-wrap{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border-default)}.rs-access-table{border-collapse:collapse;width:max-content;min-width:100%}.rs-access-table th,.rs-access-table td{padding:var(--sp-2);border-bottom:1px solid var(--border-default);vertical-align:middle;white-space:nowrap}.rs-access-table tr:last-child td{border-bottom:none}.rs-access-table thead th{font-size:var(--text-xs);color:var(--text-secondary);font-weight:500;background:var(--surface-inset);text-align:center;position:sticky;top:0;z-index:1}.rs-access-table .rs-access-th-emp{text-align:left;min-width:200px;position:sticky;left:0;z-index:2;background:var(--surface-inset)}.rs-access-table .rs-access-th-mod{min-width:68px}.rs-access-table tbody td{text-align:center;background:var(--surface)}.rs-access-table tbody td:first-child{text-align:left;position:sticky;left:0;z-index:1;background:var(--surface)}.rs-access-table tbody tr:hover td,.rs-access-table tbody tr:hover td:first-child{background:var(--surface-inset)}.rs-access-emp-cell{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0}.rs-access-emp-name{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.rs-access-emp-sub{font-size:var(--text-xs);color:var(--text-tertiary)}.rs-access-cell--saving{opacity:.4;pointer-events:none}.rs-access-th-mod--click{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.rs-access-th-mod--click:hover{color:var(--text-primary);background:var(--surface)}.rs-access-th-mod--saving{opacity:.5;pointer-events:none}.rs-access-th-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--border-default);margin-left:var(--sp-1);vertical-align:middle}.rs-access-th-dot--on{background:var(--green)}.rs-dept-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:var(--sp-1);vertical-align:middle;flex-shrink:0}.rs-dept-dot--orange{background:var(--orange)}.rs-dept-dot--purple{background:var(--purple)}.rs-dept-dot--blue{background:var(--blue)}.rs-dept-dot--green{background:var(--green)}.rs-dept-dot--pink{background:var(--pink)}.mock-nexus{display:flex;flex:1;overflow:hidden;height:100%}.nx-sidebar{width:200px;min-width:180px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--border-subtle);background:var(--surface);overflow:hidden}.nx-sidebar-header{display:flex;align-items:center;gap:var(--sp-2);padding:10px 14px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.nx-sidebar-header .nx-sidebar-icon{width:28px;height:28px;background:var(--purple-soft);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.nx-sidebar-header .nx-sidebar-icon svg{width:15px;height:15px;color:var(--purple)}.nx-sidebar-header .nx-sidebar-title-lg{font-size:var(--text-sm);font-weight:700;color:var(--text-primary)}.nx-sidebar-scroll{flex:1;overflow-y:auto;display:flex;flex-direction:column;padding:6px 0}.nx-sidebar-section{display:flex;flex-direction:column;gap:1px}.nx-sidebar-divider{height:1px;background:var(--border-subtle);margin:4px 0}.nx-nav-item{display:flex;align-items:center;gap:var(--sp-2);padding:7px 14px;cursor:pointer;color:var(--text-secondary);font-size:var(--text-sm);transition:background .12s,color .12s;-webkit-user-select:none;user-select:none}.nx-nav-item svg{width:15px;height:15px;color:var(--text-secondary);flex-shrink:0}.nx-nav-item:hover{background:var(--surface-hover);color:var(--text-primary)}.nx-nav-item:hover svg{color:var(--text-primary)}.nx-nav-item.active{background:var(--purple-soft);color:var(--purple);font-weight:500}.nx-nav-item.active svg{color:var(--purple)}.nx-nav-label{flex:1}.nx-nav-badge{margin-left:auto;font-size:var(--text-xxs);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--purple);color:#fff;display:flex;align-items:center;justify-content:center}.nx-sidebar-footer{flex-shrink:0;padding:var(--sp-2);border-top:1px solid var(--border-subtle)}.nx-install-btn{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:7px 10px;border-radius:var(--radius-sm);background:none;border:none;cursor:pointer;color:var(--text-secondary);font-size:var(--text-sm);text-align:left;transition:background .12s,color .12s}.nx-install-btn svg{width:15px;height:15px;flex-shrink:0}.nx-install-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.nx-install-btn--done{cursor:default;color:var(--success);pointer-events:none}.nx-install-btn--done:hover{background:none}.nx-install-ios-hint{display:flex;align-items:flex-start;gap:7px;padding:7px 10px;font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.4}.nx-install-ios-hint svg{flex-shrink:0;margin-top:1px}.nx-install-ios-hint strong{color:var(--text-secondary)}.nx-header{display:flex;align-items:center;gap:var(--sp-2);padding:0 12px 0 16px;height:44px;border-bottom:1px solid var(--border-subtle);background:var(--surface);flex-shrink:0}.nx-header-breadcrumb{display:flex;align-items:center;gap:var(--sp-1_5);min-width:0}.nx-breadcrumb-service{font-size:var(--text-xs);color:var(--text-tertiary)}.nx-breadcrumb-sep{font-size:var(--text-xs);color:var(--border-default)}.nx-breadcrumb-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.nx-header-divider{flex:1}.nx-header-right{display:flex;align-items:center;gap:var(--sp-1_5)}.nx-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.nx-inbox{display:flex;flex:1;overflow:hidden;height:100%}.nx-conv-panel{width:280px;min-width:240px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--border-subtle);background:var(--surface);overflow:hidden}.nx-conv-search{padding:10px 12px 8px;border-bottom:1px solid var(--border-subtle)}.nx-search-box{display:flex;align-items:center;gap:var(--sp-2);background:var(--surface);border-radius:9px;padding:7px 11px;box-shadow:var(--neu-inset-sm)}.nx-search-box svg{width:14px;height:14px;color:var(--text-tertiary);flex-shrink:0}.nx-search-box input{flex:1;border:none;background:transparent;font-family:inherit;font-size:var(--text-xs);color:var(--text-primary);outline:none}.nx-search-box input::placeholder{color:var(--text-tertiary)}.nx-conv-filters{display:flex;gap:5px;padding:8px 10px;border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}.nx-filter-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;border:none;background:var(--surface);color:var(--text-secondary);font-family:inherit;font-size:var(--text-xxs);font-weight:600;cursor:pointer;transition:color .15s;white-space:nowrap;box-shadow:var(--neu-sm)}.nx-filter-pill:hover{color:var(--text-primary)}.nx-filter-pill.active{box-shadow:var(--neu-inset-sm);color:var(--purple)}.nx-filter-pill--sm{padding:2px 8px;font-size:var(--text-2xs);font-weight:500}.nx-conv-filters--assign{padding-top:var(--sp-1);padding-bottom:var(--sp-1_5)}.nx-assignee-wrap{position:relative;margin-left:auto;margin-right:var(--sp-2)}.nx-assignee-btn{display:inline-flex;align-items:center;gap:var(--sp-1);padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface);color:var(--text-secondary);font-family:inherit;font-size:var(--text-xs);cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s}.nx-assignee-btn:hover{border-color:var(--border);color:var(--text-primary)}.nx-assignee-chevron{font-size:var(--text-2xs);opacity:.6}.nx-assignee-dropdown{position:absolute;top:calc(100% + 4px);right:0;z-index:50;min-width:180px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:var(--neu-md);padding:var(--sp-1);max-height:220px;overflow-y:auto}.nx-assignee-option{display:flex;align-items:center;gap:var(--sp-2);padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-xs);color:var(--text-secondary)}.nx-assignee-option:hover{background:var(--surface-hover);color:var(--text-primary)}.nx-assignee-option--active{color:var(--purple);font-weight:600}.nx-assignee-option-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nx-conv-list{flex:1;overflow-y:auto}.nx-conv-list::-webkit-scrollbar{width:3px}.nx-conv-list::-webkit-scrollbar-track{background:transparent}.nx-conv-list::-webkit-scrollbar-thumb{background:#a6b4c866;border-radius:2px}.nx-conv-item{display:flex;align-items:flex-start;gap:var(--sp-2_5);padding:11px 12px;cursor:pointer;border-bottom:1px solid rgba(166,180,200,.1);transition:background .1s;position:relative}.nx-conv-item:hover{background:var(--surface-hover)}.nx-conv-item.nx-conv-item--active{background:var(--purple-soft)}.nx-conv-item.nx-conv-item--active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--purple);border-radius:0 2px 2px 0}.nx-conv-item-body{flex:1;min-width:0}.nx-conv-item-top{display:flex;align-items:center;gap:5px;margin-bottom:3px}.nx-conv-item-name{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nx-conv-item-time{font-size:var(--text-2xs);color:var(--text-tertiary);flex-shrink:0}.nx-conv-item-bottom{display:flex;align-items:center;gap:5px}.nx-conv-item-preview{font-size:var(--text-xs);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.nx-conv-contact-icon{display:inline-flex;align-items:center;flex-shrink:0;color:var(--purple);opacity:.6}.nx-conv-unread{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--purple);color:#fff;font-size:var(--text-2xs);font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nx-conv-csat{font-size:1.1rem;line-height:1;flex-shrink:0;cursor:default}.nx-thread-csat{font-size:1.1rem;line-height:1;cursor:default;margin-left:var(--sp-1)}.nx-thread{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--surface)}.nx-thread.nx-thread--empty{align-items:center;justify-content:center}.nx-thread-header{height:52px;display:flex;align-items:center;gap:var(--sp-2_5);padding:0 16px;border-bottom:1px solid var(--border-subtle);background:var(--surface);flex-shrink:0}.nx-thread-header-info{display:flex;align-items:center;gap:var(--sp-2);flex:1;min-width:0}.nx-thread-name{font-size:var(--text-mid);font-weight:700;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em}.nx-thread-status{display:inline-flex;align-items:center;gap:var(--sp-1);padding:3px 9px;border-radius:var(--radius-xl);font-size:var(--text-xxs);font-weight:600;flex-shrink:0;white-space:nowrap}.nx-thread-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.nx-thread-status.nx-thread-status--open{background:#48bb781f;color:#2d8b55}.nx-thread-status.nx-thread-status--pending{background:var(--orange-soft);color:var(--orange)}.nx-thread-status.nx-thread-status--resolved{background:#a0aec02e;color:var(--text-secondary)}.nx-thread-header-actions{display:flex;align-items:center;gap:var(--sp-1_5);flex-shrink:0}.nx-thread-back-btn{display:none}.nx-messages{flex:1;overflow-y:auto;padding:16px 12px;display:flex;flex-direction:column;gap:var(--sp-2_5)}.nx-messages::-webkit-scrollbar{width:4px}.nx-messages::-webkit-scrollbar-track{background:transparent}.nx-messages::-webkit-scrollbar-thumb{background:#a6b4c880;border-radius:2px}.nx-closed-bar{padding:12px 16px;background:#a0aec014;border-top:1px solid var(--border-subtle);display:flex;align-items:center;gap:var(--sp-2_5);flex-shrink:0}.nx-closed-bar svg{color:var(--text-tertiary);flex-shrink:0}.nx-closed-bar span{font-size:var(--text-xs);color:var(--text-secondary);flex:1}.nx-msg-wrapper{display:flex;align-items:flex-end;gap:7px;max-width:78%}.nx-msg-wrapper--in{align-self:flex-start}.nx-msg-wrapper--out{align-self:flex-end;flex-direction:row-reverse}.nx-msg-avatar-gap{width:28px;flex-shrink:0}.nx-msg-avatar-img{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.nx-msg-sender{font-size:var(--text-2xs);color:var(--text-tertiary);margin-bottom:1px}.nx-msg-row{display:flex;flex-direction:column}.nx-msg-row.nx-msg-row--in{align-items:flex-start}.nx-msg-row.nx-msg-row--out{align-items:flex-end}.nx-msg-bubble{padding:9px 13px;border-radius:14px;font-size:var(--text-sm);line-height:1.5;word-break:break-word}.nx-msg-bubble.nx-msg-bubble--in{background:var(--surface);color:var(--text-primary);border-radius:4px 14px 14px;box-shadow:2px 2px 6px #a6b4c866,-1px -1px 4px #fffc}.nx-msg-bubble.nx-msg-bubble--out{background:var(--purple);color:#fff;border-radius:14px 4px 14px 14px;box-shadow:2px 4px 12px #7b81be59}.nx-msg-system{align-self:center;font-size:var(--text-xxs);color:var(--text-tertiary);font-style:italic;text-align:center;padding:2px 8px}.nx-msg-form-card{align-self:center;width:min(420px,90%);margin:8px 0;padding:10px 14px;border-radius:var(--radius-md);background:var(--surface-2, #f5f3ee);border:1px solid var(--border-color, rgba(0, 0, 0, .08));display:flex;flex-direction:column;gap:8px}.nx-msg-form-card__title{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.nx-msg-form-card__title svg{flex-shrink:0;opacity:.8}.nx-msg-form-card__rows{display:flex;flex-direction:column;gap:4px}.nx-msg-form-card__row{display:grid;grid-template-columns:90px 1fr;gap:8px;font-size:var(--text-xs);line-height:1.4}.nx-msg-form-card__label{color:var(--text-tertiary);font-weight:500}.nx-msg-form-card__value{color:var(--text-primary);word-break:break-word}.nx-msg-meta{display:flex;align-items:center;gap:3px;margin-top:3px}.nx-msg-time{font-size:var(--text-2xs);color:var(--text-tertiary)}.nx-msg-row--out .nx-msg-time{color:var(--text-tertiary)}.nx-msg-read-tick{font-size:var(--text-2xs);color:var(--text-tertiary)}.nx-msg-image{max-width:240px;max-height:300px;border-radius:var(--radius-sm);display:block;object-fit:cover;cursor:zoom-in}.nx-msg-scanning{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);opacity:.7}.nx-msg-blocked{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);color:var(--danger)}.nx-msg-blocked svg{flex-shrink:0}.nx-msg-doc{display:flex;align-items:center;gap:var(--sp-2);color:inherit;text-decoration:none;padding:2px 0}.nx-msg-doc svg{flex-shrink:0;opacity:.8}.nx-msg-doc span{font-size:var(--text-sm);word-break:break-all}.nx-msg-doc:hover span{text-decoration:underline}.nx-date-sep{display:flex;align-items:center;gap:var(--sp-2_5);margin:6px 0;align-self:stretch}.nx-date-sep:before,.nx-date-sep:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.nx-date-sep span{font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary);letter-spacing:.04em;white-space:nowrap}.nx-typing{display:flex;align-items:center;gap:var(--sp-2);align-self:flex-start;margin-top:var(--sp-0_5)}.nx-typing-dots{display:flex;align-items:center;gap:3px;background:var(--surface);padding:9px 14px;border-radius:4px 14px 14px;box-shadow:2px 2px 6px #a6b4c866,-1px -1px 4px #fffc}.nx-typing-dot{width:6px;height:6px;border-radius:50%;background:var(--text-tertiary);animation:nx-typing-bounce 1.4s ease-in-out infinite}.nx-typing-dot:nth-child(1){animation-delay:0s}.nx-typing-dot:nth-child(2){animation-delay:.2s}.nx-typing-dot:nth-child(3){animation-delay:.4s}@keyframes nx-typing-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-5px);opacity:1}}.nx-msg-sender{font-size:var(--text-2xs);font-weight:600;color:var(--text-tertiary);margin-bottom:var(--sp-0_5);text-transform:uppercase;letter-spacing:.04em}.nx-compose{padding:8px 12px 6px;border-top:1px solid var(--border-subtle);background:var(--surface);flex-shrink:0}.nx-compose-inner{display:flex;align-items:flex-end;gap:var(--sp-1_5);background:var(--surface);border-radius:var(--radius-md);padding:8px 10px;box-shadow:var(--neu-inset-sm)}.nx-compose-textarea{flex:1;resize:none;min-height:22px;max-height:96px;background:transparent;border:none;outline:none;font-size:var(--text-sm);font-family:inherit;color:var(--text-primary);line-height:1.5;padding:2px 0;overflow-y:auto}.nx-compose-textarea::placeholder{color:var(--text-tertiary)}.nx-attach-btn{flex-shrink:0;width:28px;height:28px;border-radius:var(--radius-s);display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;background:transparent;color:var(--text-tertiary);padding:0}.nx-attach-btn svg{width:15px;height:15px}.nx-attach-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.nx-attach-btn:disabled{opacity:.4;cursor:not-allowed}.nx-attach-input{display:none}.nx-compose-icon-btn{width:28px;height:28px;border-radius:var(--radius-s);display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;background:transparent;color:var(--text-tertiary);transition:color .15s,background .15s;flex-shrink:0}.nx-compose-icon-btn:hover:not(:disabled){color:var(--text-secondary);background:var(--surface-hover)}.nx-compose-icon-btn:disabled{opacity:.4;cursor:not-allowed}.nx-send-btn{width:30px;height:30px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;background:var(--purple);color:#fff;flex-shrink:0;transition:opacity .15s,box-shadow .15s;box-shadow:2px 3px 8px #7b81be66}.nx-send-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.nx-send-btn:not(:disabled):hover{opacity:.88;box-shadow:2px 4px 12px #7b81be80}.nx-compose-hint{font-size:var(--text-2xs);color:var(--text-tertiary);text-align:center;margin-top:var(--sp-1);letter-spacing:.01em}.nx-compose-hint-ai{color:var(--purple);font-weight:500}.nx-ai-btn{flex-shrink:0;width:30px;height:30px;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--surface);color:var(--purple);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s,border-color .15s,box-shadow .15s}.nx-ai-btn:not(:disabled):hover{background:var(--purple);color:#fff;border-color:var(--purple);box-shadow:2px 3px 8px #7b81be59}.nx-ai-btn:disabled{opacity:.45;cursor:not-allowed}.nx-ai-btn--streaming{background:var(--purple);color:#fff;border-color:var(--purple);animation:nx-ai-pulse 1.2s ease-in-out infinite}@keyframes nx-ai-pulse{0%,to{opacity:1}50%{opacity:.55}}.nx-avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;color:#fff;text-transform:uppercase}.nx-avatar--sm{width:26px;height:26px;font-size:var(--text-2xs)}.nx-avatar--md{width:32px;height:32px;font-size:var(--text-xs)}.nx-avatar--lg{width:36px;height:36px;font-size:var(--text-sm)}.nx-avatar--c0{background:#6366f1}.nx-avatar--c1{background:#0ea5e9}.nx-avatar--c2{background:#22c55e}.nx-avatar--c3{background:#f59e0b}.nx-avatar--c4{background:#ec4899}.nx-avatar--c5{background:#8b5cf6}.nx-channels-view{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-5);overflow-y:auto;height:100%}.nx-delete-confirm{display:flex;align-items:center;gap:var(--sp-1_5)}.nx-ch-settings{width:100%;border-top:1px solid var(--border-subtle);padding-top:var(--sp-3_5);margin-top:var(--sp-3_5);display:flex;flex-direction:column;gap:var(--sp-3)}.nx-ch-settings-group{display:flex;flex-direction:column;gap:var(--sp-1_5)}.nx-ch-settings-label{font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary)}.nx-ch-settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.nx-ch-settings-fields{display:flex;flex-direction:column;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden}.nx-ch-settings-field-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:7px 10px;background:var(--surface-raised)}.nx-ch-settings-field-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.nx-ch-bubble-variants{display:flex;gap:var(--sp-2_5)}.nx-ch-bubble-opt{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);cursor:pointer;background:none;border:none;padding:0}.nx-ch-bubble-opt .nx-ch-bubble-preview{width:40px;height:40px;background:var(--purple);color:#fff;display:flex;align-items:center;justify-content:center;transition:box-shadow .12s,outline .12s}.nx-ch-bubble-opt .nx-ch-bubble-preview--circle{border-radius:50%}.nx-ch-bubble-opt .nx-ch-bubble-preview--pill{border-radius:var(--radius-xl);width:64px}.nx-ch-bubble-opt .nx-ch-bubble-preview--square{border-radius:var(--radius-base)}.nx-ch-bubble-opt span{font-size:var(--text-2xs);color:var(--text-tertiary);white-space:nowrap}.nx-ch-bubble-opt.active .nx-ch-bubble-preview{outline:2px solid var(--purple);outline-offset:2px}.nx-ch-settings-cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);align-items:start}.nx-ch-settings-actions{display:flex;gap:var(--sp-1_5);padding-top:var(--sp-0_5)}.nx-link-contact-bg{background:var(--overlay-bg);display:flex;align-items:center;justify-content:center}.nx-link-contact-overlay{background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:400px;max-height:560px;display:flex;flex-direction:column;box-shadow:var(--neu-lg);overflow:hidden}.nx-link-contact-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 12px;border-bottom:1px solid var(--border-default)}.nx-link-contact-title{font-size:var(--text-mid);font-weight:600;color:var(--text-primary)}.nx-link-contact-search{padding:12px 16px;border-bottom:1px solid var(--border-default)}.nx-link-contact-unlink{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--surface-ink);border-bottom:1px solid var(--border-default)}.nx-link-contact-unlink-label{font-size:var(--text-xs);color:var(--text-secondary)}.nx-link-contact-list{flex:1;overflow-y:auto;padding:6px 8px}.nx-link-contact-empty{text-align:center;padding:var(--sp-6);font-size:var(--text-sm);color:var(--text-tertiary)}.nx-link-contact-item{display:flex;align-items:center;gap:var(--sp-2_5);width:100%;padding:8px 10px;border-radius:var(--radius-md);background:transparent;border:none;cursor:pointer;text-align:left;transition:background .12s}.nx-link-contact-item:hover:not(:disabled){background:var(--surface)}.nx-link-contact-item:disabled{opacity:.6;cursor:not-allowed}.nx-link-contact-item.nx-link-contact-item--active{background:var(--surface)}.nx-link-contact-avatar{width:32px;height:32px;border-radius:50%;background:var(--purple);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600;flex-shrink:0}.nx-link-contact-info{flex:1;min-width:0}.nx-link-contact-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nx-link-contact-meta{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nx-link-contact-check{color:var(--purple);flex-shrink:0}.ax-detail-conversations{display:flex;flex-direction:column;gap:var(--sp-2)}.ax-detail-conv-item{padding:10px 12px;border-radius:var(--radius-md);background:var(--surface-ink);border:1px solid var(--border-default)}.ax-detail-conv-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-1)}.ax-detail-conv-name{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-detail-conv-meta{display:flex;flex-direction:column;gap:2px}.ax-detail-conv-channel{font-size:var(--text-xxs);color:var(--text-secondary)}.ax-detail-conv-last{font-size:var(--text-xs);color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-detail-conv-date{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-1)}.nx-ch-topbar{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);flex-shrink:0}.nx-ch-card{background:var(--surface);border-radius:14px;padding:16px 18px;box-shadow:var(--neu-md);display:flex;flex-direction:column}.nx-ch-card--open{gap:0}.nx-ch-card-main{display:flex;align-items:center;gap:var(--sp-3_5)}.nx-ch-icon{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nx-ch-icon--web{background:#7b81be1f;color:var(--purple)}.nx-ch-icon--tg{background:#e1f0fb}.nx-ch-icon--plus{background:var(--surface-ink);color:var(--text-tertiary)}.nx-ch-info{flex:1;min-width:0}.nx-ch-name{font-size:var(--text-sm);font-weight:700;color:var(--text-primary);margin-bottom:var(--sp-0_5);display:flex;align-items:center;gap:var(--sp-1_5)}.nx-ch-sub{font-size:var(--text-xxs);color:var(--text-secondary)}.nx-ch-id{font-size:var(--text-2xs);color:var(--text-tertiary);margin-top:var(--sp-0_5);font-family:var(--font-mono, monospace);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nx-ch-actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.nx-ch-online-label{font-size:var(--text-xxs);font-weight:600;color:var(--text-tertiary);white-space:nowrap}.nx-add-form-card{background:var(--surface);border-radius:14px;padding:18px 20px;box-shadow:var(--neu-md)}.nx-add-form-title{font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:var(--sp-3_5)}.nx-form-group{margin-bottom:var(--sp-3)}.nx-form-label{font-size:var(--text-xxs);font-weight:600;color:var(--text-secondary);margin-bottom:5px;display:block}.nx-form-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-3_5)}.nx-ch-embed{margin-top:var(--sp-3_5);padding-top:var(--sp-3_5);border-top:1px solid var(--border-subtle)}.nx-ch-embed-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-2)}.nx-ch-embed-label{font-size:var(--text-xxs);font-weight:600;color:var(--text-secondary);letter-spacing:.04em}.nx-ch-embed-code{background:var(--surface-inset);border:1px solid var(--border-subtle);border-radius:9px;padding:10px 14px;font-family:var(--font-mono, "JetBrains Mono", "Fira Code", monospace);font-size:var(--text-xxs);line-height:1.7;color:var(--text-secondary);white-space:pre;overflow-x:auto;margin:0;box-shadow:var(--neu-inset-sm)}.nx-ch-card--new{outline:2px solid rgba(123,129,190,.45);outline-offset:2px}.nx-ch-embed--highlight .nx-ch-embed-label{color:var(--purple)}.nx-ch-settings-wrapper{display:grid;grid-template-columns:1fr 296px;gap:var(--sp-6);align-items:start;width:100%;margin-top:var(--sp-3_5)}.nx-ch-settings-wrapper>.nx-ch-settings{margin-top:0}.nw-preview-shell{background:#ebeef2;border-radius:var(--radius-md);padding:var(--sp-3);position:relative;display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2_5);border:1px solid var(--border-subtle);overflow:hidden}.nw-preview-shell:before{content:"PREVIEW";position:absolute;top:10px;left:12px;font-size:var(--text-3xs);font-weight:700;letter-spacing:.14em;color:#0003;pointer-events:none}.nw-preview-shell .nw-widget{--w-primary: #7B81BE;--w-primary-rgb: 123, 129, 190;--w-out-bg: #7B81BE;--w-out-text: #FFFFFF;--w-in-bg: rgba(240, 241, 248, .95);--w-in-text: #2D3748;--w-window-base-rgb: 255, 255, 255;--w-window-opacity: .88;--w-radius: 14px;display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2_5);width:100%}.nw-preview-shell .nw-bubble{position:relative;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;flex-shrink:0}.nw-preview-shell .nw-bubble:before{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:inherit;border:2px solid rgba(var(--w-primary-rgb),.3);animation:nw-pulse 2.5s ease-out infinite;pointer-events:none}.nw-preview-shell .nw-bubble--circle{width:50px;height:50px;border-radius:50%;background:var(--w-primary);box-shadow:0 4px 16px rgba(var(--w-primary-rgb),.45),0 2px 8px #0000001a}.nw-preview-shell .nw-bubble--pill{height:44px;padding:0 18px 0 14px;border-radius:22px;background:var(--w-primary);gap:var(--sp-2);box-shadow:0 4px 16px rgba(var(--w-primary-rgb),.4),0 2px 8px #00000014}.nw-preview-shell .nw-bubble--square{width:50px;height:50px;border-radius:14px;background:var(--w-primary);box-shadow:0 4px 16px rgba(var(--w-primary-rgb),.45),0 2px 8px #0000001a;animation:nw-float 3s ease-in-out infinite}.nw-preview-shell .nw-bubble-icon{width:22px;height:22px;color:#fff;flex-shrink:0}.nw-preview-shell .nw-bubble-text{font-size:var(--text-xs);font-weight:600;color:#fff;white-space:nowrap}.nw-preview-shell .nw-window{width:100%;background:rgba(var(--w-window-base-rgb, 255, 255, 255),var(--w-window-opacity, .88));backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-radius:var(--w-radius);border:1px solid rgba(255,255,255,.4);box-shadow:0 8px 32px #00000024,0 2px 10px #00000012;display:flex;flex-direction:column;overflow:hidden;height:300px}.nw-preview-shell .nw-header{background:var(--w-primary);padding:12px 14px;display:flex;align-items:flex-start;gap:var(--sp-2_5);flex-shrink:0}.nw-preview-shell .nw-header-avatar{width:32px;height:32px;border-radius:50%;background:#ffffff40;border:2px solid rgba(255,255,255,.4);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:700;color:#fff;flex-shrink:0}.nw-preview-shell .nw-header-info{flex:1;min-width:0}.nw-preview-shell .nw-header-name{font-size:var(--text-sm);font-weight:700;color:#fff;margin-bottom:var(--sp-0_5)}.nw-preview-shell .nw-header-status{display:flex;align-items:center;gap:5px;font-size:var(--text-2xs);color:#fffc}.nw-preview-shell .nw-header-status .dot{width:6px;height:6px;border-radius:50%;background:#4ade80;animation:nw-blink 2s ease-in-out infinite;flex-shrink:0}.nw-preview-shell .nw-header-status .dot.offline{background:#fff6;animation:none}.nw-preview-shell .nw-messages{flex:1;overflow-y:auto;padding:12px 12px 4px;display:flex;flex-direction:column;gap:5px;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.08) transparent}.nw-preview-shell .nw-messages::-webkit-scrollbar{width:3px}.nw-preview-shell .nw-messages::-webkit-scrollbar-thumb{background:#0000001a;border-radius:2px}.nw-preview-shell .nw-date-sep{display:flex;align-items:center;gap:var(--sp-1_5);margin:2px 0}.nw-preview-shell .nw-date-sep:before,.nw-preview-shell .nw-date-sep:after{content:"";flex:1;height:1px;background:#00000014}.nw-preview-shell .nw-date-sep span{font-size:var(--text-3xs);color:#0000004d;white-space:nowrap}.nw-preview-shell .nw-msg{max-width:80%}.nw-preview-shell .nw-msg--in{align-self:flex-start}.nw-preview-shell .nw-msg--out{align-self:flex-end}.nw-preview-shell .nw-msg-bubble{padding:7px 11px;border-radius:var(--radius-md);font-size:var(--text-xs);line-height:1.45;word-break:break-word}.nw-msg--in .nw-preview-shell .nw-msg-bubble{background:var(--w-in-bg);color:var(--w-in-text);border-bottom-left-radius:3px}.nw-msg--out .nw-preview-shell .nw-msg-bubble{background:var(--w-out-bg);color:var(--w-out-text);border-bottom-right-radius:3px}.nw-preview-shell .nw-msg-time{font-size:var(--text-3xs);color:#0000004d;margin-top:var(--sp-0_5);padding:0 3px}.nw-msg--out .nw-preview-shell .nw-msg-time{text-align:right}.nw-preview-shell .nw-input-row{padding:8px 10px;border-top:1px solid rgba(0,0,0,.07);display:flex;align-items:center;gap:var(--sp-2);background:#fff9;flex-shrink:0}.nw-preview-shell .nw-textarea{flex:1;border:none;background:transparent;font-family:inherit;font-size:var(--text-xs);color:#2d3748;resize:none;outline:none;min-height:18px;max-height:60px;padding:0;line-height:1.45}.nw-preview-shell .nw-textarea::placeholder{color:#00000047}.nw-preview-shell .nw-send-btn{width:28px;height:28px;border-radius:50%;background:var(--w-primary);border:none;cursor:default;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px rgba(var(--w-primary-rgb),.4)}.nw-preview-shell .nw-send-btn svg{width:13px;height:13px;color:#fff}.nw-preview-shell .nw-branding{text-align:center;font-size:var(--text-3xs);color:#00000040;padding:4px 0 6px;flex-shrink:0}.nw-preview-shell .nw-branding a{color:inherit;text-decoration:none}.nx-contact-panel{width:260px;min-width:220px;flex-shrink:0;border-left:1px solid var(--border-subtle);background:var(--surface);display:flex;flex-direction:column;overflow-y:auto;animation:nx-slide-in-right .18s ease-out}.nx-contact-panel__header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.nx-contact-panel__title{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.nx-contact-panel__header-actions{display:flex;align-items:center;gap:var(--sp-1)}.nx-contact-panel__unlink{background:none;border:none;cursor:pointer;font-size:var(--text-2xs);color:var(--text-tertiary);padding:2px 6px;border-radius:var(--radius-sm);white-space:nowrap}.nx-contact-panel__unlink:hover:not(:disabled){background:#e53e3e14;color:var(--danger, #e53e3e)}.nx-contact-panel__unlink:disabled{opacity:.5;cursor:default}.nx-contact-panel__close{background:none;border:none;cursor:pointer;font-size:var(--text-sm);color:var(--text-tertiary);padding:2px 4px;border-radius:var(--radius-sm)}.nx-contact-panel__close:hover{background:var(--surface-hover);color:var(--text-primary)}.nx-contact-panel__body{padding:4px 0;display:flex;flex-direction:column}@keyframes nx-slide-in-right{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.nx-cp-section{padding:10px 12px;border-bottom:1px solid var(--border-subtle)}.nx-cp-section:last-child{border-bottom:none}.nx-cp-section-title{font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-bottom:var(--sp-1_5)}.nx-cp-name{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-0_5)}.nx-cp-subtitle{font-size:var(--text-xxs);color:var(--text-secondary);margin-bottom:var(--sp-1_5)}.nx-cp-row{display:flex;align-items:flex-start;gap:var(--sp-1_5);margin-bottom:var(--sp-1)}.nx-cp-row:last-child{margin-bottom:0}.nx-cp-row__icon{font-size:var(--text-xxs);color:var(--text-tertiary);flex-shrink:0;margin-top:1px}.nx-cp-row__value{font-size:var(--text-xs);color:var(--text-primary);word-break:break-word}.nx-cp-tags{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.nx-cp-tag{font-size:var(--text-2xs);padding:2px 7px;border-radius:var(--radius-base);background:var(--purple-soft);color:var(--purple);font-weight:500}.nx-cp-deal-row{display:flex;align-items:center;gap:var(--sp-1_5);margin-bottom:5px;flex-wrap:wrap}.nx-cp-deal-row:last-child{margin-bottom:0}.nx-cp-deal-name{font-size:var(--text-xs);color:var(--text-primary);flex:1;min-width:0;word-break:break-word}.nx-cp-deal-value{font-size:var(--text-xxs);color:var(--text-secondary);white-space:nowrap}.nx-cp-deal-status{font-size:var(--text-2xs);padding:1px 6px;border-radius:var(--radius-sm);white-space:nowrap}.nx-cp-deal-status--open{background:#48bb781f;color:#2d8b55}.nx-cp-deal-status--won{background:#63b3ed26;color:#2b6cb0}.nx-cp-deal-status--lost{background:#a0aec02e;color:var(--text-secondary)}.nx-cp-order-row{display:flex;align-items:center;gap:var(--sp-1_5);margin-bottom:var(--sp-1)}.nx-cp-order-row:last-child{margin-bottom:0}.nx-cp-order-id{font-size:var(--text-xxs);color:var(--purple);font-weight:500}.nx-cp-order-date{font-size:var(--text-xxs);color:var(--text-tertiary);flex:1}.nx-cp-order-sum{font-size:var(--text-xxs);color:var(--text-primary);white-space:nowrap}.nx-cp-loading{padding:var(--sp-6)}.nx-ch-settings-group--bordered{padding:10px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);gap:var(--sp-2)}.nx-ch-settings-hint-inline{font-size:var(--text-xxs);color:var(--text-tertiary);margin-top:var(--sp-0_5)}.nx-ar-delay-row{justify-content:flex-start;gap:var(--sp-3)}.nx-cp-empty{padding:16px 12px;font-size:var(--text-xs);color:var(--text-tertiary);text-align:center}.nx-visitor-panel{width:220px;min-width:180px;flex-shrink:0;border-left:1px solid var(--border-subtle);background:var(--surface);display:flex;flex-direction:column;overflow-y:auto;font-size:var(--text-xs)}.nx-visitor-panel__toggle{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);background:none;border-top:none;border-left:none;border-right:none;width:100%;cursor:pointer;text-align:left}.nx-visitor-panel__toggle:hover{background:var(--surface-hover)}.nx-visitor-panel__chevron{transition:transform .15s}.nx-visitor-panel__chevron--open{transform:rotate(180deg)}.nx-visitor-panel__body{padding:8px 0;display:flex;flex-direction:column;gap:0}.nx-visitor-section{padding:8px 12px;border-bottom:1px solid var(--border-subtle)}.nx-visitor-section:last-child{border-bottom:none}.nx-visitor-section__title{font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-bottom:var(--sp-1_5)}.nx-visitor-row{display:flex;flex-direction:column;gap:1px;margin-bottom:var(--sp-1_5)}.nx-visitor-row:last-child{margin-bottom:0}.nx-visitor-row__label{font-size:var(--text-2xs);color:var(--text-tertiary)}.nx-visitor-row__value{font-size:var(--text-xs);color:var(--text-primary);word-break:break-word}.nx-visitor-row__link{font-size:var(--text-xs);color:var(--purple);text-decoration:none;word-break:break-all}.nx-visitor-row__link:hover{text-decoration:underline}@keyframes nw-pulse{0%{opacity:.8;transform:scale(1)}70%{opacity:0;transform:scale(1.25)}to{opacity:0}}@keyframes nw-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes nw-blink{0%,to{opacity:1}50%{opacity:.45}}.nx-ch-tabs{display:flex;gap:var(--sp-1);padding:12px 16px 0;border-bottom:1px solid var(--border-subtle);margin-bottom:0}.nx-ch-tab{padding:6px 14px;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s,border-color .15s}.nx-ch-tab:hover{color:var(--text-primary)}.nx-ch-tab--active{color:var(--text-primary);border-bottom-color:var(--purple)}.nx-qr-settings{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.nx-qr-settings-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.nx-qr-settings-hint{font-size:var(--text-xs);color:var(--text-tertiary)}.nx-qr-form-card{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-3_5);display:flex;flex-direction:column;gap:var(--sp-2_5)}.nx-qr-textarea{width:100%;resize:vertical;font-family:inherit;font-size:var(--text-sm);min-height:80px}.nx-qr-form-actions{display:flex;gap:var(--sp-2)}.nx-qr-settings-list{display:flex;flex-direction:column;gap:var(--sp-1_5)}.nx-qr-settings-item{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);padding:10px 12px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);transition:border-color .15s}.nx-qr-settings-item:hover{border-color:var(--border)}.nx-qr-settings-body{flex:1;min-width:0}.nx-qr-settings-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-0_5)}.nx-qr-settings-text{font-size:var(--text-xs);color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}.nx-qr-settings-actions{display:flex;gap:var(--sp-1);flex-shrink:0}.nx-qr-loading{font-size:var(--text-sm);color:var(--text-tertiary);padding:8px 0}.nx-qr-wrap{position:relative;flex-shrink:0}.nx-qr-trigger{display:flex;align-items:center;gap:2px;padding:4px 6px;background:none;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:var(--text-sm);transition:color .15s,border-color .15s,background .15s}.nx-qr-trigger svg{width:14px;height:14px}.nx-qr-trigger:hover{color:var(--text-primary);border-color:var(--border)}.nx-qr-trigger--active{color:var(--purple);border-color:var(--purple);background:var(--accent-dim, rgba(var(--accent-rgb, 99 102 241)/.08))}.nx-qr-popup{position:absolute;bottom:calc(100% + 6px);left:0;width:300px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .15));z-index:200;overflow:hidden}.nx-qr-search-row{padding:8px 8px 6px;border-bottom:1px solid var(--border-subtle)}.nx-qr-search{width:100%;padding:5px 10px;font-size:var(--text-sm);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);outline:none}.nx-qr-search:focus{border-color:var(--purple)}.nx-qr-list{max-height:260px;overflow-y:auto}.nx-qr-item{display:flex;flex-direction:column;gap:2px;padding:8px 12px;width:100%;text-align:left;background:none;border:none;cursor:pointer;transition:background .12s}.nx-qr-item:hover{background:var(--surface-hover, var(--surface-raised))}.nx-qr-item-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.nx-qr-item-text{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nx-qr-empty{padding:16px 12px;font-size:var(--text-sm);color:var(--text-tertiary);text-align:center}.nx-protect-settings{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-6)}.nx-protect-section{display:flex;flex-direction:column;gap:var(--sp-2_5)}.nx-protect-section-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.nx-protect-section-hint{font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.5}.nx-protect-rule-form{display:flex;gap:var(--sp-2);align-items:center}.nx-protect-type-select{width:90px;flex-shrink:0;font-size:var(--text-xs);padding:4px 8px;height:30px}.nx-protect-error{font-size:var(--text-xs);color:var(--error)}.nx-rl-form{align-items:flex-end}.nx-rl-field{display:flex;flex-direction:column;gap:var(--sp-1)}.nx-rl-label{font-size:var(--text-xxs);color:var(--text-tertiary);white-space:nowrap}.nx-rl-input{width:90px}.nx-wh-editor{display:flex;flex-direction:column;gap:var(--sp-3)}.nx-wh-header{display:flex;align-items:center;gap:var(--sp-2_5)}.nx-wh-title{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);flex:1}.nx-wh-tz{width:180px;font-size:var(--text-xs)}.nx-wh-schedule{display:flex;flex-direction:column;gap:var(--sp-1_5)}.nx-wh-day{display:flex;align-items:center;gap:var(--sp-2)}.nx-wh-day-label{width:28px;font-size:var(--text-xs);font-weight:500;color:var(--text-primary);text-align:center;flex-shrink:0}.nx-wh-day-label--off{color:var(--text-tertiary)}.nx-wh-time{width:86px;padding:4px 6px;font-size:var(--text-xs);background:var(--bg-input, var(--bg-elevated));border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary)}.nx-wh-time:focus{outline:none;border-color:var(--purple)}.nx-wh-sep{font-size:var(--text-xs);color:var(--text-tertiary)}.nx-wh-off{font-size:var(--text-xs);color:var(--text-tertiary);font-style:italic}.nx-load-more{display:flex;justify-content:center;padding:8px 0 4px}.nx-load-more-btn{font-size:var(--text-xs);color:var(--text-tertiary)}.nx-load-older{display:flex;justify-content:center;padding:4px 0 8px}.nx-load-older button{font-size:var(--text-xs);color:var(--text-tertiary)}.nx-protect-rule-list{display:flex;flex-direction:column;gap:var(--sp-1)}.nx-protect-empty{font-size:var(--text-xs);color:var(--text-tertiary);padding:6px 0}.nx-protect-rule-item{display:flex;align-items:center;gap:var(--sp-2);padding:6px 10px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:var(--text-xs)}.nx-protect-rule-item:hover{border-color:var(--border)}.nx-protect-rule-type{font-size:var(--text-2xs);font-weight:600;padding:1px 6px;border-radius:3px;text-transform:uppercase;flex-shrink:0}.nx-protect-rule-type--word{background:var(--surface-raised);color:var(--text-secondary)}.nx-protect-rule-type--phrase{background:#6366f11f;color:var(--purple, #6366f1)}.nx-protect-rule-type--regex{background:#f59e0b1f;color:var(--warning, #f59e0b)}.nx-protect-rule-value{font-family:monospace;color:var(--text-primary);flex:1;word-break:break-all}.nx-protect-ip{font-family:monospace;font-weight:600;color:var(--text-primary);flex-shrink:0}.nx-protect-ip-reason{color:var(--text-secondary);flex:1}.nx-protect-ip-until{font-size:var(--text-xxs);color:var(--text-tertiary);flex-shrink:0}@media (max-width: 767px){.nx-sidebar{position:fixed;bottom:0;left:0;right:0;width:100%;height:auto;min-width:unset;flex-direction:row;border-right:none;border-top:1px solid var(--border-subtle);z-index:100;padding-bottom:env(safe-area-inset-bottom,0px)}.nx-sidebar-header,.nx-sidebar-footer{display:none}.nx-sidebar-scroll{flex:1;padding:0;overflow:visible}.nx-sidebar-section{flex-direction:row;width:100%}.nx-nav-item{flex:1;flex-direction:column;gap:2px;padding:8px 4px;justify-content:center;text-align:center;position:relative}.nx-nav-item svg{width:20px;height:20px}.nx-nav-label{font-size:var(--text-2xs)}.nx-nav-badge{position:absolute;top:5px;right:calc(50% - 18px)}.mock-nexus{padding-bottom:calc(56px + env(safe-area-inset-bottom,0px))}.nx-inbox{position:relative;overflow:hidden}.nx-conv-panel{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;min-width:unset;border-right:none;z-index:1;transition:transform .22s ease}.nx-thread{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;transition:transform .22s ease}.nx-thread.nx-thread--empty{display:none}.nx-inbox[data-mobile-panel=list] .nx-conv-panel{transform:translate(0)}.nx-inbox[data-mobile-panel=list] .nx-thread:not(.nx-thread--empty){transform:translate(100%)}.nx-inbox[data-mobile-panel=thread] .nx-conv-panel{transform:translate(-100%)}.nx-inbox[data-mobile-panel=thread] .nx-thread{transform:translate(0)}.nx-thread-back-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:none;cursor:pointer;color:var(--purple);flex-shrink:0;border-radius:var(--radius-sm);touch-action:manipulation}.nx-thread-back-btn:active{background:var(--purple-soft)}.nx-thread-back-btn svg{width:18px;height:18px}.nx-thread-header{padding:8px 10px;gap:var(--sp-1_5);flex-wrap:nowrap}.nx-thread-header-info{flex:1;min-width:0;overflow:hidden}.nx-thread-header-info .nx-thread-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.nx-thread-header-actions{flex-wrap:wrap;gap:var(--sp-1)}.nx-assignee-wrap,.nx-visitor-panel{display:none}}.admin-page{background:var(--bg-primary)}.admin-page .admin-page-header{padding:var(--sp-6) var(--sp-6) var(--sp-4);border-bottom:1px solid var(--border-default)}.admin-page .admin-page-header h1{margin:0 0 var(--sp-1)}.admin-page .admin-page-header p{margin:0}.admin-page .admin-page-tabs{padding:0 var(--sp-6);border-bottom:1px solid var(--border-default)}.admin-page .admin-page-content{padding:var(--sp-4) var(--sp-6)}.admin-table-wrap{border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}.admin-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.admin-table th{padding:var(--sp-2) var(--sp-3);text-align:left;font-weight:600;font-size:var(--text-xxs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);background:var(--bg-secondary);border-bottom:1px solid var(--border-default);white-space:nowrap}.admin-table td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-default);color:var(--text-primary);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--bg-hover)}.admin-table tr.clickable{cursor:pointer}.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-4);padding:var(--sp-4) 0}.admin-stat-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-sm);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-1)}.admin-stat-card__label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.admin-stat-card__value{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);line-height:1}.admin-stat-card--danger .admin-stat-card__value{color:var(--error)}.admin-stat-card--success .admin-stat-card__value{color:var(--success)}.admin-stat-card--warning .admin-stat-card__value{color:var(--warning)}.admin-stat-card--accent .admin-stat-card__value{color:var(--purple)}.admin-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);z-index:200;display:flex;justify-content:flex-end}.admin-drawer{width:440px;max-width:95vw;height:100%;background:var(--surface);box-shadow:var(--neu-xl);display:flex;flex-direction:column;overflow:hidden}.admin-drawer--wide{width:720px}.admin-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.admin-drawer-title{font-size:var(--text-base);font-weight:600;color:var(--text-primary)}.admin-drawer-body{flex:1;overflow-y:auto;padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4)}.admin-drawer-section{display:flex;flex-direction:column;gap:var(--sp-2)}.admin-drawer-section-title{font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;padding-bottom:var(--sp-1);border-bottom:1px solid var(--border-subtle)}.admin-drawer-section-subtitle{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);margin-top:var(--sp-4);margin-bottom:var(--sp-2)}.admin-field-row{display:flex;flex-direction:column;gap:var(--sp-1)}.admin-field-row label{font-size:var(--text-xs);color:var(--text-tertiary);font-weight:500}.admin-meta-row{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm)}.admin-meta-row__label{color:var(--text-tertiary)}.admin-meta-row__value{color:var(--text-primary);font-weight:500}.admin-lock-banner{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);background:#e53e3e14;border:1px solid rgba(229,62,62,.2);border-radius:var(--radius-sm);font-size:var(--text-sm)}.admin-workspace-list{display:flex;flex-direction:column;gap:var(--sp-1_5)}.admin-workspace-item{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-1_5) var(--sp-2);background:var(--surface-inset);border-radius:var(--radius-sm);font-size:var(--text-sm)}.admin-workspace-item__name{font-weight:500;color:var(--text-primary)}.admin-workspace-item__role{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase}.admin-drawer-footer{padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border-subtle);display:flex;gap:var(--sp-2);flex-shrink:0}.admin-drawer-tab{padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;transition:color var(--duration-fast),border-color var(--duration-fast)}.admin-drawer-tab:hover{color:var(--text-primary)}.admin-drawer-tab.active{color:var(--purple);border-bottom-color:var(--purple)}.admin-security-tabs{display:flex;gap:var(--sp-1);margin-bottom:var(--sp-4);border-bottom:1px solid var(--border-subtle)}.admin-block-form{display:flex;gap:var(--sp-2);align-items:flex-end;padding:var(--sp-3);background:var(--surface-inset);border-radius:var(--radius-sm);margin-bottom:var(--sp-3);flex-wrap:wrap}.admin-filter-row{display:flex;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-3)}.admin-badge-auto{font-size:var(--text-xxs);font-weight:600;padding:2px 6px;border-radius:var(--radius-full);background:var(--orange-soft);color:var(--warning);text-transform:uppercase}.admin-badge-manual{font-size:var(--text-xxs);font-weight:600;padding:2px 6px;border-radius:var(--radius-full);background:var(--purple-soft);color:var(--purple);text-transform:uppercase}.admin-reset-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);display:flex;align-items:center;justify-content:center;z-index:300}.admin-reset-modal{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--neu-xl);padding:var(--sp-5);width:480px;max-width:95vw;display:flex;flex-direction:column;gap:var(--sp-3)}.admin-reset-url{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--surface-inset);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);word-break:break-all;color:var(--text-primary)}.admin-cover-placeholder{display:flex;align-items:center;justify-content:center;height:160px;border:2px dashed var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:border-color .15s,background .15s}.admin-cover-placeholder:hover{border-color:var(--purple);background:var(--purple-soft)}.admin-cover-preview{display:flex;flex-direction:column;gap:var(--sp-2)}.admin-cover-img{width:100%;max-height:200px;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--border-default)}.admin-cover-actions{display:flex;gap:var(--sp-2)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.admin-article-thumb{width:56px;padding:var(--sp-1)!important}.admin-article-thumb__img{width:52px;height:36px;object-fit:cover;border-radius:var(--radius-sm);display:block}.admin-article-thumb__empty{width:52px;height:36px;border-radius:var(--radius-sm);background:var(--neu-bg-2)}.admin-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--sp-3);padding:var(--sp-2) 0}.admin-media-card{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2);background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--neu-sm);transition:box-shadow var(--duration-fast)}.admin-media-card:hover{box-shadow:var(--neu-md)}.admin-media-thumb{width:100%;aspect-ratio:16/10;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-inset);display:flex;align-items:center;justify-content:center}.admin-media-thumb-img{width:100%;height:100%;object-fit:cover}.admin-media-thumb-placeholder{font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary);letter-spacing:.05em}.admin-media-info{display:flex;flex-direction:column;gap:var(--sp-1);flex:1}.admin-media-title{font-size:var(--text-xs);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-media-meta{display:flex;align-items:center;gap:var(--sp-1_5);flex-wrap:wrap}.admin-media-savings{font-size:var(--text-2xs);font-weight:600;color:var(--success);background:var(--success-soft);padding:1px 5px;border-radius:var(--radius-xs, 3px)}.admin-media-actions{display:flex;gap:var(--sp-1);justify-content:flex-end}.badge--xs{font-size:var(--text-2xs);padding:1px 5px}.admin-totp-qr{width:180px;height:180px}.admin-settings-tab{padding:var(--sp-4);max-width:640px}.admin-settings-section{background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--sp-4);margin-bottom:var(--sp-4)}.admin-settings-section-title{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--sp-3)}.admin-settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}.admin-settings-row .admin-settings-row-label{font-size:var(--text-mid);font-weight:500;color:var(--text-primary);margin-bottom:var(--sp-1)}.admin-social-provider{border:1px solid var(--border-default);border-radius:var(--radius-s);margin-bottom:var(--sp-2);overflow:hidden}.admin-social-provider-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);background:var(--surface-raised)}.admin-social-provider-name{font-size:var(--text-mid);font-weight:500;color:var(--text-primary)}.admin-social-provider-fields{padding:var(--sp-3);border-top:1px solid var(--border-default);background:var(--surface)}.admin-drawer-tabs{display:flex;align-items:center;gap:var(--sp-1);padding:0 var(--sp-4);border-bottom:1px solid var(--border-default);flex-shrink:0}.admin-workspace-item--col{flex-direction:column;align-items:flex-start;gap:var(--sp-1)}.admin-section-subtitle{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--sp-2)}.admin-section-subtitle-lg{color:var(--text-secondary);font-size:var(--text-sm);margin:var(--sp-4) 0 var(--sp-2)}.admin-field-row--auto{flex:0 0 auto}.admin-field-row--sm{flex:1 1 auto}.admin-field-row--md{flex:2 1 auto}.admin-field-row--lg{flex:3 1 auto}.spinner-block{display:block;margin:var(--sp-4) auto}.spinner-block-sm{display:block;margin:var(--sp-3) auto}.admin-info-section{margin-bottom:var(--sp-4);padding:var(--sp-3);background:var(--surface-inset);border-radius:var(--radius-sm);border:1px solid var(--border-default)}.admin-audit-section{margin-top:var(--sp-4);padding:var(--sp-3);background:var(--surface-inset);border-radius:var(--radius-sm)}.admin-audit-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;border-bottom:1px solid var(--border-default)}.admin-audit-desc{flex:1;font-size:var(--text-sm)}.admin-td-empty{text-align:center;padding:var(--sp-5);color:var(--text-tertiary)}.admin-td-title{max-width:280px}.admin-td-reason{max-width:200px}.admin-modal-footer{display:flex;align-items:center;gap:var(--sp-2);justify-content:flex-end;margin-top:var(--sp-4)}.admin-notes-cell{max-width:160px;display:inline-block}.admin-qr-row{display:flex;align-items:center;justify-content:center;padding:var(--sp-2) 0}.admin-totp-backup{margin-top:var(--sp-3);padding:var(--sp-2);background:var(--surface-inset);border-radius:var(--radius-sm)}.admin-totp-backup-codes{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap;margin-top:var(--sp-1)}.admin-totp-char{font-family:var(--font-mono);font-size:var(--text-xs);padding:2px var(--sp-1_5);background:var(--surface);border-radius:var(--radius-xs)}.admin-search{max-width:240px}.sc-wrap{display:flex;flex-direction:column;gap:var(--sp-4)}.sc-canvas-row{display:flex;align-items:flex-start;gap:0}.sc-root{flex:1;min-width:0;display:flex;height:800px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--neu-out)}.sc-node-handle{opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important;border:none!important;background:transparent!important}.sc-canvas-rf{width:100%;height:100%;position:relative}.sc-canvas-rf .react-flow__pane{cursor:default!important}.sc-canvas-rf .react-flow__node:focus,.sc-canvas-rf .react-flow__node:focus-visible{outline:none}.sc-canvas-rf .react-flow__edge-path{stroke:#7b81be59;stroke-width:1.5;transition:stroke .2s}.sc-canvas-rf .react-flow__edge.sc-rf-edge--active .react-flow__edge-path{stroke:#7b81bea6}.sc-canvas-rf .react-flow__edge.sc-rf-edge--reverse .react-flow__edge-path{stroke:#7b81be40;animation-direction:reverse}.sc-canvas-rf .react-flow__edge.sc-rf-edge--dashed .react-flow__edge-path{stroke:#7b81be4d;stroke-dasharray:5 4}.sc-canvas-rf .react-flow__edge:hover .react-flow__edge-path{stroke-width:2.5}.sc-canvas-rf .react-flow__background{background:var(--bg-primary)}.sc-rf-toolbar{display:flex;flex-direction:column;gap:var(--sp-1);margin:var(--sp-2)}.sc-rf-toolbar-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);cursor:pointer;box-shadow:3px 3px 6px #a6b4c8b3,-2px -2px 5px #fff;transition:all .15s}.sc-rf-toolbar-btn svg{width:14px;height:14px}.sc-rf-toolbar-btn:hover{color:var(--purple);box-shadow:4px 4px 8px #a6b4c8cc,-3px -3px 7px #fff}.sc-rf-legend{display:flex;align-items:center;gap:var(--sp-2_5);font-size:var(--text-xxs);color:var(--text-secondary);opacity:.65;padding:6px 10px;border-radius:var(--radius-sm);background:var(--surface);box-shadow:3px 3px 6px #a6b4c899,-2px -2px 5px #fff;margin:0 0 8px 8px}@keyframes scSignalFlow{0%{stroke-dashoffset:50;opacity:.9}80%{stroke-dashoffset:0;opacity:.9}to{stroke-dashoffset:0;opacity:0}}.sc-node{cursor:pointer;-webkit-user-select:none;user-select:none}.sc-node--selected .sc-node-body{box-shadow:8px 8px 20px #a6b4c8cc,-6px -6px 16px #fff,0 0 0 2px var(--purple)}.sc-node:hover .sc-node-body{box-shadow:8px 8px 20px #a6b4c8cc,-6px -6px 16px #fff}.sc-node--large .sc-node-body{width:88px;height:88px}.sc-node--medium .sc-node-body{width:68px;height:68px}.sc-node-body{border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;box-shadow:6px 6px 14px #a6b4c8cc,-4px -4px 10px #fff;transition:box-shadow .25s ease}.sc-node-icon{width:22px;height:22px;color:var(--purple);opacity:.8}.sc-node-icon svg{width:100%;height:100%}.sc-node-label{font-size:8px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);text-align:center;max-width:64px;line-height:1.2}.sc-node-sublabel{font-size:7px;color:var(--text-secondary);opacity:.6;text-align:center;max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sc-node-status{width:6px;height:6px;border-radius:50%;margin-top:var(--sp-0_5)}.sc-node-status--online{background:var(--success)}.sc-node-status--offline{background:var(--error)}.sc-node-status--unknown{background:var(--text-secondary);opacity:.4}.sc-node-budget{display:flex;flex-direction:column;align-items:center;gap:1px;margin-top:1px}.sc-node-budget-bar{width:44px;height:3px;border-radius:2px;background:var(--surface-inset);overflow:hidden}.sc-node-budget-fill{height:100%;border-radius:2px;background:var(--purple);transition:width .3s ease}.sc-node-budget-fill--warn{background:var(--orange)}.sc-node-budget-fill--over{background:var(--error)}.sc-node-budget-text{font-size:6px;color:var(--text-secondary);opacity:.7;line-height:1}@keyframes scNodeAppear{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.sc-node{animation:scNodeAppear .35s cubic-bezier(.34,1.56,.64,1) both}.sc-legend-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:3px}.sc-legend-dot--online{background:var(--success)}.sc-legend-dot--offline{background:var(--error)}.sc-legend-dot--unknown{background:var(--text-secondary);opacity:.5}.sc-panel{width:0;flex-shrink:0;background:var(--surface);border:1px solid transparent;border-radius:var(--radius-lg);overflow:hidden;box-shadow:none;transition:width .36s cubic-bezier(.34,1.4,.64,1),border-color .36s,box-shadow .36s,margin-left .36s}.sc-panel.sc-panel--open{width:20%;border-color:#a6b4c840;box-shadow:var(--neu-out);margin-left:var(--sp-3)}.sc-panel-inner{overflow-y:auto;position:relative;padding:var(--sp-5);opacity:0;transform:scale(.96);transition:opacity .2s ease .13s,transform .2s ease .13s}.sc-panel--open .sc-panel-inner{opacity:1;transform:scale(1)}.sc-panel-close{position:absolute;top:12px;right:12px;width:28px;height:28px;border:none;border-radius:50%;background:var(--surface);color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:4px 4px 8px #a6b4c8cc,-2px -2px 6px #fff}.sc-panel-close:hover{box-shadow:6px 6px 12px #a6b4c8cc,-4px -4px 10px #fff}.sc-panel-content{display:flex;flex-direction:column;gap:var(--sp-3_5);padding-top:var(--sp-1)}.sc-panel-title{font-size:var(--text-md);font-weight:700;color:var(--text-primary);padding-right:var(--sp-8)}.sc-panel-subtitle{font-size:var(--text-xs);color:var(--text-secondary);margin-top:-10px}.sc-relay-status{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);font-size:var(--text-xs)}.sc-relay-status--online{background:#22c55e1f;color:#15803d}.sc-relay-status--offline{background:#ef44441f;color:#b91c1c}.sc-relay-status--unknown{background:var(--surface-raised);color:var(--text-secondary)}.sc-relay-status__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sc-relay-status--online .sc-relay-status__dot{background:#22c55e;box-shadow:0 0 0 2px #22c55e4d}.sc-relay-status--offline .sc-relay-status__dot{background:#ef4444;box-shadow:0 0 0 2px #ef44444d}.sc-relay-status--unknown .sc-relay-status__dot{background:var(--text-tertiary)}.sc-relay-status__label{flex:1;font-weight:500}.sc-relay-status__time{color:inherit;opacity:.7;white-space:nowrap}.sc-warp-status{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);font-size:var(--text-xs);flex-wrap:wrap}.sc-warp-status--active{background:#6366f11a;color:#4338ca}.sc-warp-status--inactive{background:#f59e0b1a;color:#92400e}.sc-warp-status--unknown{background:var(--surface-raised);color:var(--text-secondary)}.sc-warp-status__icon{font-size:14px;flex-shrink:0;line-height:1.4}.sc-warp-status__label{flex:1;font-weight:500;min-width:0}.sc-warp-status__hint{width:100%;font-size:10px;opacity:.75;font-family:var(--font-mono, monospace);padding-left:22px}.sc-relay-ai{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);background:var(--surface-raised);font-size:var(--text-xs);flex-wrap:wrap}.sc-relay-ai__badge{flex-shrink:0;font-weight:700}.sc-relay-ai__badge--ok{color:#276749}.sc-relay-ai__badge--err{color:#9b2335}.sc-relay-ai__meta{flex:1;min-width:0;color:var(--text-secondary)}.sc-relay-ai__time{flex-shrink:0;font-size:10px;color:var(--text-secondary);opacity:.7}.sc-panel-row{display:flex;gap:var(--sp-4);align-items:flex-end}.sc-panel-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.sc-panel-meta{font-size:var(--text-xxs);color:var(--text-secondary);opacity:.5}.sc-rotate-result{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--radius-sm);background:#48bb7814;border:1px solid rgba(72,187,120,.3)}.sc-rotate-label{font-size:var(--text-xxs);font-weight:600;color:#276749}.sc-rotate-token{font-family:monospace;font-size:var(--text-xxs);word-break:break-all;color:var(--text-primary);background:var(--bg-secondary);padding:6px 8px;border-radius:var(--radius-s);border:1px solid var(--border-default)}.sc-rotate-hint{font-size:var(--text-xxs);color:var(--text-secondary);line-height:1.5}.sc-panel-models{display:flex;flex-wrap:wrap;gap:var(--sp-1_5)}.sc-panel-danger{margin-top:var(--sp-2);padding-top:var(--sp-3_5);border-top:1px solid rgba(166,180,200,.2)}.sc-delete-link{background:none;border:none;color:var(--error);font-size:var(--text-xs);cursor:pointer;padding:0;text-decoration:underline;opacity:.7}.sc-delete-link:hover{opacity:1}.sc-delete-confirm{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.sc-delete-confirm span{font-size:var(--text-xs);color:var(--text-secondary)}.sc-input-narrow{max-width:90px}.sc-guide{border-radius:var(--radius-base);background:var(--surface);box-shadow:var(--neu-in, inset 3px 3px 6px rgba(166, 180, 200, .5), inset -2px -2px 5px #FFFFFF);overflow:hidden}.sc-guide-toggle{width:100%;display:flex;align-items:center;gap:7px;padding:10px 14px;border:none;background:transparent;cursor:pointer;font-size:var(--text-xs);font-weight:600;color:var(--purple);text-align:left}.sc-guide-toggle svg:first-child{width:14px;height:14px;flex-shrink:0}.sc-guide-toggle:hover{color:var(--blue)}.sc-guide-chevron{width:14px;height:14px;margin-left:auto;flex-shrink:0;transition:transform .2s ease}.sc-guide-chevron--open{transform:rotate(180deg)}.sc-guide-body{padding:0 14px 14px;display:flex;flex-direction:column;gap:var(--sp-3)}.sc-guide-step{display:flex;gap:var(--sp-2_5);align-items:flex-start}.sc-guide-num{flex-shrink:0;width:20px;height:20px;border-radius:50%;background:#7b81be1f;color:var(--purple);font-size:var(--text-2xs);font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:1px}.sc-guide-step-title{font-size:var(--text-xs);font-weight:700;color:var(--text-primary);margin-bottom:3px}.sc-guide-step-desc{font-size:var(--text-xxs);color:var(--text-secondary);line-height:1.5}.sc-guide-step-desc code{background:#7b81be1a;color:var(--purple);padding:1px 5px;border-radius:var(--radius-xs);font-size:var(--text-2xs)}.sc-guide-code{font-family:SF Mono,Fira Code,monospace;font-size:var(--text-2xs);background:#2d37480f;color:var(--text-primary);padding:7px 10px;border-radius:var(--radius-s);line-height:1.8;white-space:pre-wrap;word-break:break-all;margin-bottom:var(--sp-1)}.sc-guide-step-hint{font-size:var(--text-2xs);color:var(--text-secondary);opacity:.7;line-height:1.5}.sc-guide-step-hint em{font-style:normal;color:var(--purple)}.sc-packages{margin-top:var(--sp-6);padding:20px 24px;background:var(--bg-primary);border-top:1px solid var(--border-default)}.sc-packages-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}.sc-packages-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);letter-spacing:.02em}.sc-packages-empty{font-size:var(--text-sm);color:var(--text-secondary);padding:12px 0}.sc-pkg-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.sc-pkg-table th{text-align:left;padding:6px 8px;font-size:var(--text-xxs);font-weight:500;color:var(--text-secondary);border-bottom:1px solid var(--border-default);white-space:nowrap}.sc-pkg-table td{padding:7px 8px;border-bottom:1px solid var(--border-default);vertical-align:middle;color:var(--text-primary)}.sc-pkg-table tbody tr:last-child td{border-bottom:none}.sc-pkg-row{transition:background .15s}.sc-pkg-row:hover{background:var(--bg-secondary)}.sc-pkg-row--inactive{opacity:.5}.sc-pkg-row--edit td{background:var(--bg-secondary)}.sc-pkg-row--add td{background:#7b81be0a}.sc-pkg-name{font-weight:500}.sc-pkg-narrow{max-width:72px}.sc-pkg-empty-row{text-align:center;color:var(--text-secondary);padding:20px!important}.sc-pkg-badge{display:inline-block;padding:2px 7px;border-radius:var(--radius-base);font-size:var(--text-2xs);font-weight:500}.sc-pkg-badge--on{background:#4ade8026;color:var(--success)}.sc-pkg-badge--off{background:var(--bg-secondary);color:var(--text-secondary)}.sc-pkg-actions{display:flex;gap:var(--sp-1);align-items:center;white-space:nowrap}.sc-pkg-btn{background:none;border:none;cursor:pointer;padding:3px 6px;border-radius:var(--radius-xs);font-size:var(--text-sm);color:var(--text-secondary);transition:color .15s,background .15s}.sc-pkg-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.sc-pkg-btn--del:hover{color:var(--error)}.sc-routes{display:flex;flex-direction:column;gap:var(--sp-2)}.sc-routes-note{font-size:var(--text-xxs);color:var(--text-tertiary);padding:6px 8px;background:var(--surface-inset);border-radius:var(--radius-s);line-height:1.4}.sc-routes-header{display:flex;align-items:center;justify-content:space-between}.sc-routes-header-btns{display:flex;gap:2px}.sc-routes-count{font-size:var(--text-xxs);font-weight:600;color:var(--text-secondary)}.sc-routes-search-wrap{position:relative;display:flex;align-items:center}.sc-routes-search{width:100%;padding:6px 28px 6px 10px;font-size:var(--text-xs);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-inset);color:var(--text-primary);outline:none;transition:border-color .15s}.sc-routes-search::placeholder{color:var(--text-tertiary)}.sc-routes-search:focus{border-color:var(--purple)}.sc-routes-search-clear{position:absolute;right:7px;background:none;border:none;cursor:pointer;font-size:var(--text-2xs);color:var(--text-tertiary);padding:var(--sp-0_5);line-height:1}.sc-routes-search-clear:hover{color:var(--text-primary)}.sc-routes-history{display:flex;flex-wrap:wrap;gap:5px}.sc-routes-history-chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px 8px;border-radius:var(--radius-base);background:#7b81be1a;color:var(--purple);font-size:var(--text-xxs);cursor:pointer;transition:background .15s}.sc-routes-history-chip:hover{background:#7b81be33}.sc-routes-history-del{background:none;border:none;cursor:pointer;font-size:var(--text-3xs);color:var(--purple);opacity:.5;padding:0;line-height:1}.sc-routes-history-del:hover{opacity:1}.sc-routes-list{border:1px solid var(--border-default);border-radius:var(--radius-sm);overflow:hidden;max-height:220px;overflow-y:auto}.sc-routes-item{display:flex;align-items:center;justify-content:space-between;padding:3px 8px;border-bottom:1px solid var(--border-default);font-size:var(--text-xxs)}.sc-routes-item:last-child{border-bottom:none}.sc-routes-item:hover{background:var(--bg-hover)}.sc-routes-item-val{font-family:monospace;color:var(--text-primary)}.sc-routes-item-del{background:none;border:none;cursor:pointer;font-size:var(--text-2xs);color:var(--text-tertiary);padding:2px 4px;flex-shrink:0;opacity:0;transition:opacity .15s,color .15s}.sc-routes-item:hover .sc-routes-item-del{opacity:1}.sc-routes-item-del:hover{color:var(--error)}.sc-routes-item-label{color:var(--text-tertiary);font-size:var(--text-xxs);font-family:inherit}.sc-routes-hint-add{padding:2px 10px 4px;font-size:var(--text-2xs);color:var(--text-tertiary)}.sc-routes-hint-add code{font-family:monospace;opacity:.8}.sc-routes-more{padding:6px 10px;font-size:var(--text-xxs);color:var(--text-tertiary);text-align:center;border-top:1px solid var(--border-default);background:var(--bg-secondary);cursor:pointer}.sc-routes-more:hover{color:var(--blue)}.sc-routes-empty{padding:var(--sp-2_5);font-size:var(--text-xxs);color:var(--text-tertiary);text-align:center}.sc-routes-lookup{border-top:1px solid var(--border-default);padding:6px 10px;display:flex;flex-direction:column;gap:var(--sp-1);background:var(--bg-secondary)}.sc-routes-lookup-status{font-size:var(--text-xxs);color:var(--text-tertiary)}.sc-routes-lookup-item{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-xs);font-family:monospace;color:var(--text-secondary)}.sc-awg{border-radius:var(--radius-base);border:1px solid var(--border-default);overflow:hidden}.sc-awg-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface-inset)}.sc-awg-title{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-xs);font-weight:600;color:var(--purple)}.sc-awg-icon{width:14px;height:14px;flex-shrink:0}.sc-awg-body{padding:12px 14px;display:flex;flex-direction:column;gap:var(--sp-2_5)}.sc-awg-hint{font-size:var(--text-xxs);color:var(--text-secondary);line-height:1.5}.sc-awg-actions{display:flex;gap:var(--sp-1_5)}.sc-awg-snippet-wrap{position:relative}.sc-awg-snippet{font-family:SF Mono,Fira Code,monospace;font-size:var(--text-2xs);background:#2d37480f;color:var(--text-primary);padding:10px 12px;border-radius:var(--radius-s);line-height:1.7;white-space:pre;overflow-x:auto;margin:0}.sc-awg-copy{position:absolute;top:6px;right:6px;background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-xs);padding:2px 8px;font-size:var(--text-2xs);cursor:pointer;color:var(--text-secondary)}.sc-awg-copy:hover{color:var(--purple);border-color:var(--purple)}.sc-wgeu{border-top:1px solid var(--border-default);margin-top:var(--sp-4);padding-top:var(--sp-3_5);display:flex;flex-direction:column;gap:var(--sp-2_5)}.sc-wgeu-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.sc-wgeu-title{font-size:var(--text-xs);font-weight:600;color:var(--text-primary);letter-spacing:.02em}.sc-wgeu-status-btn{font-size:var(--text-xxs)!important;padding:2px 10px!important;border-radius:20px!important;color:var(--text-secondary)}.sc-wgeu-status-btn--up{color:var(--success, #4caf50)!important;border-color:var(--success, #4caf50)!important}.sc-wgeu-status-btn--down{color:var(--error, #f44336)!important;border-color:var(--error, #f44336)!important}.sc-wgeu-info{display:flex;flex-direction:column;gap:2px;font-size:var(--text-xxs);color:var(--text-secondary);background:var(--surface-raised, var(--surface));border-radius:var(--radius-s);padding:6px 10px}.sc-wgeu-error{color:var(--error, #f44336)}.sc-awg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:var(--sp-2)}.sc-advanced{border:1px solid var(--border-default);border-radius:var(--radius-base);margin-top:var(--sp-2);overflow:hidden}.sc-advanced summary.sc-advanced-toggle{cursor:pointer;padding:7px 12px;font-size:var(--text-xxs);color:var(--text-secondary);background:var(--surface-inset);-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:var(--sp-1)}.sc-advanced summary.sc-advanced-toggle:before{content:"▸";font-size:10px;transition:transform .15s}.sc-advanced[open] summary.sc-advanced-toggle:before{transform:rotate(90deg)}.sc-advanced-body{padding:12px 12px 8px}.sc-wg-section{border-top:none}.sc-wg-icon{width:14px;height:14px;margin-right:var(--sp-1_5);vertical-align:middle;opacity:.6}.sc-wg-add-row{display:flex;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-3)}.sc-wg-add-row input{flex:1}.sc-wg-list{display:flex;flex-direction:column;gap:var(--sp-2)}.sc-wg-card{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--bg-secondary);transition:border-color .15s}.sc-wg-card:hover{border-color:var(--purple)}.sc-wg-card--inactive{opacity:.5}.sc-wg-card-info{flex:1;min-width:0}.sc-wg-card-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);margin-bottom:var(--sp-0_5)}.sc-wg-card-meta{display:flex;gap:var(--sp-2_5);font-size:var(--text-xxs);color:var(--text-secondary)}.sc-wg-ip{font-family:monospace;color:var(--purple)}.sc-wg-pubkey{font-family:monospace;opacity:.6}.sc-wg-stats{display:flex;gap:var(--sp-2_5);font-size:var(--text-2xs);color:var(--text-secondary);margin-top:3px;font-family:monospace}.sc-wg-stats .sc-wg-stats-hs{opacity:.7}.sc-wg-card-actions{display:flex;align-items:center;gap:var(--sp-1);flex-shrink:0}.sc-wg-btn{display:flex;align-items:center;gap:var(--sp-1);background:none;border:1px solid var(--border-default);border-radius:var(--radius-s);padding:4px 8px;cursor:pointer;font-size:var(--text-xxs);color:var(--text-secondary);transition:all .15s}.sc-wg-btn svg{width:13px;height:13px}.sc-wg-btn:hover{border-color:var(--purple);color:var(--purple);background:#7b81be14}.sc-wg-btn--del:hover{border-color:var(--error);color:var(--error);background:#ef444414}.sc-wg-btn--split{border-color:var(--accent);color:var(--accent);opacity:.7}.sc-wg-btn--split:hover{opacity:1;background:rgba(var(--accent-rgb, 99, 179, 130),.08)}.sc-wg-btn--reality{border-color:var(--purple);color:var(--purple);opacity:.8}.sc-wg-btn--reality:hover{opacity:1;background:#7b81be1f}.sc-wg-btn--vless{border-color:var(--info, #60a5fa);color:var(--info, #60a5fa);opacity:.8}.sc-wg-btn--vless:hover{opacity:1;background:#60a5fa1a}.sc-reality-hint--empty{color:var(--text-secondary)}.sc-wg-qr-modal{background:var(--bg-primary);border-radius:var(--radius-lg);padding:28px 32px;display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);box-shadow:var(--neu-lg);max-width:340px;width:90%}.sc-wg-qr-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.sc-wg-qr-img{width:320px;height:320px;border-radius:var(--radius-sm);border:1px solid var(--border-default)}.sc-wg-qr-loading{display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);color:var(--text-tertiary);background:var(--surface-inset)}.sc-wg-qr-hint{font-size:var(--text-xxs);color:var(--text-secondary);text-align:center;line-height:1.5}.sc-models-section{border-top:1px solid var(--border-default);margin-top:var(--sp-3_5);padding-top:var(--sp-3)}.sc-models-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-2)}.sc-models-title{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.sc-model-presets{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-bottom:var(--sp-2)}.sc-model-row{display:flex;align-items:center;gap:var(--sp-2);padding:6px 8px;border-radius:var(--radius-s);border:1px solid var(--border-default);background:var(--bg-secondary);margin-bottom:var(--sp-1);transition:border-color .15s}.sc-model-row:last-child{margin-bottom:0}.sc-model-row:hover{border-color:var(--purple)}.sc-model-row-info{flex:1;min-width:0;display:flex;align-items:baseline;gap:var(--sp-1_5);overflow:hidden}.sc-model-row-id{font-size:var(--text-xs);font-family:monospace;color:var(--text-primary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-model-row-name{font-size:var(--text-xxs);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.sc-model-row-badges{display:flex;gap:3px;flex-shrink:0}.sc-model-badge{font-size:var(--text-2xs)!important;font-weight:600}.sc-model-badge--default{color:var(--purple)!important;border-color:var(--purple)!important;background:#7b81be1f!important}.sc-model-badge--available{color:var(--success, #4caf50)!important;border-color:var(--success, #4caf50)!important;background:#4caf501a!important}.sc-model-badge--off{opacity:.5}.sc-model-row-actions{display:flex;gap:3px;flex-shrink:0}.sc-model-btn--del:hover{color:var(--error)!important;background:#ef444414!important}.sc-model-edit{background:var(--surface-inset);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2)}.sc-model-edit-costs{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-1_5)}.sc-model-edit-actions{display:flex;gap:var(--sp-1_5);justify-content:flex-end}.sc-models-empty{font-size:var(--text-xxs);color:var(--text-tertiary);text-align:center;padding:var(--sp-2_5);background:var(--surface-inset);border-radius:var(--radius-s);border:1px dashed var(--border-default)}.admin-editable-cell{cursor:pointer;border-bottom:1px dashed var(--border-secondary)}.admin-editable-cell:hover{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.admin-inline-input{height:26px;padding:0 var(--sp-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-inset);color:var(--text-primary);font-size:var(--text-xxs);width:200px}.admin-inline-input:focus{outline:none;border-color:var(--accent-primary)}.admin-wt-list{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-3)}.admin-wt-card{border:1px solid var(--border-default);border-radius:var(--radius-m);background:var(--surface-default);padding:var(--sp-3)}.admin-wt-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3)}.admin-wt-titles{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.admin-wt-sub{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.admin-wt-edit{display:flex;flex-direction:column;gap:var(--sp-2_5);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border-secondary)}.admin-wt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-2)}.admin-wt-field{display:flex;flex-direction:column;gap:var(--sp-1)}.admin-wt-label{font-size:var(--text-xxs);color:var(--text-secondary)}.admin-wt-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}@keyframes nw-err-digit-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes nw-err-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes nw-grain-shimmer{0%{opacity:.09}to{opacity:.17}}.nw-error-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;flex-direction:column;overflow:hidden;background:url(/staticfiles/images/error-404.webp) center/cover no-repeat,linear-gradient(160deg,#9ecfec,#78c0eb)}.nw-error-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(160deg,#0000000d,#00000047);pointer-events:none;z-index:1}.nw-error-grain{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23g)' opacity='1'/%3E%3C/svg%3E");background-size:200px 200px;opacity:.12;mix-blend-mode:overlay;animation:nw-grain-shimmer 3s ease-in-out infinite alternate}.nw-error-nav{position:relative;z-index:5;padding:28px 48px}.nw-error-logo{font-size:var(--text-xl);font-weight:800;color:#fffffff2;text-decoration:none;letter-spacing:-.01em}.nw-error-logo .logo-n{color:#ffffff80}.nw-error-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 40px 100px;position:relative;z-index:4}.nw-error-code{font-size:clamp(96px,16vw,176px);font-weight:100;letter-spacing:.18em;color:#ffffffe6;line-height:1;margin-bottom:var(--sp-6);text-shadow:2px 2px 8px rgba(0,0,0,.12),-1px -1px 4px rgba(255,255,255,.2)}.nw-error-code span{display:inline-block;opacity:0;animation:nw-err-digit-in .55s ease forwards}.nw-error-code .ed-1{animation-delay:.06s}.nw-error-code .ed-2{animation-delay:.16s}.nw-error-code .ed-3{animation-delay:.26s}.nw-error-title{font-size:clamp(18px,2.4vw,26px);font-weight:600;color:#ffffffeb;margin:0 0 12px;opacity:0;animation:nw-err-fade-up .55s ease .42s forwards}.nw-error-desc{font-size:clamp(13px,1.4vw,15px);color:#ffffffb3;line-height:1.72;margin-bottom:var(--sp-10);max-width:420px;font-weight:300;opacity:0;animation:nw-err-fade-up .55s ease .55s forwards}.nw-error-actions{display:flex;gap:var(--sp-3);flex-wrap:wrap;justify-content:center;opacity:0;animation:nw-err-fade-up .55s ease .68s forwards}.nw-error-btn{display:inline-flex;align-items:center;gap:var(--sp-1_5);padding:13px 30px;border-radius:50px;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease}.nw-error-btn:hover{transform:translateY(-2px)}.nw-error-btn.nw-error-btn--primary{background:#ffffff38;color:#fffffff2;border:1px solid rgba(255,255,255,.38);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.nw-error-btn.nw-error-btn--primary:hover{background:#ffffff52}.nw-error-btn.nw-error-btn--ghost{background:transparent;color:#ffffffb8;border:1px solid rgba(255,255,255,.24)}.nw-error-btn.nw-error-btn--ghost:hover{color:#ffffffeb;border-color:#ffffff6b}.aink-btn{position:relative;width:var(--aink-size, 36px);height:var(--aink-size, 36px);border-radius:50%;overflow:hidden;cursor:pointer;flex-shrink:0;transition:box-shadow var(--duration-base) var(--ease-default)}.aink-btn canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.aink-btn:hover{box-shadow:var(--neu-sm)}.aink-panel-avatar{position:relative;width:40px;height:40px;flex-shrink:0}.aink-emotion-player{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:50%;object-fit:cover;z-index:2}.aink-panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay, 300)}.aink-panel{position:fixed;top:0;left:var(--sidebar-width);bottom:0;width:360px;background:var(--surface);box-shadow:var(--neu-lg);display:flex;flex-direction:column;z-index:var(--z-overlay, 300);border-right:1px solid var(--border);min-width:280px;max-width:640px}.aink-resize-handle{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;z-index:1}.aink-resize-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:32px;border-radius:1px;background:var(--border);opacity:0;transition:opacity var(--duration-fast)}.aink-resize-handle:hover:after{opacity:1}.aink-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);flex-shrink:0}.aink-panel-title{display:flex;align-items:center;gap:var(--sp-3)}.aink-panel-title-text{display:flex;flex-direction:column;gap:2px}.aink-panel-name{font-size:var(--text-sm);font-weight:700;color:var(--text-primary);letter-spacing:.04em}.aink-panel-status{font-size:var(--text-xs);color:var(--text-secondary)}.aink-panel-provider{display:flex;flex-direction:column;gap:1px;font-size:var(--text-xxs, 10px);color:var(--text-tertiary, var(--text-secondary));opacity:.6;font-family:var(--font-mono, monospace);cursor:default}.aink-panel-provider-limits{font-size:var(--text-3xs);opacity:.75;letter-spacing:.01em}.aink-panel-credits{font-size:var(--text-xxs, 10px);color:var(--text-tertiary, var(--text-secondary));opacity:.7}.aink-panel-credits--low{color:var(--red, #ef4444);opacity:1;font-weight:600}.aink-panel-actions{display:flex;align-items:center;gap:var(--sp-1)}.aink-msg--assistant:hover .aink-copy-btn,.aink-msg--assistant:hover .aink-msg-time,.aink-msg--user:hover .aink-msg-time{opacity:1}.aink-msg-meta{display:flex;align-items:center;gap:var(--sp-1);margin-top:1px;align-self:flex-start}.aink-msg-time{font-size:var(--text-xxs, 10px);color:var(--text-tertiary, var(--text-secondary));opacity:0;transition:opacity var(--duration-fast) var(--ease-default);white-space:nowrap;align-self:flex-end;padding:0 2px}.aink-copy-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;margin-top:var(--sp-0_5);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary, var(--text-secondary));cursor:pointer;opacity:0;transition:opacity var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default);align-self:flex-start;flex-shrink:0}.aink-copy-btn svg{width:12px;height:12px}.aink-copy-btn:hover{color:var(--text-secondary)}.aink-copy-btn--copied{opacity:1!important;color:var(--green, #22c55e)!important}.aink-messages{flex:1;overflow-y:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.aink-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:var(--text-sm);text-align:center;padding:var(--sp-8)}.aink-msg{display:flex;flex-direction:column}.aink-msg--user{align-items:flex-end}.aink-msg--user .aink-msg-bubble{background:var(--aink-user-bubble, var(--blue));color:var(--text-on-accent);border-radius:var(--radius-md) var(--radius-md) var(--radius-xs) var(--radius-md)}.aink-msg--assistant{align-items:flex-start}.aink-msg--assistant .aink-msg-bubble{background:color-mix(in srgb,var(--surface) 70%,var(--shadow-dark) 30%);color:var(--text-primary);border-radius:var(--radius-md) var(--radius-md) var(--radius-md) var(--radius-xs);box-shadow:var(--neu-sm)}.aink-msg-bubble{max-width:88%;padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);line-height:1.55;white-space:pre-wrap;word-break:break-word}.aink-msg-bubble--streaming:after{content:"▋";animation:aink-cursor .8s step-start infinite;opacity:.7}@keyframes aink-cursor{50%{opacity:0}}.aink-suggestions{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:0 var(--sp-4) var(--sp-3);flex-shrink:0}.aink-suggestion-chip{padding:var(--sp-1) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-full, 999px);background:var(--surface-raised, var(--surface));color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default);white-space:nowrap}.aink-suggestion-chip:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}.aink-suggestion-chip:disabled{opacity:.4;cursor:not-allowed}.aink-input-area{display:flex;align-items:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);flex-shrink:0}.aink-input{flex:1;resize:none;border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);font-family:inherit;background:var(--surface-raised, var(--surface));color:var(--text-primary);line-height:1.5;outline:none;transition:border-color var(--duration-fast) var(--ease-default)}.aink-input:focus{border-color:var(--blue)}.aink-input::placeholder{color:var(--text-tertiary, var(--text-secondary))}.aink-send-btn{display:flex;align-items:center;justify-content:center;width:var(--sp-10);height:var(--sp-10);border:none;border-radius:var(--radius-md);background:var(--blue);color:var(--text-on-accent);cursor:pointer;flex-shrink:0;transition:opacity var(--duration-fast) var(--ease-default),background var(--duration-fast) var(--ease-default)}.aink-send-btn svg{width:18px;height:18px}.aink-send-btn:disabled{opacity:.4;cursor:not-allowed}.aink-send-btn:not(:disabled):hover{opacity:.85}.aink-msg-bubble--md{white-space:normal}.aink-msg-bubble--md p{margin:0 0 var(--sp-2)}.aink-msg-bubble--md p:last-child{margin-bottom:0}.aink-msg-bubble--md ul,.aink-msg-bubble--md ol{margin:0 0 var(--sp-2);padding-left:var(--sp-5)}.aink-msg-bubble--md ul:last-child,.aink-msg-bubble--md ol:last-child{margin-bottom:0}.aink-msg-bubble--md li{margin-bottom:var(--sp-0_5);line-height:1.5}.aink-msg-bubble--md code{font-family:var(--font-mono, monospace);font-size:.85em;padding:1px 5px;border-radius:var(--radius-xs, 3px);background:color-mix(in srgb,var(--surface) 60%,var(--shadow-dark) 40%);color:var(--text-primary);word-break:break-all}.aink-msg-bubble--md pre{margin:var(--sp-2) 0;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface) 50%,var(--shadow-dark) 50%);overflow-x:auto;font-size:var(--text-xs);line-height:1.5}.aink-msg-bubble--md pre:last-child{margin-bottom:0}.aink-msg-bubble--md pre code{padding:0;background:transparent;font-size:inherit;word-break:normal}.aink-msg-bubble--md strong{font-weight:700}.aink-msg-bubble--md em{font-style:italic}.aink-msg-bubble--md hr{border:none;border-top:1px solid var(--border);margin:var(--sp-2) 0}.aink-msg-bubble--md a{color:var(--blue);text-decoration:underline}.aink-msg-bubble--md a:hover{opacity:.8}.aink-msg-bubble--md blockquote{margin:var(--sp-1) 0;padding:var(--sp-1) var(--sp-3);border-left:3px solid var(--border);color:var(--text-secondary);font-style:italic}.aink-msg-bubble--md h1,.aink-msg-bubble--md h2,.aink-msg-bubble--md h3{font-weight:700;margin:var(--sp-2) 0 var(--sp-1);line-height:1.3}.aink-msg-bubble--md h1:first-child,.aink-msg-bubble--md h2:first-child,.aink-msg-bubble--md h3:first-child{margin-top:0}.aink-msg-bubble--md h1{font-size:1.1em}.aink-msg-bubble--md h2{font-size:1.05em}.aink-msg-bubble--md h3{font-size:1em}.aink-tool-card{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);font-size:var(--text-xs);border:1px solid var(--border);background:var(--surface-raised, var(--surface));color:var(--text-secondary);align-self:flex-start;max-width:92%}.aink-tool-card--pending .aink-tool-card-icon svg{animation:aink-spin 1s linear infinite}.aink-tool-card--error{opacity:.6}.aink-tool-card-icon{display:flex;align-items:center;flex-shrink:0;margin-top:var(--sp-0_5)}.aink-tool-card-icon svg{width:14px;height:14px}.aink-tool-card-body{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.aink-tool-card-label{line-height:1.4;font-weight:500;color:var(--text-primary)}.aink-tool-card-summary{color:var(--text-secondary);line-height:1.4}.aink-task-list{list-style:none;margin:var(--sp-1) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--sp-1)}.aink-task-item{display:flex;flex-direction:column;gap:3px;padding:5px var(--sp-2);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s;min-width:0}.aink-task-item:hover{background:var(--surface-hover, var(--bg-hover))}.aink-task-item:hover .aink-task-title{color:var(--purple)}.aink-task-title{font-size:var(--text-xs);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.aink-task-meta{display:flex;align-items:center;gap:5px;font-size:var(--text-2xs);color:var(--text-tertiary);line-height:1}.aink-task-id{font-family:var(--font-mono);font-weight:500;color:var(--text-tertiary);flex-shrink:0}.aink-task-status{padding:1px 5px;border-radius:var(--radius-sm);background:var(--surface-sunken, var(--bg-secondary));flex-shrink:0}.aink-task-due{color:var(--text-tertiary)}@keyframes aink-spin{to{transform:rotate(360deg)}}.aink-confirm-card{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--radius-md);font-size:var(--text-xs);border:1px solid var(--border);background:var(--surface-raised, var(--surface));align-self:flex-start;max-width:88%}.aink-confirm-card--executing .aink-confirm-card-icon svg{animation:aink-spin 1s linear infinite}.aink-confirm-card--cancelled{opacity:.6}.aink-confirm-card-icon{display:flex;align-items:center;flex-shrink:0;margin-top:1px}.aink-confirm-card-icon svg{width:14px;height:14px}.aink-confirm-card-body{display:flex;flex-direction:column;gap:var(--sp-2);flex:1}.aink-confirm-card-label{line-height:1.4}.aink-confirm-card-actions{display:flex;align-items:center;gap:var(--sp-2)}.admin-loading-state{padding:var(--sp-6)}.aink-emotions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-3);padding:var(--sp-1) 0 var(--sp-4)}.aink-emotion-card{display:flex;flex-direction:column;gap:var(--sp-2)}.aink-emotion-card-header{display:flex;flex-direction:column;gap:var(--sp-1)}.aink-emotion-card-title{display:flex;align-items:center;gap:var(--sp-2)}.aink-emotion-card-desc{font-size:var(--text-xxs);line-height:1.35}.aink-prompt-hint{font-size:var(--text-xxs);flex:1}.aink-emotion-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:var(--dot-color, var(--text-tertiary))}.aink-emotion-videos{display:flex;flex-wrap:wrap;gap:var(--sp-1);min-height:48px}.aink-emotion-video-item{position:relative;width:64px;height:64px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;background:var(--surface-inset)}.aink-emotion-video-item:hover .aink-emotion-video-delete{opacity:1}.aink-emotion-video-thumb{width:100%;height:100%;object-fit:cover}.aink-emotion-video-delete{position:absolute;top:2px;right:2px;width:20px!important;height:20px!important;padding:0;opacity:0;transition:opacity var(--duration-fast);background:color-mix(in srgb,var(--surface) 80%,transparent)!important}.aink-emotion-video-delete svg{width:10px;height:10px}.aink-emotion-no-video{display:flex;align-items:center;color:var(--text-tertiary)}.aink-emotion-card-actions{display:flex;align-items:center;gap:var(--sp-2)}.aink-upload-label{flex:1;cursor:pointer}.aink-color-input{width:32px;height:32px;border:none;border-radius:var(--radius-sm);cursor:pointer;padding:0;background:transparent;flex-shrink:0}.aink-input-area{flex-wrap:wrap}.aink-attach-preview{display:flex;flex-wrap:wrap;gap:var(--sp-1_5);width:100%;padding:4px 0}.aink-attach-thumb{position:relative;width:60px;height:60px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.aink-attach-thumb img{width:100%;height:100%;object-fit:cover;display:block}.aink-attach-remove{position:absolute;top:2px;right:2px;width:16px;height:16px;font-size:var(--text-xs);line-height:1;border:none;border-radius:50%;background:#0000008c;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.aink-attach-remove:hover{background:#000c}.aink-attach-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:background var(--duration-fast)}.aink-attach-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.aink-attach-btn:disabled{opacity:.4;cursor:not-allowed}.aink-msg-images{display:flex;flex-wrap:wrap;gap:var(--sp-1_5);margin-bottom:var(--sp-1)}.aink-msg-img{max-width:180px;max-height:180px;border-radius:var(--radius-sm);object-fit:cover;display:block;border:1px solid var(--border)}.ntbl2{--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-inset-sm:inset 3px 3px 6px var(--shadow-dark),inset -3px -3px 6px var(--shadow-light);--neu-inset-md:inset 6px 6px 12px var(--shadow-dark),inset -6px -6px 12px var(--shadow-light);--purple:#7B81BE;--purple-soft:rgba(123,129,190,.12);--purple-ink:#565b8c;--blue:#6B92E5;--blue-soft:rgba(107,146,229,.12);--blue-ink:#3f63a8;--pink:#F88AB0;--pink-soft:rgba(248,138,176,.12);--pink-ink:#b15a78;--orange:#E8A040;--orange-soft:rgba(232,160,64,.14);--orange-ink:#9c6a1f;--green:#62b006;--green-soft:rgba(124,213,6,.14);--green-ink:#4e860a;--success:#62b006;--warning:#ECC94B;--error:#F56565;--error-soft:rgba(245,101,101,.14);--error-ink:#b53d3d;--gray-100:#EDF2F7;--gray-200:#E2E8F0;--gray-300:#CBD5E0;--gray-400:#A0AEC0;--gray-500:#718096;--gray-600:#4A5568;--text-primary:#1A202C;--text-secondary:#4A5568;--text-tertiary:#718096;--text-placeholder:#A0AEC0;--border-subtle:rgba(166,180,200,.18);--border-default:rgba(166,180,200,.28);--border-strong:rgba(166,180,200,.45);--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"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;--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-8:32px;--sp-10:40px;--sp-12:48px;--radius-xs:4px;--radius-s:6px;--radius-sm:8px;--radius-base:10px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--ease:cubic-bezier(.4,0,.2,1);--dur-fast:.13s;--dur:.23s;--overlay-bg:rgb(225 231 236 / 60%);--sel:var(--blue);--sel-soft:var(--blue-soft);--row-h:38px;--cell-py:var(--sp-2);--grid-v:1px solid var(--border-subtle);--grid-h:1px solid var(--border-subtle)}.ntbl2 *,.ntbl2 *:before,.ntbl2 *:after{margin:0;padding:0;box-sizing:border-box}.ntbl2{height:100%}.ntbl2{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;color:var(--text-primary);background:var(--surface);-webkit-font-smoothing:antialiased;overflow:hidden}.ntbl2 button{font-family:inherit}.ntbl2 .ic{display:inline-flex;width:16px;height:16px;flex:none;align-items:center;justify-content:center}.ntbl2 .ic svg{width:100%;height:100%;display:block}.ntbl2 .tree-tog svg{width:13px;height:13px;display:block}.ntbl2 .expand svg{width:15px;height:15px;display:block}.ntbl2 .tnum{font-variant-numeric:tabular-nums}.ntbl2 .app{display:flex;height:100vh;overflow:hidden}.ntbl2 .rail{width:52px;flex:none;background:var(--surface);display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--sp-3) 0;z-index:6}.ntbl2 .rail-logo{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--purple);color:#fff;display:grid;place-items:center;font-weight:700;font-size:var(--text-xs);box-shadow:var(--neu-sm);letter-spacing:-.02em;margin-bottom:var(--sp-2)}.ntbl2 .rail-btn{width:34px;height:34px;border:0;background:transparent;border-radius:var(--radius-s);color:var(--text-tertiary);display:grid;place-items:center;cursor:pointer;transition:all var(--dur-fast)}.ntbl2 .rail-btn:hover{background:var(--surface-raised);color:var(--text-secondary)}.ntbl2 .rail-btn.on{background:var(--surface-raised);color:var(--purple);box-shadow:var(--neu-inset-sm)}.ntbl2 .rail-sp{flex:1}.ntbl2 .rail-av{width:30px;height:30px;border-radius:var(--radius-full);background:var(--pink);color:#fff;display:grid;place-items:center;font-size:var(--text-2xs);font-weight:600;box-shadow:var(--neu-sm)}.ntbl2 .sidebar{width:236px;flex:none;background:var(--surface-raised);box-shadow:var(--neu-sm);display:flex;flex-direction:column;z-index:5;transition:margin-left var(--dur) var(--ease)}.ntbl2 .app.sb-collapsed .sidebar{margin-left:-236px}.ntbl2 .sb-head{padding:var(--sp-4) var(--sp-4) var(--sp-2);display:flex;align-items:center;gap:var(--sp-2_5)}.ntbl2 .sb-title{font-weight:600;font-size:var(--text-mid);letter-spacing:-.01em}.ntbl2 .sb-scroll{flex:1;overflow-y:auto;padding-bottom:var(--sp-3)}.ntbl2 .sb-section{padding:var(--sp-3) var(--sp-4) var(--sp-1);font-size:var(--text-2xs);letter-spacing:.07em;text-transform:uppercase;color:var(--text-tertiary);font-weight:600;display:flex;align-items:center;justify-content:space-between}.ntbl2 .sb-section .add{cursor:pointer;opacity:.6}.ntbl2 .sb-section .add:hover{opacity:1;color:var(--purple)}.ntbl2 .sb-base{margin:0 var(--sp-2)}.ntbl2 .sb-base-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2_5);border-radius:var(--radius-s);cursor:pointer;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.ntbl2 .sb-base-row:hover{background:var(--surface)}.ntbl2 .sb-base-row .chev{transition:transform var(--dur-fast);color:var(--text-tertiary)}.ntbl2 .sb-base.collapsed .chev{transform:rotate(-90deg)}.ntbl2 .sb-base.collapsed .sb-tables{display:none}.ntbl2 .sb-tables{padding-left:var(--sp-2)}.ntbl2 .sb-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2_5);margin:1px 0;border-radius:var(--radius-s);cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary);transition:background var(--dur-fast);position:relative}.ntbl2 .sb-item:hover{background:var(--surface)}.ntbl2 .sb-item.active{background:var(--purple-soft);color:var(--text-primary);font-weight:500}.ntbl2 .sb-item.active:before{content:"";position:absolute;left:-2px;top:6px;bottom:6px;width:3px;border-radius:var(--radius-full);background:var(--purple)}.ntbl2 .sb-item .ic{color:var(--text-tertiary)}.ntbl2 .sb-item.active .ic{color:var(--purple)}.ntbl2 .sb-item .count{margin-left:auto;font-size:var(--text-2xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.ntbl2 .sb-item.add-tbl{color:var(--text-tertiary)}.ntbl2 .sb-item.add-tbl:hover{color:var(--purple)}.ntbl2 .sb-foot{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border-subtle);display:flex;align-items:center;gap:var(--sp-2_5);font-size:var(--text-sm);color:var(--text-secondary)}.ntbl2 .sb-foot .who{font-weight:500;color:var(--text-secondary)}.ntbl2 .sb-foot .role{font-size:var(--text-2xs);color:var(--text-tertiary)}.ntbl2 .sb-av{width:28px;height:28px;border-radius:var(--radius-full);background:var(--blue);color:#fff;display:grid;place-items:center;font-size:var(--text-xs);font-weight:600;flex:none}.ntbl2 .main{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--surface-ink)}.ntbl2 .topbar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2_5) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.ntbl2 .crumb{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-sm);color:var(--text-tertiary)}.ntbl2 .crumb b{color:var(--text-primary);font-weight:600}.ntbl2 .crumb .sep{opacity:.5}.ntbl2 .icon-btn{width:30px;height:30px;border:0;background:transparent;border-radius:var(--radius-s);color:var(--text-tertiary);display:grid;place-items:center;cursor:pointer;transition:all var(--dur-fast)}.ntbl2 .icon-btn:hover{background:var(--surface);color:var(--text-secondary)}.ntbl2 .topbar .sp{flex:1}.ntbl2 .chip-btn{display:flex;align-items:center;gap:var(--sp-1_5);height:30px;padding:0 var(--sp-2_5);border:0;background:var(--surface-raised);box-shadow:var(--neu-sm);border-radius:var(--radius-s);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;font-weight:500;transition:all var(--dur-fast)}.ntbl2 .chip-btn:active{box-shadow:var(--neu-inset-sm)}.ntbl2 .viewbar{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1_5) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.ntbl2 .view-tab{display:flex;align-items:center;gap:var(--sp-1_5);height:28px;padding:0 var(--sp-2_5);border-radius:var(--radius-s);font-size:var(--text-sm);color:var(--text-tertiary);cursor:pointer;border:0;background:transparent;transition:all var(--dur-fast)}.ntbl2 .view-tab:hover{background:var(--surface);color:var(--text-secondary)}.ntbl2 .view-tab.active{background:var(--surface);color:var(--text-primary);font-weight:500;box-shadow:var(--neu-inset-sm)}.ntbl2 .view-tab .ic{color:currentColor;opacity:.85}.ntbl2 .view-tab.active .ic{color:var(--purple);opacity:1}.ntbl2 .add-view{color:var(--text-tertiary);height:28px;padding:0 var(--sp-2);cursor:pointer;border-radius:var(--radius-s);display:flex;align-items:center;gap:var(--sp-1);font-size:var(--text-sm);border:0;background:transparent}.ntbl2 .add-view:hover{background:var(--surface);color:var(--text-primary)}.ntbl2 .view-tab .vmark{width:13px;height:13px;color:var(--text-placeholder);margin-left:2px}.ntbl2 .view-tab.active .vmark{color:var(--blue)}.ntbl2 .vspacer{flex:1}.ntbl2 .view-meta{font-size:var(--text-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums;padding-right:var(--sp-1)}.ntbl2 .toolbar{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.ntbl2 .tb-btn{display:flex;align-items:center;gap:var(--sp-1_5);height:30px;padding:0 var(--sp-2_5);border-radius:var(--radius-s);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;border:0;background:transparent;transition:all var(--dur-fast)}.ntbl2 .tb-btn:hover{background:var(--surface);color:var(--text-primary)}.ntbl2 .tb-btn.on{background:var(--blue-soft);color:var(--blue-ink)}.ntbl2 .tb-btn .ic{opacity:.9}.ntbl2 .tb-btn .badge{background:var(--blue);color:#fff;font-size:var(--text-3xs);border-radius:var(--radius-full);padding:0 5px;min-width:16px;height:16px;display:grid;place-items:center;font-weight:600}.ntbl2 .tb-sep{width:1px;height:18px;background:var(--border-default);margin:0 var(--sp-1)}.ntbl2 .tb-search{display:flex;align-items:center;gap:var(--sp-2);background:var(--surface-inset);box-shadow:var(--neu-inset-sm);border-radius:var(--radius-s);padding:0 var(--sp-2_5);height:30px;width:208px;color:var(--text-tertiary)}.ntbl2 .tb-search input{border:0;background:transparent;outline:0;font-size:var(--text-sm);color:var(--text-primary);width:100%;font-family:var(--font-sans)}.ntbl2 .tb-search input::placeholder{color:var(--text-placeholder)}.ntbl2 .toolbar .sp{flex:1}.ntbl2 .btn-primary{display:flex;align-items:center;gap:var(--sp-1_5);background:var(--purple);color:#fff;border:0;border-radius:var(--radius-s);height:30px;padding:0 var(--sp-3);font-size:var(--text-sm);font-weight:600;cursor:pointer;box-shadow:var(--neu-sm);transition:all var(--dur-fast)}.ntbl2 .btn-primary:active{box-shadow:var(--neu-inset-sm)}.ntbl2 .fmtbar{display:none;align-items:center;gap:var(--sp-1);padding:var(--sp-1_5) var(--sp-4);border-bottom:1px solid var(--border-subtle);background:var(--surface-raised);box-shadow:var(--neu-inset-sm);min-height:42px;overflow-x:auto;scrollbar-width:thin}.ntbl2 .fmtbar::-webkit-scrollbar{height:5px}.ntbl2 .fmtbar::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}.ntbl2 .fmtbar.open{display:flex}.ntbl2 .fmtbar>*{flex:none}.ntbl2 .fmt-sep{width:1px;height:20px;background:var(--border-default);margin:0 var(--sp-1_5);flex:none}.ntbl2 .fmt-sp{flex:1}.ntbl2 .fmt-scope{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-sm);color:var(--text-secondary);padding-left:var(--sp-0_5);white-space:nowrap}.ntbl2 .fmt-scope b{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.ntbl2 .fmt-scope .muted{color:var(--text-tertiary)}.ntbl2 .fmt-scope .ic{color:var(--purple)}.ntbl2 .fmt-btn{display:flex;align-items:center;justify-content:center;gap:var(--sp-1_5);height:30px;min-width:30px;padding:0 var(--sp-1_5);border:0;background:transparent;border-radius:var(--radius-s);color:var(--text-secondary);cursor:pointer;font-size:var(--text-sm);transition:all var(--dur-fast);position:relative}.ntbl2 .fmt-btn:hover{background:var(--surface);color:var(--text-primary)}.ntbl2 .fmt-btn:active{box-shadow:var(--neu-inset-sm)}.ntbl2 .fmt-btn.on{background:var(--blue-soft);color:var(--blue-ink)}.ntbl2 .fmt-btn.glyph{font-size:var(--text-base);width:30px;padding:0;line-height:1}.ntbl2 .fmt-btn.wide{padding:0 var(--sp-2_5)}.ntbl2 .fmt-btn.ghost{color:var(--text-tertiary)}.ntbl2 .fmt-btn.ghost:hover{color:var(--text-secondary)}.ntbl2 .fmt-btn .caret{width:11px;height:11px;color:var(--text-tertiary);margin-left:-2px}.ntbl2 .swatchbtn{padding:0 var(--sp-1_5);min-width:auto}.ntbl2 .sw-ind{width:16px;height:4px;border-radius:2px;flex:none;margin-left:-2px;box-shadow:inset 0 0 0 1px var(--border-default)}.ntbl2 .fmt-size{display:flex;align-items:center;background:var(--surface-inset);box-shadow:var(--neu-inset-sm);border-radius:var(--radius-s);height:30px;padding:2px}.ntbl2 .sz-step{width:24px;height:26px;border:0;background:transparent;border-radius:var(--radius-xs);color:var(--text-tertiary);cursor:pointer;display:grid;place-items:center}.ntbl2 .sz-step:hover{background:var(--surface-raised);color:var(--text-primary)}.ntbl2 .sz-step .ic{width:13px;height:13px}.ntbl2 .sz-val{min-width:30px;height:26px;border:0;background:transparent;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);cursor:pointer;font-variant-numeric:tabular-nums;border-radius:var(--radius-xs)}.ntbl2 .sz-val:hover{background:var(--surface-raised)}.ntbl2 .fmt-pop{position:fixed;z-index:200;background:var(--surface-raised);border-radius:var(--radius-base);box-shadow:var(--neu-md);padding:var(--sp-3);border:1px solid var(--border-subtle);min-width:188px}.ntbl2 .fmt-pop .pop-h{font-size:var(--text-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);font-weight:600;margin-bottom:var(--sp-2_5)}.ntbl2 .sw-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-1_5)}.ntbl2 .sw{width:30px;height:30px;border:0;background:transparent;border-radius:var(--radius-s);cursor:pointer;display:grid;place-items:center;position:relative;box-shadow:var(--neu-sm);transition:all var(--dur-fast)}.ntbl2 .sw:hover{box-shadow:var(--neu-inset-sm)}.ntbl2 .sw.on{box-shadow:inset 0 0 0 2px var(--blue)}.ntbl2 .sw .sw-fill{width:20px;height:20px;border-radius:var(--radius-xs);box-shadow:inset 0 0 0 1px var(--border-default)}.ntbl2 .sw.sw-none .ic{color:var(--text-tertiary);width:14px;height:14px}.ntbl2 .sw .sw-chk{position:absolute;color:var(--blue-ink)}.ntbl2 .sw .sw-chk svg{width:13px;height:13px}.ntbl2 .pop-custom{margin-top:var(--sp-3);padding-top:var(--sp-2_5);border-top:1px solid var(--border-subtle)}.ntbl2 .pop-custom label{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-xs);color:var(--text-secondary)}.ntbl2 .pop-custom input[type=color]{width:40px;height:26px;border:0;background:transparent;cursor:pointer;padding:0;border-radius:var(--radius-xs)}.ntbl2 .sz-list{display:flex;flex-direction:column;gap:2px;max-height:240px;overflow:auto}.ntbl2 .sz-opt{display:flex;align-items:center;justify-content:space-between;height:30px;padding:0 var(--sp-2_5);border:0;background:transparent;border-radius:var(--radius-s);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary)}.ntbl2 .sz-opt:hover{background:var(--surface)}.ntbl2 .sz-opt.on{background:var(--blue-soft);color:var(--blue-ink);font-weight:600}.ntbl2 .sz-opt .sw-chk svg{width:13px;height:13px}.ntbl2 .fmt-btn.numbtn{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;letter-spacing:-.02em;gap:var(--sp-1);padding:0 var(--sp-1_5);min-width:auto}.ntbl2 .nf{font-family:var(--font-mono)}.ntbl2 .fmt-btn.fontbtn{gap:var(--sp-1);padding:0 var(--sp-2);min-width:auto;max-width:140px}.ntbl2 .fontbtn .font-cur{font-size:var(--text-xs);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:78px}.ntbl2 .font-opt{font-size:var(--text-sm)!important;justify-content:space-between}.ntbl2 .gr.has-wrap{height:auto;align-items:stretch}.ntbl2 .gr.has-wrap>.gcell{height:auto;min-height:var(--row-h)}.ntbl2 .gcell.wrapcell{padding-top:7px;padding-bottom:7px}.ntbl2 .gcell.wrapcell .cval{overflow:visible}.ntbl2 .gcell.wrapcell .ctext,.ntbl2 .gcell.wrapcell .ptext{white-space:normal;overflow:visible;text-overflow:clip;word-break:break-word;line-height:1.45}.ntbl2 .fmt-btn.numq{font-family:var(--font-mono);font-weight:700;font-size:var(--text-sm)}.ntbl2 .fmt-dec{display:flex;align-items:center;background:var(--surface-inset);box-shadow:var(--neu-inset-sm);border-radius:var(--radius-s);height:30px;padding:2px;gap:1px}.ntbl2 .dec-step{display:flex;align-items:center;gap:1px;height:26px;padding:0 5px;border:0;background:transparent;border-radius:var(--radius-xs);color:var(--text-tertiary);cursor:pointer}.ntbl2 .dec-step:hover{background:var(--surface-raised);color:var(--text-primary)}.ntbl2 .dec-step .dec-g{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:-.03em}.ntbl2 .dec-step .ic{width:11px;height:11px}.ntbl2 .fmt-pop .pop-sub{font-size:var(--text-2xs);letter-spacing:.05em;text-transform:uppercase;color:var(--text-tertiary);font-weight:600;margin:var(--sp-2_5) 0 var(--sp-1_5)}.ntbl2 .sw-grid.recent{grid-template-columns:repeat(8,1fr);gap:4px}.ntbl2 .sw-grid.recent .sw{width:auto;height:24px;box-shadow:var(--neu-sm)}.ntbl2 .sw-grid.recent .sw .sw-fill{width:16px;height:16px}.ntbl2 #mergeLayer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3}.ntbl2 .mergecell{position:absolute;display:flex;align-items:center;box-sizing:border-box;padding:0 var(--sp-3);background:var(--surface-ink);overflow:hidden;cursor:cell;pointer-events:auto;border-right:var(--grid-v);border-bottom:var(--grid-h)}.ntbl2 .mergecell:hover{background:var(--surface-raised)}.ntbl2 .mergecell.sel{box-shadow:inset 0 0 0 2px var(--sel);z-index:5}.ntbl2 .mergecell>.cval,.ntbl2 .mergecell>.pwrap{width:100%;min-width:0}.ntbl2 .merge-cov .cval,.ntbl2 .merge-cov .pwrap{visibility:hidden}.ntbl2.fmt-painting,.ntbl2.fmt-painting .gcell.cell{cursor:copy!important}.ntbl2 .bd-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-1)}.ntbl2 .bd-opt{display:flex;align-items:center;gap:var(--sp-2);height:32px;padding:0 var(--sp-2_5);border:0;background:transparent;border-radius:var(--radius-s);cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary);text-align:left}.ntbl2 .bd-opt:hover{background:var(--surface);color:var(--text-primary)}.ntbl2 .bd-opt .ic{color:var(--text-tertiary)}.ntbl2 .bd-opt:hover .ic{color:var(--purple)}.ntbl2 .nf-list{display:flex;flex-direction:column;gap:2px;min-width:208px}.ntbl2 .nf-opt{display:flex;align-items:center;gap:var(--sp-2);height:32px;padding:0 var(--sp-2_5);border:0;background:transparent;border-radius:var(--radius-s);cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary)}.ntbl2 .nf-opt:hover{background:var(--surface)}.ntbl2 .nf-opt.on{background:var(--blue-soft);color:var(--blue-ink)}.ntbl2 .nf-opt .nf-ex{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary)}.ntbl2 .nf-opt.on .nf-ex{color:var(--blue-ink)}.ntbl2 .nf-opt .sw-chk{margin-left:var(--sp-1);color:var(--blue-ink)}.ntbl2 .nf-opt .sw-chk svg{width:13px;height:13px}.ntbl2 .fxbar{display:flex;align-items:stretch;gap:0;height:34px;border-bottom:1px solid var(--border-subtle);background:var(--surface-ink)}.ntbl2 .app.no-fx .fxbar{display:none}.ntbl2 .namebox{width:104px;flex:none;display:flex;align-items:center;justify-content:center;gap:var(--sp-1);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);border-right:1px solid var(--border-subtle);cursor:default;-webkit-user-select:none;user-select:none}.ntbl2 .namebox .chev{color:var(--text-tertiary)}.ntbl2 .fx-mark{width:34px;flex:none;display:grid;place-items:center;font-family:var(--font-mono);font-style:italic;font-size:var(--text-sm);color:var(--text-tertiary);border-right:1px solid var(--border-subtle)}.ntbl2 .fx-input{flex:1;display:flex;align-items:center;padding:0 var(--sp-3);min-width:0}.ntbl2 .fx-input input{width:100%;border:0;background:transparent;outline:0;font-size:var(--text-sm);color:var(--text-primary);font-family:var(--font-sans)}.ntbl2 .fx-input input::placeholder{color:var(--text-placeholder)}.ntbl2 .fx-input.is-formula input{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--green-ink)}.ntbl2 .grid-wrap{flex:1;overflow:auto;position:relative;outline:0}.ntbl2 .grid{position:relative;width:max-content;min-width:100%;--col-idx-w:56px;font-size:var(--text-sm)}.ntbl2 .ghead{position:sticky;top:0;z-index:4}.ntbl2 .grow{display:flex}.ntbl2 .gcell{flex:none;display:flex;align-items:center;border-right:var(--grid-v);border-bottom:var(--grid-h);overflow:hidden}.ntbl2 .letters{height:24px;background:var(--surface)}.ntbl2 .app.no-letters .letters{display:none}.ntbl2 .letters .gcell{justify-content:center;font-size:var(--text-2xs);font-weight:600;color:var(--text-tertiary);letter-spacing:.04em;-webkit-user-select:none;user-select:none;background:var(--surface);position:relative}.ntbl2 .letters .gcell.colsel{background:var(--sel-soft);color:var(--sel)}.ntbl2 .letters .lc-idx{width:var(--col-idx-w)}.ntbl2 .letters .lc-add{width:44px;border-right:0}.ntbl2 .fields{height:36px;background:var(--surface)}.ntbl2 .fields .gcell{padding:0 var(--sp-2_5);gap:var(--sp-1_5);font-weight:600;font-size:var(--text-xs);color:var(--text-secondary);position:relative;background:var(--surface);-webkit-user-select:none;user-select:none}.ntbl2 .fields .gcell .ftype{color:var(--text-tertiary);opacity:.8}.ntbl2 .fields .gcell .fname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.ntbl2 .fields .gcell .fsort{display:inline-flex;align-items:center;gap:1px;color:var(--blue);font-weight:700;flex:none}.ntbl2 .fields .gcell .fsort .ic{width:12px;height:12px}.ntbl2 .fields .gcell .fsort .ord{font-size:var(--text-3xs);font-variant-numeric:tabular-nums}.ntbl2 .fields .gcell.filtered .ftype{color:var(--blue)}.ntbl2 .fields .gcell .fmenu{opacity:0;color:var(--text-tertiary);cursor:pointer;width:18px;height:18px;display:grid;place-items:center;border-radius:var(--radius-xs);flex:none}.ntbl2 .fields .gcell:hover .fmenu{opacity:1}.ntbl2 .fields .gcell .fmenu:hover{background:var(--surface-inset)}.ntbl2 .fields .gcell.dragging{opacity:.4}.ntbl2 .fields .gcell.colsel{background:var(--sel-soft)}.ntbl2 .fields .gcell.drop-target{box-shadow:inset 2px 0 0 var(--sel)}.ntbl2 .resz{position:absolute;top:0;right:-4px;width:9px;height:100%;cursor:col-resize;z-index:5}.ntbl2 .resz:after{content:"";position:absolute;top:0;right:4px;width:2px;height:100%;background:transparent;transition:background var(--dur-fast)}.ntbl2 .resz:hover:after,.ntbl2 .resz.active:after{background:var(--sel)}.ntbl2 .gcell.idxh{width:var(--col-idx-w);justify-content:center;gap:var(--sp-1_5);background:var(--surface)}.ntbl2 .gcell.idxh .selall{cursor:pointer}.ntbl2 .gcell.addcol{width:44px;justify-content:center;color:var(--text-tertiary);cursor:pointer;border-right:0}.ntbl2 .gcell.addcol:hover{color:var(--purple);background:var(--surface)}.ntbl2 .gbody{position:relative;user-select:none;-webkit-user-select:none}.ntbl2 .cell-editor input{user-select:text;-webkit-user-select:text}.ntbl2 .gr{display:flex;height:var(--row-h);transition:none}.ntbl2 .gr.hidden{display:none}.ntbl2 .gr .gcell{background:var(--surface-ink);color:var(--text-primary);padding:0 var(--sp-3);height:var(--row-h);align-items:center}.ntbl2 .gr:hover .gcell{background:var(--surface-raised)}.ntbl2 .gr.rowsel .gcell{background:var(--sel-soft)}.ntbl2 .gcell.idx{width:var(--col-idx-w);justify-content:center;gap:var(--sp-1);color:var(--text-tertiary);font-size:var(--text-xs);background:var(--surface);position:relative;font-variant-numeric:tabular-nums}.ntbl2 .gr:hover .gcell.idx{background:var(--surface)}.ntbl2 .gcell.idx .rownum{transition:opacity var(--dur-fast)}.ntbl2 .gcell.idx .rowcheck{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0;cursor:pointer;display:grid;place-items:center}.ntbl2 .gr:hover .gcell.idx .rownum{opacity:0}.ntbl2 .gr:hover .gcell.idx .rowcheck,.ntbl2 .gr.rowsel .gcell.idx .rowcheck{opacity:1}.ntbl2 .gr.rowsel .gcell.idx .rownum{opacity:0}.ntbl2 .gcell.primary{position:sticky;left:var(--col-idx-w);z-index:2;font-weight:500;box-shadow:1px 0 0 var(--border-subtle)}.ntbl2 .gcell.cell.primary{position:sticky}.ntbl2 .fields .gcell.primary,.ntbl2 .letters .gcell.primary{z-index:5}.ntbl2 .gcell.idx,.ntbl2 .gcell.idxh,.ntbl2 .letters .lc-idx{position:sticky;left:0;z-index:3}.ntbl2 .fields .gcell.idxh,.ntbl2 .letters .lc-idx{z-index:6}.ntbl2 .gr:hover .gcell.primary{background:var(--surface-raised)}.ntbl2 .gr.rowsel .gcell.primary{background:var(--sel-soft)}.ntbl2 .tree-tog{width:16px;height:16px;flex:none;display:grid;place-items:center;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-xs);transition:transform var(--dur-fast)}.ntbl2 .tree-tog:hover{background:var(--surface-inset);color:var(--text-secondary)}.ntbl2 .tree-tog.collapsed{transform:rotate(-90deg)}.ntbl2 .tree-tog.leaf{visibility:hidden}.ntbl2 .primary .pwrap{display:flex;align-items:center;gap:var(--sp-1);width:100%;min-width:0}.ntbl2 .primary .ptext{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.ntbl2 .gr[data-depth="1"] .primary .pwrap{padding-left:var(--sp-5)}.ntbl2 .gr[data-depth="1"] .primary .ptext{color:var(--text-secondary)}.ntbl2 .expand{margin-left:auto;opacity:0;color:var(--text-tertiary);cursor:pointer;flex:none;width:22px;height:22px;display:grid;place-items:center;border-radius:var(--radius-xs);transition:opacity var(--dur-fast)}.ntbl2 .gr:hover .expand{opacity:1}.ntbl2 .expand:hover{background:var(--surface-inset);color:var(--text-secondary)}.ntbl2 .cval{display:flex;align-items:center;gap:var(--sp-1_5);width:100%;min-width:0;overflow:hidden}.ntbl2 .cval.r{justify-content:flex-end}.ntbl2 .ctext{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .cmono{font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.ntbl2 .cplace{color:var(--text-placeholder)}.ntbl2 .gcell.ro{color:var(--text-tertiary);background:var(--surface)!important}.ntbl2 .gr:hover .gcell.ro{background:var(--surface-inset)!important}.ntbl2 .gcell.cell{cursor:cell;position:relative}.ntbl2 .gcell.range,.ntbl2 .gr:hover .gcell.range{background:var(--sel-soft)!important}.ntbl2 .gcell.active,.ntbl2 .gr:hover .gcell.active{background:var(--surface-ink)!important}.ntbl2 .gcell.editing{overflow:visible!important;z-index:20!important}.ntbl2 .gcell.filltgt{z-index:4}.ntbl2 .fillhandle{position:absolute;width:8px;height:8px;background:var(--sel);border:1.5px solid var(--surface-ink);border-radius:1px;right:-5px;bottom:-5px;cursor:crosshair;pointer-events:auto;z-index:9}.ntbl2 .fillpreview{position:absolute;pointer-events:none;z-index:7;border:1.5px dashed var(--sel);border-radius:1px}.ntbl2 .fillpreview.hidden{display:none}.ntbl2 .cell-editor{position:absolute;top:0;left:0;z-index:20;background:var(--surface-ink);box-shadow:0 0 0 2px var(--sel),var(--neu-sm);border-radius:1px;padding:0 var(--sp-3);display:flex;align-items:center;white-space:nowrap}.ntbl2 .cell-editor input,.ntbl2 .cell-editor textarea{border:0;outline:0;background:transparent;width:100%;font:inherit;letter-spacing:inherit;color:var(--text-primary);resize:none;padding:0}.ntbl2 .cell-editor.num input{font-family:var(--font-mono);font-size:var(--text-xs);text-align:right}.ntbl2 .badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:1px var(--sp-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500;line-height:1.6;white-space:nowrap}.ntbl2 .badge .dot{width:6px;height:6px;border-radius:var(--radius-full);background:currentColor;opacity:.9}.ntbl2 .b-blue{background:var(--blue-soft);color:var(--blue-ink)}.ntbl2 .b-purple{background:var(--purple-soft);color:var(--purple-ink)}.ntbl2 .b-pink{background:var(--pink-soft);color:var(--pink-ink)}.ntbl2 .b-green{background:var(--green-soft);color:var(--green-ink)}.ntbl2 .b-orange{background:var(--orange-soft);color:var(--orange-ink)}.ntbl2 .b-gray{background:var(--gray-200);color:var(--text-secondary)}.ntbl2 .b-error{background:var(--error-soft);color:var(--error-ink)}.ntbl2 .chips{display:flex;gap:var(--sp-1);flex-wrap:nowrap;overflow:hidden}.ntbl2 .cuser{display:inline-flex;align-items:center;gap:var(--sp-1_5);min-width:0}.ntbl2 .uav{width:20px;height:20px;border-radius:var(--radius-full);display:grid;place-items:center;color:#fff;font-size:var(--text-3xs);font-weight:600;flex:none}.ntbl2 .u-blue{background:var(--blue)}.ntbl2 .u-pink{background:var(--pink)}.ntbl2 .u-purple{background:var(--purple)}.ntbl2 .u-green{background:var(--green)}.ntbl2 .stars{display:inline-flex;gap:1px;color:var(--orange)}.ntbl2 .stars .off{color:var(--gray-300)}.ntbl2 .stars .ic{width:14px;height:14px}.ntbl2 .cb{width:16px;height:16px;border-radius:var(--radius-xs);border:1.5px solid var(--border-strong);display:inline-grid;place-items:center;color:transparent;cursor:pointer;transition:all var(--dur-fast)}.ntbl2 .cb.on{background:var(--green);border-color:var(--green);color:#fff}.ntbl2 .cb .ic{width:11px;height:11px}.ntbl2 .linkchip{display:inline-flex;align-items:center;gap:4px;padding:1px var(--sp-1_5);border-radius:var(--radius-xs);background:var(--surface-inset);font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap}.ntbl2 .platlink{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--text-xs);color:var(--text-secondary)}.ntbl2 .platlink .pdot{width:8px;height:8px;border-radius:2px;flex:none}.ntbl2 a.clink{color:var(--blue-ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 a.clink:hover{text-decoration:underline}.ntbl2 .attach{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:var(--radius-xs);background:var(--surface-inset);font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap}.ntbl2 .attach .ic{width:12px;height:12px}.ntbl2 .bar{height:5px;border-radius:var(--radius-full);background:var(--gray-200);width:56px;overflow:hidden;flex:none}.ntbl2 .bar>i{display:block;height:100%;background:var(--green);border-radius:var(--radius-full)}.ntbl2 .addrow{display:flex;height:var(--row-h);align-items:center;cursor:pointer;border-bottom:var(--grid-h);color:var(--text-tertiary);font-size:var(--text-sm)}.ntbl2 .addrow:hover{color:var(--purple)}.ntbl2 .addrow .idx{width:var(--col-idx-w);justify-content:center;display:flex}.ntbl2 .addrow .lbl{padding-left:var(--sp-2);display:flex;align-items:center;gap:var(--sp-1_5)}.ntbl2 .statusbar{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--border-subtle);font-size:var(--text-xs);color:var(--text-tertiary)}.ntbl2 .statusbar .agg{display:flex;align-items:center;gap:var(--sp-1)}.ntbl2 .statusbar .agg b{color:var(--text-secondary);font-weight:600;font-variant-numeric:tabular-nums}.ntbl2 .statusbar .right{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2)}.ntbl2 .ctx{position:fixed;z-index:60;min-width:208px;background:var(--surface-raised);box-shadow:var(--neu-md);border:1px solid var(--border-subtle);border-radius:var(--radius-base);padding:var(--sp-1);font-size:var(--text-sm);opacity:0;transform:scale(.97);transform-origin:top left;transition:opacity var(--dur-fast),transform var(--dur-fast);pointer-events:none}.ntbl2 .ctx.show{opacity:1;transform:scale(1);pointer-events:auto}.ntbl2 .ctx-item{display:flex;align-items:center;gap:var(--sp-2_5);padding:var(--sp-1_5) var(--sp-2_5);border-radius:var(--radius-s);cursor:pointer;color:var(--text-secondary)}.ntbl2 .ctx-item:hover{background:var(--surface)}.ntbl2 .ctx-item.on{color:var(--text-primary);font-weight:500}.ntbl2 .ctx-item .ic{color:var(--text-tertiary)}.ntbl2 .ctx-item.danger,.ntbl2 .ctx-item.danger .ic{color:var(--error-ink)}.ntbl2 .ctx-item .key{margin-left:auto;font-size:var(--text-2xs);color:var(--text-tertiary);font-family:var(--font-mono)}.ntbl2 .ctx-sep{height:1px;background:var(--border-subtle);margin:var(--sp-1) var(--sp-1)}.ntbl2 .ov-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:stretch;justify-content:flex-end;z-index:50;opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease)}.ntbl2 .ov-bg.show{opacity:1;pointer-events:auto}.ntbl2 .ov{width:560px;max-width:92vw;height:100%;background:var(--surface-raised);box-shadow:var(--neu-lg);display:flex;flex-direction:column;transform:translate(24px);transition:transform var(--dur) var(--ease)}.ntbl2 .ov-bg.show .ov{transform:none}.ntbl2 .ov-head{padding:var(--sp-5) var(--sp-6) var(--sp-3);border-bottom:1px solid var(--border-subtle)}.ntbl2 .ov-nav{display:flex;align-items:center;gap:var(--sp-1);margin-bottom:var(--sp-3)}.ntbl2 .ov-nav .sp{flex:1}.ntbl2 .ov-title{font-size:var(--text-xl);font-weight:600;letter-spacing:-.01em;line-height:1.25;border:0;background:transparent;outline:0;color:var(--text-primary);font-family:inherit;width:100%}.ntbl2 .ov-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--sp-1_5);display:flex;gap:var(--sp-3)}.ntbl2 .ov-body{flex:1;overflow-y:auto;padding:var(--sp-4) var(--sp-6) var(--sp-8)}.ntbl2 .ov-field{display:grid;grid-template-columns:148px 1fr;gap:var(--sp-3);align-items:start;padding:var(--sp-2_5) 0;border-bottom:1px solid var(--border-subtle)}.ntbl2 .ov-field>label{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);color:var(--text-tertiary);padding-top:var(--sp-1)}.ntbl2 .ov-field>label .ic{color:var(--text-placeholder)}.ntbl2 .ov-val{font-size:var(--text-sm);color:var(--text-primary);min-height:24px;display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-1_5)}.ntbl2 .ov-input{width:100%;padding:var(--sp-2) var(--sp-2_5);border-radius:var(--radius-s);border:0;background:var(--surface-inset);box-shadow:var(--neu-inset-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-sm)}.ntbl2 .ov-input:focus{outline:2px solid var(--sel);outline-offset:-1px}.ntbl2 .ov-input.mono{font-family:var(--font-mono);font-size:var(--text-xs)}.ntbl2 .ov-ro{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary)}.ntbl2 .grid-wrap::-webkit-scrollbar,.ntbl2 .sb-scroll::-webkit-scrollbar,.ntbl2 .ov-body::-webkit-scrollbar{width:11px;height:11px}.ntbl2 .grid-wrap::-webkit-scrollbar-thumb,.ntbl2 .sb-scroll::-webkit-scrollbar-thumb,.ntbl2 .ov-body::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full);border:3px solid transparent;background-clip:content-box}.ntbl2 .grid-wrap::-webkit-scrollbar-thumb:hover{background:var(--gray-400);background-clip:content-box;border:3px solid transparent}.ntbl2 .grid-wrap::-webkit-scrollbar-corner{background:transparent}.ntbl2 .toast{position:fixed;bottom:var(--sp-6);left:50%;transform:translate(-50%) translateY(8px);background:var(--gray-600);color:#fff;padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-full);font-size:var(--text-sm);box-shadow:var(--neu-md);opacity:0;pointer-events:none;transition:all var(--dur) var(--ease);z-index:70;display:flex;align-items:center;gap:var(--sp-2)}.ntbl2 .toast.show{opacity:1;transform:translate(-50%)}.ntbl2 .condbars{display:flex;flex-direction:column}.ntbl2 .condbar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-4);border-bottom:1px solid var(--border-subtle);background:var(--surface-ink);flex-wrap:wrap;min-height:42px}.ntbl2 .condbar-label{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);padding-right:var(--sp-1)}.ntbl2 .condbar-label .ic{color:var(--text-tertiary)}.ntbl2 .condbar.filter .condbar-label .ic{color:var(--blue)}.ntbl2 .condbar.sort .condbar-label .ic{color:var(--purple)}.ntbl2 .cond-chip{display:inline-flex;align-items:center;gap:var(--sp-1_5);height:28px;padding:0 var(--sp-1) 0 var(--sp-2_5);border-radius:var(--radius-s);background:var(--surface-raised);box-shadow:var(--neu-sm);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;transition:box-shadow var(--dur-fast)}.ntbl2 .cond-chip:active{box-shadow:var(--neu-inset-sm)}.ntbl2 .cond-chip .cf{color:var(--text-primary);font-weight:600;display:inline-flex;align-items:center;gap:var(--sp-1)}.ntbl2 .cond-chip .cf .ic{width:13px;height:13px;color:var(--text-tertiary)}.ntbl2 .cond-chip .op{color:var(--text-tertiary)}.ntbl2 .cond-chip .cv{color:var(--blue-ink);font-weight:600}.ntbl2 .cond-chip .x{width:18px;height:18px;display:grid;place-items:center;border-radius:var(--radius-xs);color:var(--text-tertiary);flex:none}.ntbl2 .cond-chip .x:hover{background:var(--surface-inset);color:var(--error-ink)}.ntbl2 .cond-chip .dir{display:grid;place-items:center;color:var(--purple)}.ntbl2 .cond-add{height:28px;padding:0 var(--sp-2_5);border-radius:var(--radius-s);border:1px dashed var(--border-strong);background:transparent;color:var(--text-tertiary);font-size:var(--text-xs);cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-1);font-weight:500}.ntbl2 .cond-add:hover{color:var(--purple);border-color:var(--purple)}.ntbl2 .condbar .csp{flex:1}.ntbl2 .condbar .cclear{font-size:var(--text-xs);color:var(--text-tertiary);cursor:pointer;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-xs)}.ntbl2 .condbar .cclear:hover{color:var(--error-ink);background:var(--surface)}.ntbl2 .pop-form{padding:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2);min-width:248px}.ntbl2 .pop-row{display:flex;flex-direction:column;gap:var(--sp-1)}.ntbl2 .pop-row>span{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:600}.ntbl2 .pop-sel,.ntbl2 .pop-inp{height:30px;padding:0 var(--sp-2_5);border-radius:var(--radius-s);border:0;background:var(--surface-inset);box-shadow:var(--neu-inset-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-sm);outline:0;width:100%}.ntbl2 .pop-sel{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%23718096' d='M0 0h10L5 6z'/></svg>");background-repeat:no-repeat;background-position:right 10px center}.ntbl2 .pop-inp:focus{outline:2px solid var(--sel);outline-offset:-1px}.ntbl2 .pop-actions{display:flex;gap:var(--sp-2);justify-content:flex-end;margin-top:var(--sp-1)}.ntbl2 .pop-btn{height:28px;padding:0 var(--sp-3);border:0;border-radius:var(--radius-s);font-size:var(--text-sm);font-weight:500;cursor:pointer;background:var(--purple);color:#fff;box-shadow:var(--neu-sm)}.ntbl2 .pop-btn.ghost{background:transparent;color:var(--text-secondary);box-shadow:none}.ntbl2 .pop-btn.ghost:hover{background:var(--surface)}.ntbl2 .gfoot{position:sticky;bottom:0;z-index:4;display:flex;height:34px}.ntbl2 .gfoot .gcell{background:var(--surface);border-right:var(--grid-v);border-top:1px solid var(--border-default);border-bottom:0;height:34px;align-items:center;padding:0 var(--sp-3);overflow:hidden;font-size:var(--text-xs);color:var(--text-tertiary);cursor:pointer;gap:var(--sp-1_5);justify-content:flex-end;flex:none}.ntbl2 .gfoot .gcell:hover{background:var(--surface-raised);color:var(--text-secondary)}.ntbl2 .gfoot .gcell.idx{width:var(--col-idx-w);justify-content:center;position:sticky;left:0;z-index:3;cursor:default}.ntbl2 .gfoot .gcell.primary{position:sticky;left:var(--col-idx-w);z-index:3;justify-content:flex-start;box-shadow:1px 0 0 var(--border-subtle)}.ntbl2 .gfoot .gcell.addcol{width:44px;border-right:0;cursor:default}.ntbl2 .gfoot .sum-l{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-placeholder)}.ntbl2 .gfoot .sum-v{font-family:var(--font-mono);font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums}.ntbl2 .gfoot .gcell:hover .sum-pick{opacity:.6}.ntbl2 .gfoot .sum-pick{opacity:0;color:var(--text-tertiary);transition:opacity var(--dur-fast)}.ntbl2 .gfoot .sum-empty{opacity:0;color:var(--text-placeholder);font-size:var(--text-xs)}.ntbl2 .gfoot .gcell:hover .sum-empty{opacity:1}.ntbl2 .statusbar .selstats{display:flex;align-items:center;gap:var(--sp-4);padding-left:var(--sp-2);margin-left:var(--sp-2);border-left:1px solid var(--border-default)}.ntbl2 .statusbar .selstats .st{display:flex;align-items:center;gap:var(--sp-1)}.ntbl2 .statusbar .selstats .st .l{color:var(--text-placeholder);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em}.ntbl2 .statusbar .selstats .st b{color:var(--text-secondary);font-weight:600;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:var(--text-xs)}.ntbl2 .gcell.cf{background-clip:padding-box}.ntbl2 .fields .gcell .cfdot{width:9px;height:9px;border-radius:2px;flex:none;box-shadow:0 0 0 1px var(--border-default) inset}.ntbl2 .cf-swatch{width:34px;height:18px;border-radius:var(--radius-xs);flex:none;box-shadow:0 0 0 1px var(--border-default) inset}.ntbl2 .gcell.idxh{position:relative}.ntbl2 .gcell.idxh .hdr-check{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0;cursor:pointer;transition:opacity var(--dur-fast)}.ntbl2 .gcell.idxh:hover .rownum{opacity:0}.ntbl2 .gcell.idxh:hover .hdr-check{opacity:1}.ntbl2 .gcell.idxh.has-sel .rownum{opacity:0}.ntbl2 .gcell.idxh.has-sel .hdr-check{opacity:1}.ntbl2 .gcell.idxh .cb{width:15px;height:15px}.ntbl2 .bulkbar{position:fixed;left:50%;bottom:46px;transform:translate(-50%) translateY(14px);z-index:55;display:flex;align-items:center;gap:var(--sp-1);background:var(--surface-raised);box-shadow:var(--neu-md);border:1px solid var(--border-subtle);border-radius:var(--radius-full);padding:var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-4);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}.ntbl2 .bulkbar.show{opacity:1;transform:translate(-50%);pointer-events:auto}.ntbl2 .bulkbar .cnt{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--sp-2);padding-right:var(--sp-2)}.ntbl2 .bulkbar .cnt .num{background:var(--purple);color:#fff;border-radius:var(--radius-full);min-width:22px;height:22px;display:grid;place-items:center;font-size:var(--text-xs);font-variant-numeric:tabular-nums;padding:0 6px}.ntbl2 .bulkbar .bsep{width:1px;height:22px;background:var(--border-default);margin:0 var(--sp-1)}.ntbl2 .bulkbar .bbtn{display:flex;align-items:center;gap:var(--sp-1_5);height:34px;padding:0 var(--sp-3);border:0;border-radius:var(--radius-full);background:transparent;color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--dur-fast)}.ntbl2 .bulkbar .bbtn:hover{background:var(--surface);color:var(--text-primary)}.ntbl2 .bulkbar .bbtn .ic{color:var(--text-tertiary)}.ntbl2 .bulkbar .bbtn:hover .ic{color:var(--text-secondary)}.ntbl2 .bulkbar .bbtn.danger:hover{background:var(--error-soft);color:var(--error-ink)}.ntbl2 .bulkbar .bbtn.danger:hover .ic{color:var(--error-ink)}.ntbl2 .bulkbar .bbtn.close{width:34px;padding:0;justify-content:center}.ntbl2 .gr.group-head{height:38px;background:var(--surface)}.ntbl2 .gr.group-head .gcell{background:var(--surface);height:38px;align-items:center;border-bottom:1px solid var(--border-default);border-right:0}.ntbl2 .gr.group-head .gcell.primary{box-shadow:1px 0 0 var(--border-subtle)}.ntbl2 .gh-label{display:flex;align-items:center;gap:var(--sp-2);font-weight:600;font-size:var(--text-sm)}.ntbl2 .gh-count{font-size:var(--text-2xs);color:var(--text-tertiary);background:var(--surface-inset);border-radius:var(--radius-full);padding:1px 7px;font-variant-numeric:tabular-nums}.ntbl2 .gh-sub{display:flex;align-items:center;gap:var(--sp-1);width:100%;justify-content:flex-end;font-size:var(--text-2xs)}.ntbl2 .gh-sub .sum-l{color:var(--text-placeholder);text-transform:uppercase;letter-spacing:.04em}.ntbl2 .gh-sub .sum-v{font-family:var(--font-mono);font-weight:600;color:var(--text-secondary)}.ntbl2 .condbar.group .condbar-label .ic{color:var(--orange)}.ntbl2 .rl-swatches{display:flex;gap:var(--sp-1_5)}.ntbl2 .rl-sw{width:30px;height:24px;border-radius:var(--radius-xs);border:0;cursor:pointer;box-shadow:0 0 0 1px var(--border-default) inset;padding:0}.ntbl2 .rl-sw.on{box-shadow:0 0 0 2px var(--text-primary) inset}.ntbl2 .sel-ring{position:absolute;top:0;left:0;width:0;height:0;z-index:6;pointer-events:none;border:2px solid var(--sel);border-radius:2px;box-shadow:0 0 0 1px var(--surface-ink),0 2px 6px -1px #141e302e;will-change:transform,width,height}@keyframes nt-cbpop{0%{transform:scale(.4)}55%{transform:scale(1.2)}to{transform:scale(1)}}.ntbl2 .fields .gcell.dragging{opacity:.6;transform:scale(1.02);box-shadow:var(--neu-md);z-index:8;border-radius:var(--radius-xs)}.ntbl2 .fields .gcell.drop-target{transition:box-shadow var(--dur-fast) var(--ease)}.ntbl2 .addrow{transition:background var(--dur-fast) var(--ease)}.ntbl2 .tree-tog,.ntbl2 .expand,.ntbl2 .cb,.ntbl2 .fillhandle{transition:transform var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease)}@media (prefers-reduced-motion: reduce){.ntbl2 .sel-ring{transition:none!important}}.ntbl2 .icon-btn[disabled]{opacity:.3;pointer-events:none}.ntbl2 .fld-panel{min-width:252px;max-width:300px;padding:var(--sp-1) 0}.ntbl2 .fld-head{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);padding:var(--sp-1) var(--sp-3) var(--sp-2)}.ntbl2 .fld-list{display:flex;flex-direction:column;max-height:296px;overflow:auto;padding:0 var(--sp-1);position:relative}.ntbl2 .fld-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);font-size:var(--text-sm);color:var(--text-primary)}.ntbl2 .fld-row:hover{background:var(--surface)}.ntbl2 .fld-row.hidden .fld-name{color:var(--text-tertiary)}.ntbl2 .fld-row .fld-ic{color:var(--text-tertiary);flex:none}.ntbl2 .fld-row .fld-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .fld-eye{width:26px;height:26px;border:0;background:transparent;border-radius:var(--radius-xs);color:var(--text-tertiary);cursor:pointer;display:grid;place-items:center;flex:none;transition:all var(--dur-fast) var(--ease)}.ntbl2 .fld-eye:hover{background:var(--surface-inset);color:var(--text-secondary)}.ntbl2 .fld-eye svg{width:15px;height:15px}.ntbl2 .fld-eye.off{color:var(--text-placeholder)}.ntbl2 .fld-eye.lock{cursor:default;opacity:.45}.ntbl2 .fld-eye.lock:hover{background:transparent;color:var(--text-tertiary)}.ntbl2 .fld-sub{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-placeholder);padding:var(--sp-2) var(--sp-3) var(--sp-1)}.ntbl2 .fld-foot{display:flex;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-1);border-top:1px solid var(--border-subtle);margin-top:var(--sp-1)}.ntbl2 .fld-foot .pop-btn{flex:1;justify-content:center;display:flex;align-items:center;gap:var(--sp-1_5)}.ntbl2 .fld-foot .pop-btn svg{width:14px;height:14px}.ntbl2 .gr .gcell.idx{cursor:grab}.ntbl2 .gr.group-head .gcell.idx{cursor:default}.ntbl2 .gr.row-dragging{opacity:.45}.ntbl2 .row-drop-line{position:absolute;left:0;right:0;height:2px;background:var(--sel);z-index:7;pointer-events:none;box-shadow:0 0 0 1px var(--surface-ink),0 1px 4px #141e3040}.ntbl2 .row-drop-line:before{content:"";position:absolute;left:2px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--sel);box-shadow:0 0 0 2px var(--surface-ink)}.ntbl2 .fld-row.draggable{cursor:grab}.ntbl2 .fld-row.fld-dragging{opacity:.5;background:var(--surface-inset)}.ntbl2 .fld-drop-line{position:absolute;left:var(--sp-2);right:var(--sp-2);height:2px;background:var(--sel);border-radius:1px;z-index:5;pointer-events:none}.ntbl2 .date-pop{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2)}.ntbl2 .date-inp{font:inherit;font-size:var(--text-sm);color:var(--text-primary);background:var(--surface-ink);border:1px solid var(--border-strong);border-radius:var(--radius-s);padding:var(--sp-1_5) var(--sp-2);outline:none;accent-color:var(--sel)}.ntbl2 .date-inp:focus{border-color:var(--sel);box-shadow:0 0 0 3px var(--sel-soft)}.ntbl2 .date-actions{display:flex;gap:var(--sp-2)}.ntbl2 .date-actions .pop-btn{flex:1;justify-content:center}.ntbl2 .rel-stage{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--surface-ink);overflow:hidden}.ntbl2 .rel-hint{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border-subtle);font-size:var(--text-xs);color:var(--text-tertiary)}.ntbl2 .rel-hint b{color:var(--text-secondary);font-weight:600}.ntbl2 .rel-hint .ic{color:var(--purple)}.ntbl2 .rel-hint kbd{font-family:var(--font-mono);font-size:var(--text-2xs);background:var(--surface-inset);box-shadow:var(--neu-inset-sm);border-radius:var(--radius-xs);padding:1px 6px;color:var(--text-secondary)}.ntbl2 .rel-hint .rh-sp{flex:1}.ntbl2 .rel-hint .rh-tip{display:flex;align-items:center;gap:6px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46%}.ntbl2 .rel-hint .rh-tip .ic{flex:none}.ntbl2 .rel-trail{display:flex;align-items:center;gap:2px;flex:none;min-width:0}.ntbl2 .tr-seg{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 var(--sp-2_5);border-radius:var(--radius-s);cursor:pointer;color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;transition:all var(--dur-fast);white-space:nowrap}.ntbl2 .tr-seg .ic{color:var(--text-tertiary)}.ntbl2 .tr-seg:hover{background:var(--surface)}.ntbl2 .tr-seg.cur{background:var(--purple-soft);color:var(--text-primary);font-weight:600;cursor:default}.ntbl2 .tr-seg.cur .ic{color:var(--purple)}.ntbl2 .tr-seg .tr-ctx{color:var(--text-placeholder);font-weight:400;font-size:var(--text-xs)}.ntbl2 .tr-sep{color:var(--text-placeholder);display:inline-flex}.ntbl2 .tr-sep svg{width:13px;height:13px}.ntbl2 .rgwrap{flex:1;overflow:auto;position:relative}.ntbl2 .rg{min-width:max-content;font-size:var(--text-sm)}.ntbl2 .rg-head,.ntbl2 .rg-row{display:grid;grid-template-columns:48px 256px 184px 226px 146px 128px 120px 46px;align-items:stretch}.ntbl2 .rg-head{position:sticky;top:0;z-index:3;background:var(--surface)}.ntbl2 .rg-head .rc{height:38px;display:flex;align-items:center;gap:var(--sp-1_5);padding:0 var(--sp-3);font-weight:600;font-size:var(--text-xs);color:var(--text-secondary);border-right:var(--grid-v);border-bottom:var(--grid-h);background:var(--surface);-webkit-user-select:none;user-select:none}.ntbl2 .rg-head .rc .ic{color:var(--text-tertiary)}.ntbl2 .rg-head .rc.derived{color:var(--purple-ink)}.ntbl2 .rg-head .rc.derived .ic{color:var(--purple)}.ntbl2 .rg-head .rc .rc-tag{margin-left:auto;font-size:8px;font-weight:700;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;padding:1px 4px;border-radius:3px}.ntbl2 .rc-tag.t-link{color:var(--rel-link, #5a6b86);background:var(--rel-link-soft, rgba(90, 107, 134, .14))}.ntbl2 .rc-tag.t-lookup,.ntbl2 .rc-tag.t-rollup{color:var(--purple-ink);background:var(--purple-soft)}.ntbl2 .rg-head .rc .rc-rev{margin-left:auto;display:inline-flex;align-items:center;gap:3px;cursor:pointer;font-size:8px;font-weight:700;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.03em;padding:1px 5px 1px 4px;border-radius:3px;color:var(--purple-ink);background:var(--purple-soft);transition:all var(--dur-fast)}.ntbl2 .rg-head .rc .rc-rev:hover{background:var(--purple);color:#fff}.ntbl2 .rg-head .rc .rc-rev .rev-g{font-size:11px;line-height:1}.ntbl2 .rg-head .rc.has-rev{padding-right:var(--sp-2)}.ntbl2 .rg-head .rc.addcol{justify-content:center;color:var(--text-tertiary);cursor:pointer;border-right:0}.ntbl2 .rg-head .rc.addcol:hover{color:var(--purple);background:var(--surface)}.ntbl2 .rg-head .rc .rc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .rg-head .rc.has-menu{padding-right:var(--sp-1)}.ntbl2 .rg-head .rc .rc-menu{margin-left:auto;width:20px;height:20px;display:grid;place-items:center;flex:none;border-radius:var(--radius-xs);color:var(--text-tertiary);cursor:pointer;opacity:0;transition:opacity var(--dur-fast),background var(--dur-fast)}.ntbl2 .rg-head .rc:hover .rc-menu{opacity:1}.ntbl2 .rg-head .rc .rc-menu:hover{background:var(--surface-inset);color:var(--text-secondary)}.ntbl2 .rg-head .rc .rc-menu svg{width:14px;height:14px}.ntbl2 .rg-head .rc.has-rev .rc-menu{margin-left:var(--sp-1)}.ntbl2 .rc-edit{font:inherit;font-weight:600;font-size:var(--text-xs);color:var(--text-primary);border:0;outline:0;background:var(--surface-ink);box-shadow:0 0 0 2px var(--purple);border-radius:var(--radius-xs);padding:1px 4px;width:120px}.ntbl2 .rg-head .rc[data-colh]{cursor:grab}.ntbl2 .rg-head .rc[data-colh]:active{cursor:grabbing}.ntbl2 .rg-head .rc.col-dragging{opacity:.45;background:var(--surface-inset)}.ntbl2 .rg-head .rc.drop-l{box-shadow:inset 2px 0 0 var(--purple)}.ntbl2 .rg-head .rc.drop-r{box-shadow:inset -2px 0 0 var(--purple)}.ntbl2 .colmenu{min-width:208px}.ntbl2 .rg-row .rc{min-height:var(--row-h, 40px);display:flex;align-items:center;padding:0 var(--sp-3);border-right:var(--grid-v);border-bottom:var(--grid-h);background:var(--surface-ink);overflow:hidden}.ntbl2 .rg-row:hover .rc{background:var(--surface-raised)}.ntbl2 .rg-row .rc.idx{justify-content:center;color:var(--text-tertiary);font-size:var(--text-xs);background:var(--surface);font-variant-numeric:tabular-nums}.ntbl2 .rg-row .rc.tail{border-right:0;background:var(--surface-ink)}.ntbl2 .rg-head .rc.tail{border-right:0;background:var(--surface)}@keyframes recflash{0%{background:var(--blue-soft)}40%{background:var(--blue-soft)}to{background:transparent}}.ntbl2 .rg-row.rec-flash .rc,.ntbl2 .rg-row.rec-flash .rc.idx,.ntbl2 .rg-row.rec-flash .rc.derived{animation:recflash 1.8s var(--ease)}.ntbl2 .rg-row.rec-flash{box-shadow:inset 0 0 0 2px var(--blue);position:relative;z-index:1}.ntbl2 .rg-row:hover .rc.idx{background:var(--surface)}.ntbl2 .rg-row .rc.pk{font-weight:500;color:var(--text-primary)}.ntbl2 .rc .ctext{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .rc.num{justify-content:flex-end;font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--text-secondary)}.ntbl2 .rc.derived{background:var(--surface)!important;color:var(--text-secondary)}.ntbl2 .rg-row:hover .rc.derived{background:var(--surface-inset)!important}.ntbl2 .rc.derived .ctext{color:var(--text-secondary)}.ntbl2 .rc.derived .dv-mono{font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.ntbl2 .lc{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:nowrap;overflow:hidden;width:100%;height:100%}.ntbl2 .lchip{display:inline-flex;align-items:center;gap:var(--sp-1);height:24px;padding:0 var(--sp-1_5) 0 var(--sp-1);border-radius:var(--radius-s);background:var(--surface-raised);box-shadow:var(--neu-sm);font-size:var(--text-xs);color:var(--text-primary);white-space:nowrap;cursor:pointer;flex:none;max-width:148px;transition:box-shadow var(--dur-fast) var(--ease),transform var(--dur-fast)}.ntbl2 .lchip:hover{box-shadow:0 0 0 1.5px var(--blue),var(--neu-sm)}.ntbl2 .lchip:active{box-shadow:var(--neu-inset-sm)}.ntbl2 .lchip .lc-dot{width:18px;height:18px;border-radius:var(--radius-xs);display:grid;place-items:center;color:#fff;font-size:8px;font-weight:700;flex:none}.ntbl2 .lchip .lc-dot.av{border-radius:var(--radius-full)}.ntbl2 .lchip .lc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .lchip .lc-open{color:var(--text-placeholder);width:12px;height:12px;flex:none;opacity:0;margin-left:1px}.ntbl2 .lchip:hover .lc-open{opacity:1;color:var(--blue)}.ntbl2 .lc-more{display:inline-flex;align-items:center;height:24px;padding:0 var(--sp-1_5);border-radius:var(--radius-s);background:var(--surface-inset);font-size:var(--text-2xs);font-weight:600;color:var(--text-tertiary);flex:none;cursor:pointer;font-variant-numeric:tabular-nums}.ntbl2 .lc-more:hover{color:var(--text-secondary)}.ntbl2 .lc-add{width:22px;height:22px;border-radius:var(--radius-s);display:grid;place-items:center;flex:none;color:var(--text-placeholder);cursor:pointer;opacity:0;transition:all var(--dur-fast)}.ntbl2 .rg-row:hover .lc-add{opacity:1}.ntbl2 .lc-add:hover{background:var(--surface-inset);color:var(--purple)}.ntbl2 .lc-add svg{width:13px;height:13px}.ntbl2 .lc.empty .lc-add{opacity:.5}.ntbl2 .rg-row:hover .lc.empty .lc-add{opacity:1}.ntbl2 .lchip.rm-able{padding-right:var(--sp-1)}.ntbl2 .lchip .lc-rm{width:14px;height:14px;flex:none;opacity:0;margin-left:1px;border-radius:var(--radius-xs);display:grid;place-items:center;color:var(--text-placeholder);transition:all var(--dur-fast)}.ntbl2 .lchip .lc-rm svg{width:11px;height:11px}.ntbl2 .lchip:hover .lc-rm{opacity:.65}.ntbl2 .lchip .lc-rm:hover{opacity:1;color:var(--error-ink);background:var(--error-soft)}.ntbl2 .rc.ec{cursor:text}.ntbl2 .rg-row:hover .rc.ec:hover{box-shadow:var(--neu-inset-sm)}.ntbl2 .rec-name[data-edit]{cursor:pointer}.ntbl2 .rec-name.editing{display:block}.ntbl2 .cell-edit{width:100%;height:26px;border:0;outline:0;border-radius:var(--radius-xs);padding:0 var(--sp-1_5);background:var(--surface-raised);box-shadow:0 0 0 1.5px var(--purple),var(--neu-sm);font-size:var(--text-sm);color:var(--text-primary);font-family:var(--font-sans)}.ntbl2 .cell-edit.mono{font-family:var(--font-mono);font-size:var(--text-xs)}.ntbl2 .bg-blue{background:var(--blue)}.ntbl2 .bg-pink{background:var(--pink)}.ntbl2 .bg-purple{background:var(--purple)}.ntbl2 .bg-green{background:var(--green)}.ntbl2 .bg-orange{background:var(--orange)}.ntbl2 .lpick{position:fixed;z-index:120;width:300px;background:var(--surface-raised);box-shadow:var(--neu-md);border:1px solid var(--border-subtle);border-radius:var(--radius-base);overflow:hidden;opacity:0;transform:translateY(-6px) scale(.98);transform-origin:top left;transition:opacity var(--dur-fast),transform var(--dur-fast)}.ntbl2 .lpick.show{opacity:1;transform:none}.ntbl2 .lpick-note{display:flex;align-items:center;gap:var(--sp-1_5);margin:var(--sp-2) var(--sp-2) 0;padding:var(--sp-1_5) var(--sp-2_5);font-size:var(--text-2xs);line-height:1.35;color:var(--text-tertiary);background:var(--surface-inset);box-shadow:var(--neu-inset-sm);border-radius:var(--radius-s)}.ntbl2 .lpick-note .rev-g{color:var(--blue);font-weight:700;flex:none}.ntbl2 .lpick-head{padding:var(--sp-2) var(--sp-2_5);display:flex;align-items:center;gap:var(--sp-1_5);border-bottom:1px solid var(--border-subtle)}.ntbl2 .lpick-head .lp-ic{color:var(--text-tertiary)}.ntbl2 .lpick-head .lp-target{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:600}.ntbl2 .lpick-search{display:flex;align-items:center;gap:var(--sp-2);background:var(--surface-inset);box-shadow:var(--neu-inset-sm);border-radius:var(--radius-s);margin:var(--sp-2);padding:0 var(--sp-2_5);height:32px;color:var(--text-tertiary)}.ntbl2 .lpick-search input{border:0;background:transparent;outline:0;font-size:var(--text-sm);width:100%;color:var(--text-primary);font-family:var(--font-sans)}.ntbl2 .lpick-list{max-height:236px;overflow:auto;padding:0 var(--sp-1) var(--sp-1)}.ntbl2 .lp-opt{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);cursor:pointer;font-size:var(--text-sm);color:var(--text-primary)}.ntbl2 .lp-opt:hover{background:var(--surface)}.ntbl2 .lp-opt .lc-dot{width:22px;height:22px;flex:none;border-radius:var(--radius-xs);display:grid;place-items:center;color:#fff;font-size:9px;font-weight:700}.ntbl2 .lp-opt .lc-dot.av{border-radius:var(--radius-full)}.ntbl2 .lp-opt .lp-sub{font-size:var(--text-2xs);color:var(--text-tertiary);margin-left:auto;font-family:var(--font-mono)}.ntbl2 .lp-opt.on{background:var(--blue-soft)}.ntbl2 .lp-opt .lp-chk{margin-left:auto;color:var(--blue-ink);opacity:0}.ntbl2 .lp-opt.on .lp-chk{opacity:1}.ntbl2 .lp-opt.on .lp-sub{display:none}.ntbl2 .lpick-foot{border-top:1px solid var(--border-subtle);padding:var(--sp-1)}.ntbl2 .lp-create{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2_5);border-radius:var(--radius-s);cursor:pointer;font-size:var(--text-sm);color:var(--purple-ink);font-weight:500}.ntbl2 .lp-create:hover{background:var(--purple-soft)}.ntbl2 .lp-create .ic{color:var(--purple)}.ntbl2 .lp-create b{font-weight:600}.ntbl2 .revpop{width:316px}.ntbl2 .revpop-body{padding:var(--sp-3)}.ntbl2 .revpair{display:flex;align-items:stretch;gap:0;justify-content:center}.ntbl2 .revcard{flex:1;background:var(--surface-ink);border-radius:var(--radius-s);box-shadow:var(--neu-inset-sm);padding:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-1_5)}.ntbl2 .revcard .rc-h{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-xs);font-weight:600;color:var(--text-primary)}.ntbl2 .revcard .rc-ic{width:20px;height:20px;border-radius:var(--radius-xs);display:grid;place-items:center;color:#fff;flex:none}.ntbl2 .revcard .rc-ic svg{width:12px;height:12px}.ntbl2 .revcard .rc-f{display:flex;align-items:center;gap:5px;font-size:var(--text-2xs);color:var(--text-secondary);background:var(--surface-raised);box-shadow:var(--neu-sm);border-radius:var(--radius-xs);padding:2px 6px}.ntbl2 .revcard .rc-f .ic{color:var(--rel-link, #5a6b86);width:12px;height:12px}.ntbl2 .revmid{flex:0 0 54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--purple);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700}.ntbl2 .revmid .rm-g{font-size:var(--text-base);line-height:1}.ntbl2 .revmid .rm-note{font-size:9px;color:var(--text-tertiary);white-space:nowrap;letter-spacing:.02em}.ntbl2 .revnote{margin-top:var(--sp-2_5);font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.45}.ntbl2 .revnote b{color:var(--purple-ink);font-weight:600}.ntbl2 .peek-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;justify-content:flex-end;z-index:80;opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease)}.ntbl2 .peek-bg.show{opacity:1;pointer-events:auto}.ntbl2 .peek{width:444px;max-width:92vw;height:100%;background:var(--surface-raised);box-shadow:var(--neu-lg);display:flex;flex-direction:column;transform:translate(28px);transition:transform var(--dur) var(--ease)}.ntbl2 .peek-bg.show .peek{transform:none}.ntbl2 .peek-bar{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-2_5) var(--sp-3) var(--sp-2);border-bottom:1px solid var(--border-subtle)}.ntbl2 .peek-back{width:30px;height:30px;border:0;background:transparent;border-radius:var(--radius-s);color:var(--text-tertiary);cursor:pointer;display:grid;place-items:center}.ntbl2 .peek-back:hover{background:var(--surface);color:var(--text-secondary)}.ntbl2 .peek-back[disabled]{opacity:.3;pointer-events:none}.ntbl2 .peek-crumb{flex:1;min-width:0;display:flex;align-items:center;gap:var(--sp-1);font-size:var(--text-xs);color:var(--text-tertiary);overflow:hidden}.ntbl2 .peek-crumb .cseg{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;cursor:pointer}.ntbl2 .peek-crumb .cseg:hover{color:var(--text-secondary)}.ntbl2 .peek-crumb .cseg.cur{color:var(--text-primary);font-weight:600;cursor:default}.ntbl2 .peek-crumb .csep{opacity:.5;flex:none}.ntbl2 .peek-bar .pb-sp{flex:1}.ntbl2 .peek-bar .icon-btn{flex:none}.ntbl2 .peek-hero{padding:var(--sp-4) var(--sp-5) var(--sp-3);display:flex;align-items:center;gap:var(--sp-3);border-bottom:1px solid var(--border-subtle)}.ntbl2 .peek-hero .ph-ic{width:44px;height:44px;border-radius:var(--radius-base);display:grid;place-items:center;color:#fff;font-size:var(--text-md);font-weight:700;flex:none;box-shadow:var(--neu-sm)}.ntbl2 .peek-hero .ph-ic.av{border-radius:var(--radius-full)}.ntbl2 .peek-hero .ph-title{font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em;line-height:1.2}.ntbl2 .peek-hero .ph-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px;display:flex;align-items:center;gap:var(--sp-1_5)}.ntbl2 .peek-hero .ph-sub .ic{width:13px;height:13px}.ntbl2 .peek-tbl{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:600;display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--radius-full);background:var(--surface-inset)}.ntbl2 .peek-body{flex:1;overflow-y:auto;padding:var(--sp-3) var(--sp-5) var(--sp-6)}.ntbl2 .peek-fld{display:grid;grid-template-columns:130px 1fr;gap:var(--sp-3);align-items:start;padding:var(--sp-2_5) 0;border-bottom:1px solid var(--border-subtle)}.ntbl2 .peek-fld>label{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-xs);color:var(--text-tertiary);padding-top:3px}.ntbl2 .peek-fld>label .ic{color:var(--text-placeholder);width:14px;height:14px}.ntbl2 .peek-val{font-size:var(--text-sm);color:var(--text-primary);min-height:24px;display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-1_5)}.ntbl2 .peek-val.muted{color:var(--text-placeholder)}.ntbl2 .peek-val .mono{font-family:var(--font-mono);font-size:var(--text-xs)}.ntbl2 .peek-sec{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-placeholder);font-weight:600;margin:var(--sp-4) 0 var(--sp-1);display:flex;align-items:center;gap:var(--sp-1_5)}.ntbl2 .peek-sec .rev-pill{display:inline-flex;align-items:center;gap:3px;color:var(--purple-ink);background:var(--purple-soft);border-radius:var(--radius-full);padding:1px 7px;letter-spacing:.03em}.ntbl2 .peek-sec .rev-pill .rev-g{font-size:11px}.ntbl2 .peek-sec .sec-sp{flex:1}.ntbl2 .peek-sec .sec-via{color:var(--text-tertiary);font-family:var(--font-mono);text-transform:none;letter-spacing:0;font-weight:500}.ntbl2 .peek-foot{padding:var(--sp-2_5) var(--sp-5);border-top:1px solid var(--border-subtle);display:flex;gap:var(--sp-2)}.ntbl2 .peek-foot .pop-btn{display:flex;align-items:center;gap:var(--sp-1_5)}.ntbl2 .peek-foot .pop-btn svg{width:14px;height:14px}.ntbl2 .peek-mini{display:flex;flex-direction:column;gap:var(--sp-1);width:100%}.ntbl2 .pm-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);cursor:pointer;background:var(--surface);box-shadow:var(--neu-sm)}.ntbl2 .pm-row:hover{box-shadow:0 0 0 1.5px var(--blue),var(--neu-sm)}.ntbl2 .pm-row .lc-dot{width:22px;height:22px;border-radius:var(--radius-xs);display:grid;place-items:center;color:#fff;font-size:9px;font-weight:700;flex:none}.ntbl2 .pm-row .pm-name{font-size:var(--text-sm);color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .pm-row .pm-meta{font-size:var(--text-2xs);color:var(--text-tertiary);font-family:var(--font-mono);flex:none}.ntbl2 .pm-row .lc-open{color:var(--text-placeholder);width:13px;height:13px;flex:none}.ntbl2 .pm-row:hover .lc-open{color:var(--blue)}.ntbl2 .wz-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:grid;place-items:center;z-index:90;opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease)}.ntbl2 .wz-bg.show{opacity:1;pointer-events:auto}.ntbl2 .wz{width:680px;max-width:94vw;max-height:90vh;background:var(--surface-raised);box-shadow:var(--neu-lg);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;transform:translateY(12px) scale(.99);transition:transform var(--dur) var(--ease)}.ntbl2 .wz-bg.show .wz{transform:none}.ntbl2 .wz-head{padding:var(--sp-4) var(--sp-5) var(--sp-3);display:flex;align-items:center;gap:var(--sp-2_5);border-bottom:1px solid var(--border-subtle)}.ntbl2 .wz-head .wh-ic{width:30px;height:30px;border-radius:var(--radius-s);background:var(--purple);color:#fff;display:grid;place-items:center;box-shadow:var(--neu-sm);flex:none}.ntbl2 .wz-head .wh-ic svg{width:16px;height:16px}.ntbl2 .wz-head .wh-title{font-size:var(--text-md);font-weight:600;letter-spacing:-.01em}.ntbl2 .wz-head .wh-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:1px}.ntbl2 .wz-head .pb-sp{flex:1}.ntbl2 .wz-steps{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-2_5) var(--sp-5);border-bottom:1px solid var(--border-subtle);font-size:var(--text-xs)}.ntbl2 .wz-step{display:flex;align-items:center;gap:var(--sp-1_5);color:var(--text-tertiary)}.ntbl2 .wz-step .wn{width:20px;height:20px;border-radius:var(--radius-full);background:var(--surface-inset);box-shadow:var(--neu-inset-sm);display:grid;place-items:center;font-size:var(--text-2xs);font-weight:700;font-family:var(--font-mono);flex:none}.ntbl2 .wz-step.on{color:var(--text-primary);font-weight:600}.ntbl2 .wz-step.on .wn{background:var(--purple);color:#fff;box-shadow:var(--neu-sm)}.ntbl2 .wz-step.done .wn{background:var(--green);color:#fff;box-shadow:var(--neu-sm)}.ntbl2 .wz-step .wn .ic{width:12px;height:12px}.ntbl2 .wz-stepsep{flex:1;height:1px;background:var(--border-default);max-width:40px}.ntbl2 .wz-body{flex:1;overflow-y:auto;padding:var(--sp-4) var(--sp-5)}.ntbl2 .wz-q{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-1)}.ntbl2 .wz-hint{font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:var(--sp-3)}.ntbl2 .wz-types{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2_5)}.ntbl2 .wz-type{text-align:left;border:1.5px solid var(--border-default);background:var(--surface-raised);border-radius:var(--radius-base);padding:var(--sp-3);cursor:pointer;transition:all var(--dur-fast);display:flex;flex-direction:column;gap:var(--sp-1_5)}.ntbl2 .wz-type:hover{border-color:var(--border-strong);box-shadow:var(--neu-sm)}.ntbl2 .wz-type.on{border-color:var(--purple);box-shadow:0 0 0 1px var(--purple),var(--neu-sm);background:var(--surface-ink)}.ntbl2 .wz-type .wt-ic{width:30px;height:30px;border-radius:var(--radius-s);display:grid;place-items:center;color:#fff}.ntbl2 .wt-ic.k-link{background:var(--rel-link, #5a6b86)}.ntbl2 .wt-ic.k-lookup,.ntbl2 .wt-ic.k-rollup{background:var(--purple)}.ntbl2 .wz-type .wt-name{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.ntbl2 .wz-type .wt-desc{font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.4}.ntbl2 .wz-type .wt-mono{font-family:var(--font-mono);font-size:9px;color:var(--text-placeholder);text-transform:uppercase;letter-spacing:.05em}.ntbl2 .wz-row{display:flex;flex-direction:column;gap:var(--sp-1_5);margin-bottom:var(--sp-3)}.ntbl2 .wz-row>span.lbl{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:600}.ntbl2 .wz-name-in{height:36px;padding:0 var(--sp-3);border-radius:var(--radius-s);border:0;background:var(--surface-inset);box-shadow:var(--neu-inset-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-sm);outline:0}.ntbl2 .wz-name-in:focus{outline:2px solid var(--sel);outline-offset:-1px}.ntbl2 .wz-opts{display:flex;flex-direction:column;gap:var(--sp-1)}.ntbl2 .wz-opt{display:flex;align-items:center;gap:var(--sp-2_5);padding:var(--sp-2) var(--sp-2_5);border-radius:var(--radius-s);border:1.5px solid var(--border-default);background:var(--surface-raised);cursor:pointer;transition:all var(--dur-fast)}.ntbl2 .wz-opt:hover{border-color:var(--border-strong)}.ntbl2 .wz-opt.on{border-color:var(--purple);box-shadow:0 0 0 1px var(--purple)}.ntbl2 .wz-opt .wo-ic{width:28px;height:28px;border-radius:var(--radius-s);display:grid;place-items:center;color:#fff;font-size:var(--text-xs);font-weight:700;flex:none}.ntbl2 .wz-opt .wo-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.ntbl2 .wz-opt .wo-sub{font-size:var(--text-2xs);color:var(--text-tertiary);font-family:var(--font-mono)}.ntbl2 .wz-opt .wo-meta{margin-left:auto;font-size:var(--text-2xs);color:var(--text-tertiary);font-family:var(--font-mono);display:flex;align-items:center;gap:var(--sp-1_5)}.ntbl2 .wz-opt .wo-chk{color:var(--purple);opacity:0}.ntbl2 .wz-opt.on .wo-chk{opacity:1}.ntbl2 .wz-opt .field-ic{color:var(--text-tertiary)}.ntbl2 .wz-reverse{margin:var(--sp-1) 0 var(--sp-2) 52px;padding:var(--sp-2_5) var(--sp-3);border-left:2px solid var(--purple);background:var(--purple-soft);border-radius:0 var(--radius-s) var(--radius-s) 0;display:flex;flex-direction:column;gap:var(--sp-1_5)}.ntbl2 .wz-reverse .wr-lbl{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--purple-ink);font-weight:700;display:flex;align-items:center;gap:5px}.ntbl2 .wz-reverse .wr-row{display:flex;align-items:center;gap:var(--sp-2)}.ntbl2 .wz-reverse .wr-in{flex:1;height:32px;padding:0 var(--sp-2_5);border-radius:var(--radius-s);border:0;background:var(--surface-ink);box-shadow:var(--neu-inset-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-sm);outline:0}.ntbl2 .wz-reverse .wr-in:focus{outline:2px solid var(--purple);outline-offset:-1px}.ntbl2 .wz-reverse .wr-where{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap}.ntbl2 .wz-reverse .wr-where b{color:var(--purple-ink);font-weight:600}.ntbl2 .wz-reverse .wr-card{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--purple-ink);font-weight:600}.ntbl2 .wz-diagram{display:flex;align-items:stretch;gap:0;margin:var(--sp-2) 0 var(--sp-3);background:var(--surface-ink);border:1px solid var(--border-subtle);border-radius:var(--radius-base);padding:var(--sp-4) var(--sp-3);justify-content:center}.ntbl2 .wzd-card{flex:1;max-width:200px;background:var(--surface-raised);border-radius:var(--radius-base);box-shadow:var(--neu-sm);padding:var(--sp-2_5);display:flex;flex-direction:column;gap:var(--sp-1_5)}.ntbl2 .wzd-card .wc-h{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-xs);font-weight:600;color:var(--text-primary)}.ntbl2 .wzd-card .wc-h .wc-ic{width:22px;height:22px;border-radius:var(--radius-xs);display:grid;place-items:center;color:#fff;flex:none}.ntbl2 .wzd-card .wc-h .wc-ic svg{width:13px;height:13px}.ntbl2 .wzd-card .wc-f{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-xs);color:var(--text-secondary);background:var(--surface-inset);border-radius:var(--radius-xs);padding:var(--sp-1) var(--sp-1_5)}.ntbl2 .wzd-card .wc-f .ic{color:var(--rel-link, #5a6b86);width:13px;height:13px}.ntbl2 .wzd-card .wc-f.derived .ic{color:var(--purple)}.ntbl2 .wzd-card .wc-f .wc-fname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .wzd-card .wc-f .wc-new{margin-left:auto;font-size:8px;font-weight:700;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--green-ink);background:var(--green-soft);border-radius:3px;padding:1px 4px;flex:none}.ntbl2 .wzd-link{flex:0 0 96px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;color:var(--rel-link, #5a6b86)}.ntbl2 .wzd-link .wl-line{width:100%;height:2px;background:currentColor;position:relative}.ntbl2 .wzd-link .wl-line:before,.ntbl2 .wzd-link .wl-line:after{content:"";position:absolute;top:50%;width:0;height:0;border:5px solid transparent}.ntbl2 .wzd-link .wl-line:before{left:-1px;transform:translateY(-50%);border-right-color:currentColor;border-left:0}.ntbl2 .wzd-link .wl-line:after{right:-1px;transform:translateY(-50%);border-left-color:currentColor;border-right:0}.ntbl2 .wzd-link.one-way .wl-line:before{display:none}.ntbl2 .wzd-link .wl-mid{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface-ink);width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:var(--text-sm);font-weight:700;box-shadow:0 0 0 2px var(--surface-ink)}.ntbl2 .wzd-link .wl-cards{display:flex;justify-content:space-between;width:100%;margin-top:6px;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700}.ntbl2 .wzd-link .wl-note{margin-top:var(--sp-1_5);font-size:var(--text-3xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;text-align:center}.ntbl2 .wz-aggs{display:flex;gap:var(--sp-1_5);flex-wrap:wrap}.ntbl2 .wz-agg{height:32px;padding:0 var(--sp-3);border-radius:var(--radius-s);border:1.5px solid var(--border-default);background:var(--surface-raised);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);transition:all var(--dur-fast)}.ntbl2 .wz-agg:hover{border-color:var(--border-strong)}.ntbl2 .wz-agg.on{border-color:var(--purple);color:var(--purple-ink);background:var(--purple-soft);box-shadow:0 0 0 1px var(--purple)}.ntbl2 .wz-toggle{display:flex;align-items:center;gap:var(--sp-2_5);padding:var(--sp-2_5) 0}.ntbl2 .wz-toggle .wt-txt{flex:1}.ntbl2 .wz-toggle .wt-txt .t1{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.ntbl2 .wz-toggle .wt-txt .t2{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:1px}.ntbl2 .tgl{width:38px;height:22px;border-radius:var(--radius-full);background:var(--surface-inset);box-shadow:var(--neu-inset-sm);position:relative;cursor:pointer;flex:none;transition:background var(--dur-fast)}.ntbl2 .tgl: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(--dur-fast) var(--ease)}.ntbl2 .tgl.on{background:var(--purple)}.ntbl2 .tgl.on:after{transform:translate(16px);background:#fff}.ntbl2 .wz-prev{margin-top:var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--radius-base);overflow:hidden;background:var(--surface-ink)}.ntbl2 .wz-prev-h{display:flex;align-items:center;gap:var(--sp-1_5);padding:var(--sp-2) var(--sp-3);background:var(--surface);border-bottom:1px solid var(--border-subtle);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:600}.ntbl2 .wz-prev-h .ic{color:var(--green)}.ntbl2 .wz-prev-h .live{margin-left:auto;display:inline-flex;align-items:center;gap:5px;color:var(--green-ink);text-transform:none;letter-spacing:0;font-size:var(--text-2xs)}.ntbl2 .wz-prev-h .live .dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.ntbl2 .wz-prev-tbl{display:grid}.ntbl2 .wz-prev-tbl .pr-row{display:grid;grid-template-columns:1fr 130px;align-items:center}.ntbl2 .wz-prev-tbl .pr-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.ntbl2 .wz-prev-tbl .pr-c{padding:var(--sp-1_5) var(--sp-3);font-size:var(--text-xs);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .wz-prev-tbl .pr-c.head{font-weight:600;color:var(--text-tertiary);font-size:var(--text-2xs);background:var(--surface);text-transform:uppercase;letter-spacing:.04em}.ntbl2 .wz-prev-tbl .pr-c.new{border-left:1px solid var(--border-subtle);font-family:var(--font-mono);color:var(--purple-ink);font-weight:600;background:var(--purple-soft)}.ntbl2 .wz-prev-tbl .pr-c.new.head{background:var(--purple-soft);color:var(--purple-ink)}.ntbl2 .wz-prev-empty{padding:var(--sp-5);text-align:center;font-size:var(--text-xs);color:var(--text-placeholder)}.ntbl2 .wz-foot{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle);display:flex;align-items:center;gap:var(--sp-2)}.ntbl2 .wz-foot .wf-sp{flex:1}.ntbl2 .wz-foot .pop-btn{height:34px;padding:0 var(--sp-4);font-size:var(--text-sm);display:flex;align-items:center;gap:var(--sp-1_5)}.ntbl2 .wz-foot .pop-btn[disabled]{opacity:.4;pointer-events:none}.ntbl2 .wz-foot .pop-btn svg{width:14px;height:14px}.ntbl2 .field-ic .ic,.ntbl2 .field-ic{display:inline-flex}.ntbl2{--rel-link:#5a6b86;--rel-link-soft:rgba(90,107,134,.14);--rel-derived:var(--purple);--rel-platform:var(--orange);--rel-parent:#3f8f5e;--rel-orphan:var(--error)}.ntbl2 .erd{flex:1;position:relative;overflow:hidden;background:var(--surface-ink);background-image:radial-gradient(var(--border-default) 1px,transparent 1px);background-size:26px 26px;background-position:-1px -1px;cursor:grab;outline:0}.ntbl2 .erd.panning{cursor:grabbing}.ntbl2 .erd-world{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}.ntbl2 .erd-groups{position:absolute;top:0;left:0;pointer-events:none;z-index:0}.ntbl2 .erd-group{position:absolute;border-radius:var(--radius-lg);border:1.5px dashed var(--gc, var(--purple));background:var(--gc-soft, var(--purple-soft));opacity:.5}.ntbl2 .erd-group .eg-label{position:absolute;top:-2px;left:14px;transform:translateY(-50%);display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 var(--sp-2_5);background:var(--surface-ink);border-radius:var(--radius-full);box-shadow:var(--neu-sm);font-size:var(--text-xs);font-weight:600;color:var(--gc-ink, var(--purple-ink));white-space:nowrap;opacity:1}.ntbl2 .erd-group .eg-label .ic{width:14px;height:14px;color:var(--gc, var(--purple))}.ntbl2 .erd-group .eg-label .eg-n{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-tertiary);background:var(--surface-inset);border-radius:var(--radius-full);padding:0 6px}.ntbl2 .erd-group.g-crm{--gc:var(--purple);--gc-soft:var(--purple-soft);--gc-ink:var(--purple-ink)}.ntbl2 .erd-group.g-content{--gc:var(--blue);--gc-soft:var(--blue-soft);--gc-ink:var(--blue-ink)}.ntbl2 .erd-group.g-tasks{--gc:var(--green);--gc-soft:var(--green-soft);--gc-ink:var(--green-ink)}.ntbl2 .erd-lines{position:absolute;top:0;left:0;overflow:visible;pointer-events:none;z-index:1}.ntbl2 .erd-lines path,.ntbl2 .erd-lines .hit{pointer-events:stroke}.ntbl2 .tbox{position:absolute;width:232px;background:var(--surface-raised);border-radius:var(--radius-md);box-shadow:var(--neu-sm);z-index:2;-webkit-user-select:none;user-select:none;transition:box-shadow var(--dur-fast) var(--ease),opacity var(--dur) var(--ease);--bc:var(--purple);--bc-soft:var(--purple-soft);--bc-ink:var(--purple-ink)}.ntbl2 .tbox:hover{box-shadow:var(--neu-md)}.ntbl2 .tbox.focused{box-shadow:0 0 0 2px var(--bc),var(--neu-md);z-index:5}.ntbl2 .tbox.dim{opacity:.32;filter:saturate(.6)}.ntbl2 .tbox.pair-hot{box-shadow:0 0 0 2px var(--sel),var(--neu-md);z-index:6}.ntbl2 .tbox-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2_5) var(--sp-3);background:var(--bc-soft);border-radius:var(--radius-md) var(--radius-md) 0 0;cursor:grab;border-bottom:1px solid var(--border-subtle)}.ntbl2 .tbox.dragging .tbox-head{cursor:grabbing}.ntbl2 .tbox-head .tb-ic{width:26px;height:26px;border-radius:var(--radius-s);background:var(--bc);color:#fff;display:grid;place-items:center;flex:none;box-shadow:var(--neu-sm)}.ntbl2 .tbox-head .tb-ic svg{width:15px;height:15px}.ntbl2 .tbox-head .tb-name{font-weight:600;font-size:var(--text-sm);color:var(--text-primary);letter-spacing:-.01em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .tbox-head .tb-count{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;color:var(--bc-ink);background:var(--surface-ink);border-radius:var(--radius-full);padding:1px 7px;flex:none;font-variant-numeric:tabular-nums}.ntbl2 .tbox-head .tb-grip{color:var(--text-placeholder);flex:none;opacity:0;transition:opacity var(--dur-fast)}.ntbl2 .tbox:hover .tb-grip{opacity:.7}.ntbl2 .tbox-head .tb-open{color:var(--text-tertiary);flex:none;opacity:0;cursor:pointer;width:18px;height:18px;display:grid;place-items:center;border-radius:var(--radius-xs);transition:all var(--dur-fast)}.ntbl2 .tbox-head .tb-open svg{width:14px;height:14px}.ntbl2 .tbox:hover .tb-open{opacity:.8}.ntbl2 .tbox-head .tb-open:hover{opacity:1;color:var(--purple);background:var(--surface-ink)}.ntbl2 .tbox-fields{padding:var(--sp-1) 0 var(--sp-1)}.ntbl2 .trow{display:flex;align-items:center;gap:var(--sp-2);height:28px;padding:0 var(--sp-3);position:relative;font-size:var(--text-xs)}.ntbl2 .trow .tr-ic{color:var(--text-tertiary);flex:none;width:14px;height:14px;display:grid;place-items:center}.ntbl2 .trow .tr-ic svg{width:14px;height:14px}.ntbl2 .trow .tr-name{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:118px}.ntbl2 .trow.pk .tr-name{font-weight:600;color:var(--text-primary)}.ntbl2 .trow .tr-key{font-family:var(--font-mono);font-size:8px;font-weight:700;letter-spacing:.04em;color:var(--bc-ink);background:var(--bc-soft);border-radius:3px;padding:0 3px;margin-left:1px;flex:none}.ntbl2 .trow .tr-type{margin-left:auto;font-size:var(--text-3xs);color:var(--text-placeholder);text-transform:lowercase;letter-spacing:.02em;flex:none;font-family:var(--font-mono)}.ntbl2 .trow.rel{cursor:pointer}.ntbl2 .trow.rel .tr-type{display:none}.ntbl2 .trow .tr-rel{margin-left:auto;display:flex;align-items:center;gap:5px;flex:none}.ntbl2 .trow .tr-card{font-family:var(--font-mono);font-size:9px;font-weight:700;color:var(--text-tertiary);letter-spacing:.02em}.ntbl2 .trow .tr-badge{display:inline-flex;align-items:center;gap:3px;font-size:8px;font-weight:700;font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;padding:1px 4px;border-radius:3px;line-height:1.4}.ntbl2 .tr-badge.b-link{color:var(--rel-link);background:var(--rel-link-soft)}.ntbl2 .tr-badge.b-derived{color:var(--rel-derived);background:var(--purple-soft)}.ntbl2 .tr-badge.b-platform{color:var(--orange-ink);background:var(--orange-soft)}.ntbl2 .tr-badge.b-parent{color:var(--rel-parent);background:var(--green-soft)}.ntbl2 .tr-badge.b-orphan{color:var(--error-ink);background:var(--error-soft)}.ntbl2 .trow.rel:hover{background:var(--surface)}.ntbl2 .trow.rel.hot{background:var(--sel-soft)}.ntbl2 .trow.rel.hot .tr-name{color:var(--text-primary)}.ntbl2 .anchor{position:absolute;top:50%;transform:translateY(-50%);width:9px;height:9px;border-radius:50%;background:var(--surface-raised);box-shadow:0 0 0 2px var(--an, var(--rel-link));z-index:3;transition:transform var(--dur-fast) var(--ease)}.ntbl2 .anchor.right{right:-4px}.ntbl2 .anchor.left{left:-4px}.ntbl2 .trow.rel.hot .anchor{transform:translateY(-50%) scale(1.45)}.ntbl2 .anchor.a-derived{box-shadow:0 0 0 2px var(--rel-derived)}.ntbl2 .anchor.a-platform{box-shadow:0 0 0 2px var(--rel-platform)}.ntbl2 .anchor.a-parent{box-shadow:0 0 0 2px var(--rel-parent)}.ntbl2 .anchor.a-orphan{box-shadow:0 0 0 2px var(--rel-orphan)}.ntbl2 .tbox.base-crm{--bc:var(--purple);--bc-soft:var(--purple-soft);--bc-ink:var(--purple-ink)}.ntbl2 .tbox.base-content{--bc:var(--blue);--bc-soft:var(--blue-soft);--bc-ink:var(--blue-ink)}.ntbl2 .tbox.base-tasks{--bc:var(--green);--bc-soft:var(--green-soft);--bc-ink:var(--green-ink)}.ntbl2 .pnode{position:absolute;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--surface-raised);border-radius:var(--radius-full);box-shadow:var(--neu-sm);z-index:2;border:1.5px dashed var(--rel-platform);-webkit-user-select:none;user-select:none;cursor:grab;transition:box-shadow var(--dur-fast) var(--ease),opacity var(--dur) var(--ease)}.ntbl2 .pnode.dragging{cursor:grabbing}.ntbl2 .pnode.dim{opacity:.32}.ntbl2 .pnode .pn-ic{width:24px;height:24px;border-radius:var(--radius-s);background:var(--rel-platform);color:#fff;display:grid;place-items:center;flex:none}.ntbl2 .pnode .pn-ic svg{width:14px;height:14px}.ntbl2 .pnode .pn-name{font-weight:600;font-size:var(--text-xs);color:var(--text-primary)}.ntbl2 .pnode .pn-tag{font-size:var(--text-3xs);color:var(--orange-ink);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em}.ntbl2 .erd-lines .ln{fill:none;stroke-width:1.5;transition:opacity var(--dur) var(--ease)}.ntbl2 .erd-lines .ln.k-link{stroke:var(--rel-link)}.ntbl2 .erd-lines .ln.k-derived{stroke:var(--rel-derived);stroke-dasharray:5 4}.ntbl2 .erd-lines .ln.k-platform{stroke:var(--rel-platform);stroke-dasharray:1 0}.ntbl2 .erd-lines .ln.k-parent{stroke:var(--rel-parent);stroke-dasharray:2 3}.ntbl2 .erd-lines .ln.k-orphan{stroke:var(--rel-orphan);stroke-dasharray:3 3;opacity:.85}.ntbl2 .erd-lines .ln.hot{stroke-width:2.4}.ntbl2 .erd-lines .ln.faded{opacity:.12}.ntbl2 .erd-lines .card{font-family:var(--font-mono);font-size:11px;font-weight:700;paint-order:stroke;stroke:var(--surface-ink);stroke-width:3.5px;stroke-linejoin:round}.ntbl2 .erd-lines .card.faded{opacity:.12}.ntbl2 .erd-lines .card.k-link{fill:var(--rel-link)}.ntbl2 .erd-lines .card.k-derived{fill:var(--rel-derived)}.ntbl2 .erd-lines .card.k-platform{fill:var(--orange-ink)}.ntbl2 .erd-lines .card.k-parent{fill:var(--rel-parent)}.ntbl2 .erd-lines .card.k-orphan{fill:var(--error-ink)}.ntbl2 .erd-bar{position:absolute;top:var(--sp-3);left:var(--sp-4);right:var(--sp-4);z-index:10;display:flex;align-items:center;gap:var(--sp-2);pointer-events:none}.ntbl2 .erd-bar>*{pointer-events:auto}.ntbl2 .erd-title{display:flex;align-items:center;gap:var(--sp-2);background:var(--surface-raised);box-shadow:var(--neu-sm);border-radius:var(--radius-base);padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.ntbl2 .erd-title .ic{color:var(--purple)}.ntbl2 .erd-title .et-sub{font-weight:400;color:var(--text-tertiary);font-size:var(--text-xs)}.ntbl2 .erd-spacer{flex:1}.ntbl2 .erd-legend{display:flex;align-items:center;gap:var(--sp-1);background:var(--surface-raised);box-shadow:var(--neu-sm);border-radius:var(--radius-base);padding:var(--sp-1)}.ntbl2 .lg-chip{display:flex;align-items:center;gap:var(--sp-1_5);height:28px;padding:0 var(--sp-2_5);border:0;background:transparent;border-radius:var(--radius-s);cursor:pointer;font-size:var(--text-xs);font-weight:500;color:var(--text-secondary);transition:all var(--dur-fast)}.ntbl2 .lg-chip:hover{background:var(--surface)}.ntbl2 .lg-chip.off{color:var(--text-placeholder);opacity:.7}.ntbl2 .lg-chip.off .lg-swatch{opacity:.3}.ntbl2 .lg-swatch{width:18px;height:0;border-top-width:2.5px;border-top-style:solid;flex:none;border-radius:2px}.ntbl2 .lg-swatch.s-link{border-color:var(--rel-link)}.ntbl2 .lg-swatch.s-derived{border-color:var(--rel-derived);border-top-style:dashed}.ntbl2 .lg-swatch.s-platform{border-color:var(--rel-platform)}.ntbl2 .lg-swatch.s-parent{border-color:var(--rel-parent);border-top-style:dotted}.ntbl2 .lg-swatch.s-orphan{border-color:var(--rel-orphan);border-top-style:dashed}.ntbl2 .erd-zoom{display:flex;align-items:center;gap:2px;background:var(--surface-raised);box-shadow:var(--neu-sm);border-radius:var(--radius-base);padding:var(--sp-1)}.ntbl2 .zbtn{width:30px;height:28px;border:0;background:transparent;border-radius:var(--radius-s);color:var(--text-secondary);cursor:pointer;display:grid;place-items:center;transition:all var(--dur-fast)}.ntbl2 .zbtn:hover{background:var(--surface);color:var(--text-primary)}.ntbl2 .zbtn:active{box-shadow:var(--neu-inset-sm)}.ntbl2 .zval{min-width:46px;height:28px;border:0;background:transparent;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);cursor:pointer;font-variant-numeric:tabular-nums;border-radius:var(--radius-s)}.ntbl2 .zval:hover{background:var(--surface);color:var(--text-primary)}.ntbl2 .zsep{width:1px;height:18px;background:var(--border-default);margin:0 2px}.ntbl2 .erd-tip{position:absolute;z-index:20;background:var(--gray-600);color:#fff;border-radius:var(--radius-s);padding:var(--sp-1_5) var(--sp-2_5);font-size:var(--text-xs);box-shadow:var(--neu-md);pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity var(--dur-fast),transform var(--dur-fast);max-width:280px;line-height:1.4}.ntbl2 .erd-tip.show{opacity:1;transform:none}.ntbl2 .erd-tip .tip-path{display:flex;align-items:center;gap:6px;font-weight:600}.ntbl2 .erd-tip .tip-path .arr{opacity:.6}.ntbl2 .erd-tip .tip-via{color:var(--gray-300);font-size:var(--text-2xs);margin-top:3px;font-family:var(--font-mono)}.ntbl2 .erd-tip .tip-kind{display:inline-flex;align-items:center;gap:4px;margin-top:5px;font-size:var(--text-3xs);text-transform:uppercase;letter-spacing:.05em;color:var(--gray-300)}.ntbl2 .erd-tip .tip-dot{width:7px;height:0;border-top:2px solid currentColor;display:inline-block}.ntbl2 .erd-mini{position:absolute;right:var(--sp-4);bottom:var(--sp-4);z-index:10;width:208px;height:140px;background:var(--surface-raised);box-shadow:var(--neu-md);border-radius:var(--radius-base);padding:var(--sp-1_5);overflow:hidden}.ntbl2 .erd-mini.collapsed{width:auto;height:auto;padding:var(--sp-1)}.ntbl2 .erd-mini.collapsed .mini-svg{display:none}.ntbl2 .mini-svg{width:100%;height:100%;display:block;cursor:pointer}.ntbl2 .mini-svg .m-box{fill:var(--surface-inset);stroke:var(--border-strong);stroke-width:1}.ntbl2 .mini-svg .m-box.b-crm{fill:var(--purple-soft);stroke:var(--purple)}.ntbl2 .mini-svg .m-box.b-content{fill:var(--blue-soft);stroke:var(--blue)}.ntbl2 .mini-svg .m-box.b-tasks{fill:var(--green-soft);stroke:var(--green)}.ntbl2 .mini-svg .m-view{fill:#6b92e51a;stroke:var(--sel);stroke-width:1.5}.ntbl2 .mini-head{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-3xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-weight:600;padding:0 var(--sp-1) var(--sp-1)}.ntbl2 .mini-head .mini-tog{cursor:pointer;color:var(--text-tertiary);display:grid;place-items:center}.ntbl2 .mini-head .mini-tog:hover{color:var(--text-secondary)}.ntbl2 .erd-focusbar{position:absolute;left:50%;bottom:var(--sp-4);transform:translate(-50%) translateY(10px);z-index:11;display:flex;align-items:center;gap:var(--sp-2);background:var(--surface-raised);box-shadow:var(--neu-md);border:1px solid var(--border-subtle);border-radius:var(--radius-full);padding:var(--sp-1_5) var(--sp-2) var(--sp-1_5) var(--sp-4);font-size:var(--text-sm);color:var(--text-secondary);opacity:0;pointer-events:none;transition:all var(--dur) var(--ease)}.ntbl2 .erd-focusbar.show{opacity:1;transform:translate(-50%);pointer-events:auto}.ntbl2 .erd-focusbar b{color:var(--text-primary);font-weight:600}.ntbl2 .erd-focusbar .fb-x{width:28px;height:28px;border:0;background:transparent;border-radius:var(--radius-s);color:var(--text-tertiary);cursor:pointer;display:grid;place-items:center}.ntbl2 .erd-focusbar .fb-x:hover{background:var(--surface);color:var(--error-ink)}.ntbl2 .erd-focusbar .fb-open{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 var(--sp-2_5);border:0;background:var(--purple);color:#fff;border-radius:var(--radius-s);cursor:pointer;font-size:var(--text-xs);font-weight:600;box-shadow:var(--neu-sm)}.ntbl2 .erd-focusbar .fb-open:active{box-shadow:var(--neu-inset-sm)}.ntbl2 .erd-focusbar .fb-open .ic{width:14px;height:14px}.ntbl2 .erd-focusbar .fb-stat{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.ntbl2 .sb-item.map-active{background:var(--purple-soft);color:var(--text-primary);font-weight:500}.ntbl2 .sb-item.map-active .ic{color:var(--purple)}.ntbl2 .fe-pop{min-width:288px;max-width:300px}.ntbl2 .fe-panel{padding:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2)}.ntbl2 .fe-head{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-weight:700;padding:2px 2px 0}.ntbl2 .fe-name{font-weight:600}.ntbl2 .fe-typebtn{display:flex;align-items:center;gap:var(--sp-2);height:42px;padding:0 var(--sp-2_5);border:0;cursor:pointer;border-radius:var(--radius-s);background:var(--surface-inset);box-shadow:var(--neu-inset-sm);text-align:left;color:var(--text-primary)}.ntbl2 .fe-typebtn .fe-tb-ic{width:26px;height:26px;flex:none;display:grid;place-items:center;border-radius:var(--radius-xs);background:var(--surface-raised);box-shadow:var(--neu-sm);color:var(--purple)}.ntbl2 .fe-typebtn .fe-tb-ic svg{width:15px;height:15px}.ntbl2 .fe-tb-tx{display:flex;flex-direction:column;line-height:1.15;min-width:0;flex:1}.ntbl2 .fe-tb-tx b{font-size:var(--text-sm);font-weight:600}.ntbl2 .fe-tb-tx i{font-style:normal;font-size:var(--text-2xs);color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .fe-typebtn .caret{margin-left:auto;color:var(--text-tertiary);transition:transform var(--dur-fast)}.ntbl2 .fe-typebtn.open .caret{transform:rotate(180deg)}.ntbl2 .fe-cat{max-height:262px;overflow:auto;border-radius:var(--radius-s);background:var(--surface-inset);box-shadow:var(--neu-inset-sm);padding:var(--sp-1)}.ntbl2 .fe-cat-group{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-placeholder);font-weight:700;padding:8px 6px 3px}.ntbl2 .fe-cat-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;border:0;background:transparent;cursor:pointer;padding:5px 6px;border-radius:var(--radius-xs);text-align:left;color:var(--text-primary)}.ntbl2 .fe-cat-item:hover{background:var(--surface-raised)}.ntbl2 .fe-cat-item.on{background:var(--purple-soft)}.ntbl2 .fe-ci-ic{width:22px;height:22px;flex:none;display:grid;place-items:center;color:var(--text-tertiary)}.ntbl2 .fe-cat-item.on .fe-ci-ic{color:var(--purple)}.ntbl2 .fe-ci-ic svg{width:15px;height:15px}.ntbl2 .fe-ci-tx{display:flex;flex-direction:column;line-height:1.15;min-width:0}.ntbl2 .fe-ci-tx b{font-size:var(--text-sm);font-weight:500}.ntbl2 .fe-ci-tx i{font-style:normal;font-size:var(--text-2xs);color:var(--text-tertiary)}.ntbl2 .fe-ci-chk{margin-left:auto;color:var(--purple)}.ntbl2 .fe-ci-chk svg{width:14px;height:14px}.ntbl2 .fe-sub{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:600;padding:2px 2px 0}.ntbl2 .fe-opts{display:flex;flex-direction:column;gap:var(--sp-1);max-height:200px;overflow:auto}.ntbl2 .fe-opt{display:flex;align-items:center;gap:var(--sp-1_5);position:relative}.ntbl2 .fe-sw{width:26px;height:26px;flex:none;border:0;cursor:pointer;border-radius:var(--radius-xs);display:grid;place-items:center;box-shadow:var(--neu-sm)}.ntbl2 .fe-sw .dot{width:10px;height:10px;border-radius:var(--radius-full);background:currentColor;opacity:.95}.ntbl2 .fe-opt-in{flex:1;height:30px;padding:0 var(--sp-2_5);border:0;border-radius:var(--radius-s);background:var(--surface-inset);box-shadow:var(--neu-inset-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-sm);outline:0;min-width:0}.ntbl2 .fe-opt-in:focus{outline:2px solid var(--sel);outline-offset:-1px}.ntbl2 .fe-opt-del{width:24px;height:24px;flex:none;border:0;background:transparent;cursor:pointer;color:var(--text-placeholder);border-radius:var(--radius-xs);display:grid;place-items:center}.ntbl2 .fe-opt-del:hover{background:var(--error-soft);color:var(--error-ink)}.ntbl2 .fe-opt-del svg{width:13px;height:13px}.ntbl2 .fe-tones{position:absolute;top:30px;left:0;z-index:5;display:flex;gap:4px;padding:6px;border-radius:var(--radius-s);background:var(--surface-raised);box-shadow:var(--neu-md);border:1px solid var(--border-subtle)}.ntbl2 .fe-tone{width:24px;height:24px;border:0;cursor:pointer;border-radius:var(--radius-xs);display:grid;place-items:center;box-shadow:var(--neu-sm)}.ntbl2 .fe-tone .dot{width:9px;height:9px;border-radius:var(--radius-full);background:currentColor}.ntbl2 .fe-tone.on{outline:2px solid var(--text-secondary);outline-offset:1px}.ntbl2 .fe-addopt{display:flex;align-items:center;gap:var(--sp-1_5);height:30px;padding:0 var(--sp-2);border:0;cursor:pointer;background:transparent;color:var(--text-tertiary);border-radius:var(--radius-s);font-size:var(--text-sm);font-weight:500}.ntbl2 .fe-addopt:hover{background:var(--surface);color:var(--purple)}.ntbl2 .fe-addopt svg{width:14px;height:14px}.ntbl2 .fe-foot{display:flex;align-items:center;gap:var(--sp-2);padding-top:var(--sp-1);border-top:1px solid var(--border-subtle);margin-top:2px}.ntbl2 .fe-foot .fe-sp{flex:1}.ntbl2 .fe-foot .pop-btn{display:flex;align-items:center;gap:var(--sp-1)}.ntbl2 .fe-foot .pop-btn svg{width:13px;height:13px}.ntbl2 .fe-del{color:var(--error-ink)!important}.ntbl2 .fe-del:hover{background:var(--error-soft)!important}.ntbl2 .fname-edit{font:inherit;font-weight:600;color:var(--text-primary);border:0;outline:0;background:var(--surface-ink);box-shadow:0 0 0 2px var(--sel);border-radius:var(--radius-xs);padding:2px 4px;width:100%;min-width:60px}.ntbl2 .rh-bar{width:18px;height:14px;flex:none;display:flex;flex-direction:column;justify-content:center;gap:2px}.ntbl2 .rh-bar span{display:block;background:var(--text-tertiary);border-radius:1px;opacity:.5}.ntbl2 .rh-bar:before,.ntbl2 .rh-bar:after{content:"";display:block;height:2px;background:var(--text-tertiary);border-radius:1px;opacity:.5}.ntbl2 .rh-px{margin-left:auto;font-size:var(--text-2xs);color:var(--text-placeholder);font-variant-numeric:tabular-nums}.ntbl2 .ctx-item .rh-chk{margin-left:6px;color:var(--green)}.ntbl2 .ctx-item .rh-chk svg{width:14px;height:14px}.ntbl2 .rh-wrap .rh-switch{margin-left:auto;width:30px;height:18px;border-radius:9px;background:var(--surface-inset);box-shadow:var(--neu-inset-sm);position:relative;transition:background var(--dur-fast)}.ntbl2 .rh-wrap .rh-switch.on{background:var(--sel)}.ntbl2 .rh-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--surface-raised);box-shadow:var(--neu-sm);transition:transform var(--dur-fast)}.ntbl2 .rh-switch.on .rh-knob{transform:translate(12px)}.ntbl2 .app.wrap-all .gr{height:auto;align-items:stretch}.ntbl2 .app.wrap-all .gr>.gcell{height:auto;min-height:var(--row-h)}.ntbl2 .app.wrap-all .gcell .ctext,.ntbl2 .app.wrap-all .gcell .ptext{white-space:normal;word-break:break-word;line-height:1.4;text-overflow:clip}.ntbl2 .app.wrap-all .gcell .cval{overflow:visible}.ntbl2 .app.wrap-all .gcell{padding-top:6px;padding-bottom:6px}.ntbl2 .view-tab{position:relative}.ntbl2 .vt-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .vt-caret{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:1px;border-radius:var(--radius-xs);color:var(--text-placeholder);opacity:0;transition:opacity var(--dur-fast),background var(--dur-fast)}.ntbl2 .vt-caret svg{width:11px;height:11px}.ntbl2 .view-tab:hover .vt-caret,.ntbl2 .view-tab.active .vt-caret{opacity:1}.ntbl2 .vt-caret:hover{background:var(--surface-inset);color:var(--text-secondary)}.ntbl2 .vt-dot{width:6px;height:6px;border-radius:50%;background:var(--orange);margin-left:1px;flex:none}.ntbl2 .vt-edit{font:inherit;font-weight:500;color:var(--text-primary);border:0;outline:0;background:var(--surface-ink);box-shadow:0 0 0 2px var(--sel);border-radius:var(--radius-xs);padding:1px 4px;width:120px}.ntbl2{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.ntbl2 .nt2-tabs{display:flex;align-items:center;gap:var(--sp-1)}.ntbl2 .nt2-tabs .chip-btn.on{background:var(--purple-soft);color:var(--text-primary)}.ntbl2 .gcell.cell.nt2-sel{outline:2px solid var(--sel);outline-offset:-2px;box-shadow:inset 0 0 0 1000px var(--sel-soft);z-index:3}.ntbl2 .nt2-crumb-pick{display:inline-flex;align-items:center;gap:var(--sp-1);cursor:pointer;border-radius:var(--radius-s);padding:2px var(--sp-1)}.ntbl2 .nt2-crumb-pick:hover{background:var(--surface)}.ntbl2 .nt2-crumb-pick .chev{color:var(--text-tertiary)}.ntbl2 .nt2-dd{min-width:220px;max-height:340px;overflow:auto;background:var(--surface-raised);box-shadow:var(--neu-md);border-radius:var(--radius-base);padding:var(--sp-1)}.ntbl2 .nt2-dd-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2);border-radius:var(--radius-s);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer}.ntbl2 .nt2-dd-item:hover{background:var(--surface);color:var(--text-primary)}.ntbl2 .nt2-dd-item.on{background:var(--purple-soft);color:var(--text-primary)}.ntbl2 .nt2-dd-item .nt2-dd-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .nt2-dd-item .nt2-dd-sub{font-size:var(--text-2xs);color:var(--text-tertiary)}.ntbl2 .nt2-dd-sep{height:1px;background:var(--border-subtle);margin:var(--sp-1) var(--sp-1)}.ntbl2 .nt2-dd-item .ic{width:16px;height:16px;flex:none;display:inline-grid;place-items:center}.ntbl2 .gr[data-depth="1"] .pwrap{padding-left:18px}.ntbl2 .gr[data-depth="2"] .pwrap{padding-left:36px}.ntbl2 .gr[data-depth="3"] .pwrap{padding-left:54px}.ntbl2 .erd-focusbar .fb-name{font-weight:600;color:var(--text-primary)}.ntbl2 .nt2-flt{min-width:360px;max-width:420px;background:var(--surface-raised);box-shadow:var(--neu-md);border-radius:var(--radius-base);padding:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-1_5)}.ntbl2 .nt2-flt-head{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-weight:700;padding:2px 2px 0}.ntbl2 .nt2-flt-empty{font-size:var(--text-sm);color:var(--text-placeholder);padding:var(--sp-1) 2px}.ntbl2 .nt2-flt-row{display:flex;align-items:center;gap:var(--sp-1_5)}.ntbl2 .nt2-flt-row .form-input{height:30px;font-size:var(--text-sm)}.ntbl2 .nt2-flt-row .form-select{flex:none;width:116px}.ntbl2 .nt2-flt-row>input.form-input{flex:1;min-width:0}.ntbl2 .nt2-flt-spacer{flex:1}.ntbl2 .nt2-flt-foot{display:flex;align-items:center;gap:var(--sp-1);padding-top:var(--sp-1);border-top:1px solid var(--border-subtle)}.ntbl2 .nt2-cmt{display:flex;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle)}.ntbl2 .nt2-cmt .lc-dot{flex:none}.ntbl2 .nt2-cmt-body{flex:1;min-width:0}.ntbl2 .nt2-cmt-head{display:flex;align-items:center;gap:var(--sp-1_5);font-size:var(--text-xs);color:var(--text-secondary)}.ntbl2 .nt2-cmt-head b{color:var(--text-primary);font-weight:600}.ntbl2 .nt2-cmt-time{color:var(--text-tertiary);font-size:var(--text-2xs)}.ntbl2 .nt2-cmt-del{margin-left:auto;border:0;background:transparent;color:var(--text-tertiary);cursor:pointer;opacity:0;display:grid;place-items:center}.ntbl2 .nt2-cmt-del:hover{color:var(--error)}.ntbl2 .nt2-cmt-del svg{width:12px;height:12px}.ntbl2 .nt2-cmt-text{font-size:var(--text-sm);color:var(--text-primary);margin-top:2px;white-space:pre-wrap}.ntbl2 .nt2-cmt-add{display:flex;gap:var(--sp-2);padding-top:var(--sp-2)}.ntbl2 .nt2-cmt-add .form-input{flex:1;min-width:0}.ntbl2 .peek-bar .peek-nav-pos{font-size:var(--text-xs);white-space:nowrap;margin-right:2px}.ntbl2 .peek-bar .icon-btn:disabled{opacity:.35;pointer-events:none}@keyframes nt2-fillpulse{0%{box-shadow:inset 0 0 0 2px var(--blue)}to{box-shadow:inset 0 0 0 2px transparent}}.ntbl2 .gcell.fill-pulse{animation:nt2-fillpulse .55s ease-out var(--fd, 0ms) both}.ntbl2 .gcell.flash-cb .cb{animation:nt-cbpop .34s var(--ease, cubic-bezier(.32, .72, 0, 1)) var(--fd, 0ms) both}@keyframes nt2-rowenter{0%{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}@keyframes nt2-rowexit{0%{opacity:1}to{height:0;opacity:0;transform:translate(-10px)}}.ntbl2 .gr.row-enter{animation:nt2-rowenter .24s var(--ease, cubic-bezier(.32, .72, 0, 1))}.ntbl2 .gr.row-exit{animation:nt2-rowexit .2s var(--ease, cubic-bezier(.32, .72, 0, 1)) forwards;overflow:hidden;z-index:1}.ntbl2 .rc-tag.t-reverse_link{color:var(--purple-ink);background:var(--purple-soft)}.ntbl2 .nt2-dd-item .nt2-dd-key{margin-left:auto;padding-left:var(--sp-3);font-size:11px;font-family:var(--font-mono);color:var(--text-tertiary)}.ntbl2 .peek-hero .peek-gotable{margin-left:auto;flex:none;gap:var(--sp-1)}.ntbl2 .gcell.cell .cell-editor{min-height:100%}.ntbl2 .cell-editor.multiline{white-space:normal;align-items:stretch;padding-top:5px;padding-bottom:5px}.ntbl2 .cell-editor.multiline textarea{white-space:pre-wrap;word-break:break-word;line-height:1.4;display:block}.ntbl2 .cell-editor.wraptext{white-space:normal}.ntbl2 .cell-editor.wraptext textarea{white-space:pre-wrap;word-break:break-word;display:block}.ntbl2 .gcell.wrapcell .ctext,.ntbl2 .gcell.wrapcell .ptext{white-space:pre-wrap}.ntbl2 .wz-opt.wz-opt-msg{gap:var(--sp-2);color:var(--text-placeholder);font-size:var(--text-sm);cursor:default}.ntbl2 .wz-opt.wz-opt-msg:hover{border-color:var(--border-default)}.ntbl2 .wz-opt-retry{margin-left:auto;flex:none}.ntbl2 .gcell.cell.copied{box-shadow:inset 0 0 0 1px var(--sel)}.ntbl2 .gcell.cell.copied:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px dashed var(--blue);pointer-events:none;opacity:.8}#condbars{display:grid;grid-template-rows:0fr;transition:grid-template-rows .24s cubic-bezier(.32,.72,0,1)}#condbars.has-cond{grid-template-rows:1fr}#condbars>*{overflow:hidden;min-height:0}@media (prefers-reduced-motion: reduce){#condbars{transition:none}}@keyframes nt2-aggpulse{0%{transform:scale(1.22);color:var(--sel, var(--blue))}to{transform:scale(1)}}.ntbl2 .gfoot .sum-v.agg-pulse{display:inline-block;animation:nt2-aggpulse .41s cubic-bezier(.32,.72,0,1)}.ntbl2 .nt2-grp .nt2-grp-tog{width:14px;height:14px;flex:none;color:var(--text-tertiary);transition:transform .12s}.ntbl2 .main{position:relative;min-height:0}.ntbl2 .peek-val.editable{cursor:text;border-radius:var(--radius-s);transition:box-shadow var(--dur-fast),background var(--dur-fast)}.ntbl2 .peek-val.editable:hover{background:var(--surface-inset);box-shadow:0 0 0 4px var(--surface-inset)}.ntbl2 .peek-fld .peek-empty{color:var(--text-placeholder);font-style:italic;font-size:var(--text-xs);cursor:text}.ntbl2 .peek-fld .peek-edit{width:100%;min-width:0;border:1px solid var(--purple);border-radius:var(--radius-s);background:var(--surface-ink);outline:none;padding:var(--sp-1) var(--sp-2);font-size:var(--text-sm);color:var(--text-primary);font-family:inherit;box-shadow:var(--neu-inset-sm)}.ntbl2 .nt2-cmt-add{flex-direction:column;align-items:stretch;gap:var(--sp-1_5)}.ntbl2 .nt2-cmt-add .btn{align-self:flex-end}.ntbl2 .nt2-cmt .avatar{flex:none}.ntbl2 .nt2-cmt .nt2-cmt-del{margin-left:auto;opacity:0}.ntbl2 .nt2-cmt:hover .nt2-cmt-del{opacity:1}.ntbl2 .erd-pnode .pn-rect{fill:var(--rel-platform-soft, rgba(237, 137, 54, .12));stroke:var(--rel-platform, var(--orange));stroke-width:1}.ntbl2 .erd-pnode .pn-txt{font-family:var(--font-mono);font-size:10px;font-weight:600;fill:var(--orange-ink, var(--rel-platform))}.ntbl2 .erd-pnode.dim{opacity:.25}.ntbl2.ntbl2-app{display:flex;flex-direction:row;flex:1 1 0;min-height:0;height:auto;overflow:hidden}.ntbl2 .sidebar{min-height:0;height:100%;position:relative}.ntbl2 .sidebar .sb-dd-name{flex:1;min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.3}.ntbl2 .sb-resizer{position:absolute;top:0;right:-2px;bottom:0;width:5px;z-index:7;cursor:col-resize;transition:background var(--dur-fast)}.ntbl2 .sb-resizer:hover,.ntbl2 .sb-resizer:active{background:var(--purple-soft)}.ntbl2 .sb-search{display:flex;align-items:center;gap:var(--sp-1_5);margin:var(--sp-1) var(--sp-3) var(--sp-2);padding:0 var(--sp-2);height:28px;background:var(--surface-inset);border-radius:var(--radius-s);box-shadow:var(--neu-inset-sm);color:var(--text-tertiary)}.ntbl2 .sb-search .ic{display:inline-flex;flex:none;opacity:.7}.ntbl2 .sb-search input{flex:1;min-width:0;border:0;background:transparent;outline:none;font-size:var(--text-sm);color:var(--text-primary);font-family:inherit}.ntbl2 .sb-search .sb-search-x{display:inline-flex;flex:none;cursor:pointer;opacity:.6}.ntbl2 .sb-search .sb-search-x:hover{opacity:1;color:var(--text-primary)}.ntbl2 .sb-edit{flex:1;min-width:0;border:1px solid var(--purple);border-radius:var(--radius-xs);background:var(--surface-ink);outline:none;padding:1px var(--sp-1_5);font-size:var(--text-sm);color:var(--text-primary);font-family:inherit}.ntbl2 .sb-more{display:inline-flex;flex:none;cursor:pointer;opacity:0;padding:0 2px;margin-left:var(--sp-1);color:var(--text-tertiary);pointer-events:none}.ntbl2 .sb-base-row:hover .sb-more,.ntbl2 .sb-item:hover .sb-more{opacity:.6;pointer-events:auto}.ntbl2 .sb-more:hover{opacity:1;color:var(--text-primary)}.ntbl2 .sb-base-row{position:relative}.ntbl2 .sb-drag{position:absolute;left:0;top:0;bottom:0;width:14px;display:inline-flex;align-items:center;justify-content:center;cursor:grab;color:var(--text-placeholder);opacity:0;transition:opacity var(--dur-fast)}.ntbl2 .sb-drag:active{cursor:grabbing}.ntbl2 .sb-base-row:hover .sb-drag,.ntbl2 .sb-item:hover .sb-drag{opacity:1}.ntbl2 .sb-base{margin-bottom:var(--sp-2)}.ntbl2 .sb-base.sb-color-blue{background:var(--blue-soft);border-radius:var(--radius-s);padding-bottom:var(--sp-1)}.ntbl2 .sb-base.sb-color-blue>.sb-base-row{box-shadow:inset 2px 0 0 var(--blue)}.ntbl2 .sb-item.sb-color-blue:not(.active){background:var(--blue-soft)}.ntbl2 .sb-item.sb-color-blue>.ic{background:var(--blue-soft);color:var(--blue)}.ntbl2 .sb-sw-blue{background:var(--blue)}.ntbl2 .sb-base.sb-color-green{background:var(--green-soft);border-radius:var(--radius-s);padding-bottom:var(--sp-1)}.ntbl2 .sb-base.sb-color-green>.sb-base-row{box-shadow:inset 2px 0 0 var(--green)}.ntbl2 .sb-item.sb-color-green:not(.active){background:var(--green-soft)}.ntbl2 .sb-item.sb-color-green>.ic{background:var(--green-soft);color:var(--green)}.ntbl2 .sb-sw-green{background:var(--green)}.ntbl2 .sb-base.sb-color-orange{background:var(--orange-soft);border-radius:var(--radius-s);padding-bottom:var(--sp-1)}.ntbl2 .sb-base.sb-color-orange>.sb-base-row{box-shadow:inset 2px 0 0 var(--orange)}.ntbl2 .sb-item.sb-color-orange:not(.active){background:var(--orange-soft)}.ntbl2 .sb-item.sb-color-orange>.ic{background:var(--orange-soft);color:var(--orange)}.ntbl2 .sb-sw-orange{background:var(--orange)}.ntbl2 .sb-base.sb-color-pink{background:var(--pink-soft);border-radius:var(--radius-s);padding-bottom:var(--sp-1)}.ntbl2 .sb-base.sb-color-pink>.sb-base-row{box-shadow:inset 2px 0 0 var(--pink)}.ntbl2 .sb-item.sb-color-pink:not(.active){background:var(--pink-soft)}.ntbl2 .sb-item.sb-color-pink>.ic{background:var(--pink-soft);color:var(--pink)}.ntbl2 .sb-sw-pink{background:var(--pink)}.ntbl2 .sb-base.sb-color-purple{background:var(--purple-soft);border-radius:var(--radius-s);padding-bottom:var(--sp-1)}.ntbl2 .sb-base.sb-color-purple>.sb-base-row{box-shadow:inset 2px 0 0 var(--purple)}.ntbl2 .sb-item.sb-color-purple:not(.active){background:var(--purple-soft)}.ntbl2 .sb-item.sb-color-purple>.ic{background:var(--purple-soft);color:var(--purple)}.ntbl2 .sb-sw-purple{background:var(--purple)}.ntbl2 .sb-ctx-colors{display:flex;align-items:center;gap:var(--sp-1_5);flex-wrap:wrap;padding:var(--sp-1_5) var(--sp-2_5)}.ntbl2 .sb-swatch{width:18px;height:18px;border-radius:var(--radius-full);cursor:pointer;border:2px solid transparent;transition:transform var(--dur-fast);flex:none}.ntbl2 .sb-swatch:hover{transform:scale(1.15)}.ntbl2 .sb-swatch.on{border-color:var(--text-primary)}.ntbl2 .sb-sw-none{display:grid;place-items:center;background:var(--surface-inset);color:var(--text-tertiary)}.ntbl2 .sb-sw-none svg{width:11px;height:11px}.ntbl2 .sb-item>.ic{width:22px;height:22px;flex:none;border-radius:var(--radius-xs);display:grid;place-items:center;background:var(--surface-inset);color:var(--text-tertiary)}.ntbl2 .sb-item>.ic svg{width:14px;height:14px}.ntbl2 .sb-item.active>.ic{background:var(--purple-soft);color:var(--purple)}.ntbl2 .sb-item .count+.sb-more{margin-left:var(--sp-1)}.ntbl2 .sb-item.sb-flat{margin:1px var(--sp-2)}.ntbl2 .c-star{color:var(--warning)}.ntbl2 .sb-empty{padding:var(--sp-4) var(--sp-3);text-align:center;color:var(--text-tertiary)}.ntbl2 .sb-empty .sb-empty-tx{font-size:var(--text-xs);margin-bottom:var(--sp-2)}.ntbl2 .sb-empty .sb-empty-cta{display:inline-flex;align-items:center;gap:var(--sp-1_5);cursor:pointer;font-size:var(--text-sm);color:var(--purple);padding:var(--sp-1_5) var(--sp-3);border-radius:var(--radius-s)}.ntbl2 .sb-empty .sb-empty-cta:hover{background:var(--surface)}.ntbl2 .sb-ctx{position:fixed;z-index:60;min-width:178px;padding:var(--sp-1);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:var(--neu-lg)}.ntbl2 .sb-ctx .sb-ctx-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2_5);border-radius:var(--radius-xs);cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary)}.ntbl2 .sb-ctx .sb-ctx-item:hover{background:var(--surface);color:var(--text-primary)}.ntbl2 .sb-ctx .sb-ctx-item.danger{color:var(--error)}.ntbl2 .sb-ctx .sb-ctx-item.danger:hover{background:var(--error-soft)}.ntbl2 .sb-ctx .sb-ctx-item .ic{display:inline-flex;flex:none;opacity:.8}.ntbl2 .sb-ctx .sb-ctx-sep{height:1px;background:var(--border-subtle);margin:var(--sp-1) 0}.ntbl2 .sb-ctx .sb-ctx-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2_5);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:600;cursor:pointer}.ntbl2 .sb-ctx .sb-ctx-head:hover{color:var(--text-secondary)}.ntbl2 .sb-ctx .sb-ctx-head .ic{display:inline-flex;flex:none}.ntbl2 .sb-ctx .sb-ctx-empty{padding:var(--sp-1_5) var(--sp-2_5);font-size:var(--text-xs);color:var(--text-tertiary)}.ntbl2 .sb-ctx{max-height:60vh;overflow-y:auto}.ntbl2 .sb-section .sb-sec-actions{display:inline-flex;align-items:center;gap:var(--sp-1);margin-left:auto}.ntbl2 .sidebar:focus,.ntbl2 .sidebar:focus-visible{outline:none}.ntbl2 .sb-base-row.sb-kbd,.ntbl2 .sb-item.sb-kbd{box-shadow:inset 0 0 0 1.5px var(--purple);border-radius:var(--radius-s)}.ntbl2 .sb-share{position:fixed;z-index:61;min-width:220px;max-width:280px;max-height:60vh;overflow-y:auto;padding:var(--sp-1);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:var(--neu-lg)}.ntbl2 .sb-share .sb-share-head{padding:var(--sp-2) var(--sp-2_5) var(--sp-1);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:600}.ntbl2 .sb-share .sb-share-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-2_5);border-radius:var(--radius-xs);cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary)}.ntbl2 .sb-share .sb-share-item:hover{background:var(--surface);color:var(--text-primary)}.ntbl2 .sb-share .sb-share-item.on{color:var(--text-tertiary);cursor:default}.ntbl2 .sb-share .sb-share-item.on:hover{background:transparent}.ntbl2 .sb-share .sb-av-sm{width:22px;height:22px;flex:none;border-radius:var(--radius-full);background:var(--blue);color:#fff;display:grid;place-items:center;font-size:var(--text-2xs);font-weight:600}.ntbl2 .sb-share .sb-share-empty{padding:var(--sp-2) var(--sp-2_5);font-size:var(--text-xs);color:var(--text-tertiary)}.ntbl2 .sb-share-on{color:var(--blue);opacity:.85}.ntbl2 .fsort-wrap{display:inline-flex;align-items:center;gap:2px}.ntbl2 .nt2-srt-num{font-size:var(--text-3xs);font-weight:700;color:var(--blue);background:var(--blue-soft);border-radius:var(--radius-pill);min-width:13px;height:13px;display:grid;place-items:center}.ntbl2 .nt2-flt .nt2-srt-ord{font-size:var(--text-2xs);color:var(--text-tertiary);width:52px;flex:none}.ntbl2 .view-tab .vt-dot{width:6px;height:6px;border-radius:50%;background:var(--orange);margin-left:2px;flex:none}.ntbl2 .view-tab .vmark{opacity:0;transition:opacity .12s;cursor:pointer}.ntbl2 .view-tab:hover .vmark,.ntbl2 .view-tab.active .vmark{opacity:1}.ntbl2 .view-tab .vt-badge{width:11px;height:11px;color:var(--purple);opacity:.8;flex:none}.ntbl2 .gcell.filltgt{box-shadow:inset 0 0 0 1px var(--sel)}.ntbl2 .nt2-virt-pad{flex:none;pointer-events:none}.ntbl2 .gcell.field.dragging{opacity:.45;pointer-events:none;transform:none!important;z-index:auto!important}.ntbl2 .gcell.field.drop-target{box-shadow:inset 2px 0 0 0 var(--sel);background:var(--sel-soft)}.ntbl2 .nt2-grp{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-3);background:var(--surface-ink);border-bottom:1px solid var(--border-subtle);position:sticky;left:0;font-size:var(--text-xs)}.ntbl2 .nt2-grp-name{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-size:var(--text-2xs)}.ntbl2 .nt2-grp-val{color:var(--text-primary);font-weight:600}.ntbl2 .nt2-grp-count{color:var(--text-tertiary);background:var(--surface);border-radius:var(--radius-pill);padding:0 var(--sp-2);font-size:var(--text-2xs)}.ntbl2 .fmtbar .fmt-btn.g-b{font-weight:800}.ntbl2 .fmtbar .fmt-btn.g-i{font-style:italic;font-family:Georgia,serif}.ntbl2 .fmtbar .fmt-btn.g-u{text-decoration:underline}.ntbl2 .fmtbar .fmt-btn.g-s{text-decoration:line-through}.ntbl2 .fmtbar .swatchbtn--bar{padding-top:2px;padding-bottom:2px}.ntbl2 .fmtbar .sw-stack{display:inline-flex;flex-direction:column;align-items:center;gap:2px;line-height:0}.ntbl2 .fmtbar .sw-bar{display:block;width:16px;height:3px;border-radius:1px;background:transparent;box-shadow:inset 0 0 0 1px var(--border-default)}.ntbl2 .fmtbar .fontbtn .font-cur{font-weight:600;max-width:96px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .fmtbar .fmt-btn.is-disabled{opacity:.4;cursor:default;pointer-events:none}.ntbl2 .fmtbar .cf-btn{width:auto;gap:var(--sp-1);padding:0 var(--sp-2);flex:none}.ntbl2 .fmtbar .cf-btn span{font-size:var(--text-xs);white-space:nowrap}.ntbl2 .fmtbar .cf-btn.on{color:var(--purple)}.ntbl2 .fxbar .fx-mark-btn{border:0;background:transparent;cursor:pointer}.ntbl2 .fxbar .fx-mark-btn:hover{color:var(--text-primary)}.ntbl2 .fmt-pop{min-width:180px;background:var(--surface-raised);box-shadow:var(--neu-md);border-radius:var(--radius-base);padding:var(--sp-1_5)}.ntbl2 .fmt-pop .pop-h{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-weight:700;padding:var(--sp-1) var(--sp-1) 2px}.ntbl2 .fmt-pop .nf-opt{display:flex;align-items:center;gap:var(--sp-2);width:100%;text-align:left;border:0;background:transparent;border-radius:var(--radius-s);padding:var(--sp-1_5) var(--sp-2);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer}.ntbl2 .fmt-pop .nf-opt:hover{background:var(--surface);color:var(--text-primary)}.ntbl2 .fmt-pop .nf-opt.on{background:var(--purple-soft);color:var(--text-primary)}.ntbl2 .fmt-pop .pop-custom{padding:var(--sp-1_5) var(--sp-1) var(--sp-1)}.ntbl2 .fmt-pop .pop-custom input{width:100%;height:28px;cursor:pointer}.ntbl2 .nt2-modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;display:flex;align-items:center;justify-content:center;background:var(--overlay-bg, rgba(20, 24, 34, .42));padding:var(--sp-4)}.ntbl2 .nt2-fnmodal{display:flex;flex-direction:column;width:min(560px,96vw);max-height:80vh;background:var(--surface-raised);border-radius:var(--radius-lg);box-shadow:var(--neu-lg);overflow:hidden}.ntbl2 .nt2-fnmodal-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.ntbl2 .nt2-fnmodal-head b{font-size:var(--text-base);color:var(--text-primary)}.ntbl2 .nt2-fnmodal-x{margin-left:auto;border:0;background:transparent;color:var(--text-tertiary);cursor:pointer;display:flex;padding:var(--sp-1);border-radius:var(--radius-s)}.ntbl2 .nt2-fnmodal-x:hover{background:var(--surface);color:var(--text-primary)}.ntbl2 .nt2-fnmodal-search{padding:var(--sp-3) var(--sp-4) var(--sp-2)}.ntbl2 .nt2-fnmodal-search .form-input{width:100%;height:34px}.ntbl2 .nt2-fnmodal-body{overflow-y:auto;padding:0 var(--sp-4) var(--sp-2)}.ntbl2 .nt2-fn-cat{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-weight:700;padding:var(--sp-3) 0 var(--sp-1)}.ntbl2 .nt2-fn-tabs{display:flex;gap:var(--sp-1);padding:0 var(--sp-4) var(--sp-2);flex-wrap:wrap}.ntbl2 .nt2-fn-tab{border:1px solid var(--border-default);background:var(--surface-inset);color:var(--text-secondary);border-radius:var(--radius-pill);padding:var(--sp-1) var(--sp-3);font-size:var(--text-xs);cursor:pointer}.ntbl2 .nt2-fn-tab:hover{background:var(--surface);color:var(--text-primary)}.ntbl2 .nt2-fn-tab.on{background:var(--purple);border-color:var(--purple);color:#fff}.ntbl2 .nt2-fn-item{display:flex;flex-direction:column;gap:2px;padding:var(--sp-2);border-radius:var(--radius-s)}.ntbl2 .nt2-fn-item:hover{background:var(--surface)}.ntbl2 .nt2-fn-sig{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--purple);font-weight:600}.ntbl2 .nt2-fn-desc{font-size:var(--text-xs);color:var(--text-secondary)}.ntbl2 .nt2-fn-empty{padding:var(--sp-6);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.ntbl2 .nt2-fnmodal-foot{padding:var(--sp-2) var(--sp-4) var(--sp-3);border-top:1px solid var(--border-subtle);font-size:var(--text-xs);color:var(--text-tertiary)}.ntbl2 .gcell.field .fname-edit{font:inherit;color:inherit;letter-spacing:inherit;border:0;background:transparent;box-shadow:none;padding:0;margin:0;outline:none;height:auto}.ntbl2 .gr .gcell.idx{position:relative}.ntbl2 .gr .rresz{position:absolute;left:0;right:0;bottom:-3px;height:7px;cursor:row-resize;z-index:6;opacity:0}.ntbl2 .gr:hover .rresz{opacity:1}.ntbl2 .gr .rresz:hover{background:var(--purple);opacity:1}body.row-resizing,body.row-resizing *{cursor:row-resize!important;-webkit-user-select:none!important;user-select:none!important}.ntbl2 .addrow{display:flex;align-items:stretch;gap:var(--sp-2)}.ntbl2 .addrow-one{display:flex;align-items:center;flex:none;cursor:pointer}.ntbl2 .addrow-bulk{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);font-size:var(--text-xs);color:var(--text-tertiary)}.ntbl2 .addrow-bulk .arb-txt{color:var(--text-tertiary)}.ntbl2 .addrow-bulk .arb-n{width:56px;height:26px;padding:0 var(--sp-2);border:1px solid var(--border-default);border-radius:var(--radius-s);background:var(--surface-inset);color:var(--text-primary);font-size:var(--text-sm);text-align:center}.ntbl2 .addrow-bulk .arb-go{height:26px;padding:0 var(--sp-3);border:1px solid var(--border-default);border-radius:var(--radius-s);background:var(--surface-raised);color:var(--text-secondary);cursor:pointer;font-size:var(--text-xs)}.ntbl2 .addrow-bulk .arb-go:hover{background:var(--surface);color:var(--text-primary)}.ntbl2 .addrow-bulk .arb-auto{display:inline-flex;align-items:center;gap:var(--sp-1_5);height:26px;padding:0 var(--sp-2);border:1px solid transparent;border-radius:var(--radius-s);background:transparent;color:var(--text-tertiary);cursor:pointer;font-size:var(--text-xs)}.ntbl2 .addrow-bulk .arb-auto.on{color:var(--purple);border-color:var(--purple-soft);background:var(--purple-soft)}.ntbl2 .addrow-bulk .arb-auto .cb{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border:1.5px solid var(--border-default);border-radius:var(--radius-xs)}.ntbl2 .addrow-bulk .arb-auto .cb.on{background:var(--purple);border-color:var(--purple);color:#fff}.ntbl2 .nt2-fr{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) var(--sp-4);border-bottom:1px solid var(--border-subtle);background:var(--surface-ink)}.ntbl2 .nt2-fr .form-input{height:28px;font-size:var(--text-sm);width:200px}.ntbl2 .nt2-fr-count{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap}.ntbl2 .gcell.cell.find-hit:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--warning-soft, rgba(236, 201, 75, .3));pointer-events:none;z-index:2}.ntbl2 .nt2-colstats{padding:var(--sp-1_5)}.ntbl2 .nt2-cs-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-1) var(--sp-2);font-size:var(--text-sm)}.ntbl2 .nt2-cs-k{color:var(--text-secondary)}.ntbl2 .nt2-cs-v{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.ntbl2 .nt2-cs-top{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs);position:relative}.ntbl2 .nt2-cs-top-bar{position:absolute;left:var(--sp-1);right:var(--sp-1);top:2px;bottom:2px;border-radius:var(--radius-s);overflow:hidden;pointer-events:none}.ntbl2 .nt2-cs-top-bar>i{display:block;height:100%;background:var(--purple-soft)}.ntbl2 .nt2-cs-top-lbl{position:relative;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.ntbl2 .nt2-cs-top-n{position:relative;color:var(--text-tertiary);font-variant-numeric:tabular-nums;flex:none}.ntbl2 .gcell.cell.invalid:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--error-soft);box-shadow:inset 0 0 0 1.5px var(--error);pointer-events:none;z-index:1}.ntbl2 .fe-val-req{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1_5) 2px;font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer}.ntbl2 .fe-val-row{display:flex;gap:var(--sp-2)}.ntbl2 .fe-val-row .fe-opt-in{flex:1;min-width:0}.ntbl2 .fe-val-regex{width:100%;font-family:var(--font-mono)}.ntbl2 .fe-formula-wrap{position:relative}.ntbl2 .fe-fa-dd{position:absolute;left:0;right:0;top:100%;margin-top:2px;z-index:20;max-height:220px;overflow-y:auto;background:var(--surface-raised);box-shadow:var(--neu-md);border-radius:var(--radius-base);padding:var(--sp-1)}.ntbl2 .fe-fa-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-s);cursor:pointer;font-size:var(--text-sm)}.ntbl2 .fe-fa-item.on,.ntbl2 .fe-fa-item:hover{background:var(--purple-soft)}.ntbl2 .fe-fa-tag{flex:none;min-width:20px;height:18px;padding:0 4px;display:grid;place-items:center;border-radius:var(--radius-xs);font-size:var(--text-2xs);font-weight:700;font-family:var(--font-mono)}.ntbl2 .fe-fa-tag.fld{background:var(--blue-soft);color:var(--blue)}.ntbl2 .fe-fa-tag.fn{background:var(--purple-soft);color:var(--purple)}.ntbl2 .fe-fa-lbl{color:var(--text-primary);font-weight:500}.ntbl2 .fe-fa-hint{margin-left:auto;color:var(--text-tertiary);font-size:var(--text-2xs);font-family:var(--font-mono);white-space:nowrap}.ntbl2 .nt2-bulkcolor{display:flex;flex-wrap:wrap;gap:var(--sp-1);width:132px;transform:translateY(calc(-100% - 10px));background:var(--surface-raised);box-shadow:var(--neu-md);border-radius:var(--radius-base);padding:var(--sp-1_5)}.ntbl2 .nt2-bc-sw{width:26px;height:26px;padding:0;border:0;background:transparent;border-radius:var(--radius-s);cursor:pointer;display:grid;place-items:center}.ntbl2 .nt2-bc-sw:hover{background:var(--surface)}.ntbl2 .nt2-bc-fill{width:18px;height:18px;border-radius:var(--radius-xs);box-shadow:inset 0 0 0 1px var(--border-default)}.ntbl2 .nt2-linkpanel{position:absolute;left:0;right:0;bottom:33px;z-index:8;display:flex;align-items:center;gap:var(--sp-2);height:44px;padding:0 var(--sp-3);background:var(--surface-raised);border-top:1px solid var(--border-subtle);box-shadow:var(--neu-md)}.ntbl2 .nt2-lp-title{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap;flex:none}.ntbl2 .nt2-lp-empty{font-size:var(--text-sm);color:var(--text-placeholder);flex:1}.ntbl2 .nt2-lp-list{display:flex;align-items:center;gap:var(--sp-2);overflow-x:auto;flex:1;min-width:0}.ntbl2 .nt2-lp-chip{display:inline-flex;align-items:center;gap:var(--sp-1_5);flex:none;padding:var(--sp-1) var(--sp-2);border:0;background:var(--surface);border-radius:var(--radius-pill);cursor:pointer;font-size:var(--text-sm);color:var(--text-primary)}.ntbl2 .nt2-lp-chip:hover{background:var(--surface-inset)}.ntbl2 .nt2-lp-lbl{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .nt2-lp-x{flex:none;border:0;background:transparent;cursor:pointer;color:var(--text-tertiary);display:grid;place-items:center;padding:4px}.ntbl2 .nt2-lp-x:hover{color:var(--text-primary)}.ntbl2 .gcell .atts{display:inline-flex;align-items:center;gap:var(--sp-1);overflow:hidden}.ntbl2 .att-thumb{width:24px;height:24px;object-fit:cover;border-radius:var(--radius-xs);flex:none;box-shadow:inset 0 0 0 1px var(--border-subtle)}.ntbl2 .att-file{display:inline-flex;align-items:center;gap:3px;flex:none;max-width:120px;padding:1px var(--sp-1_5);background:var(--surface-inset);border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--text-secondary)}.ntbl2 .att-file .att-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntbl2 .att-file svg{width:11px;height:11px;flex:none}.ntbl2 .nt2-attach{display:flex;flex-direction:column;gap:var(--sp-1)}.ntbl2 .nt2-att-list{display:flex;flex-direction:column;gap:2px;max-height:240px;overflow-y:auto}.ntbl2 .nt2-att-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-1_5);border-radius:var(--radius-s)}.ntbl2 .nt2-att-item:hover{background:var(--surface)}.ntbl2 .nt2-att-thumb{width:28px;height:28px;object-fit:cover;border-radius:var(--radius-xs);flex:none;box-shadow:inset 0 0 0 1px var(--border-subtle)}.ntbl2 .nt2-att-ic{width:28px;height:28px;display:grid;place-items:center;flex:none;background:var(--surface-inset);border-radius:var(--radius-xs);color:var(--text-tertiary)}.ntbl2 .nt2-att-ic svg{width:14px;height:14px}.ntbl2 .nt2-att-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);color:var(--text-primary);text-decoration:none}.ntbl2 .nt2-att-name:hover{color:var(--accent);text-decoration:underline}.ntbl2 .nt2-att-sz{flex:none;font-size:var(--text-2xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.ntbl2 .nt2-att-x{flex:none;border:0;background:transparent;cursor:pointer;color:var(--text-tertiary);display:grid;place-items:center;padding:2px;opacity:0}.ntbl2 .nt2-att-item:hover .nt2-att-x{opacity:1}.ntbl2 .nt2-att-x:hover{color:var(--error)}.ntbl2 .nt2-att-x svg{width:12px;height:12px}.ntbl2 .nt2-att-empty{font-size:var(--text-sm);color:var(--text-placeholder);padding:var(--sp-2);text-align:center}.ntbl2 .nt2-att-add{display:flex;align-items:center;justify-content:center;gap:var(--sp-1_5);border:0;background:var(--surface-inset);border-radius:var(--radius-s);padding:var(--sp-1_5);cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary)}.ntbl2 .nt2-att-add:hover:not(:disabled){background:var(--purple-soft);color:var(--text-primary)}.ntbl2 .nt2-att-add:disabled{opacity:.6;cursor:default}.ntbl2 .nt2-att-add .ic svg{width:13px;height:13px}@media print{body *{visibility:hidden!important}.ntbl2 .grid-wrap,.ntbl2 .grid-wrap *{visibility:visible!important}.ntbl2 .grid-wrap{position:absolute!important;left:0!important;top:0!important;width:auto!important;height:auto!important;max-height:none!important;overflow:visible!important;box-shadow:none!important}.ntbl2 .nt2-virt-pad{display:none!important}.ntbl2 .gcell{box-shadow:none!important;border:.5px solid var(--border-default)!important}.ntbl2 .gcell.addcol,.ntbl2 .gcell.lc-add,.ntbl2 .rowcheck,.ntbl2 .hdr-check,.ntbl2 .selall,.ntbl2 .expand,.ntbl2 .tree-tog{display:none!important}@page{margin:12mm}}.ntbl2 .nt2-delta{font-variant-numeric:tabular-nums;font-weight:600}.ntbl2 .nt2-delta--pos{color:var(--success)}.ntbl2 .nt2-delta--neg{color:var(--error)}.ntbl2 .nt2-delta--zero{color:var(--text-tertiary);font-weight:500}.ntbl2 .nt2-dsup{font-size:.7em;font-weight:700;margin-left:3px;vertical-align:super;font-variant-numeric:tabular-nums;line-height:0}.ntbl2 .nt2-dsup--pos{color:var(--success)}.ntbl2 .nt2-dsup--neg{color:var(--error)}.ntbl2 .nt2-dsup--zero{color:var(--text-tertiary)}.ntbl2 .fe-name,.ntbl2 .fe-typebtn,.ntbl2 .fe-cat,.ntbl2 .fe-opt-in,.ntbl2 .fe-formula{background:var(--surface);box-shadow:none;border:1px solid var(--border-default)}.ntbl2 .fe-name:focus,.ntbl2 .fe-opt-in:focus,.ntbl2 .fe-formula:focus,.ntbl2 .fe-typebtn.open{border-color:var(--accent)}.ntbl2 .fe-formula{width:100%;min-height:60px;resize:vertical;padding:var(--sp-2) var(--sp-2_5);border-radius:var(--radius-s);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-primary);outline:0}.ntbl2 .fe-hint{font-size:var(--text-2xs);color:var(--text-tertiary);padding:0 2px;line-height:1.4}.ntbl2 .gcell.cell .cmono,.ntbl2 .gcell.cell .badge,.ntbl2 .gcell.cell .linkchip,.ntbl2 .gcell.cell .platlink,.ntbl2 .gcell.cell .attach{font-size:var(--cell-fs, var(--text-xs))}.ntbl2 .gcell.field .ic.fdesc{width:13px;height:13px;color:var(--text-tertiary);cursor:help;flex:none}.ntbl2 .gcell.field .ic.fdesc:hover{color:var(--accent)}.ntbl2 .fe-desc{width:100%;resize:vertical;min-height:40px;padding:var(--sp-2) var(--sp-2_5);border-radius:var(--radius-s);font-size:var(--text-sm);font-family:inherit;color:var(--text-primary);background:var(--surface);box-shadow:none;border:1px solid var(--border-default);outline:0;line-height:1.4}.ntbl2 .fe-desc:focus{border-color:var(--accent)}.ntbl2 .gcell.field .ftype-sug{display:inline-flex;align-items:center;gap:2px;flex:none;margin-left:2px}.ntbl2 .ftype-sug-go{display:inline-flex;align-items:center;gap:3px;height:18px;padding:0 var(--sp-1_5);border:0;border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;font-size:var(--text-3xs);font-weight:600;line-height:1;color:var(--accent-ink, var(--accent));background:var(--accent-soft, var(--purple-soft))}.ntbl2 .ftype-sug-go:hover{filter:brightness(.96)}.ntbl2 .ftype-sug-go .ic{width:11px;height:11px}.ntbl2 .ftype-sug-x{display:inline-grid;place-items:center;width:15px;height:15px;padding:0;border:0;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-xs)}.ntbl2 .ftype-sug-x:hover{color:var(--text-secondary);background:var(--surface-inset)}.ntbl2 .ftype-sug-x .ic,.ntbl2 .ftype-sug-x svg{width:10px;height:10px}.ntbl2 .gcell.primary:not(.pinned),.ntbl2 .gcell.cell.primary:not(.pinned),.ntbl2 .fields .gcell.primary:not(.pinned),.ntbl2 .letters .gcell.primary:not(.pinned){position:relative;left:auto;z-index:1}.ntbl2 .gcell.cell .cell-note{position:absolute;top:0;right:0;width:0;height:0;pointer-events:none;z-index:1;border-top:7px solid var(--accent, var(--purple));border-left:7px solid transparent}
