.pwa-banner{position:fixed;bottom:var(--spacing-lg);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:9999;font-size:var(--text-sm);white-space:nowrap;background-color:#2c2826;border:1px solid #433e3a;color:#f2f0ed}[data-theme=dark] .pwa-banner{background-color:#f7f6f2;border-color:#d2d0c9;color:#2a2826}.pwa-offline-ready-banner{color:var(--color-primary);animation:pwa-fade-in .2s ease}@keyframes pwa-fade-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.login-form{width:100%;max-width:400px;padding:var(--spacing-xl);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.login-header{text-align:center;margin-bottom:var(--spacing-xl)}.login-logo{height:48px;width:auto;margin-bottom:var(--spacing-md)}.login-title{font-size:var(--text-xl);font-weight:600;color:var(--color-text);margin:0 0 var(--spacing-xs) 0}.login-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.login-tabs{display:flex;border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-lg)}.login-tab{flex:1;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:color .15s,border-color .15s}.login-tab:hover{color:var(--color-text)}.login-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.login-button{width:100%;margin-top:var(--spacing-md)}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:var(--spacing-lg);background-color:var(--color-background)}.login-page:before{content:"";position:fixed;inset:0;background:linear-gradient(135deg,var(--color-primary-light) 0%,transparent 50%);opacity:.5;pointer-events:none;z-index:-1}.sso-callback-loading{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-2xl) var(--spacing-xl)}.sso-spinner{width:3rem;height:3rem;border:3px solid color-mix(in srgb,#22c55e 20%,transparent);border-top-color:#22c55e;border-radius:50%;animation:sso-spin .8s linear infinite}@keyframes sso-spin{to{transform:rotate(360deg)}}.sso-callback-text{margin-top:var(--spacing-lg);color:var(--color-text-secondary);font-size:var(--text-sm)}.login-disclaimer{margin-top:var(--spacing-lg);text-align:center;font-size:var(--text-2xs);color:var(--color-text-tertiary);max-width:400px;line-height:var(--leading-relaxed)}.login-offline-notice{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xl) var(--spacing-md);color:var(--color-text-secondary);text-align:center}.login-offline-notice svg{color:var(--color-warning, #d97706)}.login-offline-notice p{margin:0;font-size:var(--text-sm);line-height:var(--leading-relaxed)}.left-nav{--nav-width: 240px;width:var(--nav-width);min-width:var(--nav-width);display:flex;flex-direction:column;background:var(--color-background);flex-shrink:0;overflow:hidden;transition:width .2s ease,min-width .2s ease}.left-nav.collapsed{--nav-width: 48px}.nav-resizing .left-nav{transition:none}.left-nav-resize-handle{width:0;flex-shrink:0;position:relative;z-index:var(--z-base)}.left-nav-resize-handle:before{content:"";position:absolute;top:8px;bottom:8px;left:-4px;width:8px;cursor:col-resize}.left-nav-resize-handle:after{content:"";position:absolute;top:20px;bottom:20px;left:-1px;width:2px;border-radius:1px;background:var(--color-primary);opacity:0;transition:opacity var(--transition-fast);pointer-events:none}.left-nav-resize-handle:hover:after,.nav-resizing .left-nav-resize-handle:after{opacity:.4}.left-nav-header{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:10px 12px;flex-shrink:0}.left-nav-header-top{display:flex;align-items:center;gap:8px;min-height:20px}.left-nav-brand{height:22px;width:auto;flex-shrink:0}.left-nav-brand-text{font-size:var(--text-compact);font-weight:700;color:var(--color-text);letter-spacing:-.02em;white-space:nowrap;overflow:hidden}.left-nav-toggle{margin-left:auto;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);flex-shrink:0;transition:color var(--transition-fast),background var(--transition-fast)}.left-nav-toggle:hover{color:var(--color-text);background:var(--color-surface-hover)}.collapsed .left-nav-header{align-items:center;padding:8px 6px}.collapsed .left-nav-brand{height:16px}.left-nav-expand{border:none;background:none;font-family:inherit;width:100%}.left-nav-links{display:flex;flex-direction:column;gap:var(--ui-gap, 2px);padding:var(--ui-section-gap, 8px) 6px;flex-shrink:0}.left-nav-offline{display:flex;align-items:center;gap:10px;padding:var(--ui-item-pad, 7px 10px);border-radius:var(--radius-md);font-size:var(--fs-ui);font-weight:500;color:var(--color-warning, #d97706)}.collapsed .left-nav-offline{justify-content:center}.left-nav-link{display:flex;align-items:center;gap:10px;padding:var(--ui-item-pad, 7px 10px);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--fs-ui);font-weight:500;text-decoration:none;white-space:nowrap;transition:color var(--transition-fast),background var(--transition-fast);cursor:pointer}.left-nav-link:hover{color:var(--color-text);background:var(--color-surface-hover)}.left-nav-link.active{color:var(--color-text);font-weight:600}.left-nav-link.active .left-nav-label{text-decoration:underline;text-decoration-color:var(--color-primary);text-underline-offset:3px;text-decoration-thickness:2px}.collapsed .left-nav-link{justify-content:center;padding:8px}.left-nav-label{overflow:hidden;white-space:nowrap}.left-nav-create{position:relative;padding:var(--ui-gap, 4px) 6px;flex-shrink:0}.left-nav-create-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:8px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;transition:opacity var(--transition-fast),transform var(--transition-fast)}.left-nav-create-btn:hover{opacity:.92}.left-nav-create-btn:active{transform:scale(.98)}.left-nav-create-split{display:flex;align-items:stretch;border-radius:var(--radius-md);overflow:hidden}.left-nav-create-main{display:flex;align-items:center;gap:8px;flex:1;padding:7px 10px;background:var(--color-primary);color:#fff;border:none;font-size:var(--fs-ui);font-weight:600;line-height:1;cursor:pointer;font-family:inherit;transition:opacity var(--transition-fast)}.left-nav-create-main svg{display:block;flex-shrink:0}.left-nav-create-main:hover{opacity:.92}.left-nav-create-main:active{opacity:.85}.left-nav-create-trigger{display:flex;align-items:center;justify-content:center;width:30px;background:var(--color-primary);color:#fff;border:none;border-left:1px solid rgba(255,255,255,.2);cursor:pointer;transition:background var(--transition-fast)}.left-nav-create-trigger:hover{background:color-mix(in srgb,var(--color-primary) 80%,black)}.left-nav-create-trigger svg{transition:transform var(--transition-fast)}.left-nav-create-trigger svg.open{transform:rotate(180deg)}.left-nav-create-dropdown{position:absolute;top:calc(100% + 2px);left:6px;right:6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:var(--z-dropdown);overflow:hidden;animation:fw-dropdown-in .12s ease-out}.left-nav-create-dropdown.from-collapsed{left:calc(var(--nav-width) + 4px);right:auto;top:0;min-width:160px}.left-nav-create-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:none;border:none;font-size:var(--fs-ui);font-weight:500;color:var(--color-text);cursor:pointer;font-family:inherit;transition:background var(--transition-fast)}.left-nav-create-option:hover{background:var(--color-surface-hover)}.left-nav-create-option svg{color:var(--color-text-tertiary);flex-shrink:0}.left-nav-conversations{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0}.left-nav-sidebar-embed{flex:1;display:flex;flex-direction:column;overflow:hidden;background:transparent;border:none}.left-nav-spacer{flex:1}.left-nav-conversations~.left-nav-spacer{flex:0}.left-nav-usage{display:flex;flex-direction:column;gap:var(--ui-gap, 4px);margin:0 6px;padding:var(--ui-item-pad, 8px 10px);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);text-decoration:none;transition:border-color var(--transition-fast);flex-shrink:0}.left-nav-usage:hover{border-color:var(--color-primary)}.left-nav-usage-row{display:flex;align-items:center;justify-content:space-between}.left-nav-usage-label{font-size:var(--fs-ui);font-weight:500;color:var(--color-text-tertiary)}.left-nav-usage-value{font-size:var(--fs-ui);font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}.left-nav-user-row{display:flex;align-items:center;gap:8px;padding:var(--ui-item-pad, 8px 6px);flex-shrink:0}.left-nav-avatar{width:26px;height:26px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;letter-spacing:.02em;flex-shrink:0;line-height:1}.left-nav-user-name{font-size:var(--fs-ui);font-weight:500;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.left-nav-icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);flex-shrink:0;transition:color var(--transition-fast),background var(--transition-fast);text-decoration:none}.left-nav-icon-btn:hover{color:var(--color-text);background:var(--color-surface-hover)}.collapsed .left-nav-user-row{flex-direction:column;gap:4px;padding:8px 4px}.nav-item-empty-action{padding:8px 6px;flex-shrink:0}.nav-item-create-btn{display:flex;align-items:center;gap:6px;width:100%;padding:var(--ui-item-pad, 7px 10px);background:none;border:1px dashed var(--color-border);border-radius:var(--radius-md);font-size:var(--fs-ui);font-weight:500;color:var(--color-text-secondary);cursor:pointer;font-family:inherit;transition:border-color var(--transition-fast),color var(--transition-fast)}.nav-item-create-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.page-toolbar{display:flex;align-items:center;gap:8px;padding:var(--ui-pad, 8px 12px);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;min-height:40px}.page-toolbar-back{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:4px;display:flex;align-items:center;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.page-toolbar-back:hover{color:var(--color-text);background:var(--color-surface-hover)}.page-toolbar-title{font-size:var(--text-compact);font-weight:600;color:var(--color-text);letter-spacing:-.02em;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-toolbar-title.editable{cursor:pointer;border-radius:var(--radius-sm);padding:1px 4px;margin:-1px -4px}.page-toolbar-title.editable:hover{background:var(--color-surface-hover)}.page-toolbar-title-input{font-size:var(--text-compact);font-weight:600;color:var(--color-text);letter-spacing:-.02em;background:var(--color-background);border:1px solid var(--color-primary);border-radius:var(--radius-sm);padding:1px 4px;outline:none;max-width:300px;font-family:inherit}.page-toolbar-actions{display:flex;align-items:center;gap:6px;margin-left:auto}@media(max-width:768px){.left-nav{position:fixed;left:0;top:0;bottom:0;z-index:var(--z-modal);transform:translate(-100%);transition:transform var(--transition-fast) ease}.left-nav:not(.collapsed){transform:translate(0)}}@media print{.left-nav{display:none!important}}.settings-modal{width:auto;max-width:calc(100vw - 24px);max-height:calc(100vh - 96px);overflow-y:auto;padding:0}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--color-border);position:sticky;top:0;background:var(--color-surface);z-index:var(--z-base)}.settings-title{font-size:16px;font-weight:700;color:var(--color-text);letter-spacing:-.02em;margin:0}.settings-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.settings-close:hover{color:var(--color-text);background:var(--color-surface-hover)}.settings-body{display:flex;flex-direction:column;gap:16px;padding:16px}.settings-section{display:flex;flex-direction:column;gap:8px}.settings-section-label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary)}.settings-toggle-group{display:flex;gap:2px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:3px;width:fit-content}.settings-toggle-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 14px;background:none;border:none;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary);cursor:pointer;font-family:inherit;transition:all var(--transition-fast);white-space:nowrap}.settings-toggle-btn:hover:not(.active){color:var(--color-text)}.settings-toggle-btn.active{background:var(--color-surface);color:var(--color-text);font-weight:600;box-shadow:0 1px 3px #00000014}.settings-select{width:100%;padding:7px 10px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:500;color:var(--color-text);cursor:pointer;font-family:inherit;appearance:auto}.settings-select:focus{outline:none;border-color:var(--color-primary)}.settings-section-desc{font-size:var(--text-2xs);color:var(--color-text-tertiary);margin:0;line-height:1.4}.settings-link{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:500;color:var(--color-primary);text-decoration:none;cursor:pointer;width:fit-content;transition:border-color var(--transition-fast),background var(--transition-fast)}.settings-link:hover{border-color:var(--color-primary);background:var(--color-surface-hover)}.settings-footer{padding:12px 16px;border-top:1px solid var(--color-border);text-align:right}.settings-build{font-size:11px;font-family:var(--font-mono, monospace);color:var(--color-text-tertiary);letter-spacing:.02em}.home-page{display:flex;flex-direction:column;padding:var(--spacing-xl) var(--spacing-2xl);overflow-y:auto;height:100%;max-width:1120px;margin:0 auto;width:100%;gap:var(--spacing-xl)}.home-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg)}.home-create{position:relative;flex-shrink:0}.home-create-split{display:flex;align-items:stretch;border-radius:var(--radius-md);overflow:hidden}.home-create-main{display:flex;align-items:center;gap:8px;flex:1;padding:7px 10px;background:var(--color-primary);color:#fff;border:none;font-family:inherit;font-size:var(--fs-ui);font-weight:600;line-height:1;cursor:pointer;transition:opacity var(--transition-fast);white-space:nowrap}.home-create-main svg{display:block;flex-shrink:0}.home-create-main:hover{opacity:.92}.home-create-main:active{opacity:.85}.home-create-trigger{display:flex;align-items:center;justify-content:center;width:30px;background:var(--color-primary);color:#fff;border:none;border-left:1px solid rgba(255,255,255,.2);cursor:pointer;transition:background var(--transition-fast)}.home-create-trigger:hover{background:color-mix(in srgb,var(--color-primary) 80%,black)}.home-create-trigger svg{transition:transform var(--transition-fast)}.home-create-trigger svg.open{transform:rotate(180deg)}.home-create-dropdown{position:absolute;top:calc(100% + 2px);right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:var(--z-dropdown);overflow:hidden;min-width:160px;animation:fw-dropdown-in .12s ease-out}.home-create-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:none;border:none;font-size:var(--fs-ui);font-weight:500;color:var(--color-text);cursor:pointer;font-family:inherit;transition:background var(--transition-fast)}.home-create-option:hover{background:var(--color-surface-hover)}.home-create-option svg{color:var(--color-text-tertiary);flex-shrink:0}.home-greeting{display:flex;flex-direction:column;gap:var(--spacing-xs)}.home-greeting-text{font-size:var(--text-2xl);font-weight:600;color:var(--color-text);margin:0}.home-greeting-date{font-size:var(--text-sm);color:var(--color-text-tertiary);margin:0}.quick-actions{display:flex;flex-direction:column;gap:var(--spacing-sm)}.quick-actions-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary)}.quick-actions-row{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center}.quick-action-pill{position:relative;display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.quick-action-pill:hover{background:var(--color-surface-hover);border-color:var(--color-primary);color:var(--color-primary)}.quick-action-pill.default{border-style:dashed;color:var(--color-text-secondary)}.quick-action-pill.default:hover{border-style:solid;color:var(--color-primary)}.quick-action-pill.add-pill{border-style:dashed;color:var(--color-text-tertiary);padding:var(--spacing-xs) var(--spacing-sm)}.quick-action-pill.add-pill:hover{border-style:solid;color:var(--color-primary);border-color:var(--color-primary)}.quick-action-delete{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;padding:0;margin-left:var(--spacing-xs);opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast)}.quick-action-pill:hover .quick-action-delete{opacity:1}.quick-action-delete:hover{color:var(--color-error)}.quick-action-skeleton{display:inline-block;height:32px;border-radius:var(--radius-full);background:var(--color-surface-hover);animation:skeleton-pulse 1.5s ease-in-out infinite}.home-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);text-decoration:none;color:var(--color-text);min-height:36px}.home-item:hover{background:var(--color-surface-hover)}.home-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.home-item-title{font-size:var(--text-sm);font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-item-meta{font-size:var(--text-2xs);color:var(--color-text-tertiary)}.home-item-icon{flex-shrink:0;color:var(--color-text-tertiary)}.home-item-star{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:var(--spacing-xs);color:var(--color-text-tertiary);transition:color var(--transition-fast);flex-shrink:0}.home-item-star:hover,.home-item-star.filled{color:var(--color-warning)}.home-empty{font-size:var(--text-sm);color:var(--color-text-tertiary);padding:var(--spacing-sm) 0}.home-empty a{color:var(--color-primary);text-decoration:none}.home-empty a:hover{text-decoration:underline}.home-skeleton-row{height:36px;border-radius:var(--radius-md);background:var(--color-surface-hover);animation:skeleton-pulse 1.5s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.save-prompt-modal{width:min(440px,90vw);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.save-prompt-modal h3{margin:0;font-size:var(--text-lg);font-weight:600;color:var(--color-text)}.save-prompt-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.save-prompt-field label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary)}.save-prompt-field textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);resize:vertical;min-height:80px;transition:border-color var(--transition-fast)}.save-prompt-field textarea:focus{border-color:var(--color-primary);outline:none}.save-prompt-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.home-header-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.home-edit-btn{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border);font-family:inherit;font-size:var(--fs-ui);font-weight:600;line-height:1;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.home-edit-btn:hover{background:var(--color-surface-hover);border-color:var(--color-text-tertiary)}.home-edit-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.home-edit-btn.active:hover{opacity:.92}.home-edit-btn svg{display:block;flex-shrink:0}.home-widget-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md);min-height:0}@media(max-width:1024px){.home-widget-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.home-widget-grid{grid-template-columns:1fr}}.home-widget-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;min-height:120px;position:relative}.home-widget-card.editing{cursor:pointer;border-style:dashed}.home-widget-card.editing:hover{border-color:var(--color-primary)}.home-widget-card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border);min-height:36px}.home-widget-card-title{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-widget-card-body{flex:1;padding:var(--spacing-sm);overflow:hidden;display:flex;flex-direction:column;min-height:0}.home-widget-card-body .data-table-wrapper{max-height:100%;overflow:auto}.home-widget-card-body .chart-wrapper{height:100%;min-height:150px}.home-widget-remove{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full);background:var(--color-surface-hover);border:1px solid var(--color-border);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.home-widget-remove:hover{background:var(--color-error);color:#fff;border-color:var(--color-error)}.home-widget-edit{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full);background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;opacity:0;transition:all var(--transition-fast);flex-shrink:0;padding:0}.home-widget-card:hover .home-widget-edit{opacity:1}.home-widget-edit:hover{color:var(--color-primary)}.home-widget-size-label{position:absolute;bottom:var(--spacing-xs);right:var(--spacing-sm);font-size:var(--text-2xs);color:var(--color-text-tertiary);background:var(--color-surface);padding:1px 6px;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.home-widget-skeleton{display:flex;align-items:center;justify-content:center;height:100%;min-height:80px;color:var(--color-text-tertiary)}.home-widget-skeleton .spinning{animation:spin 1s linear infinite}.home-widget-error{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm);font-size:var(--text-xs);color:var(--color-error)}.home-widget-no-data{display:flex;align-items:center;justify-content:center;height:100%;min-height:60px;font-size:var(--text-sm);color:var(--color-text-tertiary)}.home-widget-add-wrapper{position:relative}.home-widget-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xs);min-height:120px;width:100%;background:none;border:2px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-tertiary);cursor:pointer;font-family:inherit;font-size:var(--text-sm);font-weight:500;transition:all var(--transition-fast)}.home-widget-add:hover{border-color:var(--color-primary);color:var(--color-primary)}.home-widget-add-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:var(--z-dropdown);overflow:hidden;animation:fw-dropdown-in .12s ease-out}.home-widget-add-option{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;font-family:inherit;font-size:var(--text-sm);font-weight:500;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast);text-align:left}.home-widget-add-option:hover{background:var(--color-surface-hover)}.home-widget-add-option svg{color:var(--color-text-tertiary);flex-shrink:0}.home-widget-add-divider{height:1px;background:var(--color-border);margin:2px 0}.home-widget-builtin-content{display:flex;flex-direction:column;gap:var(--spacing-xs);overflow-y:auto}.home-widget-config{width:min(360px,90vw);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.home-widget-config h4{margin:0;font-size:var(--text-base);font-weight:600}.home-widget-config-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.home-widget-config-row label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary)}.home-widget-stepper{display:flex;align-items:center;gap:var(--spacing-sm)}.home-widget-stepper button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast)}.home-widget-stepper button:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-primary)}.home-widget-stepper button:disabled{opacity:.4;cursor:not-allowed}.home-widget-stepper span{font-size:var(--text-sm);font-weight:600;min-width:24px;text-align:center}.widget-config-edit-btn{display:inline-flex;align-items:center;gap:6px}.home-widget-drag-handle{display:inline-flex;align-items:center;justify-content:center;cursor:grab;color:var(--color-text-tertiary);opacity:0;transition:opacity var(--transition-fast);touch-action:none;flex-shrink:0;padding:0 2px}.home-widget-card.editing:hover .home-widget-drag-handle{opacity:1}.home-widget-drop-placeholder{border:2px dashed var(--color-primary);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-primary) 8%,transparent);animation:drop-placeholder-in .15s ease-out}@keyframes drop-placeholder-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.home-widget-drag-overlay{position:fixed;pointer-events:none;z-index:10000;will-change:transform}.home-widget-drag-overlay .home-widget-card{box-shadow:0 8px 24px #00000026;transform:scale(1.02);opacity:.9}.home-widget-grid.is-dragging .home-widget-card{pointer-events:none}.widget-builder-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border);flex-shrink:0}.widget-builder-back{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);background:none;border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.widget-builder-back:hover{background:var(--color-surface-hover);border-color:var(--color-text-tertiary)}.widget-builder-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.widget-builder-intro{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:var(--spacing-2xl);text-align:center;gap:var(--spacing-lg)}.widget-builder-intro-heading{margin:0;font-size:var(--text-xl);font-weight:600;color:var(--color-text)}.widget-builder-intro p{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary);max-width:400px}.widget-builder-intro-types{display:flex;gap:var(--spacing-md);flex-wrap:wrap;justify-content:center}.widget-builder-intro-type{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:120px}.widget-builder-intro-type>div{display:flex;flex-direction:column;gap:2px}.widget-builder-intro-type svg{color:var(--color-primary);flex-shrink:0;margin-top:2px}.widget-builder-intro-type strong{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.widget-builder-intro-type span{font-size:var(--text-xs);color:var(--color-text-secondary)}.widget-builder-intro-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0}.wf-badge{font-size:var(--text-2xs);font-weight:500;padding:1px 8px;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.03em}.wf-badge-draft{background:var(--color-surface-hover);color:var(--color-text-secondary)}.wf-badge-active{background:color-mix(in srgb,var(--color-green-600) 15%,transparent);color:var(--color-green-600)}.wf-badge-paused{background:color-mix(in srgb,var(--color-amber-600) 15%,transparent);color:var(--color-amber-600)}.wf-badge-archived{background:var(--color-surface-hover);color:var(--color-text-tertiary)}.wf-error{background:color-mix(in srgb,var(--color-red-600) 10%,transparent);color:var(--color-red-600);padding:8px 12px;border-radius:var(--radius-md);font-size:var(--text-compact);margin-bottom:12px}.wf-editor-error{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary)}.wf-toolbar-btn{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 8px;font-size:var(--text-2xs);font-weight:500;font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background var(--transition-fast)}.wf-toolbar-btn:hover:not(:disabled){background:var(--color-surface-hover)}.wf-toolbar-btn:disabled{opacity:.4;cursor:default}.wf-versions-panel{border-bottom:1px solid var(--color-border);padding:8px 16px;background:var(--color-background)}.wf-versions-list{display:flex;flex-direction:column;gap:2px}.wf-version-row{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--radius-md);font-size:var(--text-compact);transition:background var(--transition-fast)}.wf-version-row:hover{background:var(--color-surface-hover)}.wf-version-current{background:color-mix(in srgb,var(--color-green-600) 5%,var(--color-surface) 95%);border-left:3px solid var(--color-green-600);padding-left:7px}.wf-version-label{font-weight:600;min-width:32px}.wf-version-detail{color:var(--color-text-tertiary);font-size:var(--text-2xs)}.wf-version-author{font-size:var(--text-2xs);color:var(--color-text-secondary);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wf-runs{max-width:960px;margin:0 auto;padding:24px 16px}.wf-runs-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.wf-runs-header h2{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;margin:0}.wf-run-status-badge{font-size:var(--text-xs);font-weight:500;text-transform:uppercase}.wf-runs-list{display:flex;flex-direction:column;gap:4px}.wf-run-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);text-decoration:none;color:inherit;font-size:var(--text-compact);transition:background var(--transition-fast)}.wf-run-row:hover{background:var(--color-surface-hover)}.wf-run-status{font-weight:500;min-width:70px}.wf-run-trigger{color:var(--color-text-tertiary);text-transform:capitalize}.wf-run-time{color:var(--color-text-secondary);margin-left:auto}.wf-run-error{color:var(--color-red-600);font-size:var(--text-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.wf-run-detail{max-width:960px;margin:0 auto;padding:24px 16px}.wf-run-meta{display:flex;gap:16px;font-size:var(--text-compact);color:var(--color-text-secondary);margin-bottom:20px}.wf-steps-list{display:flex;flex-direction:column;gap:4px}.wf-step-row{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.wf-step-summary{display:flex;align-items:center;gap:8px;padding:8px 12px;width:100%;background:var(--color-surface);border:none;cursor:pointer;font-size:var(--text-compact);color:var(--color-text);text-align:left;transition:background var(--transition-fast)}.wf-step-summary:hover{background:var(--color-surface-hover)}.wf-step-name{font-weight:500}.wf-step-type{color:var(--color-text-tertiary);font-size:var(--text-2xs)}.wf-step-duration{color:var(--color-text-secondary);font-size:var(--text-2xs);margin-left:auto}.wf-step-error{color:var(--color-red-600);font-size:var(--text-xs)}.wf-step-detail{padding:12px;background:var(--color-background);border-top:1px solid var(--color-border);font-size:var(--text-xs)}.wf-step-detail pre{background:var(--color-surface);padding:8px;border-radius:var(--radius-sm);overflow-x:auto;font-size:var(--text-2xs);max-height:300px;overflow-y:auto}.wf-spin{animation:spin 1s linear infinite}:root{--fs-content: 14px;--fs-small: 10px;--fs-ui: 11px;--fs-table: 12px}html[data-density=compact]{--msg-gap: 6px;--msg-lh: 1.4;--msg-p-gap: 3px;--msg-pad: 4px 8px;--msg-list-gap: 1px}html[data-density=default]{--msg-gap: 16px;--msg-lh: 1.55;--msg-p-gap: 6px;--msg-pad: 8px 12px;--msg-list-gap: 2px}html[data-density=comfortable]{--msg-gap: 24px;--msg-lh: 1.75;--msg-p-gap: 10px;--msg-pad: 12px 16px;--msg-list-gap: 4px}html[data-ui-density=compact]{--ui-pad: 4px 6px;--ui-gap: 2px;--ui-item-pad: 5px 8px;--ui-section-gap: 4px}html[data-ui-density=default]{--ui-pad: 8px 12px;--ui-gap: 4px;--ui-item-pad: 7px 10px;--ui-section-gap: 8px}html[data-ui-density=comfortable]{--ui-pad: 12px 16px;--ui-gap: 6px;--ui-item-pad: 9px 12px;--ui-section-gap: 12px}.chat-container{display:flex;height:100%;background:var(--color-surface);overflow:hidden}.sidebar{display:flex;flex-direction:column;flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border)}.sidebar-header{padding:6px;border-bottom:1px solid var(--color-border)}.btn-new{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px 12px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-compact);font-weight:600;letter-spacing:-.01em;cursor:pointer;transition:transform var(--transition-fast),opacity var(--transition-fast);will-change:transform}.btn-new:hover{opacity:.92}.btn-new:active{transform:scale(.98)}.sidebar-search{padding:6px;position:relative}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);pointer-events:none}.search-input{width:100%;padding:6px 8px 6px 28px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--fs-ui);color:var(--color-text);transition:border-color var(--transition-fast)}.search-input:focus{outline:none;border-color:var(--color-primary)}.search-input::placeholder{color:var(--color-text-tertiary)}.sidebar-nav{flex:1;overflow-y:auto;padding:var(--ui-gap, 4px)}.sidebar-empty{padding:16px 12px;text-align:center;color:var(--color-text-tertiary);font-size:var(--fs-ui)}.nav-item{display:flex;align-items:center;gap:6px;padding:var(--ui-item-pad, 6px 8px);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);position:relative;text-decoration:none;color:inherit}.nav-item:hover{background:var(--color-surface-hover)}.nav-item.active{background:none}.nav-item.active .nav-title{text-decoration:underline;text-decoration-color:var(--color-primary);text-underline-offset:3px;text-decoration-thickness:2px}.nav-icon{color:var(--color-text-tertiary);flex-shrink:0}.nav-title{flex:1;font-size:var(--fs-ui);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em;cursor:default}.nav-title-input{flex:1;font-size:var(--fs-ui);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-primary);border-radius:var(--radius-sm);padding:1px 4px;outline:none;min-width:0;letter-spacing:-.01em}.nav-date{font-size:var(--fs-ui);color:var(--color-text-tertiary);flex-shrink:0;font-variant-numeric:tabular-nums}.nav-delete{position:absolute;right:4px;padding:4px;background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast);border-radius:var(--radius-sm)}.nav-item:hover .nav-delete{opacity:1}.nav-delete:hover{color:var(--color-error);background:var(--color-error-light)}.sidebar-footer{padding:8px;border-top:1px solid var(--color-border)}.btn-clear-all{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);font-size:var(--text-2xs);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.btn-clear-all:hover{background:var(--color-error-light);color:var(--color-error)}.nuke-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:modal-overlay-in var(--transition-fast)}.nuke-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:24px;max-width:340px;width:90%;text-align:center;box-shadow:var(--shadow-modal);animation:modal-panel-in .2s ease-out}.nuke-emoji{font-size:48px;line-height:1;margin-bottom:12px}.nuke-title{font-size:16px;font-weight:700;color:var(--color-text);margin:0 0 8px}.nuke-desc{font-size:var(--text-compact);color:var(--color-text-secondary);margin:0 0 20px;line-height:1.5}.nuke-actions{display:flex;gap:8px}.nuke-cancel{flex:1;padding:8px 12px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-compact);font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.nuke-cancel:hover{background:var(--color-surface-hover)}.nuke-confirm{flex:1;padding:8px 12px;background:var(--color-error);border:1px solid var(--color-error);border-radius:var(--radius-md);color:#fff;font-size:var(--text-compact);font-weight:600;cursor:pointer;transition:opacity var(--transition-fast),transform var(--transition-fast)}.nuke-confirm:hover{opacity:.9}.nuke-confirm:active{transform:scale(.98)}.nuke-confirm:disabled,.nuke-cancel:disabled{opacity:.6;cursor:not-allowed}.nav-streaming{width:6px;height:6px;border-radius:50%;background:var(--color-primary);flex-shrink:0;animation:streamPulse 1.5s ease-in-out infinite}@keyframes streamPulse{0%,to{opacity:.4}50%{opacity:1}}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--color-surface);position:relative}.chat-session{display:contents}.messages{flex:1;overflow-y:auto;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.messages::-webkit-scrollbar{width:6px}.messages::-webkit-scrollbar-track{background:transparent}.messages::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-sm)}.messages::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.messages-inner{display:flex;flex-direction:column;gap:var(--msg-gap, 16px);padding:12px 24px;max-width:860px;margin:0 auto;width:100%}.messages-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--color-text-tertiary)}.empty-landing{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:600px;padding:0 24px;text-align:center}.empty-greeting{font-size:24px;font-weight:600;color:var(--color-text);letter-spacing:-.02em;margin:0}.empty-subtitle{font-size:var(--text-sm);color:var(--color-text-tertiary);margin:0}.empty-suggestions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px}.suggestion-chip{padding:8px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px;font-size:var(--fs-content);color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast);font-family:inherit;line-height:1.4}.suggestion-chip:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.suggestion-chip:active{transform:scale(.97)}.message{display:flex;gap:8px;animation:messageIn .15s ease-out}@keyframes messageIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.message.user{flex-direction:row-reverse}.message-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--color-primary);color:#fff}.message.assistant .message-avatar{display:none}.message-body{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}.message-actions{display:flex;justify-content:flex-end}.message-body>.message-content{transition:color .2s ease-out}.message-actions:has(.message-copy-btn:hover)~.message-content{color:var(--color-primary)}.message-copy-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--fs-small);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.message-copy-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.message-copy-btn.copied{border-color:var(--color-success);color:var(--color-success);background:var(--color-success-light)}.message-replacement-note{font-size:var(--fs-small);color:var(--color-text-secondary);padding:0 2px;margin:2px 0}.message-content{padding:var(--msg-pad, 8px 12px);border-radius:var(--radius-lg);font-size:var(--fs-content);font-family:var(--font-msg);line-height:var(--msg-lh, 1.55);max-width:780px}.message-content p{margin:0}.message-content p+p{margin-top:var(--msg-p-gap, 6px)}.message.user .message-content{background:var(--color-primary);color:#fff;border-bottom-right-radius:var(--radius-sm);margin-left:auto}.message.user .message-content a{color:#fff;text-decoration:underline;text-underline-offset:2px}.message.user .message-content a:hover{opacity:.85}.message.user .message-content ::selection{background:#ffffffe6;color:var(--color-dark-accent)}.message.user .message-content ::-moz-selection{background:#ffffffe6;color:var(--color-dark-accent)}.message.assistant .message-content{background:transparent;color:var(--color-text);border:none;border-radius:0;padding:0}.message-content table{width:100%;border-collapse:collapse;font-size:var(--fs-content);margin:8px 0;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.message-content th{padding:6px 10px;text-align:left;font-weight:600;font-size:var(--fs-small);background:var(--color-background-tertiary);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.03em}.message-content td{padding:5px 10px;border-bottom:1px solid var(--color-border);color:var(--color-text)}.message-content tbody tr:last-child td{border-bottom:none}.message-content tbody tr:hover{background:var(--color-surface-hover)}.message-content strong{font-weight:600}.message-content em{font-style:italic}.message-content code{background:var(--color-background-tertiary);padding:1px 4px;border-radius:var(--radius-sm);font-size:var(--fs-content);font-family:var(--font-mono)}.message-content ul,.message-content ol{margin:var(--msg-p-gap, 6px) 0;padding-left:20px}.message-content li{margin:var(--msg-list-gap, 2px) 0}.message-content h1,.message-content h2,.message-content h3{margin:var(--msg-p-gap, 6px) 0 var(--msg-list-gap, 2px);font-weight:600}.message-content h1{font-size:var(--text-base)}.message-content h2{font-size:var(--text-sm)}.message-content h3{font-size:var(--text-compact)}.message-tools{display:flex;flex-direction:column;gap:4px}.tool-call{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background:var(--color-background-tertiary);border-radius:var(--radius-sm);font-size:var(--fs-small);border-left:2px solid var(--color-border);width:fit-content;max-width:780px}.tool-call-header{display:flex;align-items:center;gap:6px}.tool-icon{flex-shrink:0;color:var(--color-text-tertiary);width:12px;height:12px}.tool-icon.spinning{animation:spin .8s linear infinite}.tool-icon.success{color:var(--color-success)}.tool-icon.error{color:var(--color-error)}.tool-name{font-weight:500;color:var(--color-text-secondary);font-size:var(--fs-small)}.tool-status{font-size:var(--fs-small);font-weight:600;padding:1px 5px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.02em}.tool-status.pending{color:var(--color-warning);background:var(--color-warning-light)}.tool-status.success{color:var(--color-success);background:var(--color-success-light)}.tool-status.error{color:var(--color-error);background:var(--color-error-light)}.tool-call.pending{border-left-color:var(--color-warning)}.tool-call.complete{border-left-color:var(--color-success)}.tool-call.complete.has-error,.tool-call.denied{border-left-color:var(--color-error)}.tool-approval{padding:10px 12px;background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-md);max-width:780px}.tool-approval-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.tool-approval-icon{font-size:14px}.tool-approval-title{font-weight:600;font-size:var(--fs-content);color:var(--color-text)}.tool-approval-summary{margin:0 0 8px;font-size:var(--fs-content);color:var(--color-text);line-height:1.5;white-space:pre-line}.tool-approval.executing{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,transparent)}.tool-approval.executing .tool-approval-summary{margin-bottom:0}.tool-approval.executing .tool-approval-icon-svg{color:var(--color-primary)}.tool-approval.approved{background:var(--color-success-light);border-color:var(--color-success)}.tool-approval.approved .tool-approval-summary{margin-bottom:0}.tool-approval.error{background:var(--color-error-light);border-color:var(--color-error)}.tool-approval.error .tool-approval-summary{margin-bottom:0}.tool-approval.denied{background:var(--color-error-light);border-color:var(--color-error)}.tool-approval.denied .tool-approval-summary{margin-bottom:0}.tool-approval-result{font-size:var(--fs-content);margin-top:4px;padding-top:6px;border-top:1px solid rgba(0,0,0,.06)}.tool-approval-result-stats{color:var(--color-text-secondary)}.tool-approval-result-error{color:var(--color-error)}.tool-approval-group{display:flex;flex-direction:column;gap:4px}.tool-approval-icon-svg{flex-shrink:0}.tool-approval-icon-svg.spinning{animation:spin .8s linear infinite}.tool-approval-icon-svg.success{color:var(--color-success)}.tool-approval-icon-svg.error{color:var(--color-error)}.tool-approval-actions{display:flex;gap:6px}.btn-approve{padding:5px 12px;background:var(--color-success);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--fs-ui);font-weight:600;cursor:pointer;transition:transform var(--transition-fast),opacity var(--transition-fast)}.btn-approve:hover{opacity:.92}.btn-approve:active{transform:scale(.97)}.btn-deny{padding:5px 12px;background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--fs-ui);font-weight:500;cursor:pointer;transition:transform var(--transition-fast),background var(--transition-fast)}.btn-deny:hover{background:var(--color-error-light);border-color:var(--color-error);color:var(--color-error)}.btn-deny:active{transform:scale(.97)}.tool-error-collapsible{max-width:780px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);border-left:2px solid var(--color-warning);overflow:hidden}.tool-error-collapsible[open]{border-left-color:var(--color-error)}.tool-error-summary{display:flex;align-items:center;gap:6px;padding:5px 8px;font-size:var(--fs-small);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.tool-error-summary::-webkit-details-marker{display:none}.tool-error-summary:hover{background:var(--color-surface-hover)}.tool-error-icon{color:var(--color-warning);flex-shrink:0}.tool-error-collapsible[open] .tool-error-icon{color:var(--color-error)}.tool-error-chevron{margin-left:auto;color:var(--color-text-tertiary);flex-shrink:0;transition:transform var(--transition-fast)}.tool-error-collapsible[open] .tool-error-chevron{transform:rotate(180deg)}.tool-error-detail{margin:0;padding:6px 8px;font-size:var(--fs-small);font-family:var(--font-mono);color:var(--color-text-secondary);white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto;border-top:1px solid var(--color-border);background:var(--color-background-tertiary)}.tool-error-item{padding:4px 0}.tool-error-item+.tool-error-item{border-top:1px solid var(--color-border)}.tool-thinking{max-width:780px}.tool-thinking details{background:var(--color-background-tertiary);border-radius:var(--radius-sm);overflow:hidden}.tool-thinking summary{padding:6px 10px;font-size:var(--fs-small);color:var(--color-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none}.tool-thinking summary:hover{color:var(--color-text-secondary)}.tool-thinking pre{margin:0;padding:6px 10px;font-size:var(--fs-small);font-family:var(--font-mono);color:var(--color-text-secondary);white-space:pre-wrap;word-break:break-word;max-height:150px;overflow-y:auto;border-top:1px solid var(--color-border)}.tool-result-chart{max-width:780px}.chart-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.chart-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--color-border)}.chart-title{margin:0;font-size:var(--fs-content);font-weight:600;color:var(--color-text);letter-spacing:-.02em}.chart-canvas-wrapper{padding:12px}.chart-compact .chart-header{padding:8px 10px 4px;border-bottom:none}.chart-compact .chart-title{font-size:var(--text-2xs);font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.chart-compact .chart-canvas-wrapper{padding:0 6px 6px}.chart-canvas-wrapper .recharts-legend-item-text{color:var(--color-text-secondary)!important;font-size:var(--fs-small)!important}.tool-result-table{max-width:780px}.data-table{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.data-table--embedded{border:none;border-radius:0;background:transparent}.data-table-fullscreen-overlay{position:fixed;inset:0;z-index:var(--z-modal);background:var(--color-surface)}.data-table--fullscreen{position:absolute;inset:0;z-index:var(--z-overlay);border-radius:0;border:none;display:flex;flex-direction:column}.data-table--fullscreen .data-table-wrapper{flex:1;max-height:none}.data-table--fill{display:flex;flex-direction:column;flex:1;min-height:0}.data-table--fill .data-table-wrapper{flex:1;max-height:none}.data-table-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--color-border);background:var(--color-surface);position:relative;z-index:var(--z-sticky);overflow:visible}.data-table--embedded .data-table-header{border-bottom:none;background:var(--color-background)}.data-table-title{margin:0;font-size:var(--fs-content);font-weight:600;color:var(--color-text);letter-spacing:-.02em}.data-table-actions{display:flex;gap:6px}.data-table-columns-control{position:relative;z-index:calc(var(--z-sticky) + 1)}.data-table-columns-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:180px;max-height:260px;overflow-y:auto;padding:6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:var(--z-popover)}.data-table-columns-option{display:flex;align-items:center;gap:8px;padding:4px 6px;font-size:var(--fs-ui);color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer}.data-table-columns-option:hover{background:var(--color-surface-hover)}.data-table-columns-option input{margin:0}.data-table-views-control{position:relative;z-index:calc(var(--z-sticky) + 1)}.data-table-views-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:220px;padding:6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:var(--z-popover)}.data-table-views-list{max-height:200px;overflow-y:auto;margin-bottom:4px}.data-table-views-item{display:flex;align-items:center;gap:6px;padding:5px 8px;font-size:var(--fs-ui);color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer;position:relative}.data-table-views-item:hover{background:var(--color-surface-hover)}.data-table-views-item.active{font-weight:600}.data-table-views-dot{width:6px;height:6px;border-radius:50%;background:var(--color-primary);flex-shrink:0}.data-table-views-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table-views-delete{display:none;background:none;border:none;padding:2px;cursor:pointer;color:var(--color-text-secondary);border-radius:var(--radius-sm);flex-shrink:0}.data-table-views-item:hover .data-table-views-delete{display:flex}.data-table-views-delete:hover{color:var(--color-danger);background:var(--color-surface-hover)}.data-table-views-reset{display:block;width:100%;padding:5px 8px;font-size:var(--fs-ui);color:var(--color-text-secondary);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left}.data-table-views-reset:hover{background:var(--color-surface-hover);color:var(--color-text)}.data-table-views-divider{height:1px;background:var(--color-border);margin:4px 0}.data-table-views-save{display:flex;gap:4px;align-items:center}.data-table-views-input{flex:1;padding:4px 8px;font-size:var(--fs-ui);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none}.data-table-views-input:focus{border-color:var(--color-primary)}.data-table-views-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:1;color:#fff;background:var(--color-primary);border-radius:8px}.btn-sm{display:inline-flex;align-items:center;gap:3px;padding:3px 7px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--fs-small);font-weight:600;cursor:pointer;transition:opacity var(--transition-fast),transform var(--transition-fast)}.btn-sm:hover:not(:disabled){opacity:.92}.btn-sm:active:not(:disabled){transform:scale(.97)}.btn-sm:disabled{opacity:.6;cursor:not-allowed}.btn-sm.btn-primary{background:var(--color-primary);color:#fff}.btn-sm.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-sm.btn-ghost:hover:not(:disabled){color:var(--color-primary);opacity:1}.btn-sm.btn-icon{padding:4px;background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-sm.btn-icon:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);opacity:1}.btn-sm.btn-icon.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.data-table-wrapper{overflow-x:auto;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.data-table-wrapper::-webkit-scrollbar{width:6px;height:6px}.data-table-wrapper::-webkit-scrollbar-track{background:transparent}.data-table-wrapper::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-sm)}.data-table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.data-table table{width:100%;border-collapse:collapse;font-size:var(--fs-table)}.data-table th{position:sticky;top:0;padding:8px 10px;text-align:left;font-weight:600;font-size:var(--fs-small);background:var(--color-surface);color:var(--color-text-tertiary);border-bottom:2px solid var(--color-border);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}.data-table-th-reorderable .th-content{cursor:default}.data-table-column-drag-handle{display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);cursor:grab;flex-shrink:0}.data-table-column-drag-handle:active{cursor:grabbing}.data-table-th-drag-over{box-shadow:inset 2px 0 0 var(--color-primary)}.data-table th.data-table-pinned-left,.data-table td.data-table-pinned-left{background:var(--color-surface);box-shadow:1px 0 0 var(--color-border-light)}.data-table th.data-table-pinned-right,.data-table td.data-table-pinned-right{background:var(--color-surface);box-shadow:-1px 0 0 var(--color-border-light)}.data-table--embedded th{border-bottom:1px solid var(--color-border)}.data-table td{padding:5px 10px;border-bottom:1px solid var(--color-border-light);color:var(--color-text);font-size:var(--fs-table);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.data-table td[data-format=number],.data-table td[data-format=currency]{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.data-table tbody tr[data-even]{background:color-mix(in srgb,var(--color-background) 40%,var(--color-surface) 60%)}.data-table tbody tr:hover{background:var(--color-surface-hover)}.data-table-footer{padding:8px 12px;font-size:var(--fs-small);color:var(--color-text-tertiary);border-top:1px solid var(--color-border);background:var(--color-surface);font-variant-numeric:tabular-nums}.data-table--embedded .data-table-footer{border-top:none;background:var(--color-background)}.data-table-sub-row>td{padding:0;border-bottom:1px solid var(--color-border);background:var(--color-background)}.data-table-empty{display:flex;align-items:center;justify-content:center;flex:1;padding:32px 20px;text-align:center;color:var(--color-text-tertiary);font-size:var(--fs-content)}.data-table-search{display:flex;align-items:center;gap:4px;padding:3px 8px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary)}.data-table-search input{width:120px;background:transparent;border:none;outline:none;font-size:var(--fs-ui);color:var(--color-text)}.data-table-search input::placeholder{color:var(--color-text-tertiary)}.data-table-search .clear-btn{padding:2px;background:none;border:none;cursor:pointer;color:var(--color-text-tertiary);line-height:0}.data-table-search .clear-btn:hover{color:var(--color-text)}.data-table-filter-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-background);border-bottom:1px solid var(--color-border)}.filter-select--operator{min-width:70px}.filter-select{padding:5px 8px;font-size:var(--fs-ui);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);min-width:140px}.filter-select:focus{outline:none;border-color:var(--color-primary)}.filter-contains{font-size:var(--fs-small);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.03em}.filter-input{padding:5px 8px;font-size:var(--fs-ui);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);min-width:120px}.filter-input:focus{outline:none;border-color:var(--color-primary)}.data-table-pills{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:6px 12px;border-bottom:1px solid var(--color-border);background:var(--color-background)}.filter-pill{display:inline-flex;align-items:center;gap:0;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:100px;font-size:var(--fs-ui);transition:border-color var(--transition-fast)}.filter-pill:hover{border-color:var(--color-primary)}.filter-pill--group{background:var(--color-background-tertiary);color:var(--color-text-secondary);border-color:var(--color-border);padding-left:6px}.filter-pill__label{padding:4px 0 4px 10px;font-weight:500;color:var(--color-text-secondary)}.filter-pill__operator{font-weight:600;color:var(--color-primary)}.filter-pill__value{padding:4px 8px;color:var(--color-text);font-weight:600;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-pill__remove{display:flex;align-items:center;justify-content:center;width:28px;align-self:stretch;padding:0;background:transparent;border:none;border-left:1px solid var(--color-border);color:var(--color-text-tertiary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);border-radius:0 100px 100px 0;flex-shrink:0}.filter-pill__remove:hover{background:var(--color-error-light);color:var(--color-error)}.filter-pill--group .filter-pill__label{padding-left:4px;padding-right:8px}.th-content{display:flex;align-items:center;gap:4px}.group-btn,.sort-btn{display:inline-flex;align-items:center;gap:3px;padding:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit}.group-btn{color:var(--color-text-tertiary);opacity:0;transition:opacity var(--transition-fast)}.th-content:hover .group-btn{opacity:.5}.group-btn:hover,.group-btn.active{opacity:1;color:var(--color-primary)}.sort-btn:hover{color:var(--color-primary)}.sort-icon-inactive{opacity:.3}.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}.resize-handle:hover,.resize-handle.resizing{background:var(--color-primary);opacity:.5}.data-table th{position:relative}.expand-btn{display:inline-flex;align-items:center;gap:4px;padding:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.expand-btn:hover{color:var(--color-primary)}.group-count{font-size:var(--fs-small);color:var(--color-text-tertiary);margin-left:4px}.agg-count{color:var(--color-text-tertiary);font-size:var(--fs-small)}.data-table-cell-aggregated-numeric{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.agg-picker-anchor{position:relative;flex-shrink:0}.agg-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:18px;padding:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:600;color:var(--color-text-tertiary);cursor:pointer;line-height:1}.agg-icon-btn:hover{background:var(--color-background-tertiary);border-color:var(--color-border);color:var(--color-text-secondary)}.agg-icon-btn.active{color:var(--color-primary);background:var(--color-primary-light, rgba(47, 168, 78, .08))}.agg-icon-btn.active:hover{border-color:var(--color-primary)}.agg-picker{position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-dropdown);padding:4px;z-index:var(--z-dropdown);min-width:110px}.agg-picker-option{display:flex;align-items:center;gap:6px;width:100%;padding:4px 8px;background:transparent;border:none;border-radius:var(--radius-sm);font-size:var(--fs-ui);color:var(--color-text);cursor:pointer;white-space:nowrap}.agg-picker-option:hover{background:var(--color-background-tertiary)}.agg-picker-option.selected{color:var(--color-primary);font-weight:600}.agg-picker-option-icon{width:14px;text-align:center;font-weight:600;font-size:var(--text-2xs);color:var(--color-text-tertiary)}.agg-picker-option.selected .agg-picker-option-icon{color:var(--color-primary)}.btn-sm.active{background:var(--color-primary);opacity:.8}.reconnecting-indicator{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;font-size:var(--fs-ui);color:var(--color-text-tertiary);background:var(--color-background-tertiary);border-radius:4px;border-left:2px solid var(--color-warning);animation:messageIn .15s ease-out}.reconnecting-indicator .spinning{animation:spin 1s linear infinite}.typing-indicator{display:inline-flex;gap:3px;padding:8px 12px}.typing-indicator span{width:5px;height:5px;background:var(--color-text-tertiary);border-radius:50%;animation:typing 1.2s ease-in-out infinite}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.3}30%{transform:translateY(-4px);opacity:1}}.builder-toggle-anchor{position:relative;flex-shrink:0}.builder-toggle-menu{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:4px;z-index:var(--z-dropdown);min-width:140px;animation:builder-menu-in .12s ease-out}@keyframes builder-menu-in{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.builder-toggle-option{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;background:none;border:none;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast);font-family:inherit;white-space:nowrap}.builder-toggle-option:hover{background:var(--color-surface-hover)}.builder-toggle-option svg{color:var(--color-text-tertiary);flex-shrink:0}.file-preview{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--color-background-tertiary);border-bottom:1px solid var(--color-border);font-size:var(--fs-ui);color:var(--color-text-secondary)}.file-preview-error{border-color:var(--color-error);color:var(--color-error)}.file-preview-name{font-weight:500;color:var(--color-text)}.file-preview-error .file-preview-name{color:var(--color-error)}.file-preview-count{color:var(--color-text-tertiary);font-size:var(--fs-ui)}.file-preview-remove{margin-left:auto;display:flex;align-items:center;justify-content:center;padding:2px;background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.file-preview-remove:hover{color:var(--color-error);background:var(--color-error-light)}.template-download-card{padding:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);max-width:400px}.template-download-header{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;color:var(--color-primary)}.template-download-title{font-size:var(--fs-content);font-weight:600;color:var(--color-text);line-height:1.3}.template-download-meta{font-size:var(--fs-small);color:var(--color-text-tertiary);margin-top:2px}.template-download-empty{font-size:var(--fs-small);color:var(--color-text-tertiary);margin-top:6px}.template-download-actions{display:flex;gap:6px}.user-file-card{padding:10px 12px;background:var(--color-primary);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-sm);max-width:400px;margin-left:auto;color:#fff}.user-file-card-header{display:flex;align-items:flex-start;gap:10px}.user-file-card-header>svg{flex-shrink:0;margin-top:1px;opacity:.8}.user-file-card-title{font-size:var(--fs-content);font-weight:600;line-height:1.3}.user-file-card-meta{font-size:var(--fs-small);opacity:.7;margin-top:1px}.user-file-card-changes{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.15);display:flex;flex-direction:column;gap:4px}.user-file-change-row{font-size:var(--fs-small);line-height:1.4}.user-file-change-id{font-weight:600;display:block;opacity:.9}.user-file-change-field{display:block;padding-left:8px;opacity:.75}.user-file-change-more{font-size:var(--fs-small);opacity:.5;font-style:italic}.user-file-change-ellipsis{font-size:var(--fs-small);opacity:.5;text-align:center;padding:2px 0}.user-file-change-badge-new{display:inline-block;font-size:10px;font-weight:600;line-height:1;padding:2px 5px;border-radius:3px;background:var(--color-primary, #3b82f6);color:#fff;vertical-align:middle;margin-right:4px}.input-area{padding:10px 16px 14px;background:var(--color-surface);position:relative;flex-shrink:0}.input-area.drag-over .input-container{border-color:var(--color-primary)}.drop-overlay{position:absolute;inset:0;background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface) 92%);border:2px dashed var(--color-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;gap:8px;color:var(--color-primary);font-size:var(--fs-content);font-weight:600;z-index:var(--z-overlay);pointer-events:none}.input-container{display:flex;flex-direction:column;max-width:780px;margin:0 auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);position:relative;transition:border-color var(--transition-fast)}.input-container:focus-within{border-color:var(--color-primary)}.input-textarea-wrapper{display:flex;min-width:0}.input-textarea{width:100%;box-sizing:border-box;padding:12px 14px 6px;background:transparent;border:none;font-size:var(--fs-content);font-family:var(--font-msg);color:var(--color-text);resize:none;min-height:48px;max-height:200px;line-height:1.5}.input-textarea:focus{outline:none}.input-textarea::placeholder{color:var(--color-text-tertiary)}.input-textarea:disabled{opacity:.5;cursor:not-allowed}.input-toolbar{display:flex;align-items:center;justify-content:space-between;padding:4px 6px;gap:4px}.input-toolbar-left,.input-toolbar-right{display:flex;align-items:center;gap:2px}.input-toolbar-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-md);flex-shrink:0;transition:color var(--transition-fast),background var(--transition-fast)}.input-toolbar-btn:hover:not(:disabled){color:var(--color-primary);background:var(--color-surface-hover)}.input-toolbar-btn:disabled{opacity:.35;cursor:not-allowed}.input-toolbar-btn.active{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.input-toolbar-btn.listening{color:var(--color-error);position:relative}.input-toolbar-btn.listening:after{content:"";position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:var(--color-error);animation:micPulse 1.2s ease-in-out infinite}@keyframes micPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.75)}}.input-toolbar-model{flex-shrink:0}.input-send{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;transition:transform var(--transition-fast),opacity var(--transition-fast);flex-shrink:0}.input-send:hover:not(:disabled){opacity:.92}.input-send:active:not(:disabled){transform:scale(.95)}.input-send:disabled{opacity:.35;cursor:not-allowed}.input-stop{background:var(--color-error)}.input-stop:hover{opacity:.92}@media(max-width:768px){.messages{padding:12px}.empty-greeting{font-size:20px}.empty-suggestions{flex-direction:column;align-items:stretch}.empty-builder-section{flex:1 1 100%;max-width:100%}.empty-builder-actions{grid-template-columns:1fr}.suggestion-chip{text-align:left}.input-area{padding:8px 12px 10px}}.model-picker{display:flex;align-items:center;gap:4px;position:relative}.model-picker-label{display:none}.model-picker-trigger{display:flex;align-items:center;gap:4px;padding:4px 8px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;transition:border-color var(--transition-fast),background var(--transition-fast)}.model-picker-trigger:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border)}.model-picker-trigger:disabled{opacity:.4;cursor:not-allowed}.model-picker-value{font-size:var(--text-2xs);font-weight:600;color:var(--color-text-secondary)}.model-picker-cost{font-size:9px;font-weight:600;color:var(--color-text-tertiary);background:var(--color-background-tertiary);padding:1px 4px;border-radius:var(--radius-sm)}.model-picker-chevron{color:var(--color-text-tertiary);transition:transform var(--transition-fast)}.model-picker-chevron.open{transform:rotate(180deg)}.model-picker-dropdown{position:absolute;bottom:calc(100% + 4px);top:auto;left:0;min-width:160px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:var(--z-dropdown);overflow:hidden}.model-picker-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:7px 10px;background:none;border:none;cursor:pointer;font-family:inherit;transition:background var(--transition-fast)}.model-picker-option:hover{background:var(--color-surface-hover)}.model-picker-option.selected{background:var(--color-primary-light)}.model-picker-option-label{font-size:var(--text-xs);font-weight:500;color:var(--color-text)}.model-picker-option.selected .model-picker-option-label{color:var(--color-primary);font-weight:600}.model-picker-option-cost{font-size:var(--text-xs);font-weight:600;color:var(--color-text-tertiary);background:var(--color-background-tertiary);padding:1px 5px;border-radius:var(--radius-sm)}.model-picker-option.selected .model-picker-option-cost{background:var(--color-primary);color:#fff}.empty-builder-sections{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;width:100%;margin-top:6px}.empty-builder-section{flex:0 1 calc(50% - 6px);max-width:calc(50% - 6px);min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:12px;display:flex;flex-direction:column;gap:8px;text-align:left}.empty-builder-header{display:flex;align-items:center;gap:6px;font-size:var(--text-compact);font-weight:600;color:var(--color-text)}.empty-builder-description{margin:0;font-size:var(--text-xs);line-height:1.45;color:var(--color-text-secondary)}.empty-builder-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.suggestion-chip.builder-chip{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;border-radius:var(--radius-md);padding:6px 8px;font-size:var(--text-2xs);width:100%;white-space:nowrap}.suggestion-chip.builder-chip svg{width:12px;height:12px;flex-shrink:0}.suggestion-chip.builder-chip.secondary{background:transparent}.selector-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:modal-overlay-in var(--transition-fast)}.selector-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:90%;max-width:480px;max-height:70vh;display:flex;flex-direction:column;box-shadow:var(--shadow-modal);animation:modal-panel-in .2s ease-out}.selector-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 0}.selector-title{margin:0;font-size:15px;font-weight:600;color:var(--color-text)}.selector-close{display:flex;align-items:center;justify-content:center;padding:4px;background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.selector-close:hover{color:var(--color-text);background:var(--color-surface-hover)}.selector-search{display:flex;align-items:center;gap:8px;margin:12px 16px;padding:8px 10px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-tertiary)}.selector-search input{flex:1;background:none;border:none;outline:none;font-size:var(--text-compact);color:var(--color-text);font-family:inherit}.selector-search input::placeholder{color:var(--color-text-tertiary)}.selector-list{flex:1;overflow-y:auto;padding:0 8px 8px;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.selector-empty{padding:24px 16px;text-align:center;color:var(--color-text-tertiary);font-size:var(--text-compact)}.selector-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;border-radius:var(--radius-md);cursor:pointer;font-family:inherit;text-align:left;transition:background .08s}.selector-item:hover{background:var(--color-surface-hover)}.selector-item-icon{color:var(--color-text-tertiary);flex-shrink:0}.selector-item-title{flex:1;font-size:var(--text-compact);font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selector-item-badge{font-size:var(--text-xs);font-weight:600;padding:1px 6px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.selector-item-badge.dashboard{background:var(--color-primary-light);color:var(--color-primary)}.selector-item-date{font-size:var(--text-2xs);color:var(--color-text-tertiary);flex-shrink:0;font-variant-numeric:tabular-nums}.mutation-preview{margin-bottom:6px}.mutation-preview-header{display:flex;align-items:center;gap:8px}.mutation-op-badge{display:inline-block;padding:1px 6px;border-radius:var(--radius-sm);font-size:var(--fs-small);font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1.6}.mutation-op-badge.op-update{background:color-mix(in srgb,var(--color-primary) 15%,transparent);color:var(--color-primary)}.mutation-op-badge.op-create{background:var(--color-success-light);color:var(--color-success)}.mutation-op-badge.op-destructive{background:var(--color-error-light);color:var(--color-error)}.mutation-op-badge.op-unknown{background:var(--color-background-tertiary);color:var(--color-text-secondary)}.mutation-entity{font-size:var(--fs-content);font-weight:600;color:var(--color-text)}.mutation-identifiers{margin-top:2px;font-size:var(--fs-small);color:var(--color-text-secondary);line-height:1.5}.mutation-bulk-list{margin-top:4px}.mutation-bulk-summary{display:flex;align-items:center;gap:4px;font-size:var(--fs-small);color:var(--color-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.mutation-bulk-summary::-webkit-details-marker{display:none}.mutation-bulk-summary:hover{color:var(--color-text-secondary)}.mutation-bulk-chevron{transition:transform var(--transition-fast)}.mutation-bulk-list[open] .mutation-bulk-chevron{transform:rotate(180deg)}.mutation-bulk-items{margin-top:4px;padding-left:2px;display:flex;flex-direction:column;gap:1px}.mutation-bulk-item{font-size:var(--fs-small);color:var(--color-text-secondary);line-height:1.5;padding:1px 0}.mutation-bulk-ellipsis{font-size:var(--fs-small);color:var(--color-text-tertiary);font-style:italic;padding:2px 0}.data-error-state{display:flex;flex-direction:column;align-items:center;gap:4px;padding:20px 16px;text-align:center}.data-error-state-icon{color:var(--color-warning);margin-bottom:2px}.data-error-state-title{font-size:var(--fs-content);font-weight:600;color:var(--color-text)}.data-error-state-subtitle{font-size:var(--fs-small);color:var(--color-text-secondary);line-height:1.5}.data-error-state-actions{display:flex;align-items:center;gap:8px;margin-top:8px}.memory-context-indicator{display:inline-flex;flex-direction:column;margin-bottom:4px}.memory-context-indicator>summary{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;font-size:var(--fs-small);color:var(--color-text-tertiary);background:var(--color-surface-hover);border-radius:var(--radius-full);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;transition:color var(--transition-fast)}.memory-context-indicator>summary::-webkit-details-marker{display:none}.memory-context-indicator>summary:hover{color:var(--color-text-secondary)}.memory-context-indicator[open]>summary .memory-context-chevron{transform:rotate(180deg)}.memory-context-chevron{transition:transform var(--transition-fast)}.memory-context-list{margin:4px 0 0;padding:6px 12px 6px 28px;font-size:var(--fs-small);color:var(--color-text-secondary);background:var(--color-surface-hover);border-radius:var(--radius-md);list-style:disc}.memory-context-list li{padding:2px 0;line-height:1.4}.usage-monitor{position:relative}.usage-monitor-trigger{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;transition:border-color var(--transition-fast);color:var(--color-text-secondary)}.usage-monitor-trigger:hover{border-color:var(--color-primary);color:var(--color-primary)}.usage-monitor-count{font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.usage-monitor-trigger:hover .usage-monitor-count{color:var(--color-primary)}.usage-monitor-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:200px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);padding:12px}.usage-monitor-title{font-size:var(--text-2xs);font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.usage-monitor-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.usage-monitor-stat{display:flex;flex-direction:column;gap:1px}.usage-monitor-stat-label{font-size:var(--text-xs);color:var(--color-text-tertiary);font-weight:500}.usage-monitor-stat-value{font-size:var(--text-compact);font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}.usage-monitor-details-btn{display:block;width:100%;margin-top:10px;padding:6px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:600;cursor:pointer;font-family:inherit;transition:background var(--transition-fast)}.usage-monitor-details-btn:hover{background:var(--color-primary-hover)}.usage-page{overflow-y:auto;background:var(--color-surface);padding:0 24px 48px;max-width:960px;margin:0 auto}.usage-page-header{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--color-border);margin-bottom:24px;position:sticky;top:0;background:var(--color-surface);z-index:var(--z-sticky)}.usage-page-header-left{display:flex;align-items:center;gap:10px}.usage-back-btn{display:flex;align-items:center;justify-content:center;padding:6px;background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.usage-back-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.usage-page-title{font-size:18px;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.usage-page-header-right{display:flex;align-items:center;gap:8px}.usage-range-group{display:flex;gap:2px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:2px}.usage-range-btn{padding:4px 10px;background:none;border:none;border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:500;color:var(--color-text-secondary);cursor:pointer;font-family:inherit;transition:all var(--transition-fast)}.usage-range-btn:hover:not(.active){color:var(--color-text)}.usage-range-btn.active{background:var(--color-primary);color:#fff;font-weight:600}.usage-refresh-btn{display:flex;align-items:center;justify-content:center;padding:6px;background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.usage-refresh-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.usage-refresh-btn:disabled{opacity:.4;cursor:not-allowed}.usage-refresh-btn .spinning{animation:spin .8s linear infinite}.usage-totals{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:32px}.usage-total-card{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.usage-total-label{font-size:var(--text-2xs);font-weight:500;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.03em}.usage-total-value{font-size:20px;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.usage-section{margin-bottom:32px}.usage-section-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text);margin-bottom:12px;letter-spacing:-.01em}.usage-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.usage-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.usage-table th{padding:8px 12px;text-align:left;font-weight:600;font-size:var(--text-xs);background:var(--color-background-tertiary);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border);white-space:nowrap}.usage-table td{padding:7px 12px;border-bottom:1px solid var(--color-border-light);color:var(--color-text);font-variant-numeric:tabular-nums;white-space:nowrap}.usage-table tbody tr:last-child td{border-bottom:none}.usage-table tbody tr:hover{background:var(--color-surface-hover)}.usage-table-empty{text-align:center;color:var(--color-text-tertiary);padding:24px 12px!important}@media(max-width:768px){.usage-page{padding:0 12px 32px}.usage-totals{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.usage-table-wrap{overflow-x:auto}}.tickets-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.tickets-header{display:flex;align-items:center;gap:12px;padding:8px 16px;flex-shrink:0;flex-wrap:wrap;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.tickets-header-title{font-size:var(--text-base);font-weight:600;color:var(--color-text);white-space:nowrap}.tickets-header-controls{display:flex;align-items:center;gap:8px;flex:1;min-width:0;flex-wrap:wrap;--fw-control-height: var(--fw-control-height-sm);--fw-control-radius: var(--radius-sm);--fw-control-font-size: var(--fw-control-font-sm);--fw-control-pad: 0 6px 0 10px;--fw-control-icon-size: 14px}.tickets-header-controls>.fw-select{max-width:180px}.tickets-header-controls>.data-table-pills{display:inline-flex;flex-wrap:wrap;gap:5px;padding:0;border:none}.tickets-query-btn{display:inline-flex;align-items:center;gap:6px;padding:0 14px;height:var(--fw-control-height-sm);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--fw-control-font-sm);font-weight:500;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast)}.tickets-query-btn:hover:not(:disabled){background:var(--color-primary-hover)}.tickets-query-btn:disabled{opacity:.6;cursor:not-allowed}.tickets-add-filter{position:relative}.tickets-add-filter-btn{display:inline-flex;align-items:center;gap:4px;padding:0 10px;height:var(--fw-control-height-sm);background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--fw-control-font-sm);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.tickets-add-filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.tickets-add-filter-popover{position:absolute;top:calc(100% + 4px);left:0;z-index:100;min-width:220px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:6px}.tickets-add-filter-types{display:flex;flex-direction:column;gap:2px}.tickets-add-filter-type{display:block;width:100%;padding:6px 10px;text-align:left;background:none;border:none;border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;transition:background var(--transition-fast)}.tickets-add-filter-type:hover:not(:disabled){background:var(--color-background-hover)}.tickets-add-filter-type.disabled{opacity:.4;cursor:not-allowed}.tickets-add-filter-value{display:flex;flex-direction:column;gap:8px;padding:4px;min-width:240px}.tickets-add-filter-back{background:none;border:none;font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;text-align:left;padding:4px 0}.tickets-add-filter-back:hover{color:var(--color-primary)}.tickets-add-filter-input-row{display:flex;gap:6px;align-items:center}.tickets-add-filter-input-row .filter-input{flex:1;min-width:0}.tickets-add-filter-apply{padding:0 10px;height:var(--fw-control-height-sm);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--fw-control-font-sm);cursor:pointer;white-space:nowrap}.tickets-add-filter-apply:disabled{opacity:.5;cursor:not-allowed}.tickets-grid{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.tickets-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:var(--color-text-secondary);font-size:var(--text-sm)}.pos-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.pos-config-landing{display:flex;flex-direction:column;align-items:center;padding:48px 24px;gap:32px;overflow-y:auto;height:100%}.pos-config-landing h1{font-size:var(--text-xl);font-weight:600;color:var(--color-text);margin:0}.pos-config-landing p{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;max-width:480px;text-align:center}.pos-config-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;width:100%;max-width:960px}.pos-config-card{display:flex;flex-direction:column;gap:12px;padding:20px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.pos-config-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.pos-config-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.pos-config-card-name{font-size:var(--text-base);font-weight:600;color:var(--color-text);margin:0}.pos-config-card-badge{font-size:var(--text-xs);padding:2px 8px;border-radius:999px;font-weight:500}.pos-config-card-badge.active{background:var(--color-success-light);color:var(--color-success)}.pos-config-card-badge.inactive{background:var(--color-error-light);color:var(--color-error)}.pos-config-card-details{display:flex;flex-direction:column;gap:4px;font-size:var(--text-sm);color:var(--color-text-secondary)}.pos-config-card-detail{display:flex;align-items:center;gap:6px}.pos-config-card-detail svg{flex-shrink:0;opacity:.6}.pos-config-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px;color:var(--color-text-secondary)}.pos-config-empty svg{opacity:.4}.pos-layout{display:flex;height:100%;overflow:hidden}.pos-workspace{display:flex;flex-direction:column;flex:1;min-width:0;height:100%;overflow:hidden}.pos-workspace-header{display:flex;align-items:center;justify-content:center;padding:8px 16px;border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;position:relative;min-height:44px}.pos-workspace-header-left{position:absolute;left:16px;display:flex;align-items:center;gap:8px}.pos-workspace-header-right{position:absolute;right:16px;display:flex;align-items:center;gap:8px}.pos-workspace-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text);margin:0}.pos-workspace-sync-badge{display:flex;align-items:center;gap:4px;font-size:var(--text-xs);padding:2px 8px;border-radius:999px;font-weight:500}.pos-workspace-sync-badge.syncing{background:var(--color-info-light);color:var(--color-info)}.pos-workspace-sync-badge.synced{background:var(--color-success-light);color:var(--color-success)}.pos-workspace-sync-badge.error{background:var(--color-error-light);color:var(--color-error)}.pos-workspace-sync-badge.offline{background:var(--color-warning-light);color:var(--color-warning)}.pos-workspace-body{display:flex;flex-direction:column;flex:1;overflow:hidden}.pos-lane-tabs{display:flex;align-items:center;gap:2px}.pos-lane-tab{display:flex;align-items:center;gap:10px;padding:4px 6px 4px 10px;font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary);background:none;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.pos-lane-tab:hover{color:var(--color-text);background:var(--color-surface-hover)}.pos-lane-tab.active{color:var(--color-text);background:var(--color-background-secondary);border-color:var(--color-border)}.pos-lane-tab-name{font-weight:600}.pos-lane-tab-weight{font-family:JetBrains Mono,Fira Code,SF Mono,ui-monospace,monospace;font-size:var(--text-xs);font-weight:700;font-variant-numeric:tabular-nums;color:#dc2626;background:#0c0000;padding:2px 8px;border-radius:4px;min-width:64px;text-align:right;letter-spacing:.02em;line-height:1}.pos-sidebar-toggle{display:flex;align-items:center;justify-content:center;padding:4px;background:none;border:none;border-radius:4px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.pos-sidebar-toggle:hover{background:var(--color-surface-hover);color:var(--color-text)}.pos-lane-panel{display:flex;flex-direction:column;flex:1;overflow:hidden;position:relative}.pos-lane-content{display:flex;flex-direction:column;flex:1;overflow:hidden}.pos-form{display:flex;flex-direction:column;gap:0;padding:0 16px;overflow-y:auto;flex:1;min-height:0}.pos-entity{display:flex;flex-direction:column;gap:6px;padding:10px 0}.pos-entity:first-child{padding-top:12px}.pos-entity+.pos-entity{border-top:1px solid var(--color-border)}.pos-entity-group{border-top:1px solid var(--color-border)}.pos-entity-group+.pos-entity{border-top:1px solid var(--color-border)}.pos-entity-group .pos-entity{padding:5px 0}.pos-entity-group .pos-entity:first-child{padding-top:10px}.pos-entity-group .pos-entity:last-child{padding-bottom:10px}.pos-entity-group .pos-entity+.pos-entity{border-top:none}.pos-entity-label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.pos-entity-label.required:after{content:" *";color:var(--color-error)}.pos-entity-body{display:flex;align-items:center;gap:8px}.pos-entity-input{width:250px;flex-shrink:0;transition:width .15s ease,flex .15s ease}.pos-entity-details{display:flex;align-items:baseline;gap:16px;flex:1;min-width:0;flex-wrap:wrap;margin-left:12px}.pos-entity-body:has(.fw-combobox-toggle[data-popup-open]) .pos-entity-input:has(.fw-combobox-toggle[data-popup-open]){flex:1;width:auto}.pos-entity-body:has(.fw-combobox-toggle[data-popup-open]) .pos-entity-input:not(:has(.fw-combobox-toggle[data-popup-open])){display:none}.pos-entity-body:has(.fw-combobox-toggle[data-popup-open]) .pos-entity-details,.pos-entity-body:has(.fw-combobox-toggle[data-popup-open]) .pos-entity-actions{display:none}.pos-entity-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.pos-detail{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap}.pos-detail-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary)}.pos-detail-value{font-size:var(--text-sm);font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}.pos-details-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px 16px}.pos-details-col{display:flex;flex-direction:column;gap:8px}.pos-details-col+.pos-details-col{border-left:1px solid var(--color-border);padding-left:16px}.pos-details-col-fill{display:flex;flex-direction:column}.pos-form-field-fill{flex:1;display:flex;flex-direction:column}.pos-form-textarea{flex:1;min-height:48px;padding:6px 8px;font-size:var(--text-sm);font-family:inherit;border:1px solid var(--color-border);border-radius:6px;background:var(--color-background);color:var(--color-text);outline:none;resize:none;transition:border-color var(--transition-fast)}.pos-form-textarea:focus{border-color:var(--color-primary)}.pos-btn-xs{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;font-size:11px;font-weight:500;border:1px solid var(--color-border);border-radius:4px;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;line-height:1.4}.pos-btn-xs.secondary{background:var(--color-background);color:var(--color-text-secondary)}.pos-btn-xs.secondary:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.pos-btn-xs:disabled{opacity:.4;cursor:default}.pos-form-field{display:flex;flex-direction:column;gap:2px}.pos-form-label{font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary)}.pos-form-label.required:after{content:" *";color:var(--color-error)}.pos-form-input{height:var(--fw-control-height-sm);padding:0 8px;font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:6px;background:var(--color-background);color:var(--color-text);outline:none;transition:border-color var(--transition-fast)}.pos-form-input:focus{border-color:var(--color-primary)}.pos-form-input:disabled,.pos-form-display{background:var(--color-background-secondary);color:var(--color-text-secondary);cursor:default}.pos-form-display{height:var(--fw-control-height-sm);padding:0 8px;font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:6px;display:flex;align-items:center}.pos-form-direction-toggle{display:flex;gap:4px}.pos-form-direction-btn{flex:1;padding:4px 12px;font-size:var(--text-sm);font-weight:500;border:1px solid var(--color-border);border-radius:6px;background:var(--color-background);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.pos-form-direction-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pos-weight-row{display:flex;align-items:center;gap:8px;padding:8px 16px;border-top:1px solid var(--color-border);flex-shrink:0}.pos-indicator-screen{background:#0c0000;border:2px solid #333;border-radius:4px;padding:2px 8px;min-width:100px;height:26px;display:flex;align-items:center;justify-content:flex-end;box-shadow:inset 0 1px 4px #0009}.pos-indicator-value{font-family:JetBrains Mono,Fira Code,SF Mono,ui-monospace,monospace;font-size:var(--text-xs);font-weight:700;font-variant-numeric:tabular-nums;color:#dc2626;letter-spacing:.02em;line-height:1}.pos-indicator-input{width:100%;background:transparent;border:none;outline:none;font-family:JetBrains Mono,Fira Code,SF Mono,ui-monospace,monospace;font-size:var(--text-xs);font-weight:700;font-variant-numeric:tabular-nums;color:#f59e0b;letter-spacing:.02em;line-height:1;text-align:right}.pos-indicator-input::-webkit-inner-spin-button,.pos-indicator-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pos-indicator-input[type=number]{-moz-appearance:textfield}.pos-weight-btn{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;font-size:11px;font-weight:500;border:1px solid var(--color-border);border-radius:4px;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;line-height:1.4}.pos-weight-btn:disabled{opacity:.4;cursor:default}.pos-weight-btn.secondary{background:var(--color-background);color:var(--color-text-secondary)}.pos-weight-btn.secondary:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.pos-weight-btn.danger{background:var(--color-error-light);color:var(--color-error);border-color:var(--color-error)}.pos-weight-btn.danger:hover:not(:disabled){background:var(--color-error);color:#fff}.pos-weight-items{display:flex;align-items:center;gap:12px;margin-left:auto}.pos-weight-item{display:flex;align-items:baseline;gap:4px}.pos-weight-label{font-size:10px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.pos-weight-value{font-family:JetBrains Mono,Fira Code,SF Mono,ui-monospace,monospace;font-size:var(--text-xs);font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums;min-width:56px;text-align:right}.pos-weight-item.net .pos-weight-value{color:var(--color-primary)}.pos-actions{display:flex;justify-content:space-between;gap:8px;padding:8px 16px;border-top:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0}.pos-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;font-size:var(--text-sm);font-weight:600;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.pos-btn:disabled{opacity:.5;cursor:default}.pos-btn.primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pos-btn.primary:hover:not(:disabled){filter:brightness(1.1)}.pos-btn.secondary{background:var(--color-background);color:var(--color-text)}.pos-btn.secondary:hover:not(:disabled){background:var(--color-surface-hover)}.pos-btn.danger{background:var(--color-error-light);color:var(--color-error);border-color:var(--color-error)}.pos-btn.danger:hover:not(:disabled){background:var(--color-error);color:#fff}.pos-sidebar{display:flex;flex-direction:column;width:320px;flex-shrink:0;border-left:1px solid var(--color-border);background:var(--color-surface);overflow:hidden}.pos-sidebar-tabs{display:flex;border-bottom:1px solid var(--color-border);flex-shrink:0}.pos-sidebar-tab{flex:1;padding:8px 12px;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.pos-sidebar-tab:hover{color:var(--color-text)}.pos-sidebar-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.pos-sidebar-search{padding:8px;border-bottom:1px solid var(--color-border);flex-shrink:0}.pos-sidebar-search input{width:100%;height:var(--fw-control-height-sm);padding:0 8px;font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:6px;background:var(--color-background);color:var(--color-text);outline:none}.pos-sidebar-search input:focus{border-color:var(--color-primary)}.pos-sidebar-list{flex:1;overflow-y:auto}.pos-sidebar-item{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background var(--transition-fast)}.pos-sidebar-item:hover{background:var(--color-surface-hover)}.pos-sidebar-item-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.pos-sidebar-item-primary{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.pos-sidebar-item-secondary{font-size:var(--text-xs);color:var(--color-text-secondary)}.pos-sidebar-item-weight{font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text)}.pos-sidebar-item-amount{font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.pos-sidebar-item-time{font-size:var(--text-xs);color:var(--color-text-tertiary)}.pos-sidebar-empty{display:flex;align-items:center;justify-content:center;padding:24px;font-size:var(--text-sm);color:var(--color-text-secondary)}.pos-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:modal-overlay-in .15s ease}.pos-modal{background:var(--color-surface);border-radius:8px;box-shadow:var(--shadow-modal);max-width:480px;width:90%;max-height:80vh;display:flex;flex-direction:column;animation:modal-panel-in .15s ease}.pos-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--color-border)}.pos-modal-title{font-size:var(--text-base);font-weight:600;color:var(--color-text);margin:0}.pos-modal-close{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:4px;border-radius:4px}.pos-modal-close:hover{background:var(--color-surface-hover);color:var(--color-text)}.pos-modal-body{padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.pos-pending-option{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;transition:all var(--transition-fast)}.pos-pending-option:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.pos-pending-option-row{display:flex;align-items:center;justify-content:space-between}.pos-sync-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:100%;padding:48px}.pos-sync-overlay h2{font-size:var(--text-lg);font-weight:600;color:var(--color-text);margin:0}.pos-sync-overlay p{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.pos-sync-progress{width:100%;max-width:400px;height:8px;background:var(--color-border);border-radius:4px;overflow:hidden}.pos-sync-progress-bar{height:100%;background:var(--color-primary);border-radius:4px;transition:width .3s ease}.pos-spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.pos-explorer{display:flex;flex-direction:column;height:100%;overflow:hidden}.pos-explorer-header{display:flex;align-items:center;gap:12px;padding:8px 16px;border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0}.pos-explorer-selector{width:240px}.pos-explorer-count{font-size:var(--text-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.pos-explorer-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}@media(max-width:900px){.pos-sidebar{width:260px}}.memory-page{overflow-y:auto;background:var(--color-surface);padding:0 24px 48px;max-width:720px;margin:0 auto}.memory-page-header{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--color-border);margin-bottom:16px;position:sticky;top:0;background:var(--color-surface);z-index:var(--z-sticky)}.memory-page-header-left{display:flex;align-items:center;gap:10px}.memory-page-header-right{display:flex;align-items:center}.memory-back-btn{display:flex;align-items:center;justify-content:center;padding:6px;background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.memory-back-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.memory-page-title{font-size:18px;font-weight:700;color:var(--color-text);letter-spacing:-.02em;margin:0}.memory-count{font-size:var(--text-xs);color:var(--color-text-tertiary);font-weight:500;font-variant-numeric:tabular-nums}.memory-description{font-size:var(--text-xs);color:var(--color-text-tertiary);line-height:1.5;margin:0 0 20px}.memory-add-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:600;cursor:pointer;font-family:inherit;transition:background var(--transition-fast)}.memory-add-btn:hover{background:var(--color-primary-hover)}.memory-add-form,.memory-edit-form{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.memory-input{width:100%;padding:10px 12px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--color-text);font-family:inherit;resize:vertical;line-height:1.5}.memory-input:focus{outline:none;border-color:var(--color-primary)}.memory-add-actions,.memory-edit-actions{display:flex;gap:8px}.memory-save-btn{display:flex;align-items:center;gap:4px;padding:5px 12px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;cursor:pointer;font-family:inherit;transition:background var(--transition-fast)}.memory-save-btn:hover:not(:disabled){background:var(--color-primary-hover)}.memory-save-btn:disabled{opacity:.5;cursor:not-allowed}.memory-cancel-btn{display:flex;align-items:center;gap:4px;padding:5px 12px;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary);cursor:pointer;font-family:inherit;transition:border-color var(--transition-fast),color var(--transition-fast)}.memory-cancel-btn:hover{border-color:var(--color-text-tertiary);color:var(--color-text)}.memory-list{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.memory-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--color-border-light)}.memory-item:last-child{border-bottom:none}.memory-item:hover{background:var(--color-surface-hover)}.memory-item-content{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.memory-text{font-size:var(--text-xs);color:var(--color-text);line-height:1.5;word-break:break-word}.memory-time{font-size:var(--text-2xs);color:var(--color-text-tertiary)}.memory-item-actions{display:flex;align-items:center;gap:4px;flex-shrink:0;opacity:0;transition:opacity var(--transition-fast)}.memory-item:hover .memory-item-actions{opacity:1}.memory-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.memory-action-btn:hover{color:var(--color-text);border-color:var(--color-border);background:var(--color-background)}.memory-delete-btn:hover{color:var(--color-error);border-color:var(--color-error);background:transparent}.memory-confirm-delete{padding:4px 10px;background:var(--color-error);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:600;cursor:pointer;font-family:inherit}.memory-cancel-btn-sm{padding:4px 10px;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:500;color:var(--color-text-secondary);cursor:pointer;font-family:inherit}.memory-empty{text-align:center;padding:48px 24px;color:var(--color-text-tertiary)}.memory-empty-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);margin:0 0 6px}.memory-empty-desc{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0;line-height:1.5}.memory-item .memory-edit-form{width:100%;margin-bottom:0}@media(max-width:768px){.memory-page{padding:0 12px 32px}.memory-item-actions{opacity:1}}.dispatch-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.dispatch-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:8px 16px;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.dispatch-header-title{font-size:var(--text-sm);font-weight:700;color:var(--color-text);white-space:nowrap}.dispatch-header-right{display:flex;align-items:center;gap:6px;justify-self:end;--dispatch-control-height: var(--fw-control-height-sm);--dispatch-control-radius: var(--radius-sm);--dispatch-control-font-size: var(--fw-control-font-sm);--dispatch-control-pad: 0 6px 0 10px;--dispatch-control-icon-size: 14px}.dispatch-header-right .dp-container,.dispatch-header-right .fw-select,.dispatch-header-right .fw-multiselect,.dispatch-header-right .dispatch-status-select{flex-shrink:0}.dispatch-header-right .fw-select,.dispatch-header-right .fw-multiselect,.dispatch-header-right .dispatch-status-select{width:130px}.dispatch-header-right .dp-trigger{display:flex;align-items:center;gap:6px;background:var(--color-background);height:var(--dispatch-control-height);padding:var(--dispatch-control-pad);border:1px solid var(--color-border);border-radius:var(--dispatch-control-radius);font-size:var(--dispatch-control-font-size);font-family:inherit;color:var(--color-text)}.dispatch-header-right .dp-trigger-icon,.dispatch-header-right .dp-trigger-chevron,.dispatch-header-right .dp-trigger-clear,.dispatch-header-right .fw-select-icon,.dispatch-header-right .fw-combobox-toggle,.dispatch-header-right .fw-combobox-clear-btn,.dispatch-header-right .fw-multiselect-chevron{display:flex;align-items:center;justify-content:center;width:var(--dispatch-control-icon-size);height:var(--dispatch-control-icon-size);color:var(--color-text-tertiary);flex-shrink:0}.dispatch-header-right .dp-trigger-text{display:flex;flex:1;align-items:center;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:normal}.dispatch-header-right .dp-trigger-clear:hover,.dispatch-header-right .fw-combobox-clear-btn:hover{color:var(--color-text);background:var(--color-surface-hover)}.dispatch-header-right .dp-trigger-clear svg{display:block}.dispatch-header-right .fw-combobox-sm .fw-combobox-input,.dispatch-header-right .fw-select.fw-select-sm,.dispatch-header-right .fw-multiselect-sm .fw-multiselect-trigger{height:var(--dispatch-control-height);padding:var(--dispatch-control-pad);border-radius:var(--dispatch-control-radius);font-size:var(--dispatch-control-font-size)}.dispatch-filter-input{height:28px;padding:0 8px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-2xs);font-family:inherit;color:var(--color-text);min-width:120px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.dispatch-filter-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.dispatch-refresh-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:border-color var(--transition-fast),color var(--transition-fast)}.dispatch-refresh-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.dispatch-refresh-btn.spinning svg{animation:spin .8s linear infinite}.dispatch-panels{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:0;flex:1;min-height:0;overflow:hidden}.dispatch-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden;border-right:1px solid var(--color-border)}.dispatch-panel:last-child{border-right:none}.dispatch-panel-header{display:flex;align-items:center;justify-content:space-between;padding:0 12px;height:40px;background:var(--color-background);border-bottom:none;flex-shrink:0}.dispatch-panel-title{font-size:var(--text-2xs);font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em}.dispatch-panel-count{font-size:var(--text-2xs);color:var(--color-text-tertiary);font-weight:600}.dispatch-panel-body{flex:1;overflow-y:auto;padding:6px}.dispatch-panel-body--flush{padding:0}.dispatch-panel-add-btn{display:flex;align-items:center;gap:4px;height:24px;padding:0 8px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;transition:opacity var(--transition-fast)}.dispatch-panel-add-btn:hover{opacity:.9}.request-card{padding:10px 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:6px;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.request-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.request-card.selected{border-color:var(--color-primary);background:var(--color-primary-light)}.request-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.request-card-customer{font-size:var(--text-xs);font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.request-card-product{font-size:var(--text-2xs);color:var(--color-text-secondary);margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.request-card-meta{display:flex;align-items:center;gap:6px;font-size:var(--text-2xs);color:var(--color-text-tertiary)}.request-card-location{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.request-card-actions{display:flex;gap:2px;flex-shrink:0}.request-card-action{display:flex;align-items:center;justify-content:center;width:22px;height:22px;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.request-card-action:hover{color:var(--color-text);background:var(--color-surface-hover)}.request-card-action.danger:hover{color:var(--color-error);background:var(--color-error-light)}.fulfillment-bar-wrapper{margin:6px 0 4px}.fulfillment-bar-legend{display:flex;align-items:center;gap:8px;font-size:var(--text-2xs);color:var(--color-text-secondary);margin-bottom:3px}.fulfillment-bar-stat{display:flex;align-items:center;gap:3px}.fulfillment-bar-stat.muted{opacity:.6}.fulfillment-bar-dot{width:6px;height:6px;border-radius:var(--radius-full);flex-shrink:0}.fulfillment-bar-dot.completed{background:var(--color-success)}.fulfillment-bar-dot.queued{background:var(--color-info)}.fulfillment-bar-total{margin-left:auto}.fulfillment-bar-track{display:flex;height:6px;background:var(--color-background-tertiary);border-radius:var(--radius-full);overflow:hidden}.fulfillment-bar-fill{height:100%;transition:width var(--transition-normal)}.fulfillment-bar-fill.completed{background:var(--color-success)}.fulfillment-bar-fill.queued{background:var(--color-info)}.status-badge{display:inline-flex;align-items:center;padding:1px 6px;border-radius:var(--radius-full);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;line-height:1.6}.status-badge.open{background:var(--color-success-light);color:var(--color-success)}.status-badge.hold{background:var(--color-warning-light);color:var(--color-warning)}.status-badge.closed{background:var(--color-background-tertiary);color:var(--color-text-tertiary)}.status-badge.pending{background:var(--color-info-light);color:var(--color-info)}.pending-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-border);border-radius:0;margin-bottom:4px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.pending-row:hover{box-shadow:var(--shadow-sm)}.pending-row.drag-over{outline:2px solid var(--color-primary);outline-offset:-1px;background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface))}.pending-row-clear-truck{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;flex-shrink:0;opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.pending-row:hover .pending-row-clear-truck{opacity:1}.pending-row-clear-truck:hover{color:var(--color-error);background:var(--color-error-light)}.pending-row.pending-status-progress{border-left-color:var(--color-success)}.pending-row.pending-status-scheduled{border-left-color:var(--color-info)}.pending-row.pending-status-queued{border-left-color:var(--color-warning)}.pending-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.pending-status-dot.in-progress{background:var(--color-success)}.pending-status-dot.scheduled{background:var(--color-info)}.pending-status-dot.queued{background:var(--color-warning)}.pending-row-info{flex:1;min-width:0}.pending-row-primary{display:flex;align-items:center;gap:4px;font-size:var(--text-2xs);color:var(--color-text);overflow:hidden;white-space:nowrap}.pending-row-customer{font-weight:600;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.pending-row-sep{color:var(--color-text-tertiary);flex-shrink:0}.pending-row-product{color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.pending-row-secondary{font-size:10px;color:var(--color-text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-row-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.pending-row-time{font-size:var(--text-2xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.pending-row-loaded{font-size:10px;font-weight:600;color:var(--color-success);font-variant-numeric:tabular-nums}.pending-row-truck-combo{display:flex;align-items:center;gap:2px;flex-shrink:0}.pending-row-truck-combo .fw-combobox{width:100px}.pending-row-dir{font-size:10px;font-weight:600;color:var(--color-text-tertiary)}.pending-row-dir.inbound{color:var(--color-info)}.pending-row-dir.outbound{color:var(--color-text-tertiary)}.truck-group{margin-bottom:12px}.truck-group-header{display:flex;align-items:center;gap:6px;padding:4px 6px;margin-bottom:4px}.truck-group-toggle{background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;width:100%;font-family:inherit;transition:background var(--transition-fast)}.truck-group-toggle:hover{background:var(--color-surface-hover)}.truck-group-chevron{margin-left:auto;color:var(--color-text-tertiary);transition:transform var(--transition-fast);flex-shrink:0}.truck-group-chevron.collapsed{transform:rotate(-90deg)}.truck-group-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.truck-group-dot.available{background:var(--color-success)}.truck-group-dot.at-yard{background:var(--color-info)}.truck-group-dot.dispatched{background:var(--color-warning)}.truck-group-label{font-size:var(--text-2xs);font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em}.truck-group-count{font-size:var(--text-2xs);color:var(--color-text-tertiary)}.truck-group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:4px}.truck-chip{display:flex;align-items:center;gap:6px;padding:5px 8px;background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-border);border-radius:0;min-width:0;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.truck-chip:hover{box-shadow:var(--shadow-sm)}.truck-chip.available{border-left-color:var(--color-success)}.truck-chip.at-yard{border-left-color:var(--color-info)}.truck-chip.dispatched{border-left-color:var(--color-warning)}.truck-chip-id{font-size:var(--text-2xs);font-weight:700;color:var(--color-text);white-space:nowrap}.truck-chip-detail{font-size:10px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.truck-chip-assign{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;flex-shrink:0;opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.truck-chip:hover .truck-chip-assign{opacity:1}.truck-chip-assign:hover{color:var(--color-primary);border-color:var(--color-primary)}.truck-chip-queue-count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;background:var(--color-warning);color:#fff;border-radius:var(--radius-full);font-size:10px;font-weight:700;line-height:1;flex-shrink:0}.truck-chip.selected{outline:2px solid var(--color-primary);outline-offset:-1px;background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface))}.truck-chip.dimmed{opacity:.45}.truck-chip[role=button]{cursor:pointer}.truck-chip[draggable=true]{cursor:grab}.truck-chip[draggable=true]:active{cursor:grabbing}.dispatch-grid-layout{display:grid;grid-template-columns:280px 1fr;flex:1;min-height:0;overflow:hidden}.fleet-sidebar{display:flex;flex-direction:column;min-height:0;overflow:hidden;border-right:1px solid var(--color-border);background:var(--color-surface)}.fleet-sidebar-header{display:flex;align-items:center;gap:6px;padding:0 12px;height:40px;background:var(--color-background);border-bottom:none;flex-shrink:0;color:var(--color-text-tertiary)}.fleet-sidebar-title{font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.fleet-sidebar-count{font-size:var(--text-2xs);color:var(--color-text-tertiary)}.fleet-sidebar-controls{margin-left:auto;display:flex;align-items:center;gap:6px}.fleet-sidebar-control-btn{border:none;background:none;padding:0;font-size:10px;font-family:inherit;color:var(--color-text-tertiary);cursor:pointer}.fleet-sidebar-control-btn:hover{color:var(--color-text)}.fleet-sidebar-body{flex:1;overflow-y:auto;padding:6px}.fleet-sidebar-search{margin-bottom:6px}.fleet-sidebar-search-input{min-width:0;width:100%}.fleet-group{margin-bottom:4px}.fleet-group-header{display:flex;align-items:center;gap:6px;padding:5px 6px;margin-bottom:2px;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;width:100%;font-family:inherit;transition:background var(--transition-fast)}.fleet-group-header:hover{background:var(--color-surface-hover)}.fleet-group-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.fleet-group-label{font-size:var(--text-2xs);font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em}.fleet-group-count{font-size:var(--text-2xs);color:var(--color-text-tertiary)}.fleet-group-chevron{margin-left:auto;color:var(--color-text-tertiary);transition:transform var(--transition-fast);flex-shrink:0}.fleet-group-chevron.collapsed{transform:rotate(-90deg)}.fleet-group-list{display:flex;flex-direction:column;gap:2px}.fleet-truck-row{padding:6px 8px;background:var(--color-background);border:none;border-left:3px solid var(--color-border);border-radius:0;cursor:grab;transition:background var(--transition-fast)}.fleet-truck-row:hover{background:var(--color-surface-hover)}.fleet-truck-row:active{cursor:grabbing}.fleet-truck-row.idle{border-left-color:var(--color-text-tertiary)}.fleet-truck-row.assigned{border-left-color:var(--color-info)}.fleet-truck-row.loading{border-left-color:var(--color-warning)}.fleet-truck-row.in-transit{border-left-color:var(--color-primary)}.fleet-truck-row.delivered{border-left-color:var(--color-success)}.fleet-truck-row-top{display:flex;align-items:center;gap:6px;overflow:hidden;white-space:nowrap}.fleet-truck-id{font-size:var(--text-2xs);font-weight:700;color:var(--color-text);white-space:nowrap;flex-shrink:0}.fleet-truck-hauler{font-size:10px;color:var(--color-text-tertiary);overflow:hidden;text-overflow:ellipsis}.fleet-truck-driver{font-size:10px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis}.fleet-truck-queue-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;background:var(--color-primary);color:#fff;border-radius:var(--radius-full);font-size:10px;font-weight:700;line-height:1;margin-left:auto;flex-shrink:0}.fleet-truck-assignment{font-size:10px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}.truck-load-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:10px;line-height:1.5;cursor:default;white-space:nowrap;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.truck-load-chip[role=button]{cursor:pointer}.truck-load-chip:hover{border-color:var(--color-primary)}.truck-load-chip.highlighted{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,var(--color-background));box-shadow:0 0 0 1px var(--color-primary)}.truck-load-chip-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.truck-load-chip-id{font-weight:700;color:var(--color-text)}.truck-lanes{display:flex;flex-direction:column}.truck-lanes-header{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.truck-lanes-header-label{font-size:10px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary);padding:2px 4px 4px;border-bottom:2px solid transparent}.truck-lane-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;min-height:26px}.truck-lane-cell{display:flex;align-items:stretch;justify-content:stretch;padding:0;border-left:1px solid var(--color-border-light, var(--color-border))}.truck-lane-cell:first-child{border-left:none}.truck-lane-chip{display:flex;align-items:center;gap:6px;width:100%;padding:4px 8px;background:var(--color-background);border:none;border-left:3px solid var(--color-border);border-radius:0;cursor:pointer;white-space:nowrap;overflow:hidden;transition:background var(--transition-fast)}.truck-lane-chip-assigned{border-left-color:var(--color-info)}.truck-lane-chip-loading{border-left-color:var(--color-warning)}.truck-lane-chip-in-transit{border-left-color:var(--color-primary)}.truck-lane-chip-delivered{border-left-color:var(--color-success)}.truck-lane-chip:hover{background:var(--color-surface-hover)}.truck-lane-chip-id{font-size:var(--text-2xs);font-weight:700;color:var(--color-text);flex-shrink:0}.truck-lane-chip-driver{font-size:10px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.truck-lane-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:auto;padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-tertiary);cursor:pointer;flex-shrink:0;transition:color var(--transition-fast),background var(--transition-fast)}.truck-lane-chip-remove:hover{color:var(--color-error);background:var(--color-error-light)}.request-grid{display:flex;flex-direction:column;min-height:0;overflow:hidden}.request-grid .data-table{border:none;border-radius:0;height:100%;min-height:0;display:flex;flex-direction:column}.request-grid .data-table-header{padding:0 8px;height:40px;border-bottom:none;background:var(--color-background)}.request-grid .data-table-title{font-size:var(--text-2xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em}.request-grid .data-table-actions{gap:4px}.request-grid .data-table-wrapper{flex:1;min-height:0}.request-grid-truck-chips{display:flex;flex-wrap:wrap;gap:3px}.request-grid-no-trucks{color:var(--color-text-tertiary);font-size:var(--text-2xs)}.request-grid-actions{display:flex;gap:2px}.request-grid-row.drag-over td{background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface))}.dispatch-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;text-align:center;gap:8px}.dispatch-empty-icon{color:var(--color-text-tertiary);opacity:.3}.dispatch-empty-text{font-size:var(--text-xs);color:var(--color-text-tertiary)}.dispatch-skeleton{padding:6px}.dispatch-skeleton-card{height:80px;background:var(--color-background-secondary);border-radius:var(--radius-md);margin-bottom:6px;animation:dispatch-pulse 1.5s ease-in-out infinite}.dispatch-skeleton-row{height:44px;background:var(--color-background-secondary);border-radius:var(--radius-md);margin-bottom:4px;animation:dispatch-pulse 1.5s ease-in-out infinite}@keyframes dispatch-pulse{0%,to{opacity:1}50%{opacity:.5}}.dispatch-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;text-align:center;gap:8px}.dispatch-error-text{font-size:var(--text-xs);color:var(--color-error)}.dispatch-error-retry{padding:4px 12px;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-2xs);font-family:inherit;color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.dispatch-error-retry:hover{border-color:var(--color-primary);color:var(--color-primary)}.dispatch-modal-overlay{position:fixed;inset:0;background:#0006;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:12px;animation:modal-overlay-in .15s ease-out}.dispatch-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);width:600px;max-width:92vw;max-height:min(85vh,calc(100dvh - 24px));display:flex;flex-direction:column;overflow:hidden;animation:modal-panel-in .15s ease-out}.dispatch-modal>form{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}.dispatch-modal.dispatch-modal-wide{width:760px}.dispatch-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--color-border)}.dispatch-modal-title{font-size:var(--text-sm);font-weight:700;color:var(--color-text);display:inline-flex;align-items:center;gap:8px}.dispatch-modal-subtitle{font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary)}.dispatch-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.dispatch-modal-close:hover{color:var(--color-text);background:var(--color-surface-hover)}.dispatch-modal-body{padding:16px;overflow-y:auto;flex:1;min-height:0;overscroll-behavior:contain}.dispatch-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--color-border)}.dispatch-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dispatch-form-grid.dispatch-form-grid-tight{gap:10px 12px}.dispatch-form-field{display:flex;flex-direction:column;gap:4px;min-width:0}.dispatch-form-field.full-width{grid-column:1 / -1}.dispatch-form-section{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);padding:12px;margin-bottom:12px}.dispatch-form-section:last-child{margin-bottom:0}.dispatch-form-section-title{margin:0 0 10px;font-size:var(--text-xs);font-weight:700;letter-spacing:.01em;color:var(--color-text-secondary);text-transform:uppercase}.dispatch-form-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);height:34px;padding:0 10px;font-size:var(--text-xs);font-weight:600;color:var(--color-text);cursor:pointer;transition:border-color var(--transition-fast)}.dispatch-form-toggle:hover{border-color:var(--color-primary)}.dispatch-form-toggle svg{transition:transform var(--transition-fast)}.dispatch-form-toggle svg.rotated{transform:rotate(180deg)}.dispatch-form-advanced{margin-top:10px;padding-top:10px;border-top:1px dashed var(--color-border)}.dispatch-form-label{font-size:var(--text-2xs);font-weight:600;color:var(--color-text-secondary)}.dispatch-form-input{height:32px;padding:0 10px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:inherit;color:var(--color-text);width:100%;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.dispatch-form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.dispatch-form-select{height:32px;padding:0 10px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:inherit;color:var(--color-text);cursor:pointer;width:100%;text-overflow:ellipsis;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.dispatch-form-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.dispatch-form-textarea{padding:8px 10px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:inherit;color:var(--color-text);resize:vertical;min-height:60px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.dispatch-form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.dispatch-form-checkbox-row{display:flex;flex-wrap:wrap;gap:12px}.dispatch-form-checkbox{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--color-text)}.dispatch-form-checkbox input{margin:0}.dispatch-form-error{font-size:var(--text-2xs);color:var(--color-error);margin-right:auto}.dispatch-btn{display:flex;align-items:center;justify-content:center;gap:4px;height:32px;padding:0 14px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;transition:opacity var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.dispatch-btn.primary{background:var(--color-primary);color:#fff;border:none}.dispatch-btn.primary:hover{opacity:.9}.dispatch-btn.primary:disabled{opacity:.5;cursor:not-allowed}.dispatch-btn.secondary{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}.dispatch-btn.secondary:hover{border-color:var(--color-text-tertiary);color:var(--color-text)}.dispatch-btn.danger{background:var(--color-error-light);color:var(--color-error);border:1px solid rgba(220,53,69,.4)}.dispatch-btn.danger:hover{background:#dc35452e;border-color:#dc35458c}.dispatch-view-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.dispatch-view-toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}.map-view{display:grid;grid-template-rows:auto 1fr auto;flex:1;min-height:0;overflow:hidden}.request-strip{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;min-width:0;overflow:hidden}.request-strip-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-bottom:none;background:var(--color-background)}.request-strip-title{font-size:var(--text-2xs);font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em}.request-strip-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 12px 6px;background:var(--color-background);border-bottom:1px solid var(--color-border)}.request-strip-filter-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 6px 2px 8px;background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary);border-radius:var(--radius-full);font-size:10px;font-weight:600;line-height:1.5;white-space:nowrap}.request-strip-filter-chip-x{display:flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;background:color-mix(in srgb,var(--color-primary) 20%,transparent);border:none;border-radius:50%;color:var(--color-primary);cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.request-strip-filter-chip-x:hover{background:var(--color-primary);color:#fff}.request-strip-filter-clear{background:none;border:none;padding:2px 6px;font-size:10px;font-family:inherit;color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast)}.request-strip-filter-clear:hover{color:var(--color-text)}.request-strip-scroll{display:flex;gap:6px;padding:8px 12px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.request-mini-card{flex-shrink:0;width:190px;padding:8px 10px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.request-mini-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.request-mini-card.selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,var(--color-background))}.request-mini-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:-1px}.request-mini-header{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:2px}.request-mini-customer{font-size:var(--text-2xs);font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.request-mini-product{font-size:10px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px}.request-mini-fulfillment{font-size:10px;font-weight:600;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;margin-bottom:4px}.request-mini-actions{display:flex;gap:2px}.map-view-middle{display:grid;grid-template-columns:1.5fr auto 1fr;min-height:0;overflow:hidden;position:relative}.map-resize-handle{width:6px;cursor:col-resize;background:var(--color-border);transition:background var(--transition-fast);z-index:var(--z-base);touch-action:none}.map-resize-handle:hover,.map-resize-handle:active{background:var(--color-primary)}.dispatch-map-container{min-height:0;overflow:hidden;isolation:isolate}.dispatch-map{width:100%;height:100%}[data-theme=dark] .dispatch-map .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.9) contrast(.85)}[data-theme=dark] .dispatch-map .leaflet-marker-pane,[data-theme=dark] .dispatch-map .leaflet-shadow-pane,[data-theme=dark] .dispatch-map .leaflet-overlay-pane{filter:none}.map-pending-queue{display:flex;flex-direction:column;min-height:0;overflow:hidden}.map-pending-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;min-height:36px;background:var(--color-background);border-bottom:1px solid var(--color-border);flex-shrink:0}.map-pending-title{font-size:var(--text-2xs);font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:6px}.map-pending-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 12px 6px;background:var(--color-background);border-bottom:1px solid var(--color-border);flex-shrink:0}.map-pending-filter-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 6px 2px 8px;background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary);border-radius:var(--radius-full);font-size:10px;font-weight:600;white-space:nowrap;line-height:1.5}.map-pending-filter-chip-x{display:flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;background:color-mix(in srgb,var(--color-primary) 20%,transparent);border:none;border-radius:50%;color:var(--color-primary);cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.map-pending-filter-chip-x:hover{background:var(--color-primary);color:#fff}.map-pending-filter-clear{background:none;border:none;padding:2px 6px;font-size:10px;font-family:inherit;color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast)}.map-pending-filter-clear:hover{color:var(--color-text)}.map-pending-body{flex:1;overflow-y:auto;padding:0}.dispatch-pending-table{height:100%;min-height:0;display:flex;flex-direction:column}.dispatch-pending-update-error{margin:0 8px 8px;padding:6px 8px;border:1px solid color-mix(in srgb,var(--color-error) 35%,var(--color-border));border-radius:var(--radius-sm);background:var(--color-error-light);color:var(--color-error);font-size:var(--text-2xs)}.dispatch-pending-table .data-table{border:none;border-radius:0;height:100%;min-height:0;display:flex;flex-direction:column}.dispatch-pending-table .data-table-header{padding:0 8px;height:40px;border-bottom:none;background:var(--color-background)}.dispatch-pending-table .data-table-title{font-size:var(--text-2xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em}.dispatch-pending-table .data-table-actions{gap:4px}.dispatch-pending-table .data-table-wrapper{flex:1;min-height:0}.dispatch-pending-table .data-table td{padding:4px 8px}.dispatch-pending-table-row.drag-over td{background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface))}.dispatch-pending-table-row-in-progress td:first-child{border-left:2px solid var(--color-success)}.dispatch-pending-table-row-scheduled td:first-child{border-left:2px solid var(--color-info)}.dispatch-pending-table-row-queued td:first-child{border-left:2px solid var(--color-warning)}.dispatch-pending-status{display:inline-flex;align-items:center;padding:1px 6px;border-radius:var(--radius-full);font-size:10px;font-weight:700;line-height:1.5}.dispatch-pending-status-in-progress{background:var(--color-success-light);color:var(--color-success)}.dispatch-pending-status-scheduled{background:var(--color-info-light);color:var(--color-info)}.dispatch-pending-status-queued{background:var(--color-warning-light);color:var(--color-warning)}.dispatch-pending-truck-cell{display:flex;align-items:center;gap:2px}.dispatch-pending-truck-cell .fw-combobox{width:102px}.pending-category{margin-bottom:10px}.pending-category-header{display:flex;align-items:center;gap:6px;padding:4px 6px;margin-bottom:4px}.pending-category-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.pending-category-label{font-size:var(--text-2xs);font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em}.pending-category-count{font-size:var(--text-2xs);color:var(--color-text-tertiary)}.truck-status-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;min-height:60px}.truck-status-columns.two-col{grid-template-columns:repeat(2,1fr)}.truck-status-column{border-right:1px solid var(--color-border);display:flex;flex-direction:column;min-width:0}.truck-status-column:last-child{border-right:none}.truck-status-column-header{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--color-background);border-bottom:none;flex-shrink:0}.truck-status-column-body{max-height:200px;overflow-y:auto;padding:4px}.truck-status-empty{font-size:var(--text-2xs);color:var(--color-text-tertiary);padding:8px 6px;text-align:center;font-style:italic}@media(max-width:900px){.dispatch-header{grid-template-columns:1fr;gap:6px;justify-items:center}.dispatch-header-title{justify-self:start}.dispatch-header-tabs{justify-self:center}.dispatch-header-right{justify-self:start;flex-wrap:wrap}.dispatch-overview{padding:14px;gap:16px}.dispatch-overview-hero{flex-direction:column;align-items:center;text-align:center;gap:16px;padding:16px}.dispatch-overview-hero-right{width:100%}.dispatch-overview-hero-label{text-align:center}.dispatch-overview-hero-stats{flex-wrap:wrap;justify-content:center}.dispatch-overview-section-grid{grid-template-columns:1fr}.dispatch-panels{grid-template-columns:1fr;grid-template-rows:1fr 1fr 1fr}.dispatch-panel{border-right:none;border-bottom:1px solid var(--color-border)}.dispatch-panel:last-child{border-bottom:none}.dispatch-grid-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}.fleet-sidebar{border-right:none;border-bottom:1px solid var(--color-border);max-height:200px}.map-view-middle{grid-template-columns:1fr!important;grid-template-rows:1fr 1fr}.map-resize-handle{display:none}.dispatch-map-container{border-bottom:1px solid var(--color-border);min-height:250px}.truck-status-columns,.truck-status-columns.two-col{grid-template-columns:1fr}.truck-status-column{border-right:none;border-bottom:1px solid var(--color-border)}.truck-status-column:last-child{border-bottom:none}.dispatch-modal.dispatch-modal-wide{width:92vw}.dispatch-form-grid{grid-template-columns:1fr}}.dispatch-header-tabs{display:flex;align-items:center;gap:2px;justify-self:center;background:var(--color-background);border-radius:var(--radius-full);padding:3px}.dispatch-header-tab{padding:4px 14px;font-size:var(--text-2xs);font-weight:600;color:var(--color-text-tertiary);text-decoration:none;border-radius:var(--radius-full);transition:color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.dispatch-header-tab:hover{color:var(--color-text-secondary);background:var(--color-surface-hover)}.dispatch-header-tab.active{color:var(--color-primary);background:var(--color-surface);box-shadow:var(--shadow-sm)}.dispatch-overview{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:20px}.dispatch-overview-hero{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px 24px;display:flex;align-items:center;gap:28px}.dispatch-overview-hero-gauge{position:relative;width:110px;height:110px;flex-shrink:0}.dispatch-overview-gauge-svg{width:100%;height:100%;transform:rotate(-90deg)}.dispatch-overview-gauge-track{stroke:var(--color-background-tertiary)}.dispatch-overview-gauge-fill{transition:stroke-dasharray var(--transition-normal)}.dispatch-overview-gauge-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.dispatch-overview-gauge-pct{font-size:var(--text-2xl);font-weight:800;color:var(--color-text);line-height:1;font-variant-numeric:tabular-nums}.dispatch-overview-hero-right{flex:1;min-width:0}.dispatch-overview-hero-label{font-size:var(--text-xs);font-weight:700;color:var(--color-text-secondary);margin-bottom:14px}.dispatch-overview-hero-stats{display:flex;gap:20px}.dispatch-overview-hero-stat{display:flex;flex-direction:column;gap:2px}.dispatch-overview-hero-stat-value{font-size:var(--text-lg);font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums;line-height:1.2}.dispatch-overview-hero-stat-label{font-size:10px;color:var(--color-text-tertiary)}.dispatch-overview-section{display:flex;flex-direction:column;gap:8px}.dispatch-overview-section-title{font-size:var(--text-2xs);font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;padding-left:2px}.dispatch-overview-section-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.dispatch-overview-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:16px}.dispatch-overview-card-inline-header{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}.dispatch-overview-card-title{font-size:var(--text-2xs);font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em}.dispatch-overview-card-total{font-size:var(--text-xl);font-weight:800;color:var(--color-text);font-variant-numeric:tabular-nums;line-height:1}.dispatch-overview-breakdown{display:flex;flex-wrap:wrap;gap:6px 14px}.dispatch-overview-breakdown-secondary{margin-top:10px;padding-top:10px;border-top:1px solid var(--color-border-light)}.dispatch-overview-breakdown-item{display:flex;align-items:center;gap:6px;font-size:var(--text-2xs)}.dispatch-overview-breakdown-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.dispatch-overview-breakdown-label{color:var(--color-text-tertiary)}.dispatch-overview-breakdown-value{font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.dispatch-overview-proportion-bar{display:flex;height:8px;border-radius:var(--radius-full);overflow:hidden;gap:2px;margin-bottom:12px}.dispatch-overview-proportion-segment{border-radius:var(--radius-full);min-width:4px;transition:flex var(--transition-normal)}.dispatch-overview-proportion-legend{display:flex;flex-wrap:wrap;gap:6px 14px}.dispatch-overview-ranked-list{display:flex;flex-direction:column}.dispatch-overview-ranked-row{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:var(--text-2xs);border-bottom:1px solid var(--color-border-light)}.dispatch-overview-ranked-row:last-child{border-bottom:none}.dispatch-overview-rank{width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--color-text-tertiary);background:var(--color-background);border-radius:var(--radius-full);flex-shrink:0;font-variant-numeric:tabular-nums}.dispatch-overview-list-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-weight:600}.dispatch-overview-list-detail{flex-shrink:0;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.dispatch-overview-list-pct-wrap{display:flex;align-items:center;gap:6px;flex-shrink:0}.dispatch-overview-mini-bar-track{display:inline-block;width:40px;height:4px;background:var(--color-background-tertiary);border-radius:var(--radius-full);overflow:hidden;vertical-align:middle}.dispatch-overview-mini-bar-fill{display:block;height:100%;border-radius:var(--radius-full);min-width:1px}.dispatch-overview-mini-bar-fill.low{background:var(--color-error)}.dispatch-overview-mini-bar-fill.mid{background:var(--color-warning)}.dispatch-overview-mini-bar-fill.high{background:var(--color-success)}.dispatch-overview-empty{padding:16px;text-align:center;font-size:var(--text-2xs);color:var(--color-text-tertiary)}.app-layout{display:flex;flex-direction:row;height:100vh}.app-layout.nav-resizing{-webkit-user-select:none;user-select:none;cursor:col-resize}.app-layout-content{flex:1;min-width:0;display:flex;flex-direction:column;padding:8px 8px 8px 0;background:var(--color-background);overflow:hidden}.app-layout-panel{flex:1;min-height:0;border-radius:12px;border:1px solid var(--color-border);background:var(--color-surface);overflow:hidden;display:flex;flex-direction:column}.dashboard-viewer{--dash-accent: var(--color-primary);--dt-header-bg: var(--color-surface);--dt-header-color: var(--color-text-secondary);--dt-alt-row: transparent}.dashboard-viewer{display:flex;flex-direction:column;height:100%;overflow:hidden}.dashboard-viewer-actions button{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-2xs);color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.dashboard-viewer-actions button:hover{border-color:var(--color-primary);color:var(--color-text)}.parameter-bar{display:flex;align-items:flex-end;gap:8px;padding:6px 12px;background:var(--color-background);border-bottom:1px solid var(--color-border);flex-shrink:0}.param-fields{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px;flex:1;min-width:0}.param-bar-actions{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-left:auto}.param-bar-divider{width:1px;height:18px;background:var(--color-border);flex-shrink:0}.param-bar-action-btn{display:flex;align-items:center;gap:3px;height:var(--fw-control-height-sm);padding:0 8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--fw-control-font-sm);font-weight:500;font-family:inherit;color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.param-bar-action-btn:hover{border-color:var(--color-text-tertiary);color:var(--color-text);background:var(--color-surface-hover)}.param-bar-action-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.param-bar-action-btn.primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff}.param-field{display:flex;flex-direction:column;gap:2px}.param-label{font-size:9px;font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em}.param-input{height:var(--fw-control-height-sm);padding:0 8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--fw-control-font-sm);font-family:inherit;color:var(--color-text);min-width:130px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.param-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.param-input::placeholder{color:var(--color-text-tertiary)}.param-field .fw-combobox,.param-field .fw-multiselect{min-width:130px}.dp-container{position:relative}.dp-trigger{display:flex;align-items:center;gap:6px;height:var(--fw-control-height-sm);padding:0 6px 0 8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--fw-control-font-sm);font-family:inherit;color:var(--color-text);cursor:pointer;white-space:nowrap;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.dp-trigger:hover{border-color:var(--color-text-tertiary)}.dp-trigger.open{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.dp-trigger-icon{color:var(--color-text-tertiary);flex-shrink:0}.dp-trigger-text{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis}.dp-trigger-text.placeholder{color:var(--color-text-tertiary)}.dp-trigger-preset{font-weight:600;color:var(--color-primary)}.dp-trigger-chevron{color:var(--color-text-tertiary);flex-shrink:0;transition:transform var(--transition-fast)}.dp-trigger-clear{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-text-tertiary);cursor:pointer;padding:0;background:none;border:none;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.dp-trigger-clear:hover{color:var(--color-text);background:var(--color-surface-hover)}.dp-trigger-chevron.rotated{transform:rotate(180deg)}.dp-trigger-md{height:var(--fw-control-height-md);font-size:var(--fw-control-font-md);background:var(--color-background)}.dp-popover{position:absolute;top:calc(100% + 4px);left:0;z-index:var(--z-dropdown);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;animation:fw-dropdown-in .12s ease-out}.dp-range-layout{display:flex}.dp-presets{display:flex;flex-direction:column;padding:6px;border-right:1px solid var(--color-border-light);min-width:100px}.dp-preset-item{display:flex;align-items:center;padding:5px 10px;border:none;background:none;border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:inherit;color:var(--color-text-secondary);cursor:pointer;text-align:left;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast)}.dp-preset-item:hover{background:var(--color-surface-hover);color:var(--color-text)}.dp-preset-item.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:600}.dp-calendars{display:flex;padding:8px}.dp-single-presets{display:flex;gap:4px;padding:6px 8px;border-bottom:1px solid var(--color-border-light)}.dp-single-preset-item{flex:1;padding:4px 0;border:none;background:none;border-radius:var(--radius-sm);font-size:var(--text-2xs);font-family:inherit;color:var(--color-text-secondary);cursor:pointer;text-align:center;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast)}.dp-single-preset-item:hover{background:var(--color-surface-hover);color:var(--color-text)}.dp-single-preset-item.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:600}.dp-calendar-single{padding:8px}.dp-month{min-width:0}.dp-month+.dp-month{margin-left:8px;padding-left:8px;border-left:1px solid var(--color-border-light)}.dp-month-header{display:flex;align-items:center;justify-content:space-between;padding:0 2px 6px}.dp-month-title{font-size:var(--text-xs);font-weight:600;color:var(--color-text);flex:1;text-align:center}.dp-month-nav{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.dp-month-nav:hover{background:var(--color-surface-hover);color:var(--color-text)}.dp-month-nav-spacer{width:24px;flex-shrink:0}.dp-weekdays{display:grid;grid-template-columns:repeat(7,30px);text-align:center}.dp-weekday{font-size:9px;font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;padding-bottom:4px}.dp-days{display:grid;grid-template-columns:repeat(7,30px)}.dp-day{display:flex;align-items:center;justify-content:center;height:28px;border:none;background:none;font-size:var(--text-2xs);font-family:inherit;color:var(--color-text);cursor:pointer;position:relative;transition:background 80ms ease,color 80ms ease;border-radius:var(--radius-sm);padding:0}.dp-day:hover:not(.dp-day-empty){background:var(--color-surface-hover)}.dp-day-empty{cursor:default}.dp-day.today{font-weight:700}.dp-day.today:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--color-primary);opacity:.5}.dp-day.in-range{background:var(--color-primary-light);border-radius:0}.dp-day.range-start{background:var(--color-primary);color:#fff;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.dp-day.range-end{background:var(--color-primary);color:#fff;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.dp-day.range-start.range-end{border-radius:var(--radius-sm)}.dp-day.range-start:after,.dp-day.range-end:after{display:none}.dp-day.selected{background:var(--color-primary);color:#fff}.dp-day.selected:after{display:none}.param-apply-btn{display:flex;align-items:center;gap:4px;height:26px;padding:0 10px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:600;font-family:inherit;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast);white-space:nowrap}.param-apply-btn:hover{background:var(--color-primary-hover)}.param-apply-btn:active{transform:scale(.97)}.refresh-interval{position:relative}.refresh-interval-trigger{display:flex;align-items:center;gap:4px;height:26px;padding:0 8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:500;font-family:inherit;color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.refresh-interval-trigger:hover{border-color:var(--color-text-tertiary);color:var(--color-text)}.refresh-interval-trigger.active{border-color:var(--color-success);color:var(--color-success);background:color-mix(in srgb,var(--color-success) 8%,var(--color-surface) 92%)}.refresh-interval-trigger.active:hover{background:color-mix(in srgb,var(--color-success) 12%,var(--color-surface) 88%)}.refresh-interval-label{line-height:1}.refresh-interval-dot{width:6px;height:6px;border-radius:50%;background:var(--color-success);animation:refresh-dot-pulse 2s ease-in-out infinite}@keyframes refresh-dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.refresh-spin{animation:spin 1s linear infinite}.refresh-interval-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:var(--z-dropdown);min-width:90px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;padding:4px;animation:fw-dropdown-in .12s ease-out}.refresh-interval-option{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:5px 8px;border:none;background:none;border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:inherit;color:var(--color-text);cursor:pointer;text-align:left;transition:background var(--transition-fast)}.refresh-interval-option:hover{background:var(--color-surface-hover)}.refresh-interval-option.selected{color:var(--color-primary);font-weight:600}.refresh-interval-check{flex-shrink:0;color:var(--color-primary)}.dashboard-description-bar{padding:2px 12px;background:var(--color-background);border-bottom:1px solid var(--color-border-light);flex-shrink:0;min-height:20px;display:flex;align-items:center;cursor:default}.dashboard-description-text{font-size:var(--text-2xs);color:var(--color-text-secondary);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-description-text.placeholder{color:var(--color-text-tertiary);font-style:italic}.dashboard-description-input{flex:1;border:none;background:none;font-size:var(--text-2xs);font-family:inherit;color:var(--color-text);outline:none;padding:0;line-height:1.3}.dashboard-description-input::placeholder{color:var(--color-text-tertiary);font-style:italic}.dashboard-error{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-error);font-size:var(--text-sm)}.dashboard-content{flex:1;overflow-y:auto;padding:16px 20px;background:var(--color-background-secondary, var(--color-background))}.dashboard-viewer--dataset .dashboard-content--dataset{padding:0}.visual-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;align-items:start}.visual-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.visual-wrapper:hover{box-shadow:0 1px 8px #0000000d;border-color:color-mix(in srgb,var(--color-border) 60%,var(--color-text) 40%)}[data-theme=dark] .visual-wrapper:hover{box-shadow:0 1px 10px #0000002e}.visual-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--color-border-light)}.visual-title{font-size:var(--text-xs);font-weight:700;color:var(--color-text-tertiary);margin:0;text-transform:uppercase;letter-spacing:.04em}.visual-body{padding:8px 12px;overflow:auto}.visual-chart-wrapper{padding:4px 4px 0}.visual-table-wrapper{background:none;border:none;border-radius:0}.visual-table-wrapper:hover{box-shadow:none;border-color:transparent}.dashboard-content>.visual-table-wrapper{flex:1;display:flex;flex-direction:column;min-height:0}.dashboard-content:has(>.visual-table-wrapper){display:flex;flex-direction:column;overflow:hidden}.visual-body .recharts-responsive-container{margin:-4px -8px}.visual-chart-wrapper .chart-container{border:none;border-radius:0;background:none;display:flex;flex-direction:column;height:100%}.visual-chart-wrapper .chart-canvas-wrapper{flex:1;min-height:0}.visual-chart-wrapper .recharts-responsive-container{margin:0}.summary-card{padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-height:0;justify-content:center;position:relative}.summary-card-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary)}.summary-card-value{font-size:22px;font-weight:800;color:var(--dash-accent, var(--color-text));letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums}.summary-card-comparison{display:flex;align-items:center;gap:3px;font-size:var(--text-2xs);font-weight:600;margin-top:1px}.summary-card-comparison.positive{color:var(--color-success)}.summary-card-comparison.negative{color:var(--color-error)}.param-bar-action-btn.active{background:color-mix(in srgb,var(--color-success) 10%,var(--color-surface) 90%);border-color:var(--color-success);color:var(--color-success)}.param-bar-action-btn.active:hover{background:color-mix(in srgb,var(--color-success) 15%,var(--color-surface) 85%)}.dashboard-link-card{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin:6px 0;transition:border-color var(--transition-fast)}.dashboard-link-card:hover{border-color:var(--color-primary)}.dashboard-link-card-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-md);flex-shrink:0}.dashboard-link-card-content{flex:1;min-width:0}.dashboard-link-card-label{font-size:var(--text-2xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em}.dashboard-link-card-title{font-size:var(--text-sm);font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-link-card-action{display:flex;align-items:center;gap:4px;padding:5px 10px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;transition:opacity var(--transition-fast)}.dashboard-link-card-action:hover{opacity:.92}.builder-banner{display:flex;align-items:center;gap:8px;padding:6px 16px;background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface) 92%);border-bottom:1px solid color-mix(in srgb,var(--color-primary) 20%,var(--color-border) 80%);font-size:var(--text-xs);font-weight:600;color:var(--color-primary);flex-shrink:0}.builder-banner-icon{flex-shrink:0}.builder-banner-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.builder-banner-close{background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;padding:2px;border-radius:var(--radius-sm);display:flex;align-items:center;transition:color var(--transition-fast),background var(--transition-fast)}.builder-banner-close:hover{color:var(--color-text);background:var(--color-surface-hover)}.preview-panel-meta{font-size:var(--text-2xs);color:var(--color-text-tertiary);white-space:nowrap}.builder-placeholder{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 24px;text-align:center;max-width:280px}.builder-placeholder-icon{color:var(--color-text-tertiary);opacity:.4}.builder-placeholder-text{margin:0;font-size:var(--text-compact);color:var(--color-text-tertiary);line-height:1.5}.preview-panel{width:var(--preview-w, 500px);min-width:300px;max-width:1200px;display:flex;flex-direction:column;background:var(--color-background);border-left:1px solid var(--color-border);flex-shrink:0;overflow:hidden}.preview-panel-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.preview-panel-title{flex:1;font-size:var(--text-xs);font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-panel-action-group{display:inline-flex;align-items:center;gap:6px}.preview-panel-action{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;font-size:var(--text-2xs);font-weight:500;font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background var(--transition-fast)}.preview-panel-action:hover:not(:disabled){background:var(--color-surface-hover)}.preview-panel-action:disabled{opacity:.5;cursor:default}.preview-panel-action-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.preview-panel-action-primary:hover:not(:disabled){opacity:.9}.preview-panel-close{background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;padding:2px;border-radius:var(--radius-sm);display:flex;align-items:center;transition:color var(--transition-fast),background var(--transition-fast)}.preview-panel-close:hover{color:var(--color-text);background:var(--color-surface-hover)}.preview-panel-body{flex:1;overflow:hidden}.preview-resize-handle{width:4px;flex-shrink:0;cursor:col-resize;background:transparent;transition:background var(--transition-fast);position:relative;z-index:var(--z-base);margin-left:-2px;margin-right:-2px}.preview-resize-handle:hover,.preview-resize-handle.dragging{background:var(--color-primary);opacity:.4}.preview-resize-handle.dragging{opacity:.6}@media print{body>*:not(#root),.left-nav,.page-toolbar,.parameter-bar,.dashboard-description-bar,.dashboard-viewer>:not(.dashboard-content),.list-loading{display:none!important}html,body,#root,.app-layout,.app-layout-content,.app-layout-panel,.dashboard-viewer,.dashboard-content{display:block!important;overflow:visible!important;height:auto!important;width:auto!important;padding:0!important;margin:0!important;background:#fff!important;border:none!important;box-shadow:none!important}.visual-grid{gap:12px}.visual-wrapper{border:1px solid #ddd!important;box-shadow:none!important;page-break-inside:avoid}.visual-wrapper:hover{box-shadow:none!important}.visual-header{border-bottom-color:#ddd}.visual-title{color:#333}.summary-card-label{color:#666}.summary-card-value{color:#000}@page{margin:.5in .4in}}@media print{@page{html[data-print-orientation=landscape]{size:landscape;margin:.4in .5in}}}@layer rdg{@layer Defaults,FocusSink,CheckboxInput,CheckboxIcon,CheckboxLabel,Cell,HeaderCell,SummaryCell,EditCell,Row,HeaderRow,SummaryRow,GroupedRow,Root;}@layer rdg.MeasuringCell{.rdg-7-0-0-beta-58-fa71d63e{contain:strict;grid-row:1;visibility:hidden}}@layer rdg.Cell{.rdg-7-0-0-beta-58-85c48527{position:relative;padding-block:0;padding-inline:8px;border-inline-end:var(--rdg-border-width) solid var(--rdg-border-color);border-block-end:var(--rdg-border-width) solid var(--rdg-border-color);grid-row-start:var(--rdg-grid-row-start);align-content:center;background-color:inherit;white-space:nowrap;overflow:clip;text-overflow:ellipsis;outline:none}.rdg-7-0-0-beta-58-85c48527[aria-selected=true]{outline:var(--rdg-selection-width) solid var(--rdg-selection-color);outline-offset:calc(var(--rdg-selection-width) * -1)}}@layer rdg.Cell{.rdg-7-0-0-beta-58-17a9a6d4{position:sticky;z-index:1}.rdg-7-0-0-beta-58-17a9a6d4:nth-last-child(1 of.rdg-7-0-0-beta-58-17a9a6d4){box-shadow:var(--rdg-cell-frozen-box-shadow)}}@layer rdg.DragHandle{.rdg-7-0-0-beta-58-bfba19bc{--rdg-drag-handle-size: 8px;z-index:0;cursor:move;inline-size:var(--rdg-drag-handle-size);block-size:var(--rdg-drag-handle-size);background-color:var(--rdg-selection-color);place-self:end}.rdg-7-0-0-beta-58-bfba19bc:hover{--rdg-drag-handle-size: 16px;border:2px solid var(--rdg-selection-color);background-color:var(--rdg-background-color)}}@layer rdg.DragHandle{.rdg-7-0-0-beta-58-7abddb3e{z-index:1;position:sticky}}@layer rdg.CheckboxInput{.rdg-7-0-0-beta-58-3b807ead{display:block;margin:auto;inline-size:20px;block-size:20px}.rdg-7-0-0-beta-58-3b807ead:focus-visible{outline:2px solid var(--rdg-checkbox-focus-color);outline-offset:-3px}.rdg-7-0-0-beta-58-3b807ead:enabled{cursor:pointer}}@layer rdg.GroupCellContent{.rdg-7-0-0-beta-58-07919382{outline:none}}@layer rdg.GroupCellCaret{.rdg-7-0-0-beta-58-02a50147{margin-inline-start:4px;stroke:currentColor;stroke-width:1.5px;fill:transparent;vertical-align:middle}.rdg-7-0-0-beta-58-02a50147>path{transition:d .1s}}@layer rdg.SortableHeaderCell{.rdg-7-0-0-beta-58-56a248e4{display:flex}}@layer rdg.SortableHeaderCellName{.rdg-7-0-0-beta-58-7fad8c83{flex-grow:1;overflow:clip;text-overflow:ellipsis}}@layer rdg.Cell{.rdg-7-0-0-beta-58-35ccb4c8{background-color:#ccf}}@layer rdg.EditCell{.rdg-7-0-0-beta-58-46f9ea88{padding:0}}@layer rdg.HeaderRow{.rdg-7-0-0-beta-58-0dbd5994{display:contents;background-color:var(--rdg-header-background-color);font-weight:700}.rdg-7-0-0-beta-58-0dbd5994>.rdg-7-0-0-beta-58-85c48527{z-index:2;position:sticky}.rdg-7-0-0-beta-58-0dbd5994>.rdg-7-0-0-beta-58-17a9a6d4{z-index:3}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-2a7e240d{cursor:pointer}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-1893dc0f{touch-action:none}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-4e60db91{cursor:col-resize;position:absolute;inset-block-start:0;inset-inline-end:0;inset-block-end:0;inline-size:10px}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-3e1a4ad4{background-color:var(--rdg-header-draggable-background-color)}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-51abd8b8{background-color:var(--rdg-header-draggable-background-color)}}@layer rdg.HeaderCell{.rdg-7-0-0-beta-58-c8d7aa64{border-radius:4px;width:fit-content;outline:2px solid hsl(207,100%,50%);outline-offset:-2px}}@layer rdg.Row{.rdg-7-0-0-beta-58-3c083f1b{display:contents;background-color:var(--rdg-background-color)}.rdg-7-0-0-beta-58-3c083f1b:hover{background-color:var(--rdg-row-hover-background-color)}.rdg-7-0-0-beta-58-3c083f1b[aria-selected=true]{background-color:var(--rdg-row-selected-background-color)}.rdg-7-0-0-beta-58-3c083f1b[aria-selected=true]:hover{background-color:var(--rdg-row-selected-hover-background-color)}}@layer rdg.FocusSink{.rdg-7-0-0-beta-58-3fe773c3{outline:2px solid var(--rdg-selection-color);outline-offset:-2px}}@layer rdg.FocusSink{.rdg-7-0-0-beta-58-97ce3fde:before{content:"";display:inline-block;block-size:100%;position:sticky;inset-inline-start:0;border-inline-start:2px solid var(--rdg-selection-color)}}@layer rdg.SortIcon{.rdg-7-0-0-beta-58-3d5115f3{fill:currentColor}.rdg-7-0-0-beta-58-3d5115f3>path{transition:d .1s}}@layer rdg.Defaults{.rdg-7-0-0-beta-58-ccd2e5d9 *,.rdg-7-0-0-beta-58-ccd2e5d9 *:before,.rdg-7-0-0-beta-58-ccd2e5d9 *:after{box-sizing:inherit}}@layer rdg.Root{.rdg-7-0-0-beta-58-ccd2e5d9{--rdg-selection-width: 2px;--rdg-selection-color: hsl(207, 75%, 66%);--rdg-font-size: 14px;--rdg-cell-frozen-box-shadow: 2px 0 5px -2px rgba(136, 136, 136, .3);--rdg-border-width: 1px;--rdg-summary-border-width: calc(var(--rdg-border-width) * 2);--rdg-color: light-dark(#000, #ddd);--rdg-border-color: light-dark(#ddd, #444);--rdg-summary-border-color: light-dark(#aaa, #555);--rdg-background-color: light-dark(hsl(0deg 0% 100%), hsl(0deg 0% 13%));--rdg-header-background-color: light-dark(hsl(0deg 0% 97.5%), hsl(0deg 0% 10.5%));--rdg-header-draggable-background-color: light-dark(hsl(0deg 0% 90.5%), hsl(0deg 0% 17.5%));--rdg-row-hover-background-color: light-dark(hsl(0deg 0% 96%), hsl(0deg 0% 9%));--rdg-row-selected-background-color: light-dark(hsl(207deg 76% 92%), hsl(207deg 76% 42%));--rdg-row-selected-hover-background-color: light-dark(hsl(207deg 76% 88%), hsl(207deg 76% 38%));--rdg-checkbox-focus-color: hsl(207deg 100% 69%);color-scheme:var(--rdg-color-scheme, light dark);display:grid;accent-color:light-dark(hsl(207deg 100% 29%),hsl(207deg 100% 79%));contain:content;content-visibility:auto;block-size:350px;border:1px solid var(--rdg-border-color);box-sizing:border-box;overflow:auto;background-color:var(--rdg-background-color);color:var(--rdg-color);font-size:var(--rdg-font-size)}.rdg-7-0-0-beta-58-ccd2e5d9.rdg-dark{--rdg-color-scheme: dark}.rdg-7-0-0-beta-58-ccd2e5d9.rdg-light{--rdg-color-scheme: light}.rdg-7-0-0-beta-58-ccd2e5d9:dir(rtl){--rdg-cell-frozen-box-shadow: -2px 0 5px -2px rgba(136, 136, 136, .3)}.rdg-7-0-0-beta-58-ccd2e5d9:before{content:"";grid-column:1/-1;grid-row:1/-1}.rdg-7-0-0-beta-58-ccd2e5d9>:nth-last-child(1 of.rdg-top-summary-row)>.rdg-7-0-0-beta-58-85c48527{border-block-end:var(--rdg-summary-border-width) solid var(--rdg-summary-border-color)}.rdg-7-0-0-beta-58-ccd2e5d9>:nth-child(1 of.rdg-bottom-summary-row)>.rdg-7-0-0-beta-58-85c48527{border-block-start:var(--rdg-summary-border-width) solid var(--rdg-summary-border-color)}}@layer rdg.Root{.rdg-7-0-0-beta-58-e9b0e1c9{-webkit-user-select:none;user-select:none}.rdg-7-0-0-beta-58-e9b0e1c9 .rdg-7-0-0-beta-58-3c083f1b{cursor:move}}@layer rdg.FocusSink{.rdg-7-0-0-beta-58-dbb8b3c5{grid-column:1/-1;pointer-events:none;z-index:1}}@layer rdg.FocusSink{.rdg-7-0-0-beta-58-e9f55541{z-index:3}}@layer rdg.SummaryRow{.rdg-7-0-0-beta-58-0b90c82c>.rdg-7-0-0-beta-58-85c48527{position:sticky}}@layer rdg.SummaryRow{.rdg-7-0-0-beta-58-d0520eab>.rdg-7-0-0-beta-58-85c48527{z-index:2}.rdg-7-0-0-beta-58-d0520eab>.rdg-7-0-0-beta-58-17a9a6d4{z-index:3}}@layer rdg.SummaryCell{.rdg-7-0-0-beta-58-d907aa87{inset-block-start:var(--rdg-summary-row-top);inset-block-end:var(--rdg-summary-row-bottom)}}@layer rdg.GroupedRow{.rdg-7-0-0-beta-58-e74a2be3:not([aria-selected=true]){background-color:var(--rdg-header-background-color)}.rdg-7-0-0-beta-58-e74a2be3>.rdg-7-0-0-beta-58-85c48527:not(:last-child,.rdg-7-0-0-beta-58-17a9a6d4),.rdg-7-0-0-beta-58-e74a2be3>:nth-last-child(n+2 of.rdg-7-0-0-beta-58-17a9a6d4){border-inline-end:none}}@layer rdg.TextEditor{.rdg-7-0-0-beta-58-2f8db206{appearance:none;box-sizing:border-box;inline-size:100%;block-size:100%;padding-block:0;padding-inline:6px;border:2px solid #ccc;vertical-align:top;color:var(--rdg-color);background-color:var(--rdg-background-color);font-family:inherit;font-size:var(--rdg-font-size)}.rdg-7-0-0-beta-58-2f8db206:focus{border-color:var(--rdg-selection-color);outline:none}.rdg-7-0-0-beta-58-2f8db206::placeholder{color:#999;opacity:1}}.de-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.de-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0}.de-header-left,.de-header-right{display:flex;align-items:center;gap:var(--spacing-sm)}.de-title{font-size:1.1rem;font-weight:600;margin:0;color:var(--color-text);white-space:nowrap}.de-entity-select{min-width:200px}.de-row-count{font-size:.8rem;color:var(--color-text-tertiary);white-space:nowrap}.de-change-badge{padding:.2rem .6rem;border-radius:var(--radius-sm);background:color-mix(in srgb,#e67e22 18%,transparent);color:#d35400;font-size:.75rem;font-weight:600;white-space:nowrap}.de-error-banner{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:color-mix(in srgb,var(--color-error) 12%,transparent);color:var(--color-error);font-size:.85rem;border-bottom:1px solid color-mix(in srgb,var(--color-error) 25%,transparent)}.de-error-banner span{flex:1}.de-error-dismiss{background:none;border:none;color:var(--color-error);font-size:1.1rem;cursor:pointer;padding:0 .25rem;line-height:1;opacity:.7}.de-error-dismiss:hover{opacity:1}.de-grid-wrapper{display:flex;flex-direction:column;height:100%;overflow:hidden}.de-hints{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm) var(--spacing-md);padding:4px var(--spacing-md);font-size:.7rem;color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border-light);background:var(--color-background);flex-shrink:0}.de-hint kbd{display:inline-block;padding:1px 4px;border:1px solid var(--color-border);border-radius:3px;background:var(--color-surface);font-family:inherit;font-size:.65rem;line-height:1.4;margin-right:2px}.de-hint-count{margin-left:auto;font-weight:600;color:var(--color-primary)}.de-body{flex:1;overflow:hidden}.de-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--spacing-md);color:var(--color-text-tertiary)}.de-spinner{animation:spin .8s linear infinite}.de-grid{--rdg-color: var(--color-text);--rdg-background-color: transparent;--rdg-header-background-color: var(--color-background);--rdg-border-color: var(--color-border-light);--rdg-border-width: 0;--rdg-selection-color: transparent;--rdg-selection-width: 0;--rdg-row-hover-background-color: var(--color-surface-hover);--rdg-font-size: var(--fs-table, .8rem);--rdg-cell-frozen-box-shadow: 1px 0 0 var(--color-border-light);border:none;border-radius:0;color-scheme:inherit;-webkit-user-select:none;user-select:none}.de-grid .rdg-header-row{font-weight:600;font-size:var(--fs-small, .7rem);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.de-grid .rdg-header-row .rdg-cell{border-block-end:1px solid var(--color-border)}.de-grid .rdg-cell{border-block-end:1px solid var(--color-border-light);padding:0 10px;color:var(--color-text)}.de-grid .rdg-row:hover .rdg-cell:not(.de-cell-selected){background:var(--color-surface-hover)}.de-grid .rdg-row[aria-rowindex]:nth-child(2n) .rdg-cell:not(.de-cell-selected):not(.de-cell-dirty){background:color-mix(in srgb,var(--color-background) 40%,var(--color-surface) 60%)}.de-grid .rdg-row[aria-rowindex]:nth-child(2n):hover .rdg-cell:not(.de-cell-selected){background:var(--color-surface-hover)}.de-grid .rdg-cell-drag-handle{background-color:var(--color-primary)}.de-grid .rdg-cell-dragged-over{background-color:var(--color-primary-light, color-mix(in srgb, var(--color-primary) 12%, transparent))!important}.de-grid .rdg-cell-frozen{background:var(--color-surface);box-shadow:1px 0 0 var(--color-border-light)}.de-cell-readonly{background:var(--color-background-secondary)!important;color:var(--color-text-secondary)}.de-cell-dirty{background:color-mix(in srgb,#e67e22 15%,transparent)!important;border-left:3px solid #e67e22!important}.de-cell-selected{background:color-mix(in srgb,var(--color-primary) 12%,transparent)!important;outline:1px solid color-mix(in srgb,var(--color-primary) 40%,transparent);outline-offset:-1px}.de-grid input,.de-grid input:focus,.de-grid input:focus-visible,.de-cell-input,.de-cell-input:focus,.de-cell-input:focus-visible{border:none!important;outline:none!important;box-shadow:none!important;-webkit-appearance:none;appearance:none}.de-cell-input{width:100%;height:100%;padding:0 8px;font-size:inherit;font-family:inherit;background:transparent;color:var(--color-text);box-sizing:border-box}.de-cell-dropdown-panel{position:fixed;z-index:10000;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:4px}.de-bool{color:var(--color-text-secondary)}.de-bool-true{color:var(--color-success);font-weight:500}.de-confirm-modal{max-width:800px;width:90vw;max-height:80vh;display:flex;flex-direction:column;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);overflow:hidden}.de-confirm-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border)}.de-confirm-header h3{margin:0;font-size:1rem;color:var(--color-text)}.de-confirm-failed{color:var(--color-error)}.de-confirm-body{flex:1;overflow:auto;padding:var(--spacing-md) var(--spacing-lg)}.de-confirm-table{width:100%;border-collapse:collapse;font-size:.825rem}.de-confirm-table th{text-align:left;padding:.4rem .6rem;background:var(--color-background-secondary);color:var(--color-text-secondary);font-weight:600;border-bottom:1px solid var(--color-border);position:sticky;top:0}.de-confirm-table td{padding:.35rem .6rem;border-bottom:1px solid var(--color-border-light);color:var(--color-text);vertical-align:top}.de-confirm-old{background:var(--color-error-light);color:var(--color-error);text-decoration:line-through}.de-confirm-new{background:var(--color-success-light);color:var(--color-success);font-weight:500}.de-confirm-error-row td{background:var(--color-error-light)}.de-confirm-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border)}.de-toolbar-sep{width:1px;height:20px;background:var(--color-border);flex-shrink:0}.de-import-modal{max-width:900px}.de-import-warnings{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.de-import-warning{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);background:color-mix(in srgb,#e67e22 12%,transparent);color:#d35400;font-size:.8rem}.de-import-section-title{margin:var(--spacing-md) 0 var(--spacing-xs);font-size:.85rem;font-weight:600;color:var(--color-text-secondary)}.de-import-section-title:first-child{margin-top:0}.de-import-empty{text-align:center;padding:var(--spacing-lg);color:var(--color-text-tertiary);font-size:.9rem}.wfmd{padding:24px 28px 40px;max-width:620px;margin:0 auto;font-family:var(--font-sans);line-height:var(--leading-relaxed)}.wfmd-summary{margin-bottom:12px}.wfmd-name{font-size:1.2rem;font-weight:700;color:var(--color-text);margin:0;letter-spacing:-.01em}.wfmd-desc{font-size:.84rem;color:var(--color-text-secondary);margin:4px 0 0;line-height:var(--leading-normal)}.wfmd-trigger{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:var(--color-text-secondary);padding:4px 10px 4px 7px;background:color-mix(in srgb,var(--color-green-600) 6%,transparent);border:1px solid color-mix(in srgb,var(--color-green-600) 15%,transparent);border-radius:var(--radius-full);margin-bottom:20px}.wfmd-trigger svg{color:var(--color-green-600);flex-shrink:0}.wfmd-steps{display:flex;flex-direction:column;gap:2px}.wfmd-item{padding-left:calc(var(--depth, 0) * 20px)}.wfmd-step{display:flex;align-items:center;gap:8px;padding:6px 0}.wfmd-num{width:20px;height:20px;border-radius:50%;background:var(--color-background-secondary);color:var(--color-text-tertiary);font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.wfmd-icon{width:22px;height:22px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.wfmd-label{font-size:.84rem;font-weight:600;color:var(--color-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wfmd-tag{font-size:.6rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;padding:1px 6px;border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0}.wfmd-blue{background:color-mix(in srgb,var(--color-blue-600) 8%,transparent);color:var(--color-blue-600)}.wfmd-amber{background:color-mix(in srgb,var(--color-amber-600) 8%,transparent);color:var(--color-amber-600)}.wfmd-green{background:color-mix(in srgb,var(--color-green-600) 8%,transparent);color:var(--color-green-600)}.wfmd-purple{background:color-mix(in srgb,var(--color-purple-600) 8%,transparent);color:var(--color-purple-600)}.wfmd-teal{background:color-mix(in srgb,var(--color-teal-600) 8%,transparent);color:var(--color-teal-600)}.wfmd-gray{background:var(--color-background-secondary);color:var(--color-text-tertiary)}.wfmd-body{padding-left:50px;padding-bottom:4px}.wfmd-step-desc{margin:0;font-size:.78rem;color:var(--color-text-tertiary);line-height:var(--leading-normal)}.wfmd-prompt{font-style:italic}.wfmd-auto-paginate{margin:0;font-size:.78rem;color:var(--color-text-tertiary);line-height:var(--leading-normal);font-style:italic;opacity:.8}.wfmd-detail-vars{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.wfmd-var{display:inline-flex;align-items:center;gap:3px;font-size:.7rem;color:var(--color-text-secondary)}.wfmd-var-k{font-weight:600;color:var(--color-text-tertiary)}.wfmd-var-k:after{content:":"}.wfmd-detail-kv{display:flex;flex-direction:column;gap:1px;margin-top:2px}.wfmd-kv{font-size:.76rem;color:var(--color-text-secondary);display:flex;align-items:baseline;gap:6px}.wfmd-kv-l{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary);flex-shrink:0;min-width:40px}.wfmd-http-method{font-size:.62rem;font-weight:700;padding:0 4px;border-radius:2px;background:color-mix(in srgb,var(--color-amber-600) 10%,transparent);color:var(--color-amber-600);flex-shrink:0}.wfmd-tpl{background:color-mix(in srgb,var(--color-blue-600) 8%,transparent);color:var(--color-blue-600);padding:0 3px;border-radius:2px;font-size:.85em;font-family:var(--font-mono);font-weight:500}.wfmd-control{margin-top:4px;display:flex;flex-direction:column;gap:4px}.wfmd-cond{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;color:var(--color-text-secondary);font-family:var(--font-mono)}.wfmd-cond-kw{font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-teal-600);font-family:var(--font-sans)}.wfmd-cond-expr{font-size:.72rem;font-family:var(--font-mono)}.wfmd-cond-op{font-weight:700;color:var(--color-teal-600)}.wfmd-alias{font-size:.78rem;font-weight:600;color:var(--color-text);background:var(--color-background-secondary);padding:0 4px;border-radius:2px}.wfmd-branch{padding-left:12px;border-left:2px solid var(--color-border-light);margin-left:2px}.wfmd-branch-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 0}.wfmd-branch-then{color:var(--color-green-600)}.wfmd-branch-else{color:var(--color-text-tertiary)}.wfmd-branch-case{color:var(--color-blue-600)}.wfmd-run{display:inline-flex;align-items:center;gap:3px;font-size:.6rem;font-weight:600;padding:1px 6px;border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0}.wfmd-run-pending{background:var(--color-background-secondary);color:var(--color-text-tertiary)}.wfmd-run-running{background:color-mix(in srgb,var(--color-blue-600) 10%,transparent);color:var(--color-blue-600)}.wfmd-run-success{background:color-mix(in srgb,var(--color-green-600) 10%,transparent);color:var(--color-green-600)}.wfmd-run-failed{background:color-mix(in srgb,var(--color-error) 10%,transparent);color:var(--color-error)}.wfmd-run-skipped{background:color-mix(in srgb,var(--color-amber-600) 10%,transparent);color:var(--color-amber-600)}.wfmd-dur{font-size:.55rem;opacity:.7}.wfmd-spin{animation:spin 1s linear infinite}.wfmd-error{margin:4px 0 0;padding:4px 8px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--color-error) 6%,transparent);color:var(--color-error);font-size:.72rem;border:1px solid color-mix(in srgb,var(--color-error) 12%,transparent);line-height:var(--leading-tight)}.wfmd-empty{color:var(--color-text-tertiary);font-size:.84rem;padding:20px 0}.wf-viewer{display:flex;flex-direction:column;height:100%;overflow:hidden}.wf-viewer-toolbar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--color-border);flex-shrink:0}.wf-toolbar-btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.wf-toolbar-btn-primary:hover:not(:disabled){opacity:.9}.wf-toolbar-spacer{flex:1}.wf-toolbar-meta{font-size:.75rem;color:var(--color-text-tertiary)}.wf-viewer-body{flex:1;overflow-y:auto;padding:8px 16px}.wf-preview-panel{height:100%;overflow-y:auto;background:var(--color-surface)}.wf-preview-loading{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-text-tertiary)}.wf-preview-error{padding:16px;color:var(--color-error);font-size:var(--text-sm)}:root{--color-primary: #2fa84e;--color-primary-hover: #268f42;--color-primary-light: #edf6ee;--color-dark-accent: #262220;--color-background: #f0efea;--color-background-secondary: #e8e6e0;--color-background-tertiary: #dfddd6;--color-surface: #f7f6f2;--color-surface-hover: #eceae4;--color-border: #d2d0c9;--color-border-light: #dcdad3;--color-text: #2a2826;--color-text-secondary: #5c5850;--color-text-tertiary: #908c84;--color-text-inverse: #ffffff;--color-success: #2fa84e;--color-success-light: #e8f5eb;--color-error: #dc3545;--color-error-light: #fcecee;--color-warning: #e59a1f;--color-warning-light: #fdf5e4;--color-info: #3b82f6;--color-info-light: #eff6ff;--color-green-600: #16a34a;--color-blue-600: #2563eb;--color-amber-600: #d97706;--color-red-600: #dc2626;--color-purple-600: #9333ea;--color-teal-600: #0891b2;--color-border-strong: #9e9a92;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-dropdown: 0 4px 12px rgba(0, 0, 0, .12);--shadow-modal: 0 16px 48px rgba(0, 0, 0, .25);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--font-ui-override: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-msg-override: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-sans: var(--font-ui-override);--font-msg: var(--font-msg-override);--font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, monospace;--text-2xs: .6875rem;--text-xs: .75rem;--text-compact: .8125rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--leading-tight: 1.4;--leading-normal: 1.5;--leading-relaxed: 1.6;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--z-base: 1;--z-sticky: 10;--z-dropdown: 100;--z-overlay: 200;--z-modal: 300;--z-popover: 400;--z-toast: 1000;--sidebar-width: 280px;--header-height: 60px;--max-content-width: 900px}[data-theme=dark]{--color-background: #232020;--color-background-secondary: #2c2826;--color-background-tertiary: #363230;--color-surface: #2c2826;--color-surface-hover: #363230;--color-border: #433e3a;--color-border-light: #363230;--color-text: #f2f0ed;--color-text-secondary: #b0a99f;--color-text-tertiary: #7d756c;--color-text-inverse: #232020;--color-primary-light: rgba(47, 168, 78, .15);--color-success-light: rgba(47, 168, 78, .15);--color-error-light: rgba(220, 53, 69, .15);--color-warning-light: rgba(229, 154, 31, .15);--color-info-light: rgba(59, 130, 246, .15);--color-green-600: #22c55e;--color-blue-600: #3b82f6;--color-amber-600: #f59e0b;--color-red-600: #ef4444;--color-purple-600: #a855f7;--color-teal-600: #22d3ee;--color-border-strong: #5c5650;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 6px rgba(0, 0, 0, .25);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .3);--shadow-dropdown: 0 4px 12px rgba(0, 0, 0, .3);--shadow-modal: 0 16px 48px rgba(0, 0, 0, .5)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;color:var(--color-text);background-color:var(--color-background)}html.theme-transition,html.theme-transition *,html.theme-transition *:before,html.theme-transition *:after{transition:background-color .4s ease,color .4s ease,border-color .4s ease,box-shadow .4s ease,fill .4s ease,stroke .4s ease!important}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}::selection{background-color:var(--color-primary);color:var(--color-text-inverse)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}code,pre{font-family:var(--font-mono);font-size:var(--text-sm)}code{background-color:var(--color-background-tertiary);padding:.125rem .375rem;border-radius:var(--radius-sm)}pre{background-color:var(--color-background-tertiary);padding:var(--spacing-md);border-radius:var(--radius-md);overflow-x:auto}pre code{background:none;padding:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;line-height:var(--leading-normal);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.button:disabled{opacity:.4;cursor:not-allowed}.button-primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.button-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.button-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.button-secondary:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-text-tertiary)}.button-ghost{background:transparent;color:var(--color-text-secondary)}.button-ghost:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.button-danger{background:var(--color-error);color:var(--color-text-inverse)}.button-danger:hover:not(:disabled){background:color-mix(in srgb,var(--color-error) 85%,black)}.button-icon{padding:var(--spacing-xs);background:none;border-color:var(--color-border)}.button-icon:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.input{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input::placeholder{color:var(--color-text-tertiary)}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.input:disabled{opacity:.5;cursor:not-allowed}.label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text);margin-bottom:var(--spacing-xs)}.form-group{margin-bottom:var(--spacing-md)}.alert{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500}.alert-error{background:var(--color-error-light);color:var(--color-error);border:1px solid color-mix(in srgb,var(--color-error) 20%,transparent)}.badge{font-size:var(--text-2xs);font-weight:500;padding:1px 8px;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.03em}.badge-success{background:var(--color-success-light);color:var(--color-success)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}.badge-error{background:var(--color-error-light);color:var(--color-error)}.badge-info{background:var(--color-info-light);color:var(--color-info)}.badge-neutral{background:var(--color-surface-hover);color:var(--color-text-secondary)}.spinner{width:1.25rem;height:1.25rem;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:modal-overlay-in var(--transition-fast)}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}.modal-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);animation:modal-panel-in .2s ease-out}@keyframes modal-panel-in{0%{opacity:0;transform:scale(.9) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.empty-state{text-align:center;padding:48px 24px;color:var(--color-text-tertiary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);flex:1}.empty-state p{margin:var(--spacing-sm) 0;font-size:var(--text-sm)}.list-page{padding:16px 20px;overflow-y:auto;height:100%}.list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.list-header h1{font-size:20px;font-weight:600;color:var(--color-text);margin:0}.list-loading{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-text-tertiary);font-size:var(--text-sm)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 14px;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit}.card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.card-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-desc{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-badges{display:flex;gap:4px;flex-shrink:0}.card-tags{display:flex;flex-wrap:wrap;gap:5px}.card-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);margin-top:auto}.card-meta{font-size:var(--text-2xs);color:var(--color-text-tertiary);margin-top:auto}.card-actions{display:flex;gap:4px;opacity:0;transition:opacity var(--transition-fast)}.card:hover .card-actions{opacity:1}.card-actions button{background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center}.card-action.edit:hover{color:var(--color-primary);background:var(--color-primary-light)}.card-action.delete:hover{color:var(--color-error);background:var(--color-error-light)}.btn-create{display:flex;align-items:center;gap:5px;padding:5px 12px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:600;font-family:inherit;cursor:pointer;transition:background var(--transition-fast);white-space:nowrap}.btn-create:hover{background:var(--color-primary-hover)}.list-search{display:flex;align-items:center;gap:var(--spacing-sm)}.list-search input{padding:6px 10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-compact);color:var(--color-text);width:220px}.list-search input:focus{outline:none;border-color:var(--color-primary)}@media(max-width:768px){.list-page{padding:12px}.list-header{flex-direction:column;align-items:stretch;gap:10px}.list-search input{width:100%}}:root{--fw-control-height-sm: 28px;--fw-control-height-md: 32px;--fw-control-font-sm: var(--text-2xs);--fw-control-font-md: var(--text-xs)}.fw-combobox,.fw-combobox-control{position:relative;width:100%}.fw-combobox-input{width:100%;padding:0 28px 0 10px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:inherit;font-family:inherit;color:var(--color-text);cursor:pointer;text-align:left;outline:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.fw-combobox-control:has(.fw-combobox-clear-btn) .fw-combobox-input{padding-right:44px}.fw-combobox-sm .fw-combobox-input{height:var(--fw-control-height-sm);font-size:var(--fw-control-font-sm)}.fw-combobox-md .fw-combobox-input{height:var(--fw-control-height-md);font-size:var(--fw-control-font-md)}.fw-combobox-input:hover:not(:disabled){border-color:var(--color-text-tertiary)}.fw-combobox-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.fw-combobox-input:disabled{opacity:.5;cursor:not-allowed}.fw-combobox-input::placeholder{color:var(--color-text-tertiary)}.fw-combobox-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;background:none;border:none;padding:2px;color:var(--color-text-tertiary);cursor:pointer}.fw-combobox-toggle[data-popup-open] svg{transform:rotate(180deg)}.fw-combobox-toggle svg{transition:transform var(--transition-fast)}.fw-combobox-clear-btn{position:absolute;right:22px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:14px;height:14px;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer}.fw-combobox-clear-btn:hover{color:var(--color-text);background:var(--color-surface-hover)}.fw-combobox-positioner{z-index:var(--z-popover)}.fw-combobox-popup{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-dropdown);animation:fw-dropdown-in .12s ease-out;display:flex;flex-direction:column;min-width:180px;width:var(--anchor-width)}.fw-combobox-list{max-height:220px;overflow-y:auto;padding:4px}.fw-combobox-option{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:inherit;color:var(--color-text);cursor:pointer;text-align:left}.fw-combobox-option[data-highlighted]{background:var(--color-surface-hover)}.fw-combobox-option[data-selected]{background:var(--color-primary-light);color:var(--color-primary);font-weight:600}.fw-combobox-option-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fw-combobox-check{flex-shrink:0;color:var(--color-primary)}.fw-combobox-empty{padding:12px 8px;text-align:center;font-size:var(--text-xs);color:var(--color-text-tertiary)}.fw-combobox-empty:empty{display:none}.fw-select{display:flex;align-items:center;gap:4px;width:100%;padding:0 6px 0 10px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;color:var(--color-text);cursor:pointer;text-align:left;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.fw-select-sm{height:var(--fw-control-height-sm);font-size:var(--fw-control-font-sm)}.fw-select-md{height:var(--fw-control-height-md);font-size:var(--fw-control-font-md)}.fw-select:hover:not([data-disabled]){border-color:var(--color-text-tertiary)}.fw-select[data-popup-open]{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.fw-select[data-disabled]{opacity:.5;cursor:not-allowed}.fw-select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fw-select-value[data-placeholder]{color:var(--color-text-tertiary)}.fw-select-icon{color:var(--color-text-tertiary);flex-shrink:0;display:flex;align-items:center}.fw-select-icon svg{transition:transform var(--transition-fast)}.fw-select[data-popup-open] .fw-select-icon svg{transform:rotate(180deg)}.fw-select-positioner{z-index:var(--z-popover)}.fw-select-popup{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-dropdown);padding:4px;max-height:220px;overflow-y:auto;animation:fw-dropdown-in .12s ease-out;min-width:120px;width:var(--anchor-width)}.fw-select-option{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:inherit;color:var(--color-text);cursor:pointer;text-align:left;transition:background var(--transition-fast)}.fw-select-option[data-highlighted]{background:var(--color-surface-hover)}.fw-select-option[data-selected]{background:var(--color-primary-light);color:var(--color-primary);font-weight:600}.fw-select-option-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fw-select-check{flex-shrink:0;color:var(--color-primary)}.fw-multiselect{position:relative;width:100%}.fw-multiselect-trigger{display:flex;align-items:center;gap:4px;width:100%;padding:0 6px 0 10px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;color:var(--color-text);cursor:pointer;text-align:left;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.fw-multiselect-sm .fw-multiselect-trigger{height:var(--fw-control-height-sm);font-size:var(--fw-control-font-sm)}.fw-multiselect-md .fw-multiselect-trigger{height:var(--fw-control-height-md);font-size:var(--fw-control-font-md)}.fw-multiselect-trigger:hover:not(:disabled){border-color:var(--color-text-tertiary)}.fw-multiselect-trigger[data-popup-open]{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.fw-multiselect-trigger:disabled{opacity:.5;cursor:not-allowed}.fw-multiselect-summary{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fw-multiselect-summary.placeholder{color:var(--color-text-tertiary)}.fw-multiselect-chevron{color:var(--color-text-tertiary);flex-shrink:0;transition:transform var(--transition-fast)}.fw-multiselect-trigger[data-popup-open] .fw-multiselect-chevron{transform:rotate(180deg)}.fw-multiselect-positioner{z-index:var(--z-popover)}.fw-multiselect-popup{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-dropdown);overflow:hidden;animation:fw-dropdown-in .12s ease-out;min-width:160px;width:var(--anchor-width)}.fw-multiselect-search-wrap{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--color-border)}.fw-multiselect-search-icon{color:var(--color-text-tertiary);flex-shrink:0}.fw-multiselect-search{flex:1;border:none;background:none;font-size:var(--text-xs);font-family:inherit;color:var(--color-text);outline:none;min-width:0}.fw-multiselect-search::placeholder{color:var(--color-text-tertiary)}.fw-multiselect-clear-search{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;flex-shrink:0}.fw-multiselect-clear-search:hover{color:var(--color-text);background:var(--color-surface-hover)}.fw-multiselect-actions{display:flex;align-items:center;gap:2px;padding:4px 8px;border-bottom:1px solid var(--color-border-light, var(--color-border))}.fw-multiselect-actions button{flex:1;height:20px;padding:0 6px;border:none;background:none;border-radius:var(--radius-sm);font-size:var(--text-2xs);font-family:inherit;color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast);text-align:center}.fw-multiselect-actions button:hover{color:var(--color-primary);background:var(--color-primary-light)}.fw-multiselect-list{max-height:220px;overflow-y:auto;padding:4px}.fw-multiselect-option{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:inherit;color:var(--color-text);cursor:pointer;text-align:left}.fw-multiselect-option[data-highlighted]{background:var(--color-surface-hover)}.fw-multiselect-option[data-selected]{background:var(--color-primary-light);color:var(--color-primary);font-weight:600}.fw-multiselect-option-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fw-multiselect-check{display:flex;align-items:center;justify-content:center;width:14px;height:14px;border:1.5px solid var(--color-border);border-radius:3px;flex-shrink:0;transition:background var(--transition-fast),border-color var(--transition-fast);color:transparent}.fw-multiselect-check[data-selected]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.fw-multiselect-empty{padding:12px 8px;text-align:center;font-size:var(--text-xs);color:var(--color-text-tertiary)}.fw-number{position:relative;width:100%}.fw-number-input{width:100%;padding:0 10px;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);-moz-appearance:textfield}.fw-number-input::-webkit-outer-spin-button,.fw-number-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.fw-number-sm .fw-number-input{height:var(--fw-control-height-sm);font-size:var(--fw-control-font-sm)}.fw-number-md .fw-number-input{height:var(--fw-control-height-md);font-size:var(--fw-control-font-md)}.fw-number-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.fw-number-input:disabled{opacity:.5;cursor:not-allowed}.fw-number-input.has-suffix{padding-right:40px}.fw-number-suffix{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:var(--text-2xs);color:var(--color-text-tertiary);pointer-events:none;-webkit-user-select:none;user-select:none}@keyframes fw-dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
