.toast-container{bottom:24px;display:flex;flex-direction:column;gap:8px;pointer-events:none;position:fixed;right:24px;z-index:1100}.toast{align-items:center;animation:toastSlideIn .2s ease-out;border-radius:var(--border-radius-sm);box-shadow:var(--shadow-md);display:flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-2);max-width:400px;padding:var(--space-3) var(--space-4);pointer-events:auto}.toast-exiting{animation:toastFadeOut .2s ease-in forwards}.toast-success{background:#d1fae5;color:#065f46}.toast-error{background:#fee2e2;color:#991b1b}.toast-info{background:#dbeafe;color:#1e40af}.toast-message{flex:1 1;line-height:1.4}.toast-close,.toast-icon{align-items:center;display:flex;flex-shrink:0}.toast-close{border-radius:var(--border-radius-sm);cursor:pointer;justify-content:center;opacity:.6;padding:var(--space-1);transition:opacity .15s}.toast-close:hover{opacity:1}@keyframes toastSlideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes toastFadeOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}@media (max-width:768px){.toast-container{bottom:16px;left:16px;right:16px}.toast{max-width:100%}}.sidebar{background:var(--fps-dark-blue);bottom:0;color:#fff;display:flex;flex-direction:column;left:0;overflow-y:auto;position:fixed;top:0;width:var(--sidebar-width);z-index:100}.sidebar-close-btn{display:none}.sidebar-logo{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;gap:var(--space-3);padding:var(--space-5) var(--space-4)}.logo-mark{background:var(--fps-red);border-radius:var(--border-radius-sm);color:#fff;font-size:var(--font-size-sm);font-weight:700;letter-spacing:.5px;padding:6px 10px}.sidebar-logo-img{max-height:32px;max-width:100%;object-fit:contain}.logo-text{font-size:var(--font-size-md);font-weight:600;letter-spacing:-.3px}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:2px;padding:var(--space-3) var(--space-2)}.nav-item{align-items:center;border-radius:var(--border-radius-sm);color:#ffffffa6;display:flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-3);padding:10px var(--space-3);text-decoration:none;transition:all .15s}.nav-item:hover{background:#ffffff14;color:#fff;text-decoration:none}.nav-item.active{background:#ffffff1f;color:#fff}.nav-item.active:before{background:var(--fps-red);border-radius:0 2px 2px 0;content:"";height:20px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:3px}.sidebar-footer{border-top:1px solid #ffffff1a;padding:var(--space-3) var(--space-2)}.sidebar-user{align-items:center;display:flex;gap:var(--space-3);margin-top:var(--space-2);padding:var(--space-3)}.user-info{display:flex;flex:1 1;flex-direction:column;min-width:0}.logout-btn{align-items:center;background:none;border:none;border-radius:var(--border-radius-sm);color:#ffffff80;cursor:pointer;display:flex;flex-shrink:0;height:28px;justify-content:center;transition:all .15s;width:28px}.logout-btn:hover{background:#ffffff14;color:var(--fps-red)}.user-avatar{align-items:center;background:var(--fps-red);border-radius:50%;display:flex;flex-shrink:0;font-size:var(--font-size-xs);font-weight:600;height:32px;justify-content:center;width:32px}.user-name{font-size:var(--font-size-sm);font-weight:500}.user-role{color:#ffffff80;font-size:var(--font-size-xs)}@media (max-width:768px){.sidebar{transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);width:280px;z-index:300}.sidebar.sidebar--open{transform:translateX(0)}.sidebar-close-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:#ffffff1a;border:none;border-radius:var(--border-radius-sm);color:#ffffffb3;cursor:pointer;display:flex;height:36px;justify-content:center;position:absolute;right:var(--space-3);top:var(--space-3);width:36px;z-index:1}.sidebar-close-btn:active{background:#fff3}.nav-item{font-size:var(--font-size-base);min-height:48px;padding:14px var(--space-4)}.sidebar-user{padding:var(--space-4)}.logout-btn{height:44px;width:44px}}:root{--duration-instant:75ms;--duration-fast:100ms;--duration-moderate:150ms;--duration-normal:200ms;--duration-gentle:300ms;--duration-spring-snappy:400ms;--duration-spring-gentle:600ms;--ease-standard:cubic-bezier(0.4,0,0.2,1);--ease-out:cubic-bezier(0,0,0.2,1);--ease-in:cubic-bezier(0.4,0,1,1);--ease-spring-gentle:linear(0,0.009,0.037 2.7%,0.153 6.2%,0.776 18.6%,1.001 24.3%,1.142 30%,1.167 32.8%,1.169 36%,1.139 40.9%,1.096 46.2%,1.039 54.8%,1.012 64.9%,1.006 72%,0.999 86.9%,1);--ease-spring-snappy:linear(0,0.006,0.025 2.8%,0.101 6.1%,0.539 18.9%,0.721 25.3%,0.849 31.5%,0.937 38.1%,0.968 41.8%,0.991 45.7%,1.006 50.1%,1.015 55%,1.017 63.9%,1.001 85.6%,1);--overlay-drawer:#0000004d;--focus-ring-shadow:0 0 0 2px #0038ee1f;--z-modal:400;--z-toast:500;--color-success:#10b981;--color-bg-surface:#fff;--color-bg-subtle:var(--gray-100,#f1f5f9);--color-text-primary:var(--fps-dark-blue);--color-text-secondary:var(--gray-500);--color-text-body:var(--fps-body-text);--color-text-muted:var(--gray-400);--color-border:var(--border-color);--color-border-subtle:var(--gray-200,#e5e7eb);--font-mono:"SF Mono","Fira Code",Consolas,monospace}.fps-assistant-trigger{align-items:center;background:var(--fps-vivid-blue);border:none;border-radius:50%;bottom:var(--space-6);box-shadow:var(--shadow-lg);color:#fff;cursor:pointer;display:flex;height:52px;justify-content:center;position:fixed;right:var(--space-6);transition:transform .1s linear(0,.006,.025 2.8%,.101 6.1%,.539 18.9%,.721 25.3%,.849 31.5%,.937 38.1%,.968 41.8%,.991 45.7%,1.006 50.1%,1.015 55%,1.017 63.9%,1.001 85.6%,1),box-shadow .15s cubic-bezier(.4,0,.2,1);transition:transform var(--duration-fast) var(--ease-spring-snappy),box-shadow var(--duration-moderate) var(--ease-standard);width:52px;z-index:500;z-index:var(--z-toast)}.fps-assistant-trigger:hover{box-shadow:0 8px 28px #0038ee4d;transform:scale(1.08)}.fps-assistant-trigger:active{transform:scale(.95)}.fps-assistant-trigger:focus-visible{outline:2px solid var(--fps-vivid-blue);outline-offset:3px}.fps-assistant-trigger svg{height:24px;width:24px}.fps-assistant-trigger-tooltip{background:var(--gray-800);border-radius:var(--border-radius-sm);color:#fff;font-size:var(--font-size-xs);opacity:0;padding:var(--space-1) var(--space-3);pointer-events:none;position:absolute;right:62px;top:50%;transform:translateY(-50%);transition:opacity .1s cubic-bezier(.4,0,.2,1);transition:opacity var(--duration-fast) var(--ease-standard);white-space:nowrap}.fps-assistant-trigger:hover .fps-assistant-trigger-tooltip{opacity:1}.fps-assistant-backdrop{display:none}@media (max-width:768px){.fps-assistant-backdrop{background:#0000004d;background:var(--overlay-drawer);display:block;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .3s cubic-bezier(.4,0,.2,1);transition:opacity var(--duration-gentle) var(--ease-standard);z-index:399;z-index:calc(var(--z-modal) - 1)}.fps-assistant-backdrop[data-state=open]{opacity:1;pointer-events:auto}}.fps-assistant-panel{background:#fff;background:var(--color-bg-surface);border-left:1px solid var(--color-border);bottom:0;box-shadow:-8px 0 24px #00000014;display:flex;flex-direction:column;opacity:0;pointer-events:none;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .6s linear(0,.009,.037 2.7%,.153 6.2%,.776 18.6%,1.001 24.3%,1.142 30%,1.167 32.8%,1.169 36%,1.139 40.9%,1.096 46.2%,1.039 54.8%,1.012 64.9%,1.006 72%,.999 86.9%,1),opacity .3s cubic-bezier(0,0,.2,1);transition:transform var(--duration-spring-gentle) var(--ease-spring-gentle),opacity var(--duration-gentle) var(--ease-out);width:400px;z-index:400;z-index:var(--z-modal)}.fps-assistant-panel[data-state=open]{opacity:1;pointer-events:auto;transform:translateX(0)}.fps-assistant-panel[data-state=closing]{opacity:0;pointer-events:none;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,1,1),opacity .2s cubic-bezier(.4,0,1,1);transition:transform var(--duration-gentle) var(--ease-in),opacity var(--duration-normal) var(--ease-in)}@media (max-width:768px){.fps-assistant-panel{border-left:none;box-shadow:none;width:100%}}.fps-assistant-header{border-bottom:1px solid var(--color-border);gap:var(--space-3);padding:var(--space-4) var(--space-5)}.fps-assistant-avatar,.fps-assistant-header{align-items:center;display:flex;flex-shrink:0}.fps-assistant-avatar{background:var(--fps-vivid-blue);border-radius:var(--border-radius-sm);color:#fff;height:32px;justify-content:center;width:32px}.fps-assistant-avatar svg{height:18px;width:18px}.fps-assistant-header-info{flex:1 1}.fps-assistant-name{color:var(--fps-dark-blue);color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:600;line-height:1.2}.fps-assistant-status{align-items:center;color:var(--gray-500);color:var(--color-text-secondary);display:flex;font-size:var(--font-size-xs);gap:var(--space-1);margin-top:1px}.fps-assistant-status-dot{background:#10b981;background:var(--color-success);border-radius:50%;height:8px;width:8px}.fps-assistant-status-dot--thinking{animation:fps-pulse 1.5s cubic-bezier(.4,0,.2,1) infinite;animation:fps-pulse 1.5s var(--ease-standard) infinite;background:var(--fps-vivid-blue)}@keyframes fps-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.15)}}.fps-assistant-close{align-items:center;background:#0000;border:none;border-radius:var(--border-radius-sm);color:var(--gray-400);color:var(--color-text-muted);cursor:pointer;display:flex;height:32px;justify-content:center;transition:background .1s cubic-bezier(.4,0,.2,1),color .1s cubic-bezier(.4,0,.2,1);transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard);width:32px}.fps-assistant-close:hover{background:#f1f5f9;background:var(--color-bg-subtle);color:var(--fps-dark-blue);color:var(--color-text-primary)}.fps-assistant-close:focus-visible{outline:2px solid var(--fps-vivid-blue);outline-offset:-2px}.fps-assistant-close svg{height:18px;width:18px}.fps-assistant-body{background:linear-gradient(#fff 30%,#0000),linear-gradient(#0000,#fff 70%) 0 100%,radial-gradient(farthest-side at 50% 0,#0000000f,#0000),radial-gradient(farthest-side at 50% 100%,#0000000f,#0000) 0 100%;background-attachment:local,local,scroll,scroll;background-repeat:no-repeat;background-size:100% 40px,100% 40px,100% 12px,100% 12px;display:flex;flex:1 1;flex-direction:column;gap:var(--space-4);overflow-y:auto;padding:var(--space-5);scroll-behavior:smooth}.fps-assistant-message-row{display:flex;gap:var(--space-2)}.fps-assistant-message-row--user{justify-content:flex-end}.fps-assistant-message-row--agent{align-items:flex-start}.fps-assistant-message-avatar{align-items:center;background:var(--fps-vivid-blue);border-radius:var(--border-radius-sm);color:#fff;display:flex;flex-shrink:0;height:24px;justify-content:center;margin-top:2px;width:24px}.fps-assistant-message-avatar svg{height:14px;width:14px}.fps-assistant-message-content{max-width:100%;position:relative}.fps-assistant-message--user{background:var(--fps-vivid-blue);border-radius:var(--border-radius) var(--border-radius) var(--border-radius-sm) var(--border-radius);color:#fff;line-height:1.5;max-width:85%}.fps-assistant-message--agent,.fps-assistant-message--user{word-wrap:break-word;animation:fps-message-in .2s cubic-bezier(0,0,.2,1) both;animation:fps-message-in var(--duration-normal) var(--ease-out) both;font-size:var(--font-size-base);overflow-wrap:break-word;padding:var(--space-3) var(--space-4);word-break:break-word}.fps-assistant-message--agent{background:#f1f5f9;background:var(--color-bg-subtle);border-radius:var(--border-radius-sm) var(--border-radius) var(--border-radius) var(--border-radius);color:var(--fps-body-text);color:var(--color-text-body);line-height:1.6;max-width:90%;position:relative}.fps-assistant-message--agent p{margin:0 0 var(--space-2) 0}.fps-assistant-message--agent p:last-child{margin-bottom:0}.fps-assistant-message--agent strong{color:var(--fps-dark-blue);color:var(--color-text-primary);font-weight:600}.fps-assistant-message--agent ol,.fps-assistant-message--agent ul{margin:var(--space-2) 0;padding-left:var(--space-5)}.fps-assistant-message--agent li{margin-bottom:var(--space-1)}.fps-assistant-message--agent code{background:var(--gray-200);border-radius:4px;font-family:SF Mono,Fira Code,Consolas,monospace;font-family:var(--font-mono);font-size:.9em;padding:1px 5px}.fps-assistant-message--agent pre{background:var(--gray-800);border-radius:var(--border-radius-sm);color:var(--gray-100);font-size:var(--font-size-sm);line-height:1.6;margin:var(--space-2) 0;overflow-x:auto;padding:var(--space-3);position:relative}.fps-assistant-message--agent pre code{background:none;color:inherit;padding:0}@keyframes fps-message-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fps-assistant-copy{align-items:center;background:#fff;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--gray-500);color:var(--color-text-secondary);cursor:pointer;display:flex;height:28px;justify-content:center;opacity:0;position:absolute;right:var(--space-2);top:var(--space-2);transition:opacity .1s cubic-bezier(.4,0,.2,1);transition:opacity var(--duration-fast) var(--ease-standard);width:28px}.fps-assistant-copy svg{height:14px;width:14px}.fps-assistant-message--agent:hover .fps-assistant-copy{opacity:1}.fps-assistant-copy--copied{color:#10b981;color:var(--color-success)}.fps-assistant-sql-toggle{align-items:center;background:none;border:none;color:var(--fps-vivid-blue);cursor:pointer;display:inline-flex;font-family:var(--font-family);font-size:var(--font-size-xs);gap:4px;margin-top:var(--space-2);padding:0}.fps-assistant-sql-toggle:hover{text-decoration:underline}.fps-assistant-sql-block{background:var(--gray-800);color:var(--gray-100);font-family:SF Mono,Fira Code,Consolas,monospace;font-family:var(--font-mono);line-height:1.5;max-height:160px;overflow-y:auto;padding:var(--space-3);position:relative;white-space:pre-wrap;word-break:break-all}.fps-assistant-source,.fps-assistant-sql-block{border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);margin-top:var(--space-2)}.fps-assistant-source{align-items:center;background:#0038ee0f;color:var(--gray-500);color:var(--color-text-secondary);display:inline-flex;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.fps-assistant-source svg{color:var(--fps-vivid-blue);height:12px;width:12px}.fps-assistant-feedback{display:flex;gap:var(--space-1);margin-left:32px;margin-top:var(--space-1)}.fps-assistant-feedback-btn{align-items:center;background:#0000;border:none;border-radius:var(--border-radius-sm);color:var(--gray-400);color:var(--color-text-muted);cursor:pointer;display:flex;height:28px;justify-content:center;transition:color .1s cubic-bezier(.4,0,.2,1),background .1s cubic-bezier(.4,0,.2,1),transform .4s linear(0,.006,.025 2.8%,.101 6.1%,.539 18.9%,.721 25.3%,.849 31.5%,.937 38.1%,.968 41.8%,.991 45.7%,1.006 50.1%,1.015 55%,1.017 63.9%,1.001 85.6%,1);transition:color var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard),transform var(--duration-spring-snappy) var(--ease-spring-snappy);width:28px}.fps-assistant-feedback-btn svg{height:14px;width:14px}.fps-assistant-feedback-btn:hover{background:#f1f5f9;background:var(--color-bg-subtle);color:var(--fps-body-text);color:var(--color-text-body)}.fps-assistant-feedback-btn.selected{background:#0038ee14;color:var(--fps-vivid-blue)}.fps-assistant-feedback-btn:active{transform:scale(.88)}.fps-assistant-typing{align-items:center;align-self:flex-start;animation:fps-message-in .2s cubic-bezier(0,0,.2,1) both;animation:fps-message-in var(--duration-normal) var(--ease-out) both;background:#f1f5f9;background:var(--gray-100,#f1f5f9);border-radius:var(--border-radius-sm) var(--border-radius) var(--border-radius) var(--border-radius);display:flex;gap:var(--space-2);margin-left:32px;padding:var(--space-3) var(--space-4)}.fps-assistant-typing-dots{display:flex;gap:4px}.fps-assistant-typing-dot{animation:fps-typing-bounce 1.4s cubic-bezier(.4,0,.2,1) infinite;animation:fps-typing-bounce 1.4s var(--ease-standard) infinite;background:var(--gray-400);border-radius:50%;height:7px;width:7px}.fps-assistant-typing-dot:nth-child(2){animation-delay:.15s}.fps-assistant-typing-dot:nth-child(3){animation-delay:.3s}@keyframes fps-typing-bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}.fps-assistant-error{align-items:flex-start;align-self:flex-start;background:#fee2e2;background:var(--status-error-bg,#fee2e2);border-radius:var(--border-radius);color:#991b1b;color:var(--status-error-text,#991b1b);display:flex;font-size:var(--font-size-base);gap:var(--space-2);line-height:1.5;margin-left:32px;max-width:90%;padding:var(--space-3) var(--space-4)}.fps-assistant-error svg{color:#ef4444;flex-shrink:0;height:16px;margin-top:2px;width:16px}.fps-assistant-error-content{flex:1 1}.fps-assistant-error-retry{background:none;border:none;color:#991b1b;color:var(--status-error-text,#991b1b);cursor:pointer;font-family:var(--font-family);font-size:var(--font-size-sm);margin-top:var(--space-2);padding:0;text-decoration:underline}.fps-assistant-error-retry:hover{text-decoration:none}.fps-assistant-welcome{flex:1 1;flex-direction:column;gap:var(--space-4);padding:var(--space-8) var(--space-5);text-align:center}.fps-assistant-welcome,.fps-assistant-welcome-icon{align-items:center;display:flex;justify-content:center}.fps-assistant-welcome-icon{background:#0038ee1a;border-radius:var(--border-radius);color:var(--fps-vivid-blue);height:48px;width:48px}.fps-assistant-welcome-icon svg{height:24px;width:24px}.fps-assistant-welcome-title{color:var(--fps-dark-blue);color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:600}.fps-assistant-welcome-description{color:var(--gray-500);color:var(--color-text-secondary);font-size:var(--font-size-base);line-height:1.5;max-width:300px}.fps-assistant-welcome-history{margin-top:var(--space-2)}.fps-assistant-welcome-history-link{align-items:center;color:var(--gray-400);display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:var(--space-1);text-decoration:none;transition:color .1s cubic-bezier(.4,0,.2,1);transition:color var(--duration-fast) var(--ease-standard)}.fps-assistant-welcome-history-link:hover{color:var(--fps-vivid-blue);text-decoration:underline}.fps-assistant-suggestions{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center;padding:0 var(--space-5) var(--space-3)}.fps-assistant-suggestion{animation:fps-suggestion-in .2s cubic-bezier(0,0,.2,1) both;animation:fps-suggestion-in var(--duration-normal) var(--ease-out) both;background:#fff;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:20px;color:var(--fps-body-text);color:var(--color-text-body);cursor:pointer;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;padding:var(--space-2) var(--space-3);transition:border-color .1s cubic-bezier(.4,0,.2,1),background .1s cubic-bezier(.4,0,.2,1),color .1s cubic-bezier(.4,0,.2,1);transition:border-color var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.fps-assistant-suggestion:hover{background:#0038ee0a;border-color:var(--fps-vivid-blue);color:var(--fps-vivid-blue)}.fps-assistant-suggestion:focus-visible{outline:2px solid var(--fps-vivid-blue);outline-offset:2px}.fps-assistant-suggestion:first-child{animation-delay:0ms}.fps-assistant-suggestion:nth-child(2){animation-delay:50ms}.fps-assistant-suggestion:nth-child(3){animation-delay:.1s}.fps-assistant-suggestion:nth-child(4){animation-delay:.15s}@keyframes fps-suggestion-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fps-assistant-input{align-items:flex-end;border-top:1px solid var(--color-border);display:flex;flex-shrink:0;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.fps-assistant-input,.fps-assistant-textarea{background:#fff;background:var(--color-bg-surface)}.fps-assistant-textarea{border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--fps-body-text);color:var(--color-text-body);flex:1 1;font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.5;max-height:120px;min-height:40px;overflow-y:auto;padding:var(--space-2) var(--space-3);resize:none;transition:border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1);transition:border-color var(--duration-moderate) var(--ease-standard),box-shadow var(--duration-moderate) var(--ease-standard)}.fps-assistant-textarea::placeholder{color:var(--gray-400);color:var(--color-text-muted)}.fps-assistant-textarea:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;box-shadow:var(--focus-ring-shadow);outline:none}.fps-assistant-textarea:disabled{cursor:not-allowed;opacity:.6}.fps-assistant-send{align-items:center;background:var(--fps-vivid-blue);border:none;border-radius:var(--border-radius);color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;transition:background .1s cubic-bezier(.4,0,.2,1),transform .1s linear(0,.006,.025 2.8%,.101 6.1%,.539 18.9%,.721 25.3%,.849 31.5%,.937 38.1%,.968 41.8%,.991 45.7%,1.006 50.1%,1.015 55%,1.017 63.9%,1.001 85.6%,1);transition:background var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-spring-snappy);width:36px}.fps-assistant-send svg{height:18px;width:18px}.fps-assistant-send:hover:not(:disabled){filter:brightness(1.15)}.fps-assistant-send:active:not(:disabled){transform:scale(.92)}.fps-assistant-send:disabled{background:var(--gray-300);cursor:not-allowed;transform:none}.fps-assistant-send:focus-visible{outline:2px solid var(--fps-vivid-blue);outline-offset:2px}@media (prefers-reduced-motion:reduce){.fps-assistant-panel{transform:translateX(0)!important;transition:opacity .2s cubic-bezier(.4,0,.2,1)!important;transition:opacity var(--duration-normal) var(--ease-standard)!important}.fps-assistant-panel:not([data-state=open]){opacity:0;pointer-events:none}.fps-assistant-message--agent,.fps-assistant-message--user,.fps-assistant-suggestion,.fps-assistant-typing{animation:none!important}.fps-assistant-typing-dot{animation:none!important;opacity:.6}.fps-assistant-typing-dot:nth-child(2){opacity:.8}.fps-assistant-typing-dot:nth-child(3){opacity:1}.fps-assistant-trigger:hover{transform:none!important}}@media (max-width:768px){.fps-assistant-trigger{bottom:var(--space-4);height:48px;right:var(--space-4);width:48px}.fps-assistant-trigger-tooltip{display:none}.fps-assistant-close,.fps-assistant-send{height:44px;min-height:44px;min-width:44px;width:44px}.fps-assistant-textarea{font-size:16px;min-height:44px}.fps-assistant-input{padding-bottom:max(12px,env(safe-area-inset-bottom,12px))}.fps-assistant-suggestion{align-items:center;display:flex;min-height:44px}}.fps-assistant-new-chat{align-items:center;background:#0000;border:none;border-radius:var(--border-radius-sm);color:var(--gray-400);color:var(--color-text-muted);cursor:pointer;display:flex;height:32px;justify-content:center;transition:background .1s cubic-bezier(.4,0,.2,1),color .1s cubic-bezier(.4,0,.2,1);transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard);width:32px}.fps-assistant-new-chat:hover{background:#f1f5f9;background:var(--color-bg-subtle);color:var(--fps-dark-blue);color:var(--color-text-primary)}.fps-assistant-new-chat:focus-visible{outline:2px solid var(--fps-vivid-blue);outline-offset:-2px}.fps-assistant-new-chat svg{height:16px;width:16px}.fps-assistant-feedback-btn:focus-visible{outline:2px solid var(--fps-vivid-blue);outline-offset:-2px}.porter-output{color:var(--fps-body-text);color:var(--color-text-body);font-size:var(--font-size-base);line-height:1.65}.porter-output h1{font-size:1.15em;letter-spacing:-.01em;line-height:1.3;margin:var(--space-4) 0 var(--space-2)}.porter-output h1,.porter-output h2{color:var(--fps-dark-blue);color:var(--color-text-primary);font-weight:700}.porter-output h2{font-size:1.05em;line-height:1.35;margin:var(--space-3) 0 var(--space-2)}.porter-output h3{font-size:1em}.porter-output h3,.porter-output h4{color:var(--fps-dark-blue);color:var(--color-text-primary);font-weight:600;line-height:1.4;margin:var(--space-3) 0 var(--space-1)}.porter-output h4{font-size:.925em;letter-spacing:.03em;text-transform:uppercase}.porter-output>:first-child{margin-top:0}.porter-output p{margin:0 0 .75em}.porter-output p:last-child{margin-bottom:0}.porter-output strong{color:var(--fps-dark-blue);color:var(--color-text-primary);font-weight:600}.porter-output em{font-style:italic}.porter-output del{color:var(--gray-500);color:var(--color-text-secondary);text-decoration:line-through}.porter-output a{color:var(--fps-vivid-blue);text-decoration:none;text-underline-offset:2px;transition:color .1s cubic-bezier(.4,0,.2,1);transition:color var(--duration-fast) var(--ease-standard)}.porter-output a:hover{text-decoration:underline}.porter-output a:focus-visible{border-radius:2px;outline:2px solid var(--fps-vivid-blue);outline-offset:2px}.porter-output ol,.porter-output ul{margin:var(--space-2) 0;padding-left:var(--space-5)}.porter-output ul{list-style-type:disc}.porter-output ol{list-style-type:decimal}.porter-output li{line-height:1.55;margin-bottom:var(--space-1)}.porter-output li:last-child{margin-bottom:0}.porter-output li>ol,.porter-output li>ul{margin-bottom:0;margin-top:var(--space-1)}.porter-output ul ul{list-style-type:circle}.porter-output ul ul ul{list-style-type:square}.porter-output blockquote{background:#0038ee0a;border-left:3px solid var(--fps-vivid-blue);border-radius:0 var(--border-radius-sm) var(--border-radius-sm) 0;color:var(--fps-body-text);color:var(--color-text-body);font-style:italic;margin:var(--space-2) 0;padding:var(--space-2) var(--space-3)}.porter-output blockquote p{margin-bottom:var(--space-1)}.porter-output blockquote p:last-child{margin-bottom:0}.porter-output hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-3) 0}.porter-output code{background:var(--gray-200);border-radius:4px;font-family:SF Mono,Fira Code,Consolas,monospace;font-family:var(--font-mono);font-size:.875em;padding:1px 6px;word-break:break-word}.porter-code-block{margin:var(--space-3) 0;position:relative}.porter-code-header{align-items:center;background:var(--gray-700);border:1px solid var(--gray-700);border-bottom:none;border-radius:var(--border-radius-sm) var(--border-radius-sm) 0 0;color:var(--gray-400);display:flex;font-family:SF Mono,Fira Code,Consolas,monospace;font-family:var(--font-mono);font-size:var(--font-size-xs);justify-content:space-between;padding:var(--space-1) var(--space-3)}.porter-code-lang{text-transform:lowercase}.porter-code-copy{align-items:center;background:none;border:none;border-radius:3px;color:var(--gray-400);cursor:pointer;display:inline-flex;font-family:var(--font-family);font-size:var(--font-size-xs);gap:var(--space-1);padding:2px var(--space-1);transition:color .1s cubic-bezier(.4,0,.2,1),background .1s cubic-bezier(.4,0,.2,1);transition:color var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard)}.porter-code-copy svg{height:13px;width:13px}.porter-code-copy:hover{background:#ffffff14;color:var(--gray-200)}.porter-code-copy[data-copied=true]{color:#10b981;color:var(--color-success)}.porter-code-block pre{border-top-left-radius:0;border-top-right-radius:0;margin-top:0}.porter-output pre{background:var(--gray-800);border:1px solid var(--gray-700);border-radius:var(--border-radius-sm);color:var(--gray-100);font-size:var(--font-size-sm);line-height:1.65;margin:var(--space-3) 0;overflow-x:auto;padding:var(--space-3);position:relative}.porter-output pre code{background:none;border-radius:0;color:inherit;font-size:inherit;padding:0;word-break:normal}.porter-output pre::-webkit-scrollbar{height:6px}.porter-output pre::-webkit-scrollbar-track{background:#0000}.porter-output pre::-webkit-scrollbar-thumb{background:var(--gray-600);border-radius:3px}.porter-table-wrap{border:1px solid var(--color-border);border-radius:var(--border-radius-sm);margin:var(--space-3) 0;overflow-x:auto}.porter-table-wrap::-webkit-scrollbar{height:5px}.porter-table-wrap::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}.porter-table-wrap table{border-collapse:collapse;font-size:var(--font-size-sm);width:100%}.porter-table-wrap th{background:#f1f5f9;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border);color:var(--fps-dark-blue);color:var(--color-text-primary);font-size:.7em;font-weight:600;letter-spacing:.03em;padding:6px 10px;text-align:left;text-transform:uppercase;white-space:nowrap}.porter-table-wrap td{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--color-border-subtle);color:var(--fps-body-text);color:var(--color-text-body);padding:6px 10px;white-space:nowrap}.porter-table-wrap tr:last-child td{border-bottom:none}.porter-table-wrap tbody tr:nth-child(2n){background:#f9fafb;background:var(--gray-50,#f9fafb)}.porter-value{color:var(--fps-vivid-blue);font-weight:600}.porter-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.fps-assistant-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.layout{display:flex;min-height:100vh}.main-content{flex:1 1;margin-left:var(--sidebar-width);max-width:calc(100vw - var(--sidebar-width));overflow-x:hidden;padding:var(--space-6)}.mobile-header,.sidebar-backdrop{display:none}@media (max-width:768px){.main-content{margin-left:0;max-width:100vw;padding:calc(var(--space-4) + 56px + env(safe-area-inset-top)) var(--space-4) var(--space-4)}.mobile-header{background:var(--fps-dark-blue);height:calc(56px + env(safe-area-inset-top));justify-content:space-between;left:0;padding-left:var(--space-4);padding-right:var(--space-4);padding-top:env(safe-area-inset-top);position:fixed;right:0;top:0;z-index:200}.mobile-header,.mobile-header-menu{align-items:center;color:#fff;display:flex}.mobile-header-menu{-webkit-tap-highlight-color:transparent;background:none;border:none;border-radius:var(--border-radius-sm);cursor:pointer;height:44px;justify-content:center;width:44px}.mobile-header-menu:active{background:#ffffff1a}.mobile-header-title{font-size:var(--font-size-md);font-weight:600;letter-spacing:-.2px}.mobile-header-avatar{align-items:center;background:var(--fps-red);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:var(--font-size-xs);font-weight:600;height:32px;justify-content:center;width:32px}.sidebar-backdrop{animation:fadeIn .2s ease-out;background:#00000080;display:block;inset:0;position:fixed;z-index:299}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}}.login-container{display:flex;min-height:100vh;min-height:100dvh}.login-brand-panel{align-items:center;background-color:var(--fps-dark-blue);display:flex;justify-content:center;overflow:hidden;position:relative;width:45%}.login-brand-panel:before{background:radial-gradient(circle,#2563eb14 0,#0000 70%);bottom:-20%;content:"";height:80%;left:-20%;pointer-events:none;position:absolute;width:80%}.login-brand-panel:after{background:linear-gradient(to bottom,#0000 0,var(--fps-vivid-blue) 15%,var(--fps-vivid-blue) 85%,#0000 100%);content:"";height:100%;pointer-events:none;position:absolute;right:0;top:0;width:3px}.login-brand-panel .login-logo-img{height:85px;position:relative;width:auto;z-index:1}.login-right-panel{align-items:center;background-color:#fff;display:flex;justify-content:center;position:relative;width:55%}.login-content{max-width:400px;padding:0 var(--space-8);text-align:center;width:100%}.login-app-title{color:var(--fps-dark-blue);font-size:var(--font-size-2xl);font-weight:700;letter-spacing:-.3px;margin:0 0 var(--space-6) 0}.login-prompt{color:var(--gray-500);font-size:var(--font-size-md);line-height:1.6;margin:0 0 28px}.login-prompt strong{color:var(--fps-dark-blue);font-weight:700}.login-divider{background-color:var(--border-color);border:none;height:1px;margin:0 auto 28px;width:40px}.login-error{background-color:#fef2f2;border:1px solid #fecaca;border-radius:var(--border-radius);color:#dc2626;font-size:var(--font-size-base);line-height:1.5;margin-bottom:var(--space-6);padding:var(--space-3) var(--space-4)}.login-error-hint{color:#7f1d1d;font-size:13px;font-weight:400;margin-top:var(--space-2)}.google-signin-btn{align-items:center;background-color:var(--fps-vivid-blue);border:none;border-radius:10px;color:#fff;cursor:pointer;display:inline-flex;font-family:inherit;font-size:var(--font-size-md);font-weight:600;gap:10px;justify-content:center;letter-spacing:-.1px;padding:14px;transition:background-color .15s ease,box-shadow .15s ease;width:100%}.google-signin-btn:hover{box-shadow:0 4px 12px #0038ee4d;filter:brightness(.88)}.google-signin-btn:active{box-shadow:0 2px 6px #0038ee33;filter:brightness(.78)}.google-signin-btn:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--fps-vivid-blue);outline:none}.google-icon-pill{align-items:center;background:#fff;border-radius:var(--border-radius-sm);display:flex;flex-shrink:0;height:28px;justify-content:center;width:28px}.login-footer-note{color:#94a3b8;font-size:13px;margin-top:var(--space-5)}.login-page-footer{bottom:24px;color:#94a3b8;font-size:13px;left:0;line-height:1.8;position:absolute;right:0;text-align:center}.login-page-footer-made{margin-bottom:2px}.login-page-footer-legal a{color:#94a3b8;text-decoration:none;transition:color .15s ease}.login-page-footer-legal a:hover{color:#64748b;text-decoration:underline}.login-page-footer-separator{color:#cbd5e1;margin:0 6px}@media (max-width:768px){.login-container{flex-direction:column}.login-brand-panel{flex-shrink:0;max-height:none;min-height:auto;padding:24px;width:100%}.login-brand-panel:after{background:linear-gradient(to right,#0000,var(--fps-vivid-blue),#0000);bottom:0;height:2px;left:15%;right:15%;top:auto;width:auto}.login-brand-panel .login-logo-img{height:44px}.login-right-panel{-webkit-overflow-scrolling:touch;align-items:stretch;justify-content:flex-start;overflow-y:auto;padding:0;width:100%}.login-content,.login-right-panel{display:flex;flex:1 1;flex-direction:column}.login-content{align-items:center;justify-content:center;max-width:100%;padding:var(--space-6) var(--space-8);text-align:center}.login-content>*{max-width:320px;width:100%}.login-app-title{font-size:var(--font-size-xl);margin-bottom:var(--space-2)}.login-prompt{font-size:var(--font-size-base);margin-bottom:var(--space-2)}.login-divider{margin:var(--space-5) auto}.google-signin-btn{border-radius:var(--border-radius-lg);font-size:16px;min-height:56px;padding:var(--space-4) var(--space-5);width:100%}.login-content input{font-size:16px}.login-error{font-size:13px;margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);text-align:left}.login-footer-note{font-size:12px;margin-top:var(--space-4)}.login-page-footer{flex-shrink:0;padding:var(--space-5) var(--space-8);padding-bottom:max(var(--space-5),env(safe-area-inset-bottom,20px));position:static;text-align:center;width:100%}}.stat-card{align-items:flex-start;border-radius:var(--border-radius);gap:var(--space-4);padding:var(--space-5)}.stat-card--clickable{cursor:pointer}.stat-card--clickable:hover{border-color:var(--fps-red);box-shadow:0 3px 12px #f268631f;transform:translateY(-1px)}.stat-card__icon{align-items:center;background:var(--gray-100);border-radius:var(--border-radius-sm);color:var(--fps-dark-blue);display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.stat-card--warning .stat-card__icon{background:#fef3c7;color:#d97706}.stat-card--success .stat-card__icon{background:#d1fae5;color:#059669}.stat-card__content{display:flex;flex-direction:column;gap:2px}.stat-card__label{color:var(--gray-500);font-size:var(--font-size-xs);font-weight:500;letter-spacing:.5px;text-transform:uppercase}.stat-card__value{color:var(--fps-dark-blue);font-size:var(--font-size-xl);font-weight:700;line-height:1.2}@media (max-width:768px){.stat-card{gap:var(--space-3);padding:var(--space-3) var(--space-4)}.stat-card__icon{height:36px;width:36px}.stat-card__value{font-size:var(--font-size-lg)}}.dashboard .page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-6)}.dashboard .page-header h1{color:var(--fps-dark-blue);font-size:var(--font-size-xl);font-weight:700}.date-preset-select{appearance:auto;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--fps-body-text);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;padding:8px 32px 8px 12px}.stat-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(4,1fr);margin-bottom:var(--space-6)}@media (max-width:1024px){.stat-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.stat-grid{grid-template-columns:1fr}}.card{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);overflow:hidden}.card-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:var(--space-4) var(--space-5)}.card-header h2{color:var(--fps-dark-blue);font-size:var(--font-size-md);font-weight:600}.btn-link{font-size:var(--font-size-sm)}.btn-link:hover{text-decoration:underline}.data-table{border-collapse:collapse;width:100%}.data-table th{background:var(--gray-50);border-bottom:1px solid var(--border-color);color:var(--gray-500);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.5px;text-align:left;text-transform:uppercase}.data-table td,.data-table th{padding:var(--space-3) var(--space-4)}.data-table td{border-bottom:1px solid var(--gray-100);font-size:var(--font-size-sm)}.data-table .clickable-row{cursor:pointer;transition:background .1s}.data-table .clickable-row:hover{background:var(--gray-50)}.status-badge{border-radius:12px;display:inline-block;font-size:var(--font-size-xs);font-weight:600;letter-spacing:.2px;padding:3px 10px}.status-new{background:#fef3c7;color:#92400e}.status-reviewed{background:#dbeafe;color:#1e40af}.status-qb_matched{background:#d1fae5;color:#065f46}.status-duplicate{background:var(--gray-100);color:var(--gray-600)}.status-error{background:#fee2e2;color:#991b1b}@media (max-width:768px){.dashboard .page-header{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.date-preset-select{font-size:16px;padding:10px 32px 10px 12px;width:100%}.stat-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr)}.card-header{padding:var(--space-3) var(--space-4)}.dashboard .data-table thead{display:none}.dashboard .data-table tbody tr{align-items:center;border-bottom:1px solid var(--gray-100);display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.dashboard .data-table tbody td{border-bottom:none;padding:0}.dashboard .data-table .vendor-cell{flex:1 1;font-weight:600;min-width:0}.dashboard .data-table td:nth-child(4){font-size:var(--font-size-md)}.dashboard .data-table td:nth-child(2){display:none}.dashboard .data-table td:nth-child(3){color:var(--gray-500);font-size:var(--font-size-xs);order:3;width:100%}}.inbox-page .page-header{align-items:center;display:flex;gap:var(--space-4);margin-bottom:var(--space-5)}.inbox-page .page-header h1{color:var(--fps-dark-blue);font-size:var(--font-size-xl);font-weight:700}.receipt-count{color:var(--gray-500);font-size:var(--font-size-sm);font-weight:500}.quick-filters-row{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.quick-filter-divider{background:var(--gray-200);flex-shrink:0;height:24px;width:1px}.search-box{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);display:flex;flex:1 1;gap:var(--space-2);max-width:420px;min-width:280px;padding:var(--space-2) var(--space-3)}.search-box input{border:none;flex:1 1;font-family:inherit;font-size:var(--font-size-sm);outline:none}.search-box svg{color:var(--gray-400);flex-shrink:0}.quick-filter-btn{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:20px;color:var(--gray-600);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:600;gap:6px;padding:var(--space-2) var(--space-4);transition:all .15s;white-space:nowrap}.quick-filter-btn:hover{background:var(--gray-100);border-color:var(--gray-300)}.quick-filter-btn.active{background:var(--fps-dark-blue);border-color:var(--fps-dark-blue);color:#fff}.quick-filter-btn .count-badge{background:#00000014;border-radius:10px;color:inherit;font-size:var(--font-size-xs);font-weight:700;padding:1px 7px}.quick-filter-btn.active .count-badge{background:#fff3}.quick-filter-icon{border-radius:2px;height:14px;width:14px}.advanced-filter-toggle{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--gray-600);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-2);padding:var(--space-2) var(--space-4);transition:all .15s;white-space:nowrap}.advanced-filter-toggle:hover{background:var(--gray-100);border-color:var(--gray-300)}.advanced-filter-toggle.open{background:var(--fps-dark-blue);border-color:var(--fps-dark-blue);color:#fff}.advanced-filter-toggle.has-filters:not(.open){border-color:var(--fps-vivid-blue);color:var(--fps-vivid-blue)}.filter-count-dot{align-items:center;background:var(--fps-vivid-blue);border-radius:50%;color:#fff;display:inline-flex;font-size:var(--font-size-xs);font-weight:700;height:18px;justify-content:center;width:18px}.advanced-filter-toggle.open .filter-count-dot{background:#ffffff40}.advanced-panel{animation:slideDown .2s ease-out;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);margin-bottom:var(--space-4);padding:var(--space-5) var(--space-6)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.advanced-panel-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-4)}.advanced-panel-header h3{color:var(--fps-dark-blue);font-size:var(--font-size-base);font-weight:600}.clear-filters-btn{background:none;border:none;color:var(--fps-vivid-blue);cursor:pointer;font-size:var(--font-size-xs);font-weight:500}.clear-filters-btn:hover{text-decoration:underline}.advanced-grid{grid-gap:var(--space-4) var(--space-5);display:grid;gap:var(--space-4) var(--space-5);grid-template-columns:repeat(4,1fr)}.filter-field label{align-items:center;color:var(--gray-500);display:flex;font-size:var(--font-size-xs);font-weight:600;gap:4px;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.filter-label-icon{border-radius:2px;height:12px;width:12px}.filter-field input[type=date],.filter-field select{appearance:auto;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--fps-body-text);font-family:inherit;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);width:100%}.filter-field input[type=date]:focus,.filter-field select:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.date-range{align-items:center;display:flex;gap:8px}.date-range span{color:var(--gray-400);font-size:var(--font-size-xs)}.date-range input[type=date]{flex:1 1;min-width:0}.advanced-actions{border-top:1px solid var(--gray-100);display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-4);padding-top:var(--space-4)}.btn-apply{background:var(--fps-vivid-blue);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-size:var(--font-size-sm);font-weight:600;padding:var(--space-2) var(--space-5);transition:background-color .15s cubic-bezier(.4,0,.2,1)}.btn-apply:hover{background:var(--fps-dark-blue)}.active-filters-bar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--space-4)}.filter-bar-label{color:var(--gray-500)}.filter-bar-label,.filter-chip{font-size:var(--font-size-xs);font-weight:500}.filter-chip{background:#eff6ff;border-radius:12px;color:var(--fps-vivid-blue);gap:4px;padding:4px 10px}.filter-chip,.filter-chip-remove{align-items:center;display:inline-flex}.filter-chip-remove{cursor:pointer;margin-left:2px;opacity:.6}.filter-chip-remove:hover{opacity:1}.th-favicon{height:16px;vertical-align:middle;width:16px}.th-icon{color:#94a3b8}.compact-status-col{min-width:36px;padding:10px 4px!important;text-align:center;width:36px}.compact-status-cell{padding:12px 4px!important;text-align:center}.status-icon{display:block;margin:0 auto}.source-email-icon{color:#6366f1}.source-manual-icon{color:#8b5cf6}.status-icon-muted{color:#d1d5db;display:block;margin:0 auto}.status-dot{align-items:center;display:inline-flex;height:24px;justify-content:center;width:24px}.reviewed-dot{background:#dcfce7;color:#16a34a}.new-dot{background:#fef3c7;color:#d97706}.qb-matched-dot{background:#dcfce7;color:#16a34a}.qb-awaiting-dot{background:#fef9c3;color:#ca8a04}.tw-synced-dot{background:#ede9fe;color:#7c3aed}.integration-badge{align-items:center;border-radius:10px;display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:var(--space-1);padding:2px 8px;white-space:nowrap}.integration-icon{border-radius:2px;height:12px;width:12px}.integration-badge.qb-matched{background:#ecfdf5;color:#059669}.integration-badge.qb-awaiting{background:#fff7ed;color:#d97706}.integration-badge.tw-synced{background:#dbeafe;color:#1d4ed8}.integration-badge.tw-none{color:var(--gray-300)}.inbox-page .vendor-identity{align-items:center;display:flex;gap:var(--space-2)}.inbox-page .vendor-favicon,.inbox-page .vendor-icon-fallback{border-radius:4px;flex-shrink:0;height:20px;width:20px}.inbox-page .vendor-icon-fallback{align-items:center;background:var(--fps-vivid-blue);color:#fff;display:flex;font-size:9px;font-weight:700;justify-content:center;text-transform:uppercase}.subject-cell{max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-badge-sm{align-items:center;border-radius:10px;display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:3px;padding:2px 8px;white-space:nowrap}.source-badge-sm.source-email{background:#eff6ff;color:#2563eb}.source-badge-sm.source-manual{background:#f5f3ff;color:#7c3aed}.checkbox-col{cursor:pointer;min-width:36px;padding:0 4px!important;text-align:center;width:36px}.check-icon{color:var(--gray-400);transition:color .15s}.check-icon.checked,.check-icon.partial{color:var(--fps-vivid-blue)}.check-icon.partial{opacity:.7}.checkbox-col:hover .check-icon{color:var(--fps-dark-blue)}tr.row-selected{background:#eff6ff!important}tr.row-selected:hover{background:#dbeafe!important}.bulk-action-bar{align-items:center;animation:slideDown .15s ease-out;background:var(--fps-dark-blue);border-radius:var(--border-radius-sm);color:#fff;display:flex;font-size:var(--font-size-sm);gap:var(--space-3);margin-bottom:var(--space-3);padding:10px 16px}.bulk-count{font-weight:600;margin-right:var(--space-2)}.bulk-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:var(--font-size-xs);font-weight:600;gap:5px;padding:6px 14px;transition:background .15s}.bulk-btn-reviewed{background:#059669;color:#fff}.bulk-btn-reviewed:hover{background:#047857}.bulk-btn-new{background:#d97706;color:#fff}.bulk-btn-new:hover{background:#b45309}.bulk-btn-delete{background:#dc2626;color:#fff}.bulk-btn-delete:hover{background:#b91c1c}.bulk-btn-clear{background:#ffffff26;color:#fff;margin-left:auto}.bulk-btn-clear:hover{background:#ffffff40}.bulk-btn:disabled{cursor:not-allowed;opacity:.6}.confirm-overlay{align-items:center;animation:fadeIn .15s ease-out;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.confirm-dialog{animation:slideUp .2s ease-out;background:#fff;border-radius:var(--border-radius-lg);box-shadow:0 20px 60px #0000004d;max-width:420px;padding:var(--space-6) var(--space-8);text-align:center;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.confirm-icon-wrap{align-items:center;border-radius:50%;display:flex;height:48px;justify-content:center;margin:0 auto var(--space-4);width:48px}.confirm-icon-wrap.normal{background:#eff6ff;color:#2563eb}.confirm-icon-wrap.destructive{background:#fef2f2;color:#dc2626}.confirm-title{color:var(--fps-dark-blue);font-size:var(--font-size-lg);font-weight:700;margin:0 0 var(--space-2)}.confirm-description{color:var(--gray-500);font-size:var(--font-size-base);line-height:1.5;margin:0 0 var(--space-6)}.confirm-actions{display:flex;gap:var(--space-3);justify-content:center}.confirm-btn{border:none;border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-base);font-weight:600;padding:var(--space-3) var(--space-6);transition:background .15s,transform .1s}.confirm-btn:active{transform:scale(.97)}.confirm-btn-cancel{background:var(--gray-100);color:var(--gray-700)}.confirm-btn-cancel:hover{background:var(--gray-200)}.confirm-btn-primary{background:var(--fps-vivid-blue);color:#fff}.confirm-btn-primary:hover{background:var(--fps-dark-blue)}.confirm-btn-destructive{background:#dc2626;color:#fff}.confirm-btn-destructive:hover{background:#b91c1c}.confirm-btn:disabled{cursor:not-allowed;opacity:.6}.pagination-bar{align-items:center;border-top:1px solid var(--border-color);color:var(--gray-500);display:flex;font-size:var(--font-size-sm);justify-content:space-between;padding:var(--space-3) var(--space-4)}.pagination-info{align-items:center;display:flex;font-weight:500;gap:4px}.per-page-select{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--gray-600);font-family:inherit;font-size:var(--font-size-xs);margin-left:12px;padding:4px 8px}.pagination-controls{align-items:center;display:flex;gap:4px}.page-btn{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--gray-600);cursor:pointer;font-size:var(--font-size-xs);font-weight:500;padding:6px 12px;transition:all .15s}.page-btn:hover:not(:disabled){background:var(--gray-100)}.page-btn.active{background:var(--fps-dark-blue);border-color:var(--fps-dark-blue);color:#fff}.page-btn:disabled{cursor:not-allowed;opacity:.4}.inbox-page .data-table tbody tr{transition:background-color .1s cubic-bezier(.4,0,.2,1)}.quick-filter-scroll{display:contents}.quick-filter-spacer{flex:1 1}@media (max-width:768px){.inbox-page .page-header{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.quick-filters-row{align-items:stretch;flex-direction:column;gap:var(--space-2)}.search-box{flex:none;max-width:100%;min-height:44px;min-width:100%;order:-1}.search-box input{font-size:16px;min-height:44px}.quick-filter-divider{display:none}.quick-filter-scroll{-webkit-overflow-scrolling:touch;display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-1);scrollbar-width:none}.quick-filter-scroll::-webkit-scrollbar{display:none}.quick-filter-btn{flex-shrink:0;font-size:var(--font-size-xs);min-height:44px;padding:var(--space-2) var(--space-3)}.advanced-filter-toggle{align-self:flex-start;flex-shrink:0;min-height:44px}.quick-filter-divider,.quick-filter-spacer{display:none}.advanced-grid{gap:var(--space-3);grid-template-columns:1fr}.advanced-panel{padding:var(--space-4)}.date-range{flex-direction:column;gap:var(--space-2)}.date-range span{display:none}.filter-field input[type=date],.filter-field select{font-size:16px;min-height:44px}.btn-apply{justify-content:center;min-height:44px;width:100%}.bulk-action-bar{flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3)}.bulk-count{border-bottom:1px solid #ffffff26;margin-right:0;padding-bottom:var(--space-2);text-align:center;width:100%}.bulk-btn{flex:1 1;justify-content:center;min-height:44px;min-width:0}.bulk-btn-clear{flex-basis:100%;margin-left:0;min-height:44px}.active-filters-bar{flex-wrap:wrap}.filter-chip{min-height:36px;padding:var(--space-2) var(--space-3)}.filter-chip-remove{align-items:center;border-radius:50%;display:inline-flex;justify-content:center;margin-left:var(--space-1);min-height:28px;min-width:28px}.filter-chip-remove:active{background:#00000014}.inbox-page .data-table{display:block}.inbox-page .data-table thead{display:none}.inbox-page .data-table tbody{display:flex;flex-direction:column}.inbox-page .data-table tbody tr{grid-gap:0 var(--space-2);align-items:center;border-bottom:1px solid var(--gray-100);display:grid;gap:0 var(--space-2);grid-template-columns:44px 1fr auto;grid-template-rows:auto auto;min-height:56px;padding:var(--space-3) var(--space-3)}.inbox-page .data-table tbody td{border-bottom:none;padding:0}.inbox-page .data-table tbody td.checkbox-col{align-items:center;display:flex;grid-column:1;grid-row:1/3;justify-content:center;min-height:44px;min-width:44px}.inbox-page .data-table tbody td.vendor-cell{font-weight:600;grid-column:2;grid-row:1}.inbox-page .data-table tbody td.text-right{display:block;font-size:var(--font-size-base);font-weight:700;grid-column:3;grid-row:1}.inbox-page .data-table tbody td.subject-cell{color:var(--gray-500);font-size:var(--font-size-xs);grid-column:2/4;grid-row:2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inbox-page .data-table tbody td.compact-status-cell,.inbox-page .data-table tbody td:nth-child(4),.inbox-page .data-table tbody td:nth-child(5){display:none}.pagination-bar{flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.pagination-info{flex-wrap:wrap;gap:var(--space-2);justify-content:center}.per-page-select{display:none}.page-btn,.pagination-controls{justify-content:center}.page-btn{align-items:center;display:flex;min-height:44px;min-width:44px}.confirm-dialog{margin:0 var(--space-3);padding:var(--space-5) var(--space-4)}.confirm-actions{flex-direction:column}.confirm-btn{min-height:44px;width:100%}}.credit-filter-group{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);display:inline-flex;gap:0;margin-left:var(--space-2);overflow:hidden}.credit-filter-pill{align-items:center;background:#0000;border:none;border-right:1px solid var(--border-color);color:var(--gray-600);cursor:pointer;display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:4px;padding:6px 10px;transition:background .12s,color .12s;white-space:nowrap}.credit-filter-pill:last-child{border-right:none}.credit-filter-pill:hover{background:var(--gray-50);color:var(--fps-body-text)}.credit-filter-pill.active{background:var(--credit-bg);color:var(--credit);font-weight:600}.amount-cell .credit-chip,.resync-dot{margin-right:6px}.resync-dot{background:var(--resync-fg);border:1.5px solid var(--resync-border);border-radius:50%;display:inline-block;height:8px;vertical-align:middle;width:8px}.amount-cell{white-space:nowrap}.amount-cell .amount-value{display:inline-block}.ss-wrapper{min-width:160px;position:relative;width:100%}.ss-trigger{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);cursor:pointer;display:flex;flex-wrap:wrap;font-size:var(--font-size-sm);gap:4px;justify-content:space-between;min-height:32px;padding:5px 10px;transition:border-color .15s}.ss-trigger:hover{border-color:var(--gray-400)}.ss-trigger.ss-open{border-color:#2563eb;border-color:var(--fps-vivid-blue,#2563eb);box-shadow:0 0 0 2px #0038ee1f}.ss-display{flex:1 1;min-width:0;word-break:break-word}.ss-arrow,.ss-placeholder{color:var(--gray-400)}.ss-arrow{flex-shrink:0;font-size:10px;margin-left:2px;transition:transform .15s}.ss-open .ss-arrow{transform:rotate(180deg)}.ss-input{background:#0000;border:none;color:inherit;font-family:inherit;font-size:var(--font-size-sm);min-width:0;outline:none;padding:0;width:100%}.ss-input::placeholder{color:var(--gray-400)}.ss-list{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);box-shadow:0 4px 12px #0000001a;left:0;list-style:none;margin:0;max-height:260px;max-width:420px;min-width:100%;overflow-y:auto;padding:4px 0;position:absolute;top:calc(100% + 3px);width:max-content;z-index:100}.ss-option{cursor:pointer;font-size:var(--font-size-sm);padding:6px 10px;transition:background .08s;word-break:break-word}.ss-option.ss-highlight,.ss-option:hover{background:#f3f4f6;background:var(--gray-100,#f3f4f6)}.ss-option.ss-selected{color:#2563eb;color:var(--fps-vivid-blue,#2563eb);font-weight:600}.ss-no-results,.ss-option-clear{color:var(--gray-400);font-style:italic}.ss-no-results{font-size:var(--font-size-xs);padding:8px 10px;text-align:center}.fps-form-section-heading{border-bottom:1px solid var(--gray-200);color:var(--gray-500);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.5px;margin:var(--space-5) 0 var(--space-2);padding-bottom:var(--space-2);text-transform:uppercase}.fps-form-section-heading:first-child{margin-top:0}.fps-form-row{align-items:flex-start;border-bottom:1px solid var(--gray-100);display:flex;gap:var(--space-4);padding:var(--space-3) 0}.fps-form-row:last-child{border-bottom:none}.fps-form-row-label{color:var(--fps-dark-blue);display:block;flex:0 0 140px;font-size:var(--font-size-sm);font-weight:600;margin-bottom:0;padding-top:var(--space-2)}.fps-form-row-control{flex:1 1 auto;min-width:0}.fps-form-row-control input[type=email],.fps-form-row-control input[type=number],.fps-form-row-control input[type=text],.fps-form-row-control input[type=url],.fps-form-row-control select,.fps-form-row-control textarea{background:#fff;border:1px solid var(--gray-300);border-radius:var(--border-radius-sm);color:var(--gray-800);font-family:inherit;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);transition:border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1);width:100%}.fps-form-row-control input:focus,.fps-form-row-control select:focus,.fps-form-row-control textarea:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.fps-form-row-hint{color:var(--gray-500);display:block;font-size:var(--font-size-xs);margin-top:var(--space-1)}.fps-form-row--toggle{align-items:stretch;flex-direction:column;gap:var(--space-1)}.fps-form{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.fps-form-toggle{align-items:flex-start;color:var(--gray-700);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-4);margin-bottom:0}.fps-form-toggle input[type=checkbox]{margin-top:2px}.fps-form-row-hint--toggle{margin-top:0;padding-left:calc(18px + var(--space-4))}.fps-form-radio-group{display:flex;flex-wrap:wrap;gap:var(--space-5);margin-top:0}.fps-form-radio-option{align-items:center;color:var(--gray-700);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-4)}.fps-form-radio-option input[type=radio]{accent-color:var(--fps-vivid-blue);flex-shrink:0;height:16px;margin:0;width:16px}@media (max-width:768px){.fps-form-row{align-items:stretch;flex-direction:column;gap:var(--space-1)}.fps-form-row-label{flex:0 0 auto;padding-top:0}}.fps-stack-item{border-bottom:1px solid var(--gray-100);padding:var(--space-4) var(--space-5)}.fps-stack-item:last-child{border-bottom:none}.fps-stack-item:hover{background:var(--gray-50)}.fps-stack-item-row{align-items:flex-start;display:flex;gap:var(--space-4);justify-content:space-between}.fps-stack-item-icon{color:var(--fps-vivid-blue);flex-shrink:0;margin-top:2px}.fps-stack-item-main{flex:1 1 auto;min-width:0}.fps-stack-item-title{color:var(--fps-dark-blue);display:block;font-size:var(--font-size-sm);font-weight:600;margin-bottom:2px}.fps-stack-item-hint{color:var(--gray-500);display:block;font-size:var(--font-size-xs)}.fps-stack-item-extras{margin-top:var(--space-2)}.fps-stack-item-actions{align-items:center;display:flex;flex-shrink:0;gap:var(--space-2)}@media (max-width:768px){.fps-stack-item-row{align-items:stretch;flex-direction:column}.fps-stack-item-actions{flex-wrap:wrap;justify-content:flex-start}}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;display:flex;inset:0;justify-content:center;padding:var(--space-4);position:fixed;z-index:1000}.vendor-modal{background:#fff;border-radius:var(--border-radius-lg);box-shadow:0 20px 60px #0003;display:flex;flex-direction:column;max-height:90vh;max-width:620px;overflow:hidden;width:100%}.modal-header{border-bottom:1px solid var(--gray-200);flex-shrink:0;justify-content:space-between;padding:var(--space-4) var(--space-6)}.modal-header,.modal-title-row{align-items:center;display:flex}.modal-title-row{gap:var(--space-3)}.modal-vendor-favicon,.modal-vendor-favicon-fallback{border-radius:var(--border-radius-sm);flex-shrink:0;height:28px;width:28px}.modal-vendor-favicon-fallback{align-items:center;background:var(--fps-vivid-blue);color:#fff;display:flex;font-size:var(--font-size-xs);font-weight:700;justify-content:center;text-transform:uppercase}.modal-header h2{color:var(--fps-dark-blue);font-size:var(--font-size-lg);font-weight:700;margin:0}.modal-close{align-items:center;background:#0000;border:none;border-radius:var(--border-radius-sm);color:var(--gray-500);cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .15s;width:32px}.modal-close:hover{background:var(--gray-100);color:var(--gray-800)}.modal-body{flex:1 1;min-height:0;overflow-y:auto;padding:var(--space-5) var(--space-6)}.modal-error{background:#fee2e2;background:var(--status-error-bg,#fee2e2);border:1px solid #fecaca;border-radius:var(--border-radius-sm);color:#991b1b;color:var(--status-error-text,#991b1b);font-size:var(--font-size-sm);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.modal-footer{align-items:center;background:#fff;border-top:1px solid var(--gray-200);display:flex;flex-shrink:0;gap:var(--space-3);padding:14px var(--space-6)}.modal-footer-right{display:flex;gap:var(--space-3);margin-left:auto}.form-group label{color:var(--gray-700);display:block;font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--space-1)}.modal-body input[type=email],.modal-body input[type=number],.modal-body input[type=text],.modal-body input[type=url],.modal-body select,.modal-body textarea{background:#fff;border:1px solid var(--gray-300);border-radius:var(--border-radius-sm);color:var(--gray-800);font-family:inherit;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);transition:border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1);width:100%}.modal-body input:focus,.modal-body select:focus,.modal-body textarea:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.form-hint{display:block;margin-top:3px}.form-hint,.form-hint-inline{color:var(--gray-500);font-size:var(--font-size-xs)}.form-hint-inline{font-weight:400}.form-hint-block{display:block;margin-bottom:var(--space-2)}.form-group.has-error input,.form-group.has-error select{border-color:#ef4444;box-shadow:0 0 0 2px #ef44441f}.form-error{color:#991b1b;color:var(--status-error-text,#991b1b);display:block;font-size:var(--font-size-sm);font-weight:500;margin-top:var(--space-1)}.email-row{display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.email-row input[type=email],.email-row input[type=text]{border:1px solid var(--gray-300);border-radius:var(--border-radius-sm);color:var(--gray-800);flex:1 1;font-size:var(--font-size-sm);min-width:0;padding:var(--space-2) var(--space-3);width:auto}.email-row input[type=email]:focus,.email-row input[type=text]:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.rule-row{display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.rule-row .rule-type-select{background:#fff;border:1px solid var(--gray-300);border-radius:var(--border-radius-sm);color:var(--gray-800);flex-shrink:0;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);width:140px}.rule-row .rule-type-select:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.rule-row input[type=text]{border:1px solid var(--gray-300);border-radius:var(--border-radius-sm);color:var(--gray-800);flex:1 1;font-size:var(--font-size-sm);min-width:0;padding:var(--space-2) var(--space-3);width:auto}.rule-row input[type=text]:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.skip-rule-row{display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.skip-rule-row .skip-field-select{width:110px}.skip-rule-row .skip-field-select,.skip-rule-row .skip-operator-select{background:#fff;border:1px solid var(--gray-300);border-radius:var(--border-radius-sm);color:var(--gray-800);flex-shrink:0;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3)}.skip-rule-row .skip-operator-select{width:150px}.skip-rule-row .skip-value-input{border:1px solid var(--gray-300);border-radius:var(--border-radius-sm);color:var(--gray-800);flex:1 1;font-size:var(--font-size-sm);min-width:0;padding:var(--space-2) var(--space-3)}.skip-rule-row input:focus,.skip-rule-row select:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.icon-btn-sm{background:#0000;flex-shrink:0;height:32px;width:32px}.icon-btn-sm:hover{color:var(--gray-600)}.icon-btn-sm.danger:hover{background:#fee2e2;background:var(--status-error-bg,#fee2e2);color:#ef4444;color:var(--status-error-icon,#ef4444)}.btn-text{align-items:center;background:#0000;border:none;color:var(--fps-vivid-blue);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-1);padding:var(--space-1) 0;transition:opacity .15s}.btn-text:hover{opacity:.8}.toggle-row{align-items:center;display:flex;gap:var(--space-4)}.toggle-row label{margin-bottom:0}.toggle-checkbox{accent-color:var(--fps-vivid-blue);flex-shrink:0;height:18px;margin:0;width:18px!important}.keyword-mode-row{align-items:center;display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.keyword-mode-label{color:#6b7280;color:var(--gray-500,#6b7280);font-size:var(--font-size-sm);font-weight:500;white-space:nowrap}.keyword-mode-select{background:#fff;border:1px solid #d1d5db;border:1px solid var(--border-color,#d1d5db);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);padding:var(--space-1) var(--space-2)}.label-with-tooltip{align-items:center;display:flex;gap:var(--space-2)}.filename-tag-tooltip-wrap{align-items:center;cursor:help;display:inline-flex;position:relative}.filename-tag-info-icon{color:#9ca3af;color:var(--gray-400,#9ca3af);transition:color .15s}.filename-tag-tooltip-wrap:hover .filename-tag-info-icon{color:#0038ee;color:var(--fps-vivid-blue,#0038ee)}.filename-tag-tooltip{background:var(--gray-800);border-radius:var(--border-radius);box-shadow:0 8px 24px #0003;color:#e2e8f0;display:none;font-size:var(--font-size-sm);line-height:1.6;padding:14px var(--space-4);top:calc(100% + var(--space-2));width:260px;z-index:1100}.filename-tag-tooltip,.filename-tag-tooltip:before{left:50%;position:absolute;transform:translateX(-50%)}.filename-tag-tooltip:before{border-bottom:6px solid var(--gray-800);border-left:6px solid #0000;border-right:6px solid #0000;content:"";top:-6px}.filename-tag-tooltip-wrap:hover .filename-tag-tooltip{display:flex;flex-direction:column;gap:var(--space-1)}.filename-tag-tooltip strong{color:#fff;font-size:var(--font-size-sm);font-weight:700;letter-spacing:.3px;margin-bottom:var(--space-1)}.filename-tag-tooltip .tag-row{align-items:center;display:flex;gap:var(--space-2)}.filename-tag-tooltip code{background:#ffffff1f;border-radius:var(--space-1);color:#93c5fd;font-family:SF Mono,Menlo,monospace;font-size:var(--font-size-xs);min-width:72px;padding:1px var(--space-2);white-space:nowrap}.filename-tag-tooltip .tag-note{border-top:1px solid #ffffff1a;color:#94a3b8;font-size:var(--font-size-xs);font-style:italic;margin-top:var(--space-2);padding-top:var(--space-2)}.icon-align{vertical-align:-2px}.icon-mr-1{margin-right:var(--space-1)}.btn-danger-outline{align-items:center;background:#fff;border:1px solid #fecaca;border-radius:var(--border-radius);color:#ef4444;color:var(--status-error-icon,#ef4444);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-2);padding:9px var(--space-4);transition:background-color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1)}.btn-danger-outline:hover{background:#fee2e2;background:var(--status-error-bg,#fee2e2);border-color:#f87171}.delete-confirm{align-items:center;color:#ef4444;color:var(--status-error-icon,#ef4444);display:flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-2)}@media (max-height:700px){.vendor-modal{max-height:95vh}.modal-body{padding:var(--space-4) var(--space-5)}}@media (max-width:768px){.modal-overlay{align-items:flex-end;padding:var(--space-2)}.vendor-modal{border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0;max-height:95vh;max-width:100%}.form-row-2{gap:0;grid-template-columns:1fr}.modal-body input,.modal-body select,.modal-body textarea{font-size:16px;min-height:44px}.modal-footer{padding:var(--space-3) var(--space-4)}.modal-footer-right{gap:var(--space-2)}.modal-footer .btn-outline,.modal-footer .btn-primary{min-height:44px}.modal-header{padding:var(--space-3) var(--space-4)}}.rrm-prefill-banner{align-items:flex-start;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;color:#166534;display:flex;font-size:var(--font-size-sm);gap:var(--space-3);line-height:1.4;margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.rrm-prefill-icon{align-items:center;background:#16a34a;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:11px;font-weight:700;height:18px;justify-content:center;line-height:1;width:18px}.rrm-prefill-copy{display:flex;flex:1 1 auto;flex-direction:column;gap:2px}.rrm-prefill-copy strong{color:#166534;font-weight:600}.rrm-prefill-subtitle{color:#15803d;font-size:var(--font-size-xs)}.rrm-allocations{display:flex;flex-direction:column;gap:var(--space-3)}.rrm-alloc-row{background:#f9fafb;background:var(--gray-50,#f9fafb);border:1px solid #e5e7eb;border:1px solid var(--gray-200,#e5e7eb);border-radius:8px;padding:var(--space-3) var(--space-4)}.rrm-alloc-row-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.rrm-alloc-row-title{font-size:var(--font-size-xs);font-weight:700;letter-spacing:.5px;text-transform:uppercase}.rrm-alloc-row-remove,.rrm-alloc-row-title{color:#6b7280;color:var(--gray-500,#6b7280)}.rrm-alloc-row-remove{align-items:center;background:#0000;border:1px solid #0000;border-radius:4px;cursor:pointer;display:inline-flex;height:26px;justify-content:center;transition:background .12s,color .12s,border-color .12s;width:26px}.rrm-alloc-row-remove:hover{background:#fee2e2;border-color:#fecaca;color:#b91c1c}.rrm-alloc-grid{grid-gap:var(--space-3) var(--space-4);display:grid;gap:var(--space-3) var(--space-4);grid-template-columns:1fr 1fr}@media (max-width:600px){.rrm-alloc-grid{grid-template-columns:1fr}}.rrm-alloc-field{display:flex;flex-direction:column;gap:4px;min-width:0}.rrm-alloc-field label{color:#4b5563;color:var(--gray-600,#4b5563);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.4px;text-transform:uppercase}.rrm-alloc-field-empty{background:#fff;border:1px dashed #d1d5db;border:1px dashed var(--gray-300,#d1d5db);border-radius:4px;color:#6b7280;color:var(--gray-500,#6b7280);font-size:var(--font-size-sm);font-style:italic;padding:var(--space-2) var(--space-3)}.rrm-alloc-field-toggle{grid-column:1/-1}.rrm-tw-toggle{align-items:center;color:#374151;color:var(--gray-700,#374151);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-2);letter-spacing:normal;text-transform:none}.rrm-mode-toggle{border:1px solid #d1d5db;border:1px solid var(--gray-300,#d1d5db);border-radius:6px;overflow:hidden;width:fit-content}.rrm-mode-option,.rrm-mode-toggle{background:#fff;display:inline-flex}.rrm-mode-option{align-items:center;border-right:1px solid #d1d5db;border-right:1px solid var(--gray-300,#d1d5db);color:#374151;color:var(--gray-700,#374151);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;justify-content:center;letter-spacing:normal;padding:6px 12px;text-transform:none;transition:background .12s,color .12s}.rrm-mode-option:last-child{border-right:none}.rrm-mode-option.active{background:#2563eb;background:var(--fps-vivid-blue,#2563eb);color:#fff}.rrm-mode-option input[type=radio]{opacity:0;pointer-events:none;position:absolute}.rrm-input-wrap{align-items:stretch;background:#fff;border:1px solid #d1d5db;border:1px solid var(--gray-300,#d1d5db);border-radius:4px;display:flex;overflow:hidden}.rrm-input-wrap:focus-within{border-color:#2563eb;border-color:var(--fps-vivid-blue,#2563eb);box-shadow:0 0 0 3px #2563eb1a}.rrm-input-prefix{align-items:center;background:#f9fafb;background:var(--gray-50,#f9fafb);border-right:1px solid #e5e7eb;border-right:1px solid var(--gray-200,#e5e7eb);color:#6b7280;color:var(--gray-500,#6b7280);display:inline-flex;font-size:var(--font-size-sm);font-weight:600;justify-content:center;min-width:24px;padding:0 var(--space-2)}.rrm-input-wrap input{background:#0000;border:none;flex:1 1 auto;font-size:var(--font-size-sm);min-width:0;outline:none;padding:6px var(--space-2)}.rrm-alloc-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2)}.rrm-pct-summary{align-items:center;border-radius:999px;display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:4px;padding:4px 10px}.rrm-pct-summary.valid{background:#dcfce7;color:#166534}.rrm-pct-summary.invalid{background:#fee2e2;color:#b91c1c}.back-btn{align-items:center;color:var(--gray-500);display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-2);margin-bottom:var(--space-5);padding:6px 0}.back-btn:hover{color:var(--fps-dark-blue)}.receipt-detail{max-width:100%;overflow-x:hidden}.detail-grid{grid-gap:var(--space-5);align-items:start;display:grid;gap:var(--space-5);grid-template-columns:1fr 280px;max-width:100%;min-width:0}.detail-main{min-width:0;overflow:hidden}@media (max-width:1100px){.detail-grid{grid-template-columns:1fr}}.detail-body{padding:var(--space-5)}.detail-row{align-items:flex-start;border-bottom:1px solid var(--gray-100);display:flex;gap:var(--space-4);padding:var(--space-3) 0}.detail-row:last-child{border-bottom:none}.detail-label{flex-shrink:0;font-size:var(--font-size-sm);font-weight:500;padding-top:2px;width:120px}.detail-value{flex:1 1;min-width:0;overflow-wrap:break-word;word-break:break-word}.detail-amount{color:var(--fps-dark-blue);font-size:var(--font-size-lg);font-weight:700}.vendor-value{align-items:center;display:flex;gap:var(--space-2)}.detail-vendor-favicon,.detail-vendor-favicon-fallback{border-radius:5px;flex-shrink:0;height:24px;width:24px}.detail-vendor-favicon-fallback{align-items:center;background:var(--fps-vivid-blue);color:#fff;display:inline-flex;font-size:var(--font-size-xs);font-weight:700;justify-content:center;text-transform:uppercase}.auto-hint{color:var(--status-matched);display:flex;font-size:var(--font-size-xs);margin-top:var(--space-2)}.auto-hint,.drive-link{align-items:center;font-weight:500;gap:var(--space-2)}.drive-link{color:var(--fps-vivid-blue);display:inline-flex;font-size:var(--font-size-sm)}.receipt-detail .btn-action{background:var(--fps-red);border-radius:var(--border-radius-sm);color:#fff;font-size:var(--font-size-sm);font-weight:600;padding:10px 20px;transition:background .15s}.receipt-detail .btn-action:hover{background:#e05550}.btn-full{align-items:center;display:flex;gap:var(--space-2);justify-content:center;width:100%}.btn-ghost:hover{background:var(--gray-100);color:var(--fps-dark-blue)}.action-note{background:var(--gray-50);border-radius:var(--border-radius-sm);color:var(--gray-500);font-size:var(--font-size-sm);line-height:1.5;padding:var(--space-3)}.action-success{background:#d1fae5;background:var(--status-success-bg,#d1fae5);color:#065f46;color:var(--status-success-text,#065f46)}.save-toast{align-items:center;border-radius:var(--border-radius-sm);display:flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-4)}.save-toast.success{background:#d1fae5;background:var(--status-success-bg,#d1fae5);color:#065f46;color:var(--status-success-text,#065f46)}.save-toast.error{background:#fee2e2;background:var(--status-error-bg,#fee2e2);color:#991b1b;color:var(--status-error-text,#991b1b)}.alloc-mode-toggle{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);display:flex;overflow:hidden}.alloc-mode-btn{background:#fff;border:none;color:var(--gray-500);cursor:pointer;font-size:var(--font-size-xs);font-weight:600;padding:4px 12px;transition:all .15s}.alloc-mode-btn.active{background:var(--fps-dark-blue);color:#fff}.alloc-mode-btn:first-child{border-right:1px solid var(--border-color)}.alloc-editor{padding:0 var(--space-5) var(--space-4)}.alloc-toolbar{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-2);padding:var(--space-3) 0}.alloc-total{border-radius:12px;font-size:var(--font-size-xs);font-weight:600;padding:4px 10px}.alloc-total.valid{background:#d1fae5;background:var(--status-success-bg,#d1fae5);color:#065f46;color:var(--status-success-text,#065f46)}.alloc-total.invalid{background:#fee2e2;background:var(--status-error-bg,#fee2e2);color:#991b1b;color:var(--status-error-text,#991b1b)}.alloc-card-list{display:flex;flex-direction:column;gap:var(--space-3)}.alloc-card{background:var(--gray-50);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--space-4);position:relative}.alloc-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.alloc-card-number{color:var(--gray-400);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase}.alloc-card-status{align-items:center;display:flex;gap:var(--space-2)}.alloc-card-grid{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:1fr 1fr}.alloc-card-grid .form-group{margin-bottom:0}.alloc-card-grid .form-group label{color:var(--gray-500);display:block;font-size:var(--font-size-xs);font-weight:600;margin-bottom:4px}.alloc-card-grid input[type=number],.alloc-card-grid select{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);width:100%}.alloc-card-grid .alloc-select{min-width:0;width:100%}.alloc-card-footer{align-items:center;border-top:1px solid var(--gray-200);display:flex;justify-content:space-between;margin-top:var(--space-3);padding-top:var(--space-3)}.alloc-card-amounts{display:flex;font-size:var(--font-size-sm);gap:var(--space-5)}.alloc-card-amounts .amount-item{display:flex;flex-direction:column}.alloc-card-amounts .amount-label{color:var(--gray-400);font-size:var(--font-size-xs);font-weight:500}.alloc-card-amounts .amount-value{color:var(--fps-dark-blue);font-weight:700}.alloc-card-amounts .amount-value.billable{color:var(--fps-vivid-blue)}.alloc-card-actions{align-items:center;display:flex;gap:var(--space-2)}.alloc-tw-badge{align-items:center;border-radius:10px;display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:4px;padding:2px 8px}.alloc-tw-badge.pushed{background:#d1fae5;background:var(--status-success-bg,#d1fae5);color:#065f46;color:var(--status-success-text,#065f46)}.alloc-tw-badge.error{background:#fee2e2;background:var(--status-error-bg,#fee2e2);color:#991b1b;color:var(--status-error-text,#991b1b)}.alloc-tw-checkbox{align-items:center;color:var(--gray-500);cursor:pointer;display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:10px}.alloc-tw-checkbox input{accent-color:var(--fps-vivid-blue);flex-shrink:0;height:16px;margin:0;width:16px}.alloc-input-wrap{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);display:flex;gap:4px;padding:var(--space-2) var(--space-3);width:100%}.alloc-input-prefix{color:var(--gray-400);flex-shrink:0;font-size:var(--font-size-xs);font-weight:600;white-space:nowrap}.alloc-input{background:#0000;border:none;font-size:var(--font-size-sm);outline:none;width:100%}.alloc-input::-webkit-inner-spin-button{-webkit-appearance:none}.alloc-actions{border-top:1px solid var(--gray-100);gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3)}.alloc-actions,.alloc-warning{align-items:center;display:flex}.alloc-warning{color:#991b1b;color:var(--status-error-text,#991b1b);font-size:var(--font-size-xs);font-weight:500;gap:var(--space-1)}.btn-outline.btn-sm{background:#fff;border:1px solid var(--border-color);color:var(--fps-dark-blue)}.btn-outline.btn-sm:hover{background:var(--gray-50)}.btn-outline.btn-full{background:#fff;border:1px solid var(--border-color);color:var(--fps-dark-blue)}.btn-outline.btn-full:hover{background:var(--gray-50)}.btn-link{background:none;border:none;color:var(--fps-vivid-blue);cursor:pointer;font-size:inherit;font-weight:500;padding:0;text-decoration:underline}.btn-link:hover{color:var(--fps-dark-blue)}.icon-btn{background:none;border:none;cursor:pointer}.icon-btn:hover{background:#fee2e2;background:var(--status-error-bg,#fee2e2);color:#991b1b;color:var(--status-error-text,#991b1b)}.status-badges-group{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.source-badge{align-items:center;border-radius:10px;display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:4px;padding:3px 10px;white-space:nowrap}.source-badge.source-email{background:#eff6ff;color:#2563eb}.source-badge.source-manual{background:#f5f3ff;color:#7c3aed}.qb-badge{align-items:center;border-radius:10px;display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:4px;padding:3px 10px;white-space:nowrap}.qb-badge.matched{background:#ecfdf5;color:#059669}.qb-badge.unmatched{background:#fff7ed;color:#d97706}.action-section{margin-bottom:0}.action-section-label{color:var(--gray-400);display:block;font-size:var(--font-size-xs);font-weight:600;letter-spacing:.04em;margin-bottom:6px;text-transform:uppercase}.action-note.action-success{align-items:center;display:flex;gap:6px}@keyframes progressPulse{0%{opacity:.7;width:20%}50%{opacity:1;width:80%}to{opacity:.7;width:20%}}.match-candidates,.match-list{margin-top:var(--space-3)}.match-list{display:flex;flex-direction:column;gap:var(--space-2)}.match-item{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);display:flex;gap:var(--space-3);justify-content:space-between;padding:var(--space-3);transition:border-color .15s}.match-item:hover{border-color:var(--fps-vivid-blue)}.match-item-info{align-items:center;display:flex;flex:1 1;gap:var(--space-2);min-width:0}.match-item-favicon{border-radius:4px;flex-shrink:0;height:20px;width:20px}.match-item-vendor{color:var(--fps-dark-blue);font-size:var(--font-size-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-item-details{color:var(--gray-400);font-size:var(--font-size-xs);white-space:nowrap}.client-suggestion-card{background:linear-gradient(135deg,#eff6ff,#f0f9ff);border:1px solid #bfdbfe;border-radius:10px;margin-bottom:var(--space-4);overflow:hidden;padding:16px 20px;position:relative}.client-suggestion-card .suggestion-accent{background:#3b82f6;border-radius:4px 0 0 4px;height:100%;left:0;position:absolute;top:0;width:4px}.client-suggestion-card .suggestion-content{padding-left:8px}.client-suggestion-card .suggestion-header{align-items:center;display:flex;gap:8px;margin-bottom:8px}.client-suggestion-card .suggestion-icon{align-items:center;background:#dbeafe;border-radius:50%;display:flex;flex-shrink:0;height:28px;justify-content:center;width:28px}.client-suggestion-card .suggestion-title{color:#1e40af;color:var(--status-info-text,#1e40af);font-size:var(--font-size-sm);font-weight:700}.client-suggestion-card .suggestion-confidence{border-radius:10px;font-size:var(--font-size-xs);font-weight:600;padding:2px var(--space-2)}.client-suggestion-card .confidence-high{background:#d1fae5;background:var(--status-success-bg,#d1fae5);color:#065f46;color:var(--status-success-text,#065f46)}.client-suggestion-card .confidence-medium{background:#fef3c7;background:var(--status-warning-bg,#fef3c7);color:#92400e;color:var(--status-warning-text,#92400e)}.client-suggestion-card .confidence-low{background:#fee2e2;background:var(--status-error-bg,#fee2e2);color:#991b1b;color:var(--status-error-text,#991b1b)}.client-suggestion-card .suggestion-body{color:var(--fps-body-text);font-size:var(--font-size-sm);line-height:1.6;margin-bottom:var(--space-2);padding-left:36px}.client-suggestion-card .suggestion-body strong{color:#1e40af;color:var(--status-info-text,#1e40af)}.client-suggestion-card .suggestion-source{color:var(--gray-500);font-size:var(--font-size-xs);font-style:italic;margin-bottom:var(--space-3);padding-left:36px}.client-suggestion-card .suggestion-actions{display:flex;gap:var(--space-3);padding-left:36px}.btn-suggestion{align-items:center;border:none;border-radius:var(--border-radius-sm);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:600;gap:4px;padding:7px var(--space-4);transition:all .15s}.btn-suggestion.btn-create{background:#0e193d;background:var(--fps-dark-blue,#0e193d);color:#fff}.btn-suggestion.btn-create:hover{background:#1a2a5e}.btn-suggestion.btn-dismiss{background:#0000;border:1px solid #cbd5e1;color:#64748b}.btn-suggestion.btn-dismiss:hover{background:#f1f5f9}.detail-field{max-width:300px;width:100%}.detail-field--narrow{max-width:160px}.detail-field--wide{max-width:100%}.attachment-item{align-items:center;display:flex;gap:var(--space-2);margin-bottom:var(--space-1)}.attachment-icon{color:var(--gray-400);flex-shrink:0}.attachment-size{color:var(--gray-400);font-size:var(--font-size-xs)}.detail-undo-btn{font-size:var(--font-size-xs);margin-left:var(--space-2)}.detail-qb-btn{margin-top:6px}.detail-link-btn{flex-shrink:0}.detail-budgets-loading{color:var(--gray-400);font-size:var(--font-size-xs)}.detail-qb-icon{height:16px;width:16px}.detail-qb-badge-icon{border-radius:2px;height:11px;margin-right:3px;width:11px}.detail-help-note{margin-bottom:var(--space-3)}.field-input--mono{font-family:SF Mono,Fira Code,Consolas,monospace}.detail-value--display{display:inline-block;line-height:1.5;padding:var(--space-2) 0}.detail-value--muted{color:var(--gray-500);font-size:var(--font-size-xs)}.detail-main .card+.card,.detail-main .card+.client-suggestion-card,.detail-main .client-suggestion-card+.card,.detail-sidebar .card+.card{margin-top:var(--space-4)}.detail-sidebar h3{color:var(--fps-dark-blue);font-size:var(--font-size-md);font-weight:600;margin-bottom:var(--space-4)}.card-header-actions{align-items:center;display:flex;gap:var(--space-2)}.action-section+.action-section{margin-top:var(--space-3)}.action-divider{border-top:1px solid var(--gray-100);margin-top:var(--space-4);padding-top:var(--space-4)}.action-help{font-size:var(--font-size-xs);margin-top:var(--space-2)}.alloc-empty{color:var(--gray-500);font-size:var(--font-size-sm);padding:var(--space-4) var(--space-5)}.detail-loading{color:var(--gray-500);padding:var(--space-6);text-align:center}.detail-loading svg{margin-bottom:8px}.detail-error{color:var(--status-error-text,#991b1b);padding:var(--space-6);text-align:center}.detail-error svg{margin-bottom:8px}.processing-indicator{font-size:var(--font-size-xs);margin-top:8px}.processing-indicator--active{color:var(--fps-vivid-blue)}.processing-indicator--done{color:var(--status-matched)}.processing-indicator--error{color:var(--status-error)}.processing-indicator-row{align-items:center;display:flex;font-weight:500;gap:6px}.processing-indicator-text{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.processing-indicator-bar{background:#2563eb1f;border-radius:1px;height:2px;margin-top:6px;overflow:hidden;position:relative}.processing-indicator-bar-fill{animation:processingBarSlide 1.8s ease-in-out infinite;background:var(--fps-vivid-blue);border-radius:1px;bottom:0;left:0;position:absolute;top:0;width:40%}@keyframes processingBarSlide{0%{transform:translateX(-100%)}to{transform:translateX(250%)}}.receipt-detail .data-table tbody tr{transition:background-color .1s cubic-bezier(.4,0,.2,1)}.detail-mobile-actions{display:none}@media (max-width:768px){.detail-mobile-actions{align-items:center;background:#fff;border-top:1px solid var(--border-color);bottom:0;box-shadow:0 -2px 8px #0000000f;display:flex;gap:var(--space-3);left:0;padding:var(--space-3) var(--space-4);padding-bottom:max(var(--space-3),env(safe-area-inset-bottom));position:sticky;right:0;z-index:200}.detail-mobile-actions .mobile-action-primary{align-items:center;display:flex;flex:1 1;gap:6px;justify-content:center;min-height:48px}.detail-mobile-actions .mobile-status-indicator{align-items:center;border-radius:var(--border-radius-sm);display:flex;font-size:var(--font-size-sm);font-weight:600;gap:var(--space-2);padding:var(--space-2) var(--space-3);white-space:nowrap}.detail-mobile-actions .mobile-status-indicator.status-reviewed{background:#dbeafe;color:#1e40af}.detail-mobile-actions .mobile-status-indicator.status-qb-matched{background:#ecfdf5;color:#059669}.detail-mobile-actions .mobile-status-indicator.status-duplicate{background:#fef3c7;background:var(--status-warning-bg,#fef3c7);color:#92400e;color:var(--status-warning-text,#92400e)}.detail-mobile-actions .mobile-status-indicator.status-error{background:#fee2e2;background:var(--status-error-bg,#fee2e2);color:#991b1b;color:var(--status-error-text,#991b1b)}.detail-mobile-actions .mobile-action-secondary{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--gray-500);display:flex;height:48px;justify-content:center;min-width:48px;transition:all .15s;width:48px}.detail-mobile-actions .mobile-action-secondary:hover{background:var(--gray-50);color:var(--fps-dark-blue)}.detail-mobile-actions .mobile-action-secondary.danger:hover{background:#fee2e2;border-color:#fecaca;color:#991b1b}.detail-grid{gap:var(--space-4);grid-template-columns:1fr}.detail-body{padding:var(--space-4)}.detail-row{flex-direction:column;gap:var(--space-1)}.detail-label{font-size:var(--font-size-xs);width:auto}.detail-field,.detail-field--narrow{max-width:100%}.receipt-detail .form-input,.receipt-detail .form-select{font-size:16px;min-height:44px}.receipt-detail .btn-action{justify-content:center;min-height:48px;width:100%}.btn-full{min-height:48px}.btn-outline.btn-full{min-height:44px}.alloc-card-grid{grid-template-columns:1fr}.alloc-card{padding:var(--space-3)}.alloc-card-footer{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.alloc-card-amounts{flex-wrap:wrap;gap:var(--space-3)}.alloc-card-actions{justify-content:flex-end;width:100%}.alloc-actions{flex-wrap:wrap}.client-suggestion-card .suggestion-actions,.client-suggestion-card .suggestion-body,.client-suggestion-card .suggestion-source{padding-left:0}.client-suggestion-card .suggestion-actions{flex-direction:column;gap:var(--space-2)}.btn-suggestion{justify-content:center;min-height:44px;width:100%}.match-item{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.match-item-info{width:100%}.status-badges-group{flex-wrap:wrap}.back-btn{align-items:center;display:inline-flex;min-height:44px}.detail-sidebar h3{font-size:var(--font-size-base)}.confirm-dialog{padding:var(--space-5)}}.file-section{border-top:1px solid var(--border-color);padding:var(--space-4) var(--space-5) var(--space-5)}.file-section .section-title{color:var(--gray-500);font-size:var(--font-size-sm);font-weight:600;letter-spacing:.04em;margin-bottom:var(--space-3);text-transform:uppercase}.file-card{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--fps-body-text);display:flex;gap:var(--space-3);min-height:44px;padding:var(--space-3) var(--space-4);text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;width:100%}.file-card:hover{background:var(--gray-50);border-color:var(--fps-vivid-blue);box-shadow:var(--shadow-sm);text-decoration:none}.file-card__icon{color:var(--fps-vivid-blue);flex-shrink:0}.file-card__meta{display:flex;flex:1 1;flex-direction:column;min-width:0}.file-card__name{color:var(--fps-body-text);font-size:var(--font-size-base);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-card__sub{color:var(--gray-500);font-size:var(--font-size-xs);margin-top:2px}.file-card__action{color:var(--gray-500);flex-shrink:0;margin-left:auto}.file-card--empty{background:var(--gray-50);color:var(--gray-500);cursor:default}.file-card--empty:hover{background:var(--gray-50);border-color:var(--border-color);box-shadow:none}.file-card--empty .file-card__icon{color:var(--gray-400)}.file-card--empty .file-card__name{color:var(--gray-500);font-weight:500}.originals-disclosure{font-size:var(--font-size-sm);margin-top:var(--space-3)}.originals-disclosure>summary{align-items:center;color:var(--gray-500);cursor:pointer;display:flex;gap:var(--space-2);list-style:none;min-height:32px;padding:var(--space-2) 0;-webkit-user-select:none;user-select:none}.originals-disclosure>summary::-webkit-details-marker{display:none}.originals-disclosure>summary:hover{color:var(--fps-vivid-blue)}.originals-disclosure__chevron{margin-left:var(--space-1);transition:transform .15s ease}.originals-disclosure[open] .originals-disclosure__chevron{transform:rotate(180deg)}.originals-list{list-style:none;margin:var(--space-2) 0 0;padding:0 0 0 var(--space-5)}.originals-list li{border-radius:var(--border-radius-sm)}.originals-list li>a,.originals-list li>div{align-items:center;border-radius:var(--border-radius-sm);color:var(--fps-body-text);display:flex;gap:var(--space-3);min-height:36px;padding:var(--space-2) var(--space-3);text-decoration:none}.originals-list li>a:hover{background:var(--gray-100);text-decoration:none}.originals-list__name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.originals-list__size{color:var(--gray-500);flex-shrink:0;font-size:var(--font-size-xs);margin-left:auto}@media (max-width:768px){.file-section{padding:var(--space-4)}.file-card{min-height:48px}.originals-disclosure>summary,.originals-list li>a,.originals-list li>div{min-height:44px}}.credit-toggle{align-items:center;color:var(--fps-body-text);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);gap:var(--space-2);-webkit-user-select:none;user-select:none}.credit-toggle input[type=checkbox]{accent-color:var(--credit);cursor:pointer;height:16px;margin:0;width:16px}.credit-toggle input[type=checkbox]:disabled{cursor:not-allowed}.credit-toggle-label{align-items:center;display:inline-flex;gap:6px}.credit-toggle-hint{margin-top:4px}.credit-amount-hint{color:var(--credit);margin-top:4px}.alloc-input-wrap--credit .alloc-input-prefix{color:var(--negative);font-weight:600}.alloc-input-wrap--credit .alloc-input{color:var(--negative)}.resync-badge-banner{align-items:flex-start;background:var(--resync-bg);border:1px solid var(--resync-border);border-radius:var(--border-radius-sm);color:var(--resync-fg);display:flex;font-size:var(--font-size-sm);gap:var(--space-2);line-height:1.4;margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4)}.resync-badge-banner>svg{flex-shrink:0;margin-top:2px}.provenance-chip{align-items:center;border:1px solid;border-radius:999px;display:inline-flex;font-size:var(--font-size-xs);font-weight:600;gap:6px;line-height:1.4;padding:4px 10px;white-space:nowrap}.provenance-chip--rule-auto{background:#eef2ff;border-color:#c7d2fe;color:#4338ca}.provenance-chip--rule-confirm{background:#fff;border-color:#a5b4fc;border-style:dashed;color:#4338ca}.provenance-chip--ai{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.provenance-chip--manual{background:#f5f3ff;border-color:#ddd6fe;color:#6d28d9}.provenance-chip-meta{color:var(--gray-500);font-family:var(--font-mono);font-size:10px;font-weight:500;margin-left:4px}.hero-ready{background:linear-gradient(135deg,#ecfdf5,#f0fdf4);border:1px solid #a7f3d0;border-radius:var(--border-radius);margin:var(--space-4) var(--space-5);overflow:hidden;padding:var(--space-5);position:relative}.hero-ready-accent{background:#10b981;height:100%;left:0;position:absolute;top:0;width:4px}.hero-ready-header{align-items:center;display:flex;gap:var(--space-3);margin-bottom:var(--space-3);padding-left:var(--space-3)}.hero-ready-check{align-items:center;background:#10b981;border-radius:50%;color:#fff;display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.hero-ready-title{color:#065f46;font-size:var(--font-size-lg);font-weight:700;margin:0}.hero-ready-sub{color:#047857;font-size:var(--font-size-sm);margin-top:2px}.hero-summary-grid{grid-gap:var(--space-3);background:#fff;border:1px solid #d1fae5;border-radius:var(--border-radius-sm);display:grid;gap:var(--space-3);grid-template-columns:repeat(3,1fr);margin:0 0 var(--space-4) var(--space-3);padding:var(--space-4)}.hero-summary-cell{display:flex;flex-direction:column;gap:2px;min-width:0}.hero-summary-label{color:var(--gray-500);font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.hero-summary-value{align-items:center;color:var(--fps-dark-blue);display:inline-flex;font-size:var(--font-size-base);font-weight:600;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-summary-value--amount{font-size:var(--font-size-lg)}.hero-summary-value-mono{font-family:var(--font-mono);font-size:var(--font-size-sm)}.hero-summary-fav{align-items:center;background:var(--fps-vivid-blue);color:#fff;display:inline-flex;font-size:10px;font-weight:700;justify-content:center;text-transform:uppercase}.hero-summary-fav,.hero-summary-fav-img{border-radius:4px;flex-shrink:0;height:18px;width:18px}.hero-summary-fav-img{object-fit:cover}.hero-actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4);padding-left:var(--space-3)}.btn-confirm{align-items:center;background:#10b981;border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:600;gap:8px;padding:10px 20px;transition:background .15s}.btn-confirm:hover:not(:disabled){background:#059669}.btn-confirm:disabled{cursor:not-allowed;opacity:.6}.btn-edit-instead{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--gray-600);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:6px;padding:10px 16px;transition:background .15s}.btn-edit-instead:hover:not(:disabled){background:var(--gray-50)}.btn-edit-instead:disabled{cursor:not-allowed;opacity:.6}.hero-provenance{background:#ffffffb3;border:1px solid #d1fae5;border-radius:var(--border-radius-sm);margin:0 0 0 var(--space-3);padding:var(--space-3) var(--space-4)}.hero-provenance-title{align-items:center;color:#047857;display:inline-flex;font-size:var(--font-size-xs);font-weight:700;gap:6px;letter-spacing:.05em;margin:0 0 var(--space-2);text-transform:uppercase}.hero-provenance-list{display:flex;flex-direction:column;gap:4px;list-style:none;margin:0;padding:0}.hero-provenance-list li{align-items:flex-start;color:var(--fps-body-text);display:flex;font-size:var(--font-size-sm);gap:6px;line-height:1.5}.hero-provenance-list li:before{color:#10b981;content:"\2022";flex-shrink:0;font-weight:700}.hero-provenance-list strong{color:var(--fps-dark-blue);font-weight:700}.hero-provenance-list code{background:#fff;border:1px solid #d1fae5;border-radius:3px;color:var(--fps-dark-blue);font-family:var(--font-mono);font-size:12px;padding:1px 5px}.hero-provenance-list a{font-weight:600;white-space:nowrap}.aging-banner{align-items:flex-start;background:#fef3c7;background:var(--status-warning-bg,#fef3c7);border:1px solid #fde68a;border:1px solid var(--status-warning-border,#fde68a);border-radius:var(--border-radius-sm);color:#92400e;color:var(--status-warning-text,#92400e);display:flex;font-size:var(--font-size-sm);gap:var(--space-2);line-height:1.4;margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.aging-banner>svg{color:#f59e0b;color:var(--status-warning-icon,#f59e0b);flex-shrink:0;margin-top:2px}.aging-banner strong{font-weight:700}.edit-disclosure,.edit-disclosure-trigger{margin-bottom:var(--space-3)}.edit-disclosure-trigger{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--gray-600);cursor:pointer;display:flex;font-family:inherit;font-size:var(--font-size-sm);font-weight:500;justify-content:space-between;padding:var(--space-3) var(--space-4);text-align:left;transition:background .15s;width:100%}.edit-disclosure-trigger:hover{background:var(--gray-50)}.edit-disclosure-trigger:focus-visible{outline:2px solid #2563eb;outline:2px solid var(--primary-color,#2563eb);outline-offset:2px}.edit-disclosure-summary-left{align-items:center;display:flex;gap:var(--space-2)}.edit-disclosure-chevron{color:var(--gray-400);flex-shrink:0;transition:transform .15s}.edit-disclosure-chevron.is-open{transform:rotate(180deg)}.timeline-card{margin-top:var(--space-4)}.timeline-card .card-header h3{color:var(--fps-dark-blue);font-size:var(--font-size-base);font-weight:700;margin:0}.timeline-tz-note{color:var(--gray-500);font-size:var(--font-size-xs)}.timeline-list{list-style:none;margin:0;padding:var(--space-5);position:relative}.timeline-list:before{background:var(--gray-200);bottom:39px;content:"";left:30px;position:absolute;top:39px;width:2px;z-index:0}.timeline-item{display:flex;gap:var(--space-3);padding:var(--space-2) 0;position:relative}.timeline-dot{align-items:center;background:#fff;border:2px solid var(--gray-300);border-radius:50%;box-shadow:0 0 0 2px #fff;color:var(--gray-500);display:inline-flex;flex-shrink:0;height:22px;justify-content:center;position:relative;width:22px;z-index:1}.timeline-dot.done{background:#ecfdf5;border-color:#10b981;color:#059669}.timeline-dot.pending{background:#fef3c7;background:var(--status-warning-bg,#fef3c7);border-color:#f59e0b;border-color:var(--status-warning-icon,#f59e0b);color:#f59e0b;color:var(--status-warning-icon,#f59e0b)}.timeline-content{flex:1 1;min-width:0;padding-top:1px}.timeline-title{align-items:center;color:var(--fps-dark-blue);display:inline-flex;flex-wrap:wrap;font-size:var(--font-size-sm);font-weight:600;gap:6px}.timeline-title code{background:var(--gray-100);border-radius:3px;color:var(--fps-dark-blue);font-family:var(--font-mono);font-size:11px;font-weight:500;padding:1px 5px}.timeline-meta{color:var(--gray-500);font-size:var(--font-size-xs);margin-top:2px}.timeline-meta code{background:var(--gray-100);border-radius:3px;color:var(--fps-dark-blue);font-family:var(--font-mono);font-size:11px;padding:1px 5px}.timeline-meta strong{color:var(--fps-dark-blue);font-weight:600}.alloc-rule-prompt{align-items:center;background:#eef2ff;border:1px solid #c7d2fe;border-radius:6px;display:flex;gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-3) var(--space-4)}.alloc-rule-prompt-icon{align-items:center;background:#2563eb;background:var(--fps-vivid-blue,#2563eb);border-radius:50%;color:#fff;display:flex;flex-shrink:0;height:28px;justify-content:center;width:28px}.alloc-rule-prompt-copy{color:#374151;color:var(--gray-700,#374151);display:flex;flex:1 1 auto;flex-direction:column;font-size:var(--font-size-sm);gap:2px;line-height:1.4}.alloc-rule-prompt-copy strong{color:#0e193d;color:var(--fps-dark-blue,#0e193d);font-weight:600}.alloc-rule-prompt-hint{color:#6b7280;color:var(--gray-500,#6b7280);font-size:var(--font-size-xs)}.alloc-rule-prompt-btn{flex-shrink:0;white-space:nowrap}.alloc-rule-applied{align-items:center;background:#f9fafb;background:var(--gray-50,#f9fafb);border-radius:6px;color:#6b7280;color:var(--gray-500,#6b7280);display:flex;flex-wrap:wrap;font-size:var(--font-size-xs);gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-2) var(--space-3)}.alloc-rule-applied strong{color:#374151;color:var(--gray-700,#374151);font-weight:600}.alloc-rule-applied-link{background:none;border:none;color:#2563eb;color:var(--fps-vivid-blue,#2563eb);cursor:pointer;font-size:var(--font-size-xs);padding:0;text-decoration:none}.alloc-rule-applied-link:hover{text-decoration:underline}@media (max-width:600px){.alloc-rule-prompt{align-items:flex-start;flex-direction:column}.alloc-rule-prompt-btn{align-self:stretch}}.tw-import-state{color:var(--gray-500);padding:var(--space-8) var(--space-5);text-align:center}.tw-import-state p{font-size:var(--font-size-sm);margin-top:var(--space-2)}.tw-import-state-error{color:#991b1b;color:var(--status-error-text,#991b1b)}.tw-import-state-error .tw-import-hint{color:var(--gray-500);font-size:var(--font-size-sm);margin-top:var(--space-2)}.tw-import-state-not-configured p{font-size:var(--font-size-sm)}.tw-import-state-not-configured code{background:var(--gray-100);border-radius:3px;font-size:var(--font-size-sm);padding:1px 4px}.tw-import-connected{align-items:center;color:#059669;color:var(--status-success-text,#059669);display:flex;gap:var(--space-2)}.tw-import-connected,.tw-import-results{font-size:var(--font-size-sm);margin-bottom:var(--space-4)}.tw-import-results{border-radius:var(--border-radius-sm);padding:var(--space-3) var(--space-4)}.tw-import-results--success{background:#d1fae5;background:var(--status-success-bg,#d1fae5);color:#065f46;color:var(--status-success-text,#065f46)}.tw-import-results--warning{background:#fef3c7;background:var(--status-warning-bg,#fef3c7);color:#92400e;color:var(--status-warning-text,#92400e)}.tw-import-results-errors{font-size:var(--font-size-xs);margin-top:var(--space-2)}.tw-import-tabs{margin-bottom:var(--space-4)}.tw-import-tab,.tw-import-tabs{display:flex;gap:var(--space-2)}.tw-import-tab{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--gray-700);cursor:pointer;font-size:var(--font-size-sm);font-weight:400;padding:var(--space-2) var(--space-4);transition:all .15s cubic-bezier(.4,0,.2,1)}.tw-import-tab.active{background:#eff6ff;border:2px solid var(--fps-vivid-blue);color:var(--fps-vivid-blue);font-weight:600}.tw-import-select-bar{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-2)}.tw-import-select-label{align-items:center;color:var(--gray-500);cursor:pointer;display:flex;font-size:var(--font-size-xs);gap:var(--space-2)}.tw-import-select-label input[type=checkbox]{accent-color:var(--fps-vivid-blue)}.tw-import-select-count{color:var(--gray-500);font-size:var(--font-size-xs)}.tw-import-list{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);max-height:320px;overflow-y:auto}.tw-import-item{align-items:center;background:#fff;border-bottom:1px solid var(--gray-100);display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-3);transition:background-color .1s cubic-bezier(.4,0,.2,1)}.tw-import-item:last-child{border-bottom:none}.tw-import-item.selected{background:#eff6ff}.tw-import-item.duplicate{opacity:.5}.tw-import-item input[type=checkbox]{accent-color:var(--fps-vivid-blue);flex-shrink:0}.tw-import-item-info{flex:1 1;min-width:0}.tw-import-item-name{color:var(--gray-800);font-size:var(--font-size-sm);font-weight:500}.tw-import-item-duplicate{color:var(--gray-400);font-size:var(--font-size-xs);font-weight:400;margin-left:var(--space-2)}.tw-import-item-meta{color:var(--gray-500);font-size:var(--font-size-xs);margin-top:1px}.tw-import-empty{color:var(--gray-500);font-size:var(--font-size-sm);padding:var(--space-6) var(--space-5);text-align:center}.vendors-page .page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-5)}.vendors-page .page-header h1{color:var(--fps-dark-blue);font-size:var(--font-size-xl);font-weight:700}.vendors-header-actions{display:flex;gap:var(--space-2)}.vendors-page .btn-outline,.vendors-page .btn-primary{align-items:center;display:inline-flex;gap:var(--space-2)}.vendor-search{margin-bottom:var(--space-4);position:relative}.vendor-search-icon{color:var(--gray-400);left:var(--space-3);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.vendor-search input{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--fps-body-text);font-family:inherit;font-size:var(--font-size-sm);min-height:44px;padding:var(--space-2) var(--space-3) var(--space-2) 40px;transition:border-color .15s,box-shadow .15s;width:100%}.vendor-search input:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.vendor-identity{align-items:center;display:flex;gap:var(--space-2)}.vendor-favicon,.vendor-icon-fallback{border-radius:4px;height:20px;width:20px}.vendor-icon-fallback{align-items:center;background:var(--fps-vivid-blue);color:#fff;display:flex;font-size:9px;font-weight:700;justify-content:center}.vendor-name-link{color:var(--fps-dark-blue);transition:color .15s}.vendor-name-link:hover{color:var(--fps-vivid-blue);text-decoration:underline}.vendor-pdf-template-badge{align-items:center;background:#0038ee14;border-radius:10px;color:var(--fps-vivid-blue);display:inline-flex;font-size:10px;font-weight:600;gap:3px;letter-spacing:.4px;margin-left:var(--space-2);padding:2px 7px;text-transform:uppercase;white-space:nowrap}.vendor-row{cursor:pointer;transition:background-color .1s cubic-bezier(.4,0,.2,1)}.vendor-row:hover{background:var(--gray-50)}.vendor-card-chevron{display:none}.enabled-dot{border-radius:50%;height:8px;margin:0 auto;width:8px}.enabled-dot.enabled{background:var(--status-matched)}.enabled-dot.disabled{background:var(--gray-300)}.action-btns{display:flex;gap:var(--space-1)}.icon-btn{align-items:center;border-radius:var(--border-radius-sm);color:var(--gray-400);display:flex;height:28px;justify-content:center;transition:all .15s;width:28px}.icon-btn:hover{background:var(--gray-100);color:var(--fps-dark-blue)}.icon-btn:disabled{cursor:not-allowed;opacity:.5}.vendors-date-presets{display:flex;gap:4px;margin-bottom:var(--space-4)}.vendors-preset-pill{background:#fff;border:1px solid var(--border-color);border-radius:999px;color:var(--gray-600);cursor:pointer;font-size:var(--font-size-xs);font-weight:600;padding:5px 14px;transition:all .15s}.vendors-preset-pill:hover{background:var(--gray-100)}.vendors-preset-pill.active{background:var(--fps-dark-blue);border-color:var(--fps-dark-blue);color:#fff}.vendor-count-suffix{display:none}.receipt-count-link{color:var(--fps-vivid-blue);cursor:pointer;font-weight:600;transition:color .15s}.receipt-count-link:hover{color:var(--fps-dark-blue);text-decoration:underline}.vendors-page .pagination-bar{align-items:center;border-top:1px solid var(--border-color);color:var(--gray-500);display:flex;font-size:var(--font-size-sm);justify-content:space-between;padding:12px 16px}.vendors-page .pagination-info{align-items:center;display:flex;font-weight:500;gap:4px}.vendors-page .per-page-select{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--gray-600);font-family:inherit;font-size:var(--font-size-xs);margin-left:12px;padding:4px 8px}.vendors-page .pagination-controls{align-items:center;display:flex;gap:4px}.vendors-page .page-btn{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--gray-600);cursor:pointer;font-size:var(--font-size-xs);font-weight:500;padding:6px 12px;transition:all .15s}.vendors-page .page-btn:hover:not(:disabled){background:var(--gray-100)}.vendors-page .page-btn.active{background:var(--fps-dark-blue);border-color:var(--fps-dark-blue);color:#fff}.vendors-page .page-btn:disabled{cursor:not-allowed;opacity:.4}@media (max-width:768px){.vendors-page .vendors-header{align-items:stretch;flex-direction:column;gap:var(--space-3)}.vendors-header-actions{display:flex;flex-direction:column;gap:var(--space-2)}.vendors-header-actions .btn-outline,.vendors-header-actions .btn-primary{justify-content:center;min-height:44px;width:100%}.vendors-date-presets{flex-wrap:wrap}.vendors-preset-pill{align-items:center;display:flex;min-height:36px}.vendor-search input{font-size:16px}.vendors-page .data-table{display:block}.vendors-page .data-table thead{display:none}.vendors-page .data-table tbody{display:flex;flex-direction:column}.vendors-page .data-table tbody tr.vendor-row{grid-gap:2px var(--space-2);align-items:center;border-bottom:1px solid var(--gray-100);cursor:pointer;display:grid;gap:2px var(--space-2);grid-template-columns:1fr auto auto;grid-template-rows:auto auto auto;padding:var(--space-3) var(--space-4)}.vendors-page .data-table tbody tr.vendor-row:last-child{border-bottom:none}.vendors-page .data-table tbody td{border-bottom:none;padding:0}.vendors-page .data-table tbody td.vendor-cell{font-weight:600;grid-column:1;grid-row:1;min-width:0}.vendors-page .data-table tbody td.vendor-cell .vendor-name-link{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vendors-page .data-table tbody td.vendor-spend-cell{font-size:var(--font-size-base);font-weight:700;grid-column:2;grid-row:1;text-align:right;white-space:nowrap}.vendors-page .data-table tbody td.vendor-actions-cell{align-items:center;display:flex;grid-column:3;grid-row:1/4;justify-content:center}.vendors-page .data-table tbody td.vendor-actions-cell .action-btns{display:none}.vendors-page .vendor-card-chevron{color:var(--gray-400);display:block;flex-shrink:0}.vendors-page .data-table tbody td.vendor-category-cell{color:var(--gray-500);display:block;font-size:var(--font-size-xs);grid-column:1;grid-row:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vendors-page .data-table tbody td.vendor-count-cell{color:var(--gray-500);display:block;font-size:var(--font-size-xs);grid-column:2;grid-row:2;text-align:right;white-space:nowrap}.vendors-page .data-table tbody td.vendor-count-cell .receipt-count-link{font-size:var(--font-size-xs)}.vendor-count-suffix{display:inline}.vendors-page .data-table tbody td.vendor-last-receipt-cell{color:var(--gray-400);display:block;font-size:var(--font-size-xs);grid-column:1;grid-row:3}.vendors-page .data-table tbody td.vendor-enabled-cell{align-items:center;display:flex;grid-column:2;grid-row:3;justify-content:flex-end}.vendors-page .data-table tbody td.vendor-enabled-cell .enabled-dot{margin:0}.vendors-page .data-table tbody td.vendor-frequency-cell{display:none}.icon-btn{height:44px;width:44px}.vendors-page .pagination-bar{flex-direction:column;gap:var(--space-3)}.vendors-page .pagination-info{flex-wrap:wrap;justify-content:center}.vendors-page .per-page-select{display:none}.vendors-page .pagination-controls{justify-content:center}.vendors-page .page-btn{align-items:center;display:flex;justify-content:center;min-height:44px;min-width:44px}}.vendor-detail-page .back-btn{align-items:center;color:var(--gray-500);display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-2);margin-bottom:var(--space-5);padding:var(--space-2) 0}.vendor-detail-page .back-btn:hover{color:var(--fps-dark-blue)}.vendor-detail-page{padding-bottom:80px}.vd-tabs{-webkit-overflow-scrolling:touch;border-bottom:2px solid var(--gray-200);display:flex;gap:0;margin-bottom:var(--space-5);overflow-x:auto}.vd-tab{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:var(--gray-500);cursor:pointer;display:flex;flex-shrink:0;font-family:inherit;font-size:var(--font-size-sm);font-weight:600;gap:var(--space-2);margin-bottom:-2px;padding:var(--space-3) var(--space-5);transition:color .15s ease,border-color .15s ease;white-space:nowrap}.vd-tab:hover{color:var(--gray-700)}.vd-tab:focus-visible{border-radius:var(--border-radius-sm);box-shadow:inset 0 0 0 2px #0038ee4d;outline:none}.vd-tab.active{border-bottom-color:var(--fps-red);color:var(--fps-dark-blue)}.vd-tab .vd-tab-label-mobile{display:none}.vd-tab-dirty-dot{background:var(--fps-vivid-blue);border-radius:50%;display:inline-block;height:6px;margin-left:2px;width:6px}.vd-tab-attention{background:#fef3c7;background:var(--status-warning-bg,#fef3c7);border-radius:50%;color:#b45309;color:var(--status-warning-icon,#b45309);width:16px}.vd-tab-attention,.vd-tab-count{align-items:center;display:inline-flex;font-size:10px;font-weight:700;height:16px;justify-content:center;line-height:1;margin-left:6px}.vd-tab-count{background:var(--fps-vivid-blue);border-radius:8px;color:#fff;min-width:18px;padding:0 5px}.vd-tab-body{display:flex;flex-direction:column}.vd-tab-placeholder{background:var(--gray-50);border:1px dashed var(--gray-300);padding:var(--space-8) var(--space-6);text-align:center}.vd-tab-placeholder-inner{margin:0 auto;max-width:540px}.vd-tab-placeholder-icon{color:var(--gray-400);margin-bottom:var(--space-3)}.vd-tab-placeholder-title{color:var(--fps-dark-blue);font-size:var(--font-size-lg);font-weight:700;margin:0 0 var(--space-2)}.vd-tab-placeholder-body{color:var(--gray-600);font-size:var(--font-size-sm);line-height:1.55;margin:0}.vd-tab-placeholder-anchor{color:var(--gray-500);font-size:var(--font-size-xs);margin-top:var(--space-4)}.vd-tab-placeholder-anchor code{background:var(--gray-100);border-radius:var(--border-radius-sm);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;padding:1px var(--space-2)}.vd-enabled-switch{align-items:center;background:#d1fae5;background:var(--status-success-bg,#d1fae5);border:1px solid #a7f3d0;border-radius:999px;color:#065f46;color:var(--status-success-text,#065f46);cursor:pointer;display:inline-flex;font-family:inherit;font-size:var(--font-size-sm);font-weight:600;gap:var(--space-2);padding:6px 12px 6px 10px;transition:background-color .15s ease,border-color .15s ease}.vd-enabled-switch:hover:not(:disabled){border-color:#6ee7b7}.vd-enabled-switch:disabled{cursor:not-allowed;opacity:.6}.vd-enabled-switch--off{background:var(--gray-100);border-color:var(--gray-300);color:var(--gray-600)}.vd-enabled-switch--off:hover:not(:disabled){border-color:var(--gray-400)}.vd-enabled-switch-track{background:#16a34a;border-radius:999px;flex-shrink:0;height:16px;position:relative;transition:background .15s;width:28px}.vd-enabled-switch--off .vd-enabled-switch-track{background:var(--gray-400)}.vd-enabled-switch-thumb{background:#fff;border-radius:50%;height:12px;position:absolute;right:2px;top:2px;transition:right .15s,left .15s;width:12px}.vd-enabled-switch--off .vd-enabled-switch-thumb{left:2px;right:auto}.vd-tab-savebar{align-items:center;background:#fff;border-top:1px solid var(--border-color);bottom:0;box-shadow:0 -4px 12px #0000000a;display:flex;justify-content:space-between;left:240px;left:var(--sidebar-width,240px);padding:var(--space-3) var(--space-6);position:fixed;right:0;z-index:50}.vd-tab-savebar-status{align-items:center;color:var(--gray-600);display:flex;font-size:var(--font-size-xs);gap:6px}.vd-tab-savebar-status svg{color:#b45309;color:var(--status-warning-icon,#b45309)}.vd-tab-savebar-actions{display:flex;gap:var(--space-2)}.vd-header{justify-content:space-between;margin-bottom:var(--space-5)}.vd-header,.vd-header-left{align-items:center;display:flex}.vd-header-left{gap:var(--space-4)}.vd-header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.vd-rescan-lookback{align-items:center;color:var(--gray-500);display:inline-flex;font-size:var(--font-size-xs);gap:6px}.vd-rescan-lookback select{font-size:var(--font-size-xs);padding:4px 6px}.vd-rescan-btn,.vd-rescan-lookback select{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm)}.vd-rescan-btn{align-items:center;color:var(--gray-700);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:6px;padding:6px 12px;transition:background 80ms ease}.vd-rescan-btn:hover:not(:disabled){background:var(--gray-50)}.vd-rescan-btn:disabled{cursor:not-allowed;opacity:.6}.vd-rescan-spinning{animation:vd-rescan-spin 1s linear infinite}@keyframes vd-rescan-spin{to{transform:rotate(1turn)}}.vd-rescan-result{border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);padding:4px 8px}.vd-rescan-result.ok{background:#f0fdf4;color:#16a34a;color:var(--success,#16a34a)}.vd-rescan-result.err{background:#fef2f2;color:#dc2626}.vd-favicon,.vd-favicon-fallback{border-radius:10px;flex-shrink:0;height:48px;width:48px}.vd-favicon-fallback{align-items:center;background:var(--fps-vivid-blue);color:#fff;display:flex;font-size:var(--font-size-lg);font-weight:700;justify-content:center;text-transform:uppercase}.vd-vendor-name{color:var(--fps-dark-blue);font-size:var(--font-size-xl);font-weight:700;margin:0}.vd-vendor-meta{align-items:center;color:var(--gray-500);display:flex;font-size:var(--font-size-sm);gap:var(--space-3);margin-top:var(--space-1)}.vd-vendor-meta span:after{color:var(--gray-300);content:"\00B7";margin-left:var(--space-3)}.vd-vendor-meta a:last-child~span:after,.vd-vendor-meta span:last-child:after{content:none}.vd-website-link{color:var(--fps-vivid-blue);font-weight:500}.vd-website-link:hover{text-decoration:underline}.vd-pdf-template-section{align-items:center;background:var(--gray-50);display:flex;justify-content:space-between;margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.vd-pdf-template-header{align-items:center;color:var(--gray-500);display:inline-flex;font-size:var(--font-size-xs);font-weight:600;gap:var(--space-2);letter-spacing:.5px;text-transform:uppercase}.vd-pdf-template-icon{color:var(--fps-vivid-blue)}.vd-pdf-template-body{align-items:center;display:inline-flex;gap:var(--space-3)}.vd-pdf-template-name{align-items:center;color:var(--fps-dark-blue);display:inline-flex;font-size:var(--font-size-sm);font-weight:600;gap:6px}.vd-pdf-template-check{color:#059669;color:var(--positive,#059669)}.vd-pdf-template-meta{align-items:center;color:var(--gray-500);display:inline-flex;font-size:11px;gap:var(--space-2)}.vd-pdf-template-status{background:var(--gray-200);border-radius:4px;color:var(--gray-700);display:inline-block;font-size:10px;font-weight:600;letter-spacing:.4px;padding:1px 6px;text-transform:uppercase}.vd-pdf-template-status--stable{background:#0596691f;color:#047857}.vd-pdf-template-status--beta{background:#d977061f;color:#b45309}.vd-pdf-template-status--experimental{background:#7c3aed1f;color:#6d28d9}.vd-pdf-template-status--orphan{background:#dc26261f;color:#b91c1c}.vd-pdf-template-version{color:var(--gray-500);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px}.vd-pdf-preview-btn{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--fps-vivid-blue);cursor:pointer;display:inline-flex;font-size:var(--font-size-xs);font-weight:600;gap:6px;padding:4px 10px;transition:background 80ms ease,border-color 80ms ease}.vd-pdf-preview-btn:hover:not(:disabled){background:#2563eb14;border-color:#2563eb66}.vd-pdf-preview-btn:disabled{cursor:not-allowed;opacity:.6}.vd-pdf-preview-error{color:#b91c1c;color:var(--negative,#b91c1c);font-size:11px;margin-left:var(--space-2);max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vd-stats-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(4,1fr);margin-bottom:var(--space-5)}@media (max-width:900px){.vd-stats-grid{grid-template-columns:repeat(2,1fr)}}.vd-stat-card{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);gap:var(--space-3);padding:var(--space-4)}.vd-stat-card,.vd-stat-icon{align-items:center;display:flex}.vd-stat-icon{border-radius:10px;flex-shrink:0;height:44px;justify-content:center;width:44px}.vd-stat-icon--blue{background:#dbeafe;background:var(--status-info-bg,#dbeafe);color:var(--fps-vivid-blue)}.vd-stat-icon--green{background:#d1fae5;background:var(--status-success-bg,#d1fae5);color:#16a34a}.vd-stat-icon--amber{background:#fef3c7;background:var(--status-warning-bg,#fef3c7);color:#f59e0b;color:var(--status-warning-icon,#f59e0b)}.vd-stat-icon--purple{background:#f5f3ff;color:#7c3aed}.vd-stat-info{display:flex;flex-direction:column}.vd-stat-label{color:var(--gray-500);font-size:var(--font-size-xs);font-weight:500;letter-spacing:.03em;text-transform:uppercase}.vd-stat-value{color:var(--fps-dark-blue);font-size:var(--font-size-lg);font-weight:700}.vd-section-header{align-items:center;border-bottom:1px solid var(--gray-100);display:flex;justify-content:space-between;padding:var(--space-4) var(--space-5)}.vd-section-header h3{color:var(--fps-dark-blue);font-size:var(--font-size-base);font-weight:700;margin:0}.vd-category-filter{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3)}.vd-category-section{margin-bottom:var(--space-5)}.vd-category-bars{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-5)}.vd-cat-row{align-items:center;display:flex;gap:var(--space-4)}.vd-cat-label{flex-shrink:0;width:160px}.vd-cat-name{color:var(--fps-dark-blue);display:block;font-size:var(--font-size-sm);font-weight:600}.vd-cat-count{color:var(--gray-400);font-size:var(--font-size-xs)}.vd-cat-bar-track{background:var(--gray-100);border-radius:var(--space-1);flex:1 1;height:var(--space-2);overflow:hidden}.vd-cat-bar-fill{background:var(--fps-vivid-blue);border-radius:var(--space-1);height:100%;min-width:var(--space-1);transition:width .3s ease}.vd-cat-amount{color:var(--fps-dark-blue);flex-shrink:0;font-size:var(--font-size-sm);font-weight:600;text-align:right;width:100px}.vd-clients-section,.vd-spend-section{margin-bottom:var(--space-5)}.vd-section-title-with-icon{align-items:center;color:var(--fps-dark-blue);display:flex;font-size:var(--font-size-base);font-weight:700;gap:var(--space-2);margin:0}.vd-section-icon{color:var(--gray-400)}.vd-year-tabs{background:var(--gray-100);border-radius:var(--border-radius-sm);display:flex;gap:var(--space-1);padding:3px}.vd-year-tab{background:#0000;border:none;border-radius:var(--space-1);color:var(--gray-500);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);font-weight:600;padding:5px 14px;transition:all .15s}.vd-year-tab.active{background:#fff;box-shadow:0 1px 2px #0000000d;color:var(--fps-vivid-blue)}.vd-year-tab:hover:not(.active){color:var(--gray-700)}.vd-spend-body{padding:var(--space-5)}.vd-year-summary-row{display:flex;gap:var(--space-4);margin-bottom:var(--space-5)}.vd-year-summary-card{background:var(--gray-50);border:1px solid var(--border-color);border-radius:var(--border-radius);flex:1 1;padding:14px var(--space-4)}.vd-year-summary-card.highlight{background:#dbeafe;background:var(--status-info-bg,#dbeafe);border-color:#bfdbfe}.vd-ysc-label{color:var(--gray-500);font-size:var(--font-size-xs);letter-spacing:.5px;text-transform:uppercase}.vd-ysc-value{color:var(--gray-900);font-size:var(--font-size-xl);font-weight:700;margin-top:var(--space-1)}.vd-ysc-sub{color:var(--gray-500);font-size:var(--font-size-sm);margin-top:2px}.vd-chart-container{position:relative}.vd-bar-chart{align-items:flex-end;height:160px;padding-top:var(--space-5)}.vd-bar-chart,.vd-bar-col{display:flex;gap:var(--space-2)}.vd-bar-col{align-items:center;flex:1 1;flex-direction:column;height:100%;justify-content:flex-end}.vd-bar{background:var(--fps-vivid-blue);border-radius:var(--space-1) var(--space-1) 0 0;cursor:pointer;max-width:48px;min-height:2px;transition:height .4s ease,background .2s;width:100%}.vd-bar:hover{background:var(--fps-dark-blue)!important}.vd-bar-label{color:var(--gray-400);font-weight:500}.vd-bar-label,.vd-bar-value{font-size:var(--font-size-xs)}.vd-bar-value{color:var(--gray-600);font-weight:600;opacity:0;transition:opacity .2s;white-space:nowrap}.vd-bar-col:hover .vd-bar-value{opacity:1}.vd-trend-svg{height:160px;left:0;pointer-events:none;position:absolute;top:var(--space-5);width:100%}.vd-stat-change{align-items:center;display:flex;font-size:var(--font-size-xs);font-weight:600;gap:3px;margin-top:2px}.change-up{color:#065f46;color:var(--status-success-text,#065f46)}.change-down{color:#ef4444;color:var(--status-error-icon,#ef4444)}.vd-value-up{color:#065f46;color:var(--status-success-text,#065f46)}.vd-value-down{color:#ef4444;color:var(--status-error-icon,#ef4444)}.vd-clients-body{padding:var(--space-5)}.vd-client-list{display:flex;flex-direction:column;gap:14px}.vd-client-row{gap:14px}.vd-client-rank,.vd-client-row{align-items:center;display:flex}.vd-client-rank{background:var(--gray-100);border-radius:50%;color:var(--gray-500);flex-shrink:0;font-size:var(--font-size-xs);font-weight:700;height:var(--space-6);justify-content:center;width:var(--space-6)}.vd-client-rank.top{background:#dbeafe;background:var(--status-info-bg,#dbeafe);color:var(--fps-vivid-blue)}.vd-client-info{flex:1 1;min-width:0}.vd-client-name{color:var(--gray-800);font-size:var(--font-size-sm);font-weight:600}.vd-client-meta{color:var(--gray-400);font-size:var(--font-size-xs);margin-top:1px}.vd-client-bar-track{background:var(--gray-100);border-radius:var(--space-1);height:var(--space-2);margin-top:var(--space-2);overflow:hidden}.vd-client-bar-fill{border-radius:var(--space-1);height:100%;transition:width .5s ease}.vd-client-bar-fill--unallocated{background:#ef4444;background:var(--status-error-icon,#ef4444);opacity:.5}.vd-client-amount{color:var(--gray-800);font-size:var(--font-size-base);font-weight:700;min-width:90px;text-align:right}.vd-client-pct{color:var(--gray-400);font-size:var(--font-size-xs);min-width:44px;text-align:right}.vd-unallocated-tag{background:#fef3c7;background:var(--status-warning-bg,#fef3c7);border-radius:var(--space-1);color:#92400e;color:var(--status-warning-text,#92400e);font-size:var(--font-size-xs);font-weight:600;margin-left:var(--space-2);padding:2px 7px;vertical-align:middle}.vd-alloc-divider{background:var(--border-color);height:1px;margin:var(--space-4) 0}.vd-alloc-summary{background:var(--gray-50);border-radius:var(--border-radius-sm);display:flex;gap:var(--space-5);padding:var(--space-3) var(--space-4)}.vd-alloc-summary-item{display:flex;flex-direction:column}.vd-alloc-summary-label{color:var(--gray-400);font-size:var(--font-size-xs);letter-spacing:.5px;text-transform:uppercase}.vd-alloc-summary-value{color:var(--gray-800);font-size:var(--font-size-md);font-weight:700;margin-top:2px}.vd-alloc-value-warn{color:#f59e0b;color:var(--status-warning-icon,#f59e0b)}.vd-loading{color:var(--gray-500)}.vd-error,.vd-loading{padding:var(--space-6);text-align:center}.vd-error{color:#991b1b;color:var(--status-error-text,#991b1b)}.vd-empty{color:var(--gray-500);padding:var(--space-5);text-align:center}.amount-cell{font-weight:600;text-align:right}.vendor-detail-page tbody tr{transition:background-color .1s cubic-bezier(.4,0,.2,1)}.vd-th-icon{height:16px;vertical-align:middle;width:16px}@media (max-width:768px){.vd-header{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.vd-header-left{flex-wrap:wrap}.vd-vendor-name{font-size:var(--font-size-lg)}.vd-vendor-meta{flex-wrap:wrap;gap:var(--space-2)}.vd-stats-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr)}.vd-stat-card{padding:var(--space-3)}.vd-stat-value{font-size:var(--font-size-md)}.vd-year-summary-row{flex-wrap:wrap}.vd-year-summary-card{flex:0 0 100%}.vd-ysc-value{font-size:var(--font-size-lg)}.vd-cat-row{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.vd-cat-label{width:100%}.vd-cat-amount{text-align:left;width:auto}.vd-alloc-summary{flex-wrap:wrap;gap:var(--space-3)}.vd-alloc-summary-item{flex:1 0 40%}.vd-client-row{flex-wrap:wrap}.vd-client-amount,.vd-client-pct{min-width:auto}.vd-year-tabs{-webkit-overflow-scrolling:touch;overflow-x:auto}.vd-year-tab{flex-shrink:0;min-height:44px;padding:var(--space-2) var(--space-4)}.vd-section-header{align-items:flex-start;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.vd-category-filter{font-size:16px;min-height:44px;width:100%}.vd-category-bars,.vd-clients-body,.vd-spend-body{padding:var(--space-4)}.vendor-detail-page .back-btn{align-items:center;display:inline-flex;min-height:44px}.vendor-detail-page .btn-primary,.vendor-detail-page .btn-secondary,.vendor-detail-page button[class*=btn]{justify-content:center;min-height:44px;width:100%}.vd-receipts-table thead{display:none}.vd-receipts-table,.vd-receipts-table tbody{display:block}.vd-receipts-table tbody{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}.vd-receipts-table tr{grid-gap:var(--space-1) var(--space-2);background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;display:grid;gap:var(--space-1) var(--space-2);grid-template-columns:1fr auto;grid-template-rows:auto auto auto;padding:var(--space-3)}.vd-receipts-table td{border:none;padding:0}.vd-receipts-table td:nth-child(3){color:var(--gray-500);font-size:var(--font-size-sm);grid-column:1;grid-row:1;text-align:left}.vd-receipts-table td.amount-cell{color:var(--fps-dark-blue);font-size:var(--font-size-base);font-weight:700;grid-column:2;grid-row:1;text-align:right}.vd-receipts-table td:first-child{color:var(--gray-800);font-size:var(--font-size-sm);font-weight:600;grid-column:1/-1;grid-row:2;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vd-receipts-table td:nth-child(2){display:none}.vd-receipts-table td:nth-child(5){align-items:center;display:flex;gap:var(--space-2);grid-column:1;grid-row:3}.vd-receipts-table td:nth-child(6){align-items:center;display:flex;grid-column:2;grid-row:3;justify-content:flex-end}.vd-receipts-table td:nth-child(7){display:none}.vendor-detail-page .card{overflow:visible}}.vendor-detail-page .source-badge-sm{align-items:center;border-radius:10px;display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:3px;padding:2px var(--space-2);white-space:nowrap}.vendor-detail-page .source-badge-sm.source-email{background:#dbeafe;background:var(--status-info-bg,#dbeafe);color:var(--fps-vivid-blue)}.vendor-detail-page .source-badge-sm.source-manual{background:#f5f3ff;color:#7c3aed}.vendor-detail-page .integration-badge{align-items:center;border-radius:10px;display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:var(--space-1);padding:2px var(--space-2);white-space:nowrap}.vendor-detail-page .integration-icon{border-radius:2px;height:var(--space-3);width:var(--space-3)}.vendor-detail-page .integration-badge.qb-matched{background:#d1fae5;background:var(--status-success-bg,#d1fae5);color:#065f46;color:var(--status-success-text,#065f46)}.vendor-detail-page .integration-badge.qb-awaiting{background:#fef3c7;background:var(--status-warning-bg,#fef3c7);color:#f59e0b;color:var(--status-warning-icon,#f59e0b)}.vendor-detail-page .integration-badge.tw-synced{background:#dbeafe;background:var(--status-info-bg,#dbeafe);color:#1e40af;color:var(--status-info-text,#1e40af)}.vendor-detail-page .integration-badge.tw-none{color:var(--gray-300)}.vendor-detail-page .subject-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.em-section{margin-bottom:var(--space-4);overflow:visible}.em-section-header{align-items:flex-start;background:var(--gray-50);border-bottom:1px solid var(--border-color);display:flex;gap:var(--space-3);padding:var(--space-4) var(--space-5)}.em-section-header svg{color:var(--fps-vivid-blue);flex-shrink:0;margin-top:2px}.em-section-header h2{color:var(--fps-dark-blue);font-size:var(--font-size-md);font-weight:600;margin:0}.em-section-header p{color:var(--gray-500);font-size:var(--font-size-xs);line-height:1.45;margin:2px 0 0}.em-section-body{padding:var(--space-5)}.em-help{background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--border-radius-sm);color:#1e40af;display:flex;font-size:var(--font-size-sm);gap:var(--space-3);line-height:1.55;margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.em-help svg{color:var(--fps-vivid-blue);flex-shrink:0;margin-top:2px}.em-filter-row{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);display:flex;gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3)}.em-filter-row svg{color:var(--gray-400);flex-shrink:0}.em-filter-row input{background:#0000;border:none;color:var(--gray-800);flex:1 1;font-family:inherit;font-size:var(--font-size-sm);min-width:0;outline:none}.vd-danger-zone{background:#fffbfb;border-color:#fecaca}.vd-danger-zone-header{align-items:flex-start;background:#fef2f2;border-bottom:1px solid #fee2e2;display:flex;gap:var(--space-3);padding:var(--space-4) var(--space-5)}.vd-danger-zone-header svg{color:#dc2626;color:var(--status-error-icon,#dc2626);flex-shrink:0;margin-top:2px}.vd-danger-zone-header h2{color:#991b1b;font-size:var(--font-size-md);font-weight:600;margin:0}.vd-danger-zone-header p{color:#7f1d1d;font-size:var(--font-size-xs);line-height:1.45;margin:2px 0 0}.vd-danger-zone-header code{background:#dc262614;border-radius:3px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:var(--font-size-xs);padding:1px var(--space-1)}.vd-danger-zone-body{padding:var(--space-4) var(--space-5)}.routed-badge{align-items:center;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:10px;color:#6d28d9;cursor:pointer;display:inline-flex;font-family:inherit;font-size:var(--font-size-xs);font-weight:500;gap:4px;margin-left:var(--space-2);max-width:220px;overflow:hidden;padding:2px var(--space-2);white-space:nowrap}.routed-badge:hover{background:#ede9fe;text-decoration:none}.routed-badge-label{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:768px){.vd-tab{min-height:44px;padding:var(--space-3) var(--space-4)}.vd-tab .vd-tab-label{display:none}.vd-tab .vd-tab-label-mobile{display:inline}.vd-tab-savebar{left:0;padding:var(--space-3) var(--space-4)}.vd-enabled-switch{order:1}.em-section-header,.vd-danger-zone-header{padding:var(--space-3) var(--space-4)}.em-section-body,.vd-danger-zone-body{padding:var(--space-4)}}.vd-routing-section{margin-bottom:var(--space-5)}.vd-section-subtitle{color:var(--gray-400);font-size:var(--font-size-sm)}.vd-routing-settings{align-items:stretch;background:var(--gray-50);border-bottom:1px solid var(--gray-100);display:flex}.vd-routing-setting{align-items:flex-start;display:flex;flex:1 1;gap:var(--space-3);padding:var(--space-4) var(--space-5)}.vd-routing-setting+.vd-routing-setting{border-left:1px solid var(--gray-100)}.vd-routing-setting-toggle{flex-shrink:0;margin-top:2px}.vd-routing-setting-text{display:flex;flex-direction:column;gap:2px;min-width:0}.vd-routing-setting-title{align-items:center;color:var(--fps-dark-blue);display:inline-flex;font-size:var(--font-size-sm);font-weight:600;gap:6px}.vd-routing-setting-tagline{color:var(--gray-500);font-size:var(--font-size-xs);line-height:1.45}.vd-routing-settings-footnote{background:var(--gray-50);border-bottom:1px solid var(--gray-100);color:var(--gray-500);font-size:11px;line-height:1.5;padding:var(--space-2) var(--space-5)}.vd-toggle{background:var(--gray-300);border:none;border-radius:999px;cursor:pointer;display:inline-block;flex-shrink:0;height:18px;padding:0;position:relative;transition:background .15s ease;width:30px}.vd-toggle:disabled{cursor:not-allowed;opacity:.5}.vd-toggle.is-on{background:var(--fps-vivid-blue)}.vd-toggle-thumb{background:#fff;border-radius:50%;box-shadow:0 1px 2px #00000026;height:14px;left:2px;position:absolute;top:2px;transition:left .15s ease;width:14px}.vd-toggle.is-on .vd-toggle-thumb{left:14px}.vd-routing-body{padding:var(--space-5)}.vd-routing-intro{background:var(--gray-50);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--gray-600);display:flex;font-size:var(--font-size-sm);gap:var(--space-3);line-height:1.55;margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.vd-routing-intro-icon{color:var(--fps-vivid-blue);flex-shrink:0;margin-top:2px}.vd-routing-intro strong{color:var(--fps-dark-blue);font-weight:600}.vd-routing-active-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.vd-routing-active-title{align-items:center;color:var(--fps-dark-blue);display:inline-flex;font-size:var(--font-size-base);font-weight:700;gap:var(--space-2);margin:0}.vd-routing-active-count{align-items:center;background:var(--gray-100);border-radius:10px;color:var(--gray-600);display:inline-flex;font-size:var(--font-size-xs);font-weight:600;height:20px;justify-content:center;min-width:22px;padding:0 6px}.vd-routing-add-btn{align-items:center;display:inline-flex;gap:6px}.vd-routing-empty,.vd-routing-loading{background:var(--gray-50);border:1px dashed var(--gray-300);border-radius:var(--border-radius-sm);color:var(--gray-500);font-size:var(--font-size-sm);padding:var(--space-5);text-align:center}.vd-routing-list{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);display:flex;flex-direction:column;overflow:hidden}.vd-routing-row{grid-gap:var(--space-3);align-items:center;background:#fff;border-bottom:1px solid var(--gray-100);display:grid;gap:var(--space-3);grid-template-columns:48px minmax(180px,1.2fr) minmax(160px,1fr) minmax(140px,auto) 110px 120px;padding:var(--space-3) var(--space-4);transition:box-shadow .4s ease,background .15s ease}.vd-routing-row:last-child{border-bottom:none}.vd-routing-row.is-header{font-size:var(--font-size-xs);font-weight:600;letter-spacing:.5px;padding:var(--space-2) var(--space-4);text-transform:uppercase}.vd-routing-row.is-header,.vd-routing-row.is-paused{background:var(--gray-50);color:var(--gray-500)}.vd-routing-row.is-paused .vd-routing-target-name{color:var(--gray-500)}.vd-routing-row.is-highlighted{background:#eff6ff;box-shadow:0 0 0 3px var(--fps-vivid-blue)}.vd-routing-col-priority{text-align:center}.vd-routing-priority-input{-moz-appearance:textfield;background:#0000;border:1px solid #0000;border-radius:var(--border-radius-sm);color:var(--fps-dark-blue);font-family:inherit;font-size:var(--font-size-sm);font-weight:600;padding:3px 4px;text-align:center;width:40px}.vd-routing-priority-input::-webkit-inner-spin-button,.vd-routing-priority-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.vd-routing-priority-input:hover{border-color:var(--gray-300)}.vd-routing-priority-input:focus{background:#fff;border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.vd-routing-col-stats{text-align:right}.vd-routing-match{display:flex;flex-direction:column;gap:2px;min-width:0}.vd-routing-match-label{color:var(--gray-500);font-size:var(--font-size-xs)}.vd-routing-match-value{align-self:flex-start;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:4px;color:var(--fps-dark-blue);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px;font-weight:600;max-width:100%;overflow:hidden;padding:2px 6px;text-overflow:ellipsis;white-space:nowrap}.vd-routing-target{display:flex;flex-direction:column;min-width:0}.vd-routing-target-name{color:var(--gray-800);font-size:var(--font-size-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vd-routing-target-meta{align-items:center;color:var(--gray-400);display:flex;flex-wrap:wrap;font-size:var(--font-size-xs);gap:4px;margin-top:1px}.vd-routing-target-project{color:var(--gray-500)}.vd-routing-flags{display:flex;flex-wrap:wrap;gap:4px}.vd-routing-flag{align-items:center;background:var(--gray-100);border-radius:10px;color:var(--gray-600);display:inline-flex;font-size:10px;font-weight:600;gap:4px;letter-spacing:.3px;padding:2px 7px;text-transform:uppercase;white-space:nowrap}.vd-routing-flag--tw{background:#dbeafe;background:var(--status-info-bg,#dbeafe);color:#1e40af;color:var(--status-info-text,#1e40af)}.vd-routing-flag--reviewed{background:#d1fae5;background:var(--status-success-bg,#d1fae5);color:#065f46;color:var(--status-success-text,#065f46)}.vd-routing-flag--markup{background:#fef3c7;background:var(--status-warning-bg,#fef3c7);color:#92400e;color:var(--status-warning-text,#92400e)}.vd-routing-stats{color:var(--gray-500);font-size:var(--font-size-xs);line-height:1.3;text-align:right}.vd-routing-stats strong{color:var(--gray-800);display:block;font-size:var(--font-size-sm);font-weight:700}.vd-routing-stats-meta{display:block}.vd-routing-actions{align-items:center;display:flex;gap:var(--space-1);justify-content:flex-end}.vd-routing-row-toggle{margin-right:var(--space-1)}.vd-routing-icon-btn{align-items:center;background:#0000;border:none;border-radius:var(--border-radius-sm);color:var(--gray-400);cursor:pointer;display:inline-flex;height:28px;justify-content:center;transition:background .15s ease,color .15s ease;width:28px}.vd-routing-icon-btn:hover{background:var(--gray-100);color:var(--gray-700)}.vd-routing-icon-btn--danger:hover{background:#fee2e2;background:var(--status-error-bg,#fee2e2);color:#ef4444;color:var(--status-error-icon,#ef4444)}.vd-routing-suggested{background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--border-radius-sm);margin-top:var(--space-4);overflow:hidden}.vd-routing-suggested-header{align-items:center;border-bottom:1px solid #bfdbfe;color:#1e40af;display:flex;font-size:var(--font-size-sm);font-weight:600;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.vd-routing-suggested-header-icon{color:#1e40af}.vd-routing-suggested-count{background:#ffffffb3;border:1px solid #bfdbfe;border-radius:10px;color:#1e40af;font-size:var(--font-size-xs);font-weight:600;margin-left:auto;padding:1px 8px}.vd-routing-suggested-row{grid-gap:var(--space-3);align-items:center;border-bottom:1px solid #bfdbfe80;display:grid;gap:var(--space-3);grid-template-columns:minmax(0,1.5fr) 18px minmax(0,1fr) auto;padding:var(--space-3) var(--space-4)}.vd-routing-suggested-row:last-child{border-bottom:none}.vd-routing-arrow{align-items:center;color:var(--gray-400);display:flex;justify-content:center}.vd-routing-suggested-evidence{color:var(--gray-600);font-size:var(--font-size-xs);line-height:1.4;margin-top:4px}.vd-routing-suggested-actions{display:flex;gap:var(--space-2)}.btn-suggest-approve{align-items:center;background:var(--fps-vivid-blue);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;display:inline-flex;font-size:var(--font-size-xs);font-weight:600;gap:4px;padding:6px 12px;transition:background .15s ease}.btn-suggest-approve:hover:not(:disabled){background:var(--fps-dark-blue)}.btn-suggest-approve:disabled{cursor:not-allowed;opacity:.6}.btn-suggest-dismiss{align-items:center;background:#fff;border:1px solid var(--gray-300);border-radius:var(--border-radius-sm);color:var(--gray-600);cursor:pointer;display:inline-flex;font-size:var(--font-size-xs);font-weight:600;gap:4px;padding:6px 12px;transition:background .15s ease,border-color .15s ease}.btn-suggest-dismiss:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-400)}.btn-suggest-dismiss:disabled{cursor:not-allowed;opacity:.6}.vd-routing-coverage{background:var(--gray-50);border-radius:var(--border-radius-sm);display:flex;flex-wrap:wrap;gap:var(--space-5);margin-top:var(--space-4);padding:var(--space-3) var(--space-4)}.vd-routing-coverage-item{display:flex;flex-direction:column}.vd-routing-coverage-label{color:var(--gray-400);font-size:var(--font-size-xs);letter-spacing:.5px;text-transform:uppercase}.vd-routing-coverage-value{color:var(--gray-800);font-size:var(--font-size-md);font-weight:700;margin-top:2px}.vd-routing-anchor-missing{align-items:center;background:#fef3c7;background:var(--status-warning-bg,#fef3c7);border:1px solid #fde68a;border-radius:var(--border-radius-sm);color:#92400e;color:var(--status-warning-text,#92400e);display:flex;font-size:var(--font-size-sm);gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.vd-routing-anchor-missing svg{color:#f59e0b;color:var(--status-warning-icon,#f59e0b);flex-shrink:0}.vd-projects-disabled{background:var(--gray-50);border:1px dashed var(--gray-300);border-radius:var(--border-radius-sm);color:var(--gray-500);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3)}@media (max-width:900px){.vd-routing-row{gap:var(--space-2);grid-template-columns:1fr}.vd-routing-row.is-header{display:none}.vd-routing-col-stats,.vd-routing-stats{text-align:left}.vd-routing-actions{justify-content:flex-start}.vd-routing-settings{flex-direction:column}.vd-routing-setting+.vd-routing-setting{border-left:none;border-top:1px solid var(--gray-100)}.vd-routing-suggested-row{grid-template-columns:1fr}.vd-routing-arrow{display:none}}.reports-page .page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-5)}.reports-page .page-header h1{color:var(--fps-dark-blue);font-size:var(--font-size-xl);font-weight:700;margin:0}.rpt-header-left{align-items:center;display:flex;gap:var(--space-3)}.rpt-header-icon{color:var(--gray-400)}.rpt-stats-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(4,1fr);margin-bottom:var(--space-5)}@media (max-width:900px){.rpt-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.rpt-stats-grid{grid-template-columns:1fr}}.rpt-stat-card{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);gap:var(--space-3);padding:var(--space-4)}.rpt-stat-card,.rpt-stat-icon{align-items:center;display:flex}.rpt-stat-icon{border-radius:var(--border-radius-lg);flex-shrink:0;height:44px;justify-content:center;width:44px}.rpt-stat-icon--green{background:#d1fae5;background:var(--status-success-bg,#d1fae5);color:#16a34a}.rpt-stat-icon--blue{background:#dbeafe;background:var(--status-info-bg,#dbeafe);color:var(--fps-vivid-blue)}.rpt-stat-icon--amber{background:#fef3c7;background:var(--status-warning-bg,#fef3c7);color:#f59e0b;color:var(--status-warning-icon,#f59e0b)}.rpt-stat-icon--purple{background:#f5f3ff;color:#7c3aed}.rpt-stat-info{display:flex;flex-direction:column}.rpt-stat-label{color:var(--gray-500);font-size:var(--font-size-xs);font-weight:500;letter-spacing:.03em;text-transform:uppercase}.rpt-stat-value{color:var(--fps-dark-blue);font-size:var(--font-size-lg);font-weight:700}.rpt-stat-sub{color:var(--gray-500);cursor:help;font-size:10px;font-weight:500;letter-spacing:.04em;margin-top:2px;text-transform:uppercase}.rpt-date-range-bar{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.rpt-date-presets{display:flex;gap:var(--space-1)}.rpt-date-pill{background:var(--gray-100);border-radius:20px;color:var(--gray-600);font-size:var(--font-size-xs);font-weight:500;padding:6px 14px;transition:all .15s}.rpt-date-pill:hover{background:var(--gray-200)}.rpt-date-pill.active{background:var(--fps-dark-blue);color:#fff}.rpt-date-inputs{align-items:center;display:flex;gap:6px}.rpt-date-input{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);padding:6px 10px}.rpt-date-separator{color:var(--gray-400);font-size:var(--font-size-xs)}.rpt-tabs{border-bottom:2px solid var(--border-color);display:flex;gap:0;margin-bottom:var(--space-4)}.rpt-tab{align-items:center;border-bottom:2px solid #0000;color:var(--gray-500);display:inline-flex;font-size:var(--font-size-sm);font-weight:600;gap:var(--space-2);margin-bottom:-2px;padding:10px 20px;transition:all .15s}.rpt-tab.active,.rpt-tab:hover{color:var(--fps-dark-blue)}.rpt-tab.active{border-bottom-color:var(--fps-red)}.rpt-message{align-items:center;color:var(--gray-500);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-6);text-align:center}.rpt-bold{font-weight:600}.rpt-total-row{border-top:2px solid var(--border-color)}.rpt-total-row td{font-weight:700;padding-top:var(--space-3)}.rpt-clickable-row{cursor:pointer;transition:background-color .1s cubic-bezier(.4,0,.2,1)}.rpt-clickable-row:hover{background:var(--gray-50)}.rpt-chevron-col{width:32px}.rpt-chevron-cell{text-align:center;width:32px}.rpt-chevron{color:var(--gray-400);transition:transform .2s ease}.rpt-chevron--expanded{transform:rotate(90deg)}.rpt-vendor-name-cell{align-items:center;display:flex;font-weight:600;gap:var(--space-2)}.rpt-vendor-favicon{border-radius:4px;flex-shrink:0;height:20px;width:20px}.rpt-expansion-row{background:var(--gray-50)}.rpt-expansion-cell{padding:0}.rpt-expansion-panel{animation:rptSlideDown .2s ease-out;border-top:1px solid var(--border-color);padding:var(--space-4) var(--space-5)}@keyframes rptSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.rpt-expansion-loading{align-items:center;color:var(--gray-500);display:flex;gap:var(--space-2)}.rpt-expansion-empty,.rpt-expansion-loading{font-size:var(--font-size-sm);padding:var(--space-3) 0}.rpt-expansion-empty{color:var(--gray-400)}.rpt-section-title{align-items:center;color:var(--fps-dark-blue);display:flex;font-size:var(--font-size-sm);font-weight:700;gap:var(--space-2);margin-bottom:var(--space-4)}.rpt-section-icon{color:var(--gray-400)}.rpt-client-list{display:flex;flex-direction:column;gap:14px}.rpt-client-row{align-items:center;display:flex;gap:14px}.rpt-client-rank{align-items:center;background:var(--gray-100);border-radius:50%;color:var(--gray-500);display:flex;flex-shrink:0;font-size:var(--font-size-xs);font-weight:700;height:var(--space-6);justify-content:center;width:var(--space-6)}.rpt-client-rank--top{background:#dbeafe;background:var(--status-info-bg,#dbeafe);color:var(--fps-vivid-blue)}.rpt-client-info{flex:1 1;min-width:0}.rpt-client-name{color:var(--gray-800);font-size:var(--font-size-sm);font-weight:600}.rpt-client-meta{color:var(--gray-400);font-size:var(--font-size-xs);margin-top:1px}.rpt-bar-track{background:var(--gray-200);border-radius:var(--space-1);height:var(--space-2);margin-top:var(--space-2);overflow:hidden}.rpt-bar-fill{border-radius:var(--space-1);height:100%;min-width:var(--space-1);transition:width .5s ease}.rpt-bar-fill--unallocated{background:#ef4444;background:var(--status-error-icon,#ef4444);opacity:.5}.rpt-client-amount{color:var(--gray-800);font-size:var(--font-size-base);font-weight:700;min-width:90px;text-align:right}.rpt-client-pct{color:var(--gray-400);font-size:var(--font-size-xs);min-width:44px;text-align:right}.rpt-drilldown-clickable{border-radius:var(--border-radius-sm);cursor:pointer;transition:background .15s ease}.rpt-drilldown-clickable:hover{background:var(--gray-100)}.rpt-unallocated-tag{background:#fef3c7;background:var(--status-warning-bg,#fef3c7);border-radius:var(--space-1);color:#92400e;color:var(--status-warning-text,#92400e);font-size:var(--font-size-xs);font-weight:600;margin-left:var(--space-2);padding:2px 7px;vertical-align:middle}.rpt-alloc-divider{background:var(--border-color);height:1px;margin:var(--space-4) 0}.rpt-summary-footer{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);display:flex;gap:var(--space-5);padding:var(--space-3) var(--space-4)}.rpt-summary-item{display:flex;flex-direction:column}.rpt-summary-label{color:var(--gray-400);font-size:var(--font-size-xs);letter-spacing:.5px;text-transform:uppercase}.rpt-summary-value{color:var(--gray-800);font-size:var(--font-size-md);font-weight:700;margin-top:2px}.rpt-summary-value--warn{color:#f59e0b;color:var(--status-warning-icon,#f59e0b)}.reports-page .spin{animation:rptSpin 1s linear infinite}@keyframes rptSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.rpt-mobile-only{display:none}@media (max-width:768px){.reports-page .page-header{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.rpt-stats-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr)}.rpt-stat-card{padding:var(--space-3)}.rpt-stat-value{font-size:var(--font-size-md)}.rpt-summary-footer{flex-wrap:wrap;gap:var(--space-3)}.rpt-client-row{flex-wrap:wrap}.rpt-client-amount{min-width:auto}.rpt-date-range-bar{align-items:stretch;flex-direction:column}.rpt-date-presets{flex-wrap:wrap}.rpt-date-pill{align-items:center;display:flex;justify-content:center;min-height:44px;padding:6px 16px}.rpt-date-inputs{flex-direction:column;gap:var(--space-2)}.rpt-date-input{font-size:16px;min-height:44px;min-width:0;width:100%}.rpt-date-separator{text-align:center}.rpt-tabs{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;overflow-x:auto;scrollbar-width:none}.rpt-tabs::-webkit-scrollbar{display:none}.rpt-tab{flex-shrink:0;min-height:44px;padding:10px 14px;white-space:nowrap}.rpt-desktop-only{display:none}.rpt-mobile-only{display:flex}.rpt-expansion-panel{padding:var(--space-3)}.rpt-section-title{font-size:var(--font-size-xs)}.rpt-client-pct{min-width:36px}}.rpt-card-list{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2)}.rpt-mobile-card{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);overflow:hidden;padding:var(--space-3)}.rpt-mobile-card-header{-webkit-tap-highlight-color:transparent;cursor:pointer}.rpt-mobile-card-row{justify-content:space-between}.rpt-mobile-card-name,.rpt-mobile-card-row{align-items:center;display:flex;gap:var(--space-2)}.rpt-mobile-card-name{color:var(--gray-800);font-size:var(--font-size-sm);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rpt-mobile-card-amount{color:var(--fps-dark-blue);flex-shrink:0;font-size:var(--font-size-base);font-weight:700}.rpt-mobile-card-meta{color:var(--gray-500);font-size:var(--font-size-xs);margin-top:var(--space-1)}.rpt-mobile-card .rpt-expansion-panel{animation:rptSlideDown .2s ease-out;border-top:1px solid var(--border-color);margin-top:var(--space-3);padding-top:var(--space-3)}.rpt-mobile-total-card{align-items:center;border-top:2px solid var(--border-color);color:var(--fps-dark-blue);display:flex;font-size:var(--font-size-base);justify-content:space-between;padding:var(--space-3)}.drawer-overlay{animation:drawerFadeIn .15s ease-out;background:#0000004d;bottom:0;left:0;position:fixed;right:0;top:0;z-index:999}@keyframes drawerFadeIn{0%{opacity:0}to{opacity:1}}.drawer{animation:drawerSlideIn .2s ease-out;background:#fff;bottom:0;box-shadow:-8px 0 24px #0000001f;display:flex;flex-direction:column;position:fixed;right:0;top:0;width:520px;z-index:1000}@keyframes drawerSlideIn{0%{transform:translateX(100%)}to{transform:translateX(0)}}.drawer-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;flex-shrink:0;gap:var(--space-2);padding:var(--space-4) var(--space-5)}.drawer-badge{border-radius:12px;display:inline-block;font-size:var(--font-size-xs);font-weight:600;padding:3px 10px}.drawer-badge.severity-critical,.drawer-badge.severity-error{background:#fee2e2;color:#991b1b}.drawer-badge.severity-warning{background:#fef3c7;color:#92400e}.drawer-badge.severity-info{background:#dbeafe;color:#1e40af}.drawer-badge.status-failed{background:#fee2e2;color:#991b1b}.drawer-badge.status-retry{background:#fef3c7;color:#92400e}.drawer-badge.status-processing{background:#dbeafe;color:#1e40af}.drawer-badge.status-resolved{background:#d1fae5;color:#065f46}.drawer-close{align-items:center;background:none;border:none;border-radius:var(--border-radius-sm);color:var(--gray-400);cursor:pointer;display:flex;height:32px;justify-content:center;margin-left:auto;transition:all .15s;width:32px}.drawer-close:hover{background:var(--gray-100);color:var(--fps-dark-blue)}.drawer-body{flex:1 1;overflow-y:auto;padding:var(--space-5)}.drawer-section{margin-bottom:var(--space-5)}.drawer-section-title{color:var(--gray-400);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.04em;margin-bottom:var(--space-3);text-transform:uppercase}.error-summary-header{align-items:center;display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.error-summary-header .task-pill{background:var(--gray-100);border-radius:10px;display:inline-block;font-weight:500;padding:2px 8px;text-transform:capitalize}.error-summary-header .category-text,.error-summary-header .task-pill{color:var(--gray-600);font-size:var(--font-size-xs)}.error-summary-message{color:var(--fps-dark-blue);font-size:var(--font-size-base);font-weight:600;line-height:1.5;margin-bottom:var(--space-3)}.hint-callout{align-items:flex-start;background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--border-radius-sm);display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.hint-callout-icon{color:#2563eb;flex-shrink:0;margin-top:1px}.hint-callout-text{color:#1e40af;font-size:var(--font-size-sm);line-height:1.5}.context-grid{grid-gap:var(--space-2) var(--space-3);align-items:baseline;display:grid;gap:var(--space-2) var(--space-3);grid-template-columns:100px 1fr}.context-label{color:var(--gray-500);font-size:var(--font-size-sm);font-weight:500;text-align:right}.context-value{color:var(--fps-body-text);font-size:var(--font-size-sm)}.context-link{align-items:center;color:var(--fps-vivid-blue);display:inline-flex;gap:var(--space-1);text-decoration:none}.context-link:hover{text-decoration:underline}.context-mono{color:var(--gray-600);font-family:SF Mono,Fira Code,Consolas,monospace;font-size:var(--font-size-xs)}.timeline{padding-left:24px;position:relative}.timeline:before{background:var(--border-color);bottom:8px;content:"";left:7px;position:absolute;top:8px;width:2px}.timeline .timeline-item{padding-bottom:var(--space-5);position:relative}.timeline .timeline-item:last-child{padding-bottom:0}.timeline .timeline-dot{border:2px solid #fff;border-radius:50%;height:10px;left:-20px;position:absolute;top:4px;width:10px;z-index:1}.timeline .timeline-dot.blue{background:#3b82f6}.timeline .timeline-dot.red{background:#ef4444}.timeline .timeline-dot.green{background:#10b981}.timeline .timeline-time{color:var(--gray-400);font-size:var(--font-size-xs);font-weight:500;margin-bottom:2px}.timeline .timeline-message{color:var(--fps-body-text);font-size:var(--font-size-sm);line-height:1.5}.timeline .timeline-toggle{align-items:center;background:none;border:none;color:var(--fps-vivid-blue);cursor:pointer;display:inline-flex;font-family:inherit;font-size:var(--font-size-xs);gap:2px;margin-top:var(--space-1);padding:0}.timeline .timeline-toggle:hover{text-decoration:underline}.timeline .timeline-stack-trace{background:var(--gray-50);border:1px solid var(--gray-100);border-radius:var(--border-radius-sm);color:var(--gray-600);font-family:SF Mono,Fira Code,Consolas,monospace;font-size:10.5px;line-height:1.5;margin-top:var(--space-2);max-height:200px;overflow-y:auto;padding:var(--space-3);white-space:pre-wrap;word-break:break-all}.drawer-footer{align-items:center;border-top:1px solid var(--border-color);display:flex;flex-shrink:0;gap:var(--space-3);padding:var(--space-4) var(--space-5)}.resolved-callout{align-items:center;background:#d1fae5;border-radius:var(--border-radius-sm);color:#065f46;display:flex;flex:1 1;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.resolved-callout-icon{color:#10b981;flex-shrink:0}@media (max-width:768px){.drawer{width:100%}}.error-log-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-5)}.error-log-header-left{align-items:center;display:flex;gap:var(--space-2)}.error-log-header-icon{color:var(--status-error)}.error-log-header-left h1{color:var(--fps-dark-blue);font-size:var(--font-size-xl);font-weight:700}.error-log-stats{margin-bottom:var(--space-5)}.error-log-stats,.stat-card{display:flex;gap:var(--space-3)}.stat-card{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);cursor:pointer;flex:1 1;min-width:0;padding:var(--space-3) var(--space-4);transition:all .15s}.stat-card:hover{border-color:var(--gray-300)}.stat-card-active{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f}.stat-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.stat-dot.critical{background:#dc2626}.stat-dot.error{background:#ef4444}.stat-dot.warning{background:#f59e0b}.stat-dot.info{background:#3b82f6}.stat-dot.resolved{background:#10b981}.stat-text{display:flex;flex-direction:column;min-width:0}.stat-label{color:var(--gray-500);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.04em;line-height:1.2;text-transform:uppercase}.stat-count{color:var(--fps-dark-blue);font-size:var(--font-size-md);font-weight:700;line-height:1.3}.error-log-filters{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.filter-spacer{flex:1 1}.error-log-page .filter-pill{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:20px;color:var(--gray-600);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:600;gap:6px;padding:var(--space-2) var(--space-4);transition:all .15s;white-space:nowrap}.error-log-page .filter-pill:hover{background:var(--gray-100);border-color:var(--gray-300)}.error-log-page .filter-pill.active{background:var(--fps-dark-blue);border-color:var(--fps-dark-blue);color:#fff}.error-log-page .filter-pill .count-badge{background:#00000014;border-radius:10px;color:inherit;font-size:var(--font-size-xs);font-weight:700;padding:1px 7px}.error-log-page .filter-pill.active .count-badge{background:#fff3}.error-log-page .advanced-filter-toggle{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--gray-600);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-2);padding:var(--space-2) var(--space-4);transition:all .15s;white-space:nowrap}.error-log-page .advanced-filter-toggle:hover{background:var(--gray-100);border-color:var(--gray-300)}.error-log-page .advanced-filter-toggle.open{background:var(--fps-dark-blue);border-color:var(--fps-dark-blue);color:#fff}.error-log-page .advanced-filter-toggle.has-filters:not(.open){border-color:var(--fps-vivid-blue);color:var(--fps-vivid-blue)}.error-log-page .filter-count-dot{align-items:center;background:var(--fps-vivid-blue);border-radius:50%;color:#fff;display:inline-flex;font-size:var(--font-size-xs);font-weight:700;height:18px;justify-content:center;width:18px}.error-log-page .advanced-filter-toggle.open .filter-count-dot{background:#ffffff40}.error-log-page .advanced-panel{animation:elSlideDown .2s ease-out;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);margin-bottom:var(--space-4);padding:var(--space-5) var(--space-6)}@keyframes elSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.error-log-page .advanced-panel-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-4)}.error-log-page .advanced-panel-header h3{color:var(--fps-dark-blue);font-size:var(--font-size-base);font-weight:600}.error-log-page .clear-filters-btn{background:none;border:none;color:var(--fps-vivid-blue);cursor:pointer;font-size:var(--font-size-xs);font-weight:500}.error-log-page .clear-filters-btn:hover{text-decoration:underline}.error-log-page .advanced-grid{grid-gap:var(--space-4) var(--space-5);display:grid;gap:var(--space-4) var(--space-5);grid-template-columns:repeat(3,1fr)}.error-log-page .filter-field label{align-items:center;color:var(--gray-500);display:flex;font-size:var(--font-size-xs);font-weight:600;gap:var(--space-1);letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.error-log-page .filter-field input[type=date],.error-log-page .filter-field select{appearance:auto;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--fps-body-text);font-family:inherit;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);width:100%}.error-log-page .filter-field input[type=date]:focus,.error-log-page .filter-field select:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.error-log-page .date-range{align-items:center;display:flex;gap:var(--space-2)}.error-log-page .date-range span{color:var(--gray-400);font-size:var(--font-size-xs)}.error-log-page .date-range input[type=date]{flex:1 1;min-width:0}.error-log-page .search-box{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.error-log-page .search-box input{border:none;flex:1 1;font-family:inherit;font-size:var(--font-size-sm);outline:none}.error-log-page .search-box svg{color:var(--gray-400);flex-shrink:0}.error-log-page .advanced-actions{border-top:1px solid var(--gray-100);display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-4);padding-top:var(--space-4)}.error-log-page .btn-apply{background:var(--fps-vivid-blue);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-size:var(--font-size-sm);font-weight:600;padding:var(--space-2) var(--space-5);transition:background-color .15s cubic-bezier(.4,0,.2,1)}.error-log-page .btn-apply:hover{background:var(--fps-dark-blue)}.error-log-page .active-filters-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.error-log-page .filter-bar-label{color:var(--gray-500);font-size:var(--font-size-xs);font-weight:500}.error-log-page .filter-chip{align-items:center;background:#eff6ff;border-radius:12px;color:var(--fps-vivid-blue);display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:var(--space-1);padding:4px 10px}.error-log-page .filter-chip-remove{align-items:center;cursor:pointer;display:inline-flex;margin-left:2px;opacity:.6}.error-log-page .filter-chip-remove:hover{opacity:1}.error-log-table .col-severity{min-width:36px;padding-left:var(--space-3);padding-right:var(--space-1);text-align:center;width:36px}.error-log-table .col-task{width:120px}.error-log-table .col-category{width:110px}.error-log-table .col-error{min-width:200px}.error-log-table .col-attempts{text-align:center;width:80px}.error-log-table .col-time{width:130px}.error-log-table .col-actions{text-align:center;width:70px}.severity-dot{border-radius:50%;display:inline-block;height:10px;width:10px}.severity-dot.critical{background:#dc2626}.severity-dot.error{background:#ef4444}.severity-dot.warning{background:#f59e0b}.severity-dot.info{background:#3b82f6}.severity-dot.resolved{background:#10b981}.task-pill{background:var(--gray-100);border-radius:10px;display:inline-block;font-weight:500;padding:2px 8px;text-transform:capitalize}.category-text,.task-pill{color:var(--gray-600);font-size:var(--font-size-xs)}.source-vendor{color:var(--fps-dark-blue);font-size:var(--font-size-sm);font-weight:600;line-height:1.3}.source-invoice{color:var(--gray-400);font-family:SF Mono,Fira Code,Consolas,monospace;font-size:10.5px;line-height:1.3}.error-message{color:var(--fps-body-text);font-size:var(--font-size-sm);line-height:1.4;max-width:320px}.error-hint,.error-message{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.error-hint{font-size:10.5px;line-height:1.3;margin-top:2px}.error-hint.critical,.error-hint.error{color:#991b1b}.error-hint.warning{color:#92400e}.attempts,.error-hint.info{color:var(--gray-600)}.attempts{font-size:var(--font-size-sm);font-weight:500}.attempts.maxed{color:#dc2626;font-weight:600}.time-text{color:var(--gray-400);font-size:var(--font-size-sm)}.error-log-table .action-btn{align-items:center;background:none;border:none;border-radius:var(--border-radius-sm);color:var(--gray-400);cursor:pointer;display:inline-flex;height:28px;justify-content:center;transition:all .15s;width:28px}.error-log-table .action-btn:hover{background:var(--gray-100);color:var(--fps-dark-blue)}.error-log-table .action-btn.resolve:hover{background:#d1fae5;color:#065f46}.error-log-table .action-btn:disabled{cursor:not-allowed;opacity:.3}.error-log-table .action-btn:disabled:hover{background:none;color:var(--gray-400)}.error-log-table tbody tr{transition:background-color .1s cubic-bezier(.4,0,.2,1)}.error-log-table tbody tr.resolved{opacity:.55}.error-log-state{color:var(--gray-500);padding:var(--space-8);text-align:center}.error-log-state svg{margin-bottom:var(--space-2)}.error-log-state p{font-size:var(--font-size-sm)}.error-log-state-error{color:#991b1b}.error-log-state-error .btn-primary{margin-top:var(--space-3)}.error-log-state-empty .empty-icon{color:#10b981;margin-bottom:var(--space-3)}.error-log-state-empty h3{color:var(--fps-dark-blue);font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--space-2)}.error-log-state-empty p{color:var(--gray-500)}@keyframes elSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-log-page .spin{animation:elSpin 1s linear infinite}@media (max-width:1024px){.error-log-stats{flex-wrap:wrap}.stat-card{flex-basis:calc(50% - 6px);flex-grow:0;flex-shrink:0}}@media (max-width:768px){.error-log-stats{flex-wrap:wrap}.stat-card{flex-basis:calc(50% - 6px);flex-grow:0;flex-shrink:0}.error-log-filters{flex-wrap:wrap}.error-log-page .advanced-grid{grid-template-columns:1fr}.error-log-page .card{overflow:visible}.error-log-table,.error-log-table tbody,.error-log-table td,.error-log-table th,.error-log-table thead,.error-log-table tr{display:block}.error-log-table thead{display:none}.error-log-table tbody tr{grid-gap:var(--space-2) var(--space-3);align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);display:grid;gap:var(--space-2) var(--space-3);grid-template-columns:auto 1fr auto;grid-template-rows:auto auto auto;margin-bottom:var(--space-3);padding:var(--space-4)}.error-log-table tbody td{border:none;padding:0}.error-log-table tbody td.col-severity{grid-column:1;grid-row:1}.error-log-table tbody td.col-task{grid-column:2;grid-row:1}.error-log-table tbody td.col-time{grid-column:3;grid-row:1;text-align:right}.error-log-table tbody td.col-error{grid-column:1/-1;grid-row:2}.error-log-table tbody td.col-error .error-message{max-width:100%;white-space:normal}.error-log-table tbody td.col-source{grid-column:1/3;grid-row:3}.error-log-table tbody td.col-actions,.error-log-table tbody td.col-attempts,.error-log-table tbody td.col-category{display:none}.pagination-bar{flex-direction:column;gap:var(--space-3);text-align:center}}@media (max-width:600px){.stat-card{flex:0 0 100%}}.ai-query-stats{display:flex;gap:var(--space-3);margin-bottom:var(--space-5)}.ai-query-stats .stat-card{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);cursor:pointer;display:flex;flex:1 1;gap:var(--space-3);min-width:0;padding:var(--space-3) var(--space-4);transition:all .15s}.ai-query-stats .stat-card:hover{border-color:var(--gray-300)}.ai-query-stats .stat-card-active{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f}.stat-dot.ai-total{background:#3b82f6}.stat-dot.ai-successful{background:#10b981}.stat-dot.ai-failed{background:#ef4444}.stat-dot.ai-avg{background:var(--gray-400)}.ai-query-filters{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.ai-query-search{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);display:flex;flex:1 1;gap:var(--space-2);max-width:320px;min-width:180px;padding:var(--space-2) var(--space-3)}.ai-query-search svg{color:var(--gray-400);flex-shrink:0}.ai-query-search input{border:none;color:var(--fps-body-text);flex:1 1;font-family:inherit;font-size:var(--font-size-sm);outline:none}.ai-query-search:focus-within{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f}.ai-query-date{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--fps-body-text);font-family:inherit;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3)}.ai-query-date:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.ai-query-status-select{appearance:auto;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--fps-body-text);font-family:inherit;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3)}.ai-query-status-select:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.ai-query-refresh{align-items:center;display:inline-flex;justify-content:center;padding:var(--space-2)}.ai-query-state{color:var(--gray-500);padding:var(--space-8);text-align:center}.ai-query-state svg{margin-bottom:var(--space-2)}.ai-query-state p{font-size:var(--font-size-sm)}.ai-query-state-error{color:#991b1b}.ai-query-state-error .btn-primary{margin-top:var(--space-3)}.ai-query-state-empty .ai-query-empty-icon{color:var(--gray-300);margin-bottom:var(--space-3)}.ai-query-state-empty h3{color:var(--fps-dark-blue);font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--space-2)}.ai-query-state-empty p{color:var(--gray-500)}@keyframes aiSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ai-query-log .spin{animation:aiSpin 1s linear infinite}.ai-query-table .col-status{min-width:36px;padding-left:var(--space-3);padding-right:var(--space-1);text-align:center;width:36px}.ai-query-table .col-results{width:100px}.ai-query-table .col-time{width:80px}.ai-query-table .col-date{width:130px}.ai-query-table .col-expand{color:var(--gray-400);text-align:center;width:36px}.status-dot{border-radius:50%;display:inline-block;height:10px;width:10px}.status-dot.successful{background:#10b981}.status-dot.failed{background:#ef4444}.question-text{color:var(--fps-body-text);display:block;font-size:var(--font-size-sm);max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.results-count{color:var(--gray-600);font-size:var(--font-size-sm)}.results-failed{color:#ef4444;font-size:var(--font-size-sm);font-weight:600}.time-value{color:var(--gray-500);font-family:SF Mono,Fira Code,Consolas,monospace;font-size:var(--font-size-xs)}.date-text{color:var(--gray-400);font-size:var(--font-size-sm)}.ai-query-row{cursor:pointer;transition:background-color .1s cubic-bezier(.4,0,.2,1)}.ai-query-row.expanded,.ai-query-row:hover{background:var(--gray-50)}.ai-query-table .ai-query-detail-row td{border-top:none;padding:0}.ai-query-detail{background:var(--gray-50);border-top:1px solid var(--gray-100);padding:var(--space-5)}.ai-query-detail-grid{grid-gap:var(--space-5);display:grid;gap:var(--space-5);grid-template-columns:1fr 1fr;margin-bottom:var(--space-4)}.ai-query-detail-question .detail-value{color:var(--fps-body-text);font-size:var(--font-size-sm);line-height:1.6;margin-top:var(--space-1)}.ai-query-detail-meta{display:flex;flex-direction:column;gap:var(--space-3)}.detail-item{align-items:center;display:flex;gap:var(--space-3)}.detail-label{color:var(--gray-500);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.detail-value{color:var(--fps-body-text);font-size:var(--font-size-sm)}.detail-badge{border-radius:10px;display:inline-block;font-size:var(--font-size-xs);font-weight:600;padding:2px 8px}.detail-badge.success{background:#d1fae5;color:#065f46}.detail-badge.error{background:#fee2e2;color:#991b1b}.detail-error{color:#991b1b;font-size:var(--font-size-xs);line-height:1.4}.ai-query-detail-sql{margin-top:var(--space-3)}.ai-query-detail-sql .detail-label{margin-bottom:var(--space-2)}.sql-block{background:var(--gray-100);border:1px solid var(--gray-200);border-radius:var(--border-radius-sm);color:var(--gray-600);font-family:SF Mono,Fira Code,Consolas,monospace;font-size:11px;line-height:1.5;margin:0;max-height:200px;overflow-y:auto;padding:var(--space-3) var(--space-4);white-space:pre-wrap;word-break:break-all}@media (max-width:1024px){.ai-query-stats{flex-wrap:wrap}.ai-query-stats .stat-card{flex-basis:calc(50% - 6px);flex-grow:0;flex-shrink:0}}@media (max-width:768px){.ai-query-stats .stat-card{flex-basis:calc(50% - 6px);flex-grow:0;flex-shrink:0}.ai-query-filters{flex-wrap:wrap}.ai-query-search{flex:1 1 100%;max-width:100%}.ai-query-detail-grid{grid-template-columns:1fr}.ai-query-table .col-time{display:none}.ai-query-log .card{overflow:visible}.ai-query-table,.ai-query-table tbody,.ai-query-table td,.ai-query-table th,.ai-query-table thead,.ai-query-table tr{display:block}.ai-query-table thead{display:none}.ai-query-table tbody tr.ai-query-row{grid-gap:var(--space-2) var(--space-3);align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);display:grid;gap:var(--space-2) var(--space-3);grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;margin-bottom:var(--space-3);padding:var(--space-4)}.ai-query-table tbody tr.ai-query-row td{border:none;padding:0}.ai-query-table tbody td.col-status{grid-column:1;grid-row:1}.ai-query-table tbody td.col-question{grid-column:2;grid-row:1}.ai-query-table tbody td.col-question .question-text{max-width:100%}.ai-query-table tbody td.col-date{grid-column:3;grid-row:1;text-align:right}.ai-query-table tbody td.col-results{grid-column:1/-1;grid-row:2}.ai-query-table tbody td.col-expand{display:none}.ai-query-table tbody tr.ai-query-detail-row{border-top:none;border-top-left-radius:0;border-top-right-radius:0;margin-top:calc(var(--space-3)*-1)}.pagination-bar{flex-direction:column;gap:var(--space-3);text-align:center}}@media (max-width:600px){.ai-query-stats .stat-card{flex:0 0 100%}}.logs-header{justify-content:space-between;margin-bottom:var(--space-5)}.logs-header,.logs-header-left{align-items:center;display:flex}.logs-header-left{gap:var(--space-2)}.logs-header-left svg{color:var(--fps-vivid-blue)}.logs-header-left h1{color:var(--fps-dark-blue);font-size:var(--font-size-xl);font-weight:700}.logs-tabs{align-items:center;border-bottom:1px solid var(--border-color);display:flex;gap:0;margin-bottom:var(--space-5)}.logs-tab{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:var(--gray-500);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:600;gap:var(--space-2);margin-bottom:-1px;padding:var(--space-2) var(--space-5);position:relative;transition:color .15s,background-color .15s}.logs-tab:hover{background:var(--gray-50);color:var(--gray-600)}.logs-tab.active{border-bottom:2px solid #e53e3e;border-bottom:2px solid var(--fps-red,#e53e3e);color:var(--fps-dark-blue)}.logs-tab svg{flex-shrink:0}@media (max-width:768px){.logs-header{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.logs-tabs{-webkit-overflow-scrolling:touch;overflow-x:auto}.logs-tab{flex-shrink:0;min-height:44px;padding:var(--space-2) var(--space-4);white-space:nowrap}}.settings-page .page-header{margin-bottom:var(--space-4)}.settings-page .page-header h1{color:var(--fps-dark-blue);font-size:var(--font-size-xl);font-weight:700}.settings-tabs{border-bottom:2px solid var(--gray-200);display:flex;gap:0;margin-bottom:var(--space-6)}.settings-tab{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:var(--gray-500);cursor:pointer;display:flex;font-size:var(--font-size-sm);font-weight:600;gap:var(--space-2);margin-bottom:-2px;padding:var(--space-3) var(--space-5);transition:all .15s ease}.settings-tab:hover{color:var(--gray-700)}.settings-tab.active{border-bottom-color:var(--fps-red);color:var(--fps-dark-blue)}.settings-toast{align-items:center;border-radius:var(--border-radius-sm);display:flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.settings-toast.success{background:#d1fae5;background:var(--status-success-bg,#d1fae5);color:#065f46;color:var(--status-success-text,#065f46)}.settings-toast.error{background:#fee2e2;background:var(--status-error-bg,#fee2e2);color:#991b1b;color:var(--status-error-text,#991b1b)}.settings-section{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);margin-bottom:var(--space-5);overflow:hidden}.section-header{align-items:flex-start;background:var(--gray-50);border-bottom:1px solid var(--border-color);display:flex;gap:var(--space-3);padding:var(--space-4) var(--space-5)}.section-header svg{color:var(--fps-vivid-blue);flex-shrink:0;margin-top:2px}.section-header h2{color:var(--fps-dark-blue);font-size:var(--font-size-md);font-weight:600;margin:0}.section-header p{color:var(--gray-500);font-size:var(--font-size-sm);margin:2px 0 0}.section-body{padding:0}.setting-row{align-items:center;border-bottom:1px solid var(--gray-100);display:flex;justify-content:space-between;padding:var(--space-4) var(--space-5)}.setting-row:last-child{border-bottom:none}.section-body .fps-form-row{padding:var(--space-4) var(--space-5)}.setting-label strong{color:var(--fps-dark-blue);display:block;font-size:var(--font-size-sm);font-weight:600}.setting-description{color:var(--gray-500);display:block;font-size:var(--font-size-xs);margin-top:2px}.setting-control{flex-shrink:0}.setting-control--flex{align-items:center;display:flex;gap:var(--space-2)}.setting-row--loading{color:var(--gray-400);justify-content:center}.setting-row--add-account{padding-top:var(--space-3)}.setting-value{color:var(--fps-body-text);font-size:var(--font-size-sm)}.connected-badge{align-items:center;color:#065f46;display:flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-2)}.connected-badge svg{color:#059669}.role-badge{background:#dbeafe;color:#1e40af;text-transform:capitalize}.env-badge,.role-badge{border-radius:12px;display:inline-block;font-size:var(--font-size-xs);font-weight:600;padding:3px 10px}.env-badge{background:#d1fae5;color:#065f46}.loading-text{align-items:center;color:var(--gray-500);display:flex;font-size:var(--font-size-sm);gap:var(--space-2)}.spin{animation:spin 1s linear infinite}.folder-search-bar{align-items:center;display:flex;gap:8px;margin-bottom:var(--space-3)}.folder-search-input{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);flex:1 1;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3)}.folder-search-input:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.drive-folder-picker{background:var(--gray-50);border-top:1px solid var(--gray-100);padding:var(--space-3) var(--space-5) var(--space-4)}.folder-back-btn{align-items:center;background:#0000;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--fps-vivid-blue);cursor:pointer;display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:4px;margin-bottom:var(--space-2);padding:4px 10px}.folder-back-btn:hover{background:#fff}.folder-list{display:flex;flex-direction:column;gap:4px}.folder-item{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);display:flex;justify-content:space-between;padding:8px 12px;transition:border-color .15s}.folder-item.selected{background:#eff6ff;border-color:var(--fps-vivid-blue)}.folder-item-info{align-items:center;color:var(--fps-dark-blue);cursor:pointer;display:flex;flex:1 1;font-size:var(--font-size-sm);font-weight:500;gap:8px}.folder-item-info:hover{color:var(--fps-vivid-blue)}.folder-chevron{color:var(--gray-400)}.folder-empty{color:var(--gray-500);font-size:var(--font-size-sm);line-height:1.5;padding:var(--space-4) var(--space-3);text-align:center}.folder-picker-toolbar{align-items:center;display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.create-folder-row{align-items:center;display:flex;gap:8px}.create-folder-input{border:1px solid var(--gray-300);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);width:180px}.create-folder-input:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.paste-folder-section{background:var(--gray-50);border-top:1px solid var(--gray-100);padding:var(--space-3) var(--space-5)}.paste-folder-row{align-items:center;display:flex;gap:8px}.paste-folder-input{border:1px solid var(--gray-300);border-radius:var(--border-radius-sm);flex:1 1;font-family:monospace;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3)}.paste-folder-input:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.categories-list{display:flex;flex-wrap:wrap;gap:8px;padding:var(--space-4) var(--space-5) var(--space-3)}.category-chip{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:16px;color:var(--fps-dark-blue);display:inline-flex;font-size:var(--font-size-sm);font-weight:500;gap:6px;padding:5px 10px 5px 12px}.chip-remove{align-items:center;border-radius:50%;color:var(--gray-400);cursor:pointer;display:flex;height:18px;justify-content:center;transition:all .15s;width:18px}.chip-remove:hover{background:#fee2e2;background:var(--status-error-bg,#fee2e2);color:#dc2626;color:var(--status-error-icon,#dc2626)}.add-category-row{display:flex;gap:var(--space-2);padding:0 var(--space-5) var(--space-4)}.category-input{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--fps-body-text);flex:1 1;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3)}.category-input:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.merge-category-row{align-items:center;border-top:1px solid var(--gray-100);display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-5) var(--space-4)}.merge-label{color:var(--gray-600);font-weight:600;white-space:nowrap}.merge-label,.merge-select{font-size:var(--font-size-sm)}.merge-select{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--fps-body-text);flex:1 1;padding:var(--space-2) var(--space-3)}.merge-select:focus{border-color:var(--fps-vivid-blue);outline:none}.merge-arrow{color:var(--gray-400);font-size:var(--font-size-lg)}.field-input{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--fps-body-text);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);width:100%}.field-input:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.icon-btn-sm{align-items:center;background:none;border:none;border-radius:var(--border-radius-sm);color:var(--gray-400);cursor:pointer;display:flex;height:28px;justify-content:center;transition:all .15s;width:28px}.icon-btn-sm:hover{background:var(--gray-100);color:var(--fps-dark-blue)}.audit-controls{align-items:center;background:var(--gray-50);border-bottom:1px solid var(--gray-100);display:flex;gap:var(--space-3);justify-content:space-between;padding:var(--space-3) var(--space-5)}.audit-controls .filter-group{display:flex;gap:var(--space-2)}.filter-pill{background:#fff;border:1px solid var(--border-color);border-radius:16px;color:var(--gray-500);cursor:pointer;font-size:var(--font-size-xs);font-weight:500;padding:5px 12px;transition:all .15s}.filter-pill:hover{border-color:var(--fps-vivid-blue);color:var(--fps-vivid-blue)}.filter-pill.active{background:var(--fps-vivid-blue);border-color:var(--fps-vivid-blue);color:#fff}.audit-table-wrap{overflow-x:auto}.audit-table{font-size:var(--font-size-xs)!important}.audit-table th{font-size:var(--font-size-xs)}.audit-table td,.audit-table th{padding:var(--space-2) var(--space-3)}.audit-table td{vertical-align:middle}.audit-time{color:var(--gray-500);font-size:var(--font-size-xs);white-space:nowrap}.audit-action{font-weight:600;white-space:nowrap}.audit-email,.audit-ip{font-family:monospace;font-size:var(--font-size-xs)}.audit-ip{color:var(--gray-500)}.audit-detail-tag,.audit-details{font-size:var(--font-size-xs)}.audit-detail-tag{background:var(--gray-100);border-radius:4px;color:var(--gray-600);display:inline-block;font-weight:500;padding:1px 6px}.audit-detail-tag.danger{background:#fee2e2;background:var(--status-error-bg,#fee2e2);color:#991b1b;color:var(--status-error-text,#991b1b)}.audit-cards--mobile{display:none}.audit-card{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3)}.audit-card-row{align-items:center;display:flex;gap:var(--space-2);justify-content:space-between;min-width:0}.audit-card-time{color:var(--gray-500);flex-shrink:0}.audit-card-email,.audit-card-time{font-size:var(--font-size-xs);white-space:nowrap}.audit-card-email{color:var(--fps-body-text);font-family:monospace;min-width:0;overflow:hidden;text-overflow:ellipsis}.audit-card-ip{color:var(--gray-400);flex-shrink:0;font-family:monospace;font-size:var(--font-size-xs)}.logout-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.logout-modal{background:#fff;border-radius:var(--border-radius-lg);box-shadow:0 20px 60px #0003;max-width:360px;padding:var(--space-6);text-align:center;width:100%}.logout-modal h3{color:var(--fps-dark-blue);font-size:var(--font-size-md);font-weight:600;margin-bottom:var(--space-2)}.logout-modal p{color:var(--gray-500);font-size:var(--font-size-sm);margin-bottom:var(--space-5)}.logout-modal-actions{display:flex;gap:var(--space-3);justify-content:center}.logout-modal-actions .btn-cancel{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--fps-body-text);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;padding:8px 20px}.logout-modal-actions .btn-cancel:hover{background:var(--gray-50)}.logout-modal-actions .btn-danger{background:#dc2626;border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;font-size:var(--font-size-sm);font-weight:600;padding:8px 20px}.logout-modal-actions .btn-danger:hover{background:#b91c1c}.google-accounts-list{display:flex;flex-direction:column}.google-account-card{border-bottom:1px solid var(--gray-100)}.google-account-card:last-child{border-bottom:none}.google-account-row{align-items:center;display:flex;gap:var(--space-4);justify-content:space-between;padding:var(--space-4) var(--space-5)}.google-account-badges{display:flex;gap:6px;margin-top:4px}.account-badge{align-items:center;background:#eff6ff;border-radius:10px;color:var(--fps-vivid-blue);display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:3px;padding:2px 8px}.google-account-settings{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--border-radius-sm);margin:0 var(--space-4) var(--space-3);padding:var(--space-3) var(--space-4) var(--space-4)}.post-process-header{align-items:center;color:var(--fps-dark-blue);display:flex;font-size:var(--font-size-sm);gap:6px;margin-bottom:var(--space-3)}.post-process-header .setting-description{font-weight:400;margin-left:4px}.post-process-fields{display:flex;flex-direction:column;gap:var(--space-3)}.post-process-field label{align-items:center;color:var(--gray-700);display:flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--space-2);margin-bottom:4px}.post-process-field .input-field{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);width:240px}.post-process-field .input-field:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.field-hint{color:var(--gray-400);display:block;font-size:var(--font-size-xs);margin-top:2px}.post-process-actions{border-top:1px solid var(--gray-200);display:flex;gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3)}.google-account-info{align-items:center;display:flex;gap:var(--space-3);min-width:0}.google-account-info strong{color:var(--fps-dark-blue);font-size:var(--font-size-sm)}.google-account-name{color:var(--gray-500);font-size:var(--font-size-sm);font-weight:400}.google-account-poll{color:var(--gray-400);display:block;font-size:var(--font-size-xs);margin-top:2px}.google-account-controls{align-items:center;display:flex;flex-shrink:0;gap:var(--space-3)}.toggle-label{align-items:center;color:var(--gray-600);cursor:pointer;display:flex;font-size:var(--font-size-sm);gap:6px;white-space:nowrap}.toggle-label input[type=checkbox]{accent-color:var(--fps-vivid-blue);height:16px;width:16px}.display-subsection{border-bottom:1px solid var(--gray-100)}.display-subsection:last-child{border-bottom:none}.display-subsection-title{align-items:center;color:var(--gray-400);display:flex;font-size:var(--font-size-xs);font-weight:600;gap:6px;letter-spacing:.04em;margin:0;padding:var(--space-4) var(--space-5) 0;text-transform:uppercase}.logo-upload-area{align-items:center;display:flex;gap:var(--space-4)}.logo-preview-container{align-items:center;display:flex;gap:var(--space-3)}.logo-preview{align-items:center;background:#fff;border:1.5px solid var(--gray-200);border-radius:var(--border-radius-sm);display:flex;height:56px;justify-content:center;overflow:hidden;padding:6px 12px;width:180px}.logo-preview img{max-height:100%;max-width:100%;object-fit:contain}.logo-preview.sidebar-logo-preview{background:var(--fps-dark-blue)}.logo-preview.favicon-preview{height:48px;padding:6px;width:48px}.logo-dropzone,.logo-preview-actions{display:flex;flex-direction:column;gap:4px}.logo-dropzone{align-items:center;border:2px dashed var(--gray-200);border-radius:var(--border-radius);color:var(--gray-400);cursor:pointer;font-size:var(--font-size-xs);height:80px;justify-content:center;transition:all .15s;width:180px}.logo-dropzone:hover{background:#2563eb08;border-color:var(--fps-vivid-blue);color:var(--fps-vivid-blue)}.logo-hint{color:var(--gray-300)}.logo-hint,.logo-saving{font-size:var(--font-size-xs)}.logo-saving{align-items:center;color:var(--gray-400);display:inline-flex;gap:4px}.setting-row--vertical{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.setting-control-inline{align-items:center;display:flex;flex-shrink:0;gap:8px}.setting-control-stacked{display:flex;flex-direction:column;gap:8px;width:100%}.branding-input{max-width:300px;width:100%}.branding-input--wide{max-width:100%;width:100%}.branding-textarea{font-family:inherit;min-height:100px;resize:vertical;width:100%}.btn-sm.btn-secondary,label.btn-sm.btn-secondary{align-items:center;background:#fff;border:1px solid var(--gray-200);border-radius:var(--border-radius-sm);color:var(--gray-600);cursor:pointer;display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:4px;padding:4px 10px;transition:all .15s}.btn-sm.btn-secondary:hover{background:var(--gray-50);border-color:var(--gray-300)}.about-text{line-height:1.6;padding:var(--space-4) var(--space-5)}.about-text p{color:var(--gray-500);font-size:var(--font-size-base);margin:0 0 var(--space-3) 0}.about-text p:last-child{margin-bottom:0}.about-pipeline{display:flex;flex-direction:column;gap:0;padding:var(--space-4) var(--space-5)}.pipeline-step{align-items:flex-start;display:flex;gap:var(--space-3);padding:var(--space-3) 0;position:relative}.pipeline-step:not(:last-child){padding-bottom:var(--space-4)}.pipeline-step-number{align-items:center;background:var(--fps-vivid-blue);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:var(--font-size-xs);font-weight:700;height:28px;justify-content:center;position:relative;width:28px;z-index:1}.pipeline-step:not(:last-child) .pipeline-step-number:after{background:var(--gray-200);content:"";height:calc(var(--space-4) + var(--space-3));left:50%;position:absolute;top:100%;transform:translateX(-50%);width:2px}.pipeline-step-icon{color:var(--fps-vivid-blue);flex-shrink:0;margin-top:4px}.pipeline-step-content{display:flex;flex-direction:column;gap:2px}.pipeline-step-content strong{color:var(--fps-dark-blue);font-size:var(--font-size-sm);font-weight:600}.pipeline-step-content span{color:var(--gray-400);font-size:var(--font-size-sm);line-height:1.5}.about-services{display:flex;flex-direction:column}.service-item{align-items:center;border-bottom:1px solid var(--gray-100);display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-5)}.service-item:last-child{border-bottom:none}.service-icon{color:var(--fps-vivid-blue);flex-shrink:0}.service-info{align-items:center;display:flex;flex:1 1;justify-content:space-between}.service-info strong{color:var(--fps-dark-blue);font-size:var(--font-size-sm);font-weight:600}.service-info span{color:var(--gray-400);font-size:var(--font-size-xs)}.about-integrations{grid-gap:0;display:grid;gap:0;grid-template-columns:1fr 1fr}.integration-card{align-items:flex-start;border-bottom:1px solid var(--gray-100);border-right:1px solid var(--gray-100);display:flex;gap:var(--space-3);padding:var(--space-4) var(--space-5)}.integration-card:nth-child(2n){border-right:none}.integration-card:last-child:nth-child(odd),.integration-card:nth-last-child(-n+2){border-bottom:none}.integration-card svg{color:var(--fps-vivid-blue);flex-shrink:0;margin-top:2px}.integration-card strong{color:var(--fps-dark-blue);display:block;font-size:var(--font-size-sm);font-weight:600}.integration-card span{color:var(--gray-400);font-size:var(--font-size-xs);line-height:1.4}.about-status-badge{align-items:center;display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:6px}.about-status-dot{border-radius:50%;height:8px;width:8px}.about-status-dot.ok,.about-status-dot.running{background:#22c55e}.about-status-dot.error,.about-status-dot.stopped{background:#ef4444}.about-status-dot.degraded{background:#f59e0b}.pdf-template-status-pill{background:var(--gray-200);border-radius:4px;color:var(--gray-700);display:inline-block;font-size:10px;font-weight:600;letter-spacing:.4px;padding:2px 7px;text-transform:uppercase}.pdf-template-status-pill--stable{background:#0596691f;color:#047857}.pdf-template-status-pill--beta{background:#d977061f;color:#b45309}.pdf-template-status-pill--experimental{background:#7c3aed1f;color:#6d28d9}.pdf-template-status-pill--orphan{background:#dc26261f;color:#b91c1c}.settings-account-mail-icon{color:var(--fps-vivid-blue);flex-shrink:0}.settings-account-gear-btn.is-active{color:var(--fps-vivid-blue)}.toggle-label.is-clickable{cursor:pointer}.settings-file-input-hidden{display:none}.settings-inline-error{color:#991b1b;font-size:var(--font-size-sm)}.settings-th-right{text-align:right}.settings-template-default-tag{color:var(--gray-500);font-size:var(--font-size-xs);margin-left:var(--space-2)}.settings-template-version-cell{color:var(--gray-500);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px}.settings-template-vendor-count-cell{font-weight:600;text-align:right}.settings-build-hash-code{background:var(--gray-100);border-radius:4px;font-size:var(--font-size-sm);padding:2px 8px}.setting-row--post-process{align-items:stretch;border-top:1px solid var(--gray-100);flex-direction:column;gap:var(--space-3);padding-top:var(--space-3)}.settings-inline-input-row{align-items:center;display:flex;gap:8px}.setting-row--folder{align-items:stretch;flex-direction:column;gap:var(--space-2)}.settings-folder-row-header{align-items:center;display:flex;justify-content:space-between}.setting-description--italic-note{color:var(--gray-400);font-style:italic;margin-top:4px}.paste-folder-row--manual{margin-top:8px}.paste-folder-input--inherit-font{font-family:inherit}.settings-folder-search-spinner{color:var(--gray-400)}.settings-folder-section-label{color:var(--gray-500);font-size:var(--font-size-xs);font-weight:600;margin-bottom:4px}.settings-folder-section-label--with-top{margin-top:var(--space-2)}.settings-folder-section-label--shared-drives{margin-top:var(--space-3)}.folder-list--search-results{margin-bottom:var(--space-3)}.folder-item-info--vertical{align-items:flex-start;flex-direction:column;gap:2px}.settings-folder-item-icon{margin-right:6px;vertical-align:middle}.settings-folder-item-path{color:var(--gray-400);font-size:var(--font-size-xs)}.settings-folder-toolbar-spacer{margin-left:auto}.settings-folders-divider{border-top:1px solid var(--gray-100)}.setting-value--qb-row,.setting-value--qb-row-wrap{align-items:center;display:flex;gap:8px}.setting-value--qb-row-wrap{flex-wrap:wrap}.settings-qb-run-result{color:var(--gray-600);font-size:var(--font-size-xs)}.settings-qb-help-text{color:var(--gray-500);font-size:var(--font-size-xs);line-height:1.5}.settings-categories-empty{color:var(--gray-500);font-size:var(--font-size-sm)}.settings-audit-state,.settings-audit-state--small{color:var(--gray-500);padding:var(--space-4) var(--space-5);text-align:center}.settings-audit-state--small{font-size:var(--font-size-sm)}.settings-audit-footer{color:var(--gray-500);font-size:var(--font-size-xs);padding:var(--space-3) var(--space-5);text-align:center}.settings-teamwork-not-configured{color:var(--gray-500);font-size:var(--font-size-sm);line-height:1.6}.settings-teamwork-warning-icon{color:#d97706;margin-right:6px;vertical-align:-2px}.setting-value--teamwork-status{align-items:center;display:flex;gap:8px}.settings-teamwork-icon-success{color:#16a34a}.settings-teamwork-error-text,.settings-teamwork-icon-error{color:#dc2626}.setting-value--teamwork-url{color:var(--gray-500);font-family:monospace;font-size:var(--font-size-xs)}.setting-row--teamwork-sync{border-top:1px solid var(--gray-200);margin-top:var(--space-2);padding-top:var(--space-4)}.settings-teamwork-sync-result{color:var(--gray-500);font-size:var(--font-size-xs);margin-left:var(--space-3)}.data-table--clients{margin-bottom:var(--space-4)}.settings-clients-action-th{width:80px}.settings-clients-source-cell{color:var(--gray-500);font-size:var(--font-size-xs)}.settings-row-actions{display:flex;gap:4px}.setting-row--add-client .fps-form-row-control{align-items:flex-end;display:flex;gap:var(--space-3)}.settings-add-client-field{flex:1 1}.setting-row--teamwork-sync .fps-form-row-control{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3)}.settings-add-client-label{margin-bottom:4px}@media (max-width:768px){.settings-tabs{-webkit-overflow-scrolling:touch;overflow-x:auto}.settings-tab{flex-shrink:0;min-height:44px;white-space:nowrap}.setting-row,.settings-tab{padding:var(--space-3) var(--space-4)}.setting-row{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.setting-control{width:100%}.section-header{padding:var(--space-3) var(--space-4)}.logo-upload-area{align-items:flex-start}.logo-preview-container,.logo-upload-area{flex-direction:column}.branding-input,.branding-input--wide{width:100%}.branding-textarea{font-size:16px}.setting-control-inline{align-items:stretch;flex-direction:column;width:100%}.setting-control-inline input{font-size:16px;width:100%}.google-account-row{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.google-account-controls{flex-wrap:wrap;width:100%}.post-process-field .input-field{font-size:16px;width:100%}.add-category-row{flex-direction:column;padding:0 var(--space-4) var(--space-4)}.category-input{font-size:16px;width:100%}.merge-category-row{align-items:flex-start;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4) var(--space-4)}.merge-select{font-size:16px;width:100%}.create-folder-row,.folder-search-bar,.paste-folder-row{flex-direction:column}.create-folder-row{align-items:stretch}.create-folder-input{width:100%}.category-input,.create-folder-input,.field-input,.folder-search-input,.paste-folder-input{font-size:16px;min-height:44px}.btn-outline,.btn-primary,.btn-sm{min-height:44px}.audit-controls{align-items:flex-start;flex-direction:column;padding:var(--space-3) var(--space-4)}.audit-controls .filter-group{flex-wrap:wrap}.filter-pill{align-items:center;display:flex;min-height:44px;padding:var(--space-2) var(--space-3)}.audit-table--desktop{display:none}.audit-cards--mobile{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.audit-table-wrap{overflow-x:visible}.about-integrations{grid-template-columns:1fr}.integration-card{border-right:none}.integration-card:last-child{border-bottom:none}.service-info{align-items:flex-start;flex-direction:column;gap:2px}.about-pipeline{padding:var(--space-4)}.settings-page{overflow-x:hidden}.settings-section{overflow:hidden}.logout-modal{margin:var(--space-4);max-width:calc(100vw - 32px)}}.backup-job-icon{color:var(--fps-vivid-blue);margin-right:4px;vertical-align:-2px}.backup-filename{background:var(--gray-100);border-radius:4px;color:var(--gray-700);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;padding:1px 6px;word-break:break-all}.backup-muted{color:var(--gray-400);font-style:italic}.backup-health-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:var(--font-size-xs);font-weight:600;gap:6px;letter-spacing:.2px;padding:4px 10px}.backup-health-badge--ok{background:#0596691f;color:#047857}.backup-health-badge--warn{background:#d977061f;color:#b45309}.backup-health-badge--error{background:#dc26261f;color:#b91c1c}.backup-health-badge--loading,.backup-health-badge--unknown{background:var(--gray-100);color:var(--gray-600)}.backup-recent-runs-wrap{overflow-x:auto;padding:0 var(--space-5) var(--space-4)}.backup-recent-runs-table td,.backup-recent-runs-table th{vertical-align:middle;white-space:nowrap}.backup-recent-runs-table td:last-child{max-width:360px;white-space:normal;word-break:break-word}.backup-job-pill{background:var(--gray-100);color:var(--gray-700)}.backup-job-pill,.backup-status-pill{align-items:center;border-radius:4px;display:inline-flex;font-size:11px;font-weight:600;gap:4px;padding:2px 7px}.backup-status-pill{text-transform:capitalize}.backup-status-pill--success{background:#0596691f;color:#047857}.backup-status-pill--failure{background:#dc26261f;color:#b91c1c}.backup-failure-detail{color:var(--gray-700);font-size:var(--font-size-xs)}.backup-failure-detail strong{color:#b91c1c;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.section-header--with-action{flex-wrap:wrap;justify-content:space-between;row-gap:var(--space-2)}.section-header-main{align-items:flex-start;display:flex;flex:1 1 auto;gap:var(--space-3);min-width:0}.section-header-actions{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:var(--space-2)}.backup-run-now-btn{white-space:nowrap}.section-header .backup-run-now-btn svg{color:inherit;margin-top:0}.backup-run-now-error{color:var(--status-error-text);font-size:var(--font-size-xs);max-width:280px;text-align:right}@media (max-width:768px){.section-header-actions{align-items:flex-start;width:100%}.backup-run-now-error{max-width:none;text-align:left}}.backup-runs-strip-wrap,.runs-strip{align-items:center}.runs-strip{display:inline-flex;gap:3px;min-height:18px}.runs-strip .seg{border-radius:2px;cursor:help;height:16px;width:10px}.seg--ok{background:#16a34a;background:var(--status-success-icon,#16a34a)}.seg--warn{background:#f59e0b;background:var(--status-warning-icon,#f59e0b)}.seg--fail{background:#b91c1c;background:var(--status-error-icon,#b91c1c)}.seg--idle{background:#d1d5db;background:var(--gray-300,#d1d5db)}.runs-strip-empty{color:var(--gray-500);font-size:var(--font-size-xs);font-style:italic}.section-header--collapsible{align-items:flex-start;background:var(--gray-50);border:none;border-bottom:1px solid var(--border-color);color:inherit;cursor:pointer;display:flex;font:inherit;gap:var(--space-3);padding:var(--space-4) var(--space-5);text-align:left;width:100%}.section-header--collapsible:hover{background:var(--gray-100)}.section-header--collapsible>svg:first-child{color:var(--fps-vivid-blue);flex-shrink:0;margin-top:2px}.section-header--collapsible .section-header-text{flex:1 1 auto;min-width:0}.section-header--collapsible h2{align-items:center;color:var(--fps-dark-blue);display:flex;font-size:var(--font-size-md);font-weight:600;gap:var(--space-2);margin:0}.section-header--collapsible p{color:var(--gray-500);font-size:var(--font-size-sm);margin:2px 0 0}.section-header svg.clients-section-chevron{color:var(--gray-500);flex-shrink:0;margin-top:0;transition:transform .15s ease}.section-header svg.clients-section-chevron--open{transform:rotate(90deg)}.clients-section-count{align-self:center;background:var(--gray-100);border-radius:99px;color:var(--gray-600);flex-shrink:0;font-size:var(--font-size-xs);font-weight:500;padding:2px 10px}.clients-filter-row{align-items:center;border-bottom:1px solid var(--gray-100);display:flex;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-3) var(--space-5)}.clients-search-input{flex:1 1 240px;max-width:400px;position:relative}.clients-search-input svg{color:var(--gray-400);left:9px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.clients-search-input input{background:#fff;border:1px solid var(--border-color);border-radius:4px;border-radius:var(--border-radius-sm,4px);font-size:var(--font-size-sm);height:34px;padding:6px 10px 6px 30px;width:100%}.clients-search-input input:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #2563eb26;outline:none}.clients-filter-control{align-items:center;color:var(--gray-500);display:inline-flex;font-size:var(--font-size-xs);gap:6px}.clients-filter-control select{background:#fff;border:1px solid var(--border-color);border-radius:4px;border-radius:var(--border-radius-sm,4px);color:#1f2937;color:var(--gray-800,#1f2937);font-size:var(--font-size-sm);height:30px;padding:2px 8px}.source-tag{align-items:center;border-radius:99px;display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:4px;padding:2px 8px}.source-tag--tw{background:#eef2ff;color:#4338ca}.source-tag--manual{background:var(--gray-100);color:var(--gray-600)}.clients-empty-state{color:var(--gray-500);font-size:var(--font-size-sm);font-style:italic;padding:var(--space-4) var(--space-5)}.clients-pagination{align-items:center;border-top:1px solid var(--gray-100);color:var(--gray-500);display:flex;flex-wrap:wrap;font-size:var(--font-size-xs);gap:var(--space-2);justify-content:space-between;padding:var(--space-3) var(--space-5)}.clients-pager{gap:2px}.clients-pager,.clients-pager-btn{align-items:center;display:inline-flex}.clients-pager-btn{background:#0000;border:none;border-radius:4px;color:var(--gray-600);cursor:pointer;font-size:var(--font-size-xs);height:28px;justify-content:center;padding:0;width:28px}.clients-pager-btn:hover:not(:disabled):not(.clients-pager-btn--active){background:var(--gray-100)}.clients-pager-btn--active{background:var(--fps-dark-blue);color:#fff;cursor:default}.clients-pager-btn:disabled{color:var(--gray-300);cursor:not-allowed}.clients-pager-ellipsis{align-items:center;color:var(--gray-400);display:inline-flex;height:28px;justify-content:center;width:20px}.usr-page .page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-5)}.usr-page .page-header h1{align-items:center;color:var(--fps-dark-blue);display:flex;font-size:var(--font-size-xl);font-weight:700;gap:var(--space-3)}.usr-page .page-header h1 svg{color:var(--fps-vivid-blue)}.usr-tabs{border-bottom:2px solid var(--gray-200);display:flex;gap:0;margin-bottom:var(--space-4)}.usr-tab{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:var(--gray-500);cursor:pointer;display:flex;font-size:var(--font-size-sm);font-weight:600;gap:var(--space-2);margin-bottom:-2px;padding:10px 20px;transition:all .15s}.usr-tab.active,.usr-tab:hover{color:var(--fps-dark-blue)}.usr-tab.active{border-bottom-color:var(--fps-red)}.usr-tab-count{align-items:center;background:var(--gray-100);border-radius:999px;color:var(--gray-500);display:inline-flex;font-size:11px;font-weight:700;height:20px;justify-content:center;min-width:22px;padding:0 6px}.usr-tab.active .usr-tab-count{background:#dbeafe;color:var(--fps-vivid-blue)}.usr-filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-4)}.usr-role-filter{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--gray-600);cursor:pointer;font-family:inherit;font-size:var(--font-size-xs);padding:var(--space-2) var(--space-3)}.usr-search-wrap{margin-left:auto;position:relative}.usr-search-wrap svg{color:var(--gray-400);left:10px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.usr-search-input{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-family:inherit;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3) var(--space-2) 32px;transition:border-color .15s,box-shadow .15s;width:220px}.usr-search-input:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.usr-avatar{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:var(--font-size-xs);font-weight:700;height:32px;justify-content:center;overflow:hidden;width:32px}.usr-avatar img{height:100%;object-fit:cover;width:100%}.usr-avatar--c0{background:#2563eb}.usr-avatar--c1{background:#7c3aed}.usr-avatar--c2{background:#0891b2}.usr-avatar--c3{background:#059669}.usr-avatar--c4{background:#d97706}.usr-avatar--c5{background:#dc2626}.usr-avatar--c6{background:#4f46e5}.usr-avatar--c7{background:#0e7490}.usr-avatar--has-image{background:#0000}.usr-avatar--deactivated{opacity:.5}.usr-name-cell{align-items:center;display:flex;gap:var(--space-3)}.usr-name-text{display:flex;flex-direction:column}.usr-full-name{color:var(--fps-dark-blue);font-size:var(--font-size-sm);font-weight:600}.usr-email{color:var(--gray-500)}.usr-email,.usr-role-badge{font-size:var(--font-size-xs)}.usr-role-badge{align-items:center;border-radius:999px;display:inline-flex;font-weight:600;gap:4px;padding:2px 10px;white-space:nowrap}.usr-role-badge.admin{background:#dbeafe;color:#1e40af}.usr-role-badge.editor{background:#ede9fe;color:#6d28d9}.usr-role-badge.team_member{background:var(--gray-100);color:var(--gray-600)}.usr-status-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:var(--font-size-xs);font-weight:600;gap:4px;padding:2px 10px;white-space:nowrap}.usr-status-badge.active{background:#d1fae5;color:#065f46}.usr-status-badge.pending_setup{background:#fef3c7;color:#92400e}.usr-status-badge.deactivated{background:#f3f4f6;color:#4b5563}.usr-status-dot{border-radius:50%;height:6px;width:6px}.usr-status-badge.active .usr-status-dot{background:#10b981}.usr-status-badge.pending_setup .usr-status-dot{background:#f59e0b}.usr-status-badge.deactivated .usr-status-dot{background:#9ca3af}.usr-last-login{color:var(--gray-500);font-size:var(--font-size-xs)}.usr-actions{display:flex;gap:var(--space-2)}.usr-action-pill{align-items:center;background:#fff;border:1px solid var(--border-color);border-radius:20px;color:var(--gray-600);cursor:pointer;display:inline-flex;font-size:var(--font-size-xs);font-weight:600;gap:5px;padding:5px 12px;transition:all .15s;white-space:nowrap}.usr-action-pill:hover{background:var(--gray-100);border-color:var(--gray-300);color:var(--fps-dark-blue)}.usr-action-pill.activate{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.usr-action-pill.activate:hover{background:#d1fae5;border-color:#6ee7b7}.usr-action-pill.deactivate{color:var(--gray-500)}.usr-action-pill.deactivate:hover{background:#fee2e2;border-color:#fecaca;color:#991b1b}.usr-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;display:flex;inset:0;justify-content:center;padding:var(--space-4);position:fixed;z-index:1000}.usr-modal{background:#fff;border-radius:var(--border-radius-lg);box-shadow:0 20px 60px #0003;max-width:480px;overflow:hidden;width:100%}.usr-modal-header{align-items:center;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;padding:var(--space-4) var(--space-6)}.usr-modal-header h2{color:var(--fps-dark-blue);font-size:var(--font-size-md);font-weight:700}.usr-modal-close{align-items:center;border-radius:var(--border-radius-sm);color:var(--gray-400);display:flex;height:28px;justify-content:center;transition:all .15s;width:28px}.usr-modal-close:hover{background:var(--gray-100);color:var(--fps-dark-blue)}.usr-modal-body{padding:var(--space-5) var(--space-6)}.usr-modal-footer{align-items:center;border-top:1px solid var(--gray-200);display:flex;gap:var(--space-3);justify-content:flex-end;padding:var(--space-4) var(--space-6)}.usr-form-row{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr 1fr}.usr-form-error{align-items:center;background:#fee2e2;border-radius:var(--border-radius-sm);color:#991b1b;display:flex;font-size:var(--font-size-sm);gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-3)}.usr-row-deactivated td{color:var(--gray-400)}.usr-row-deactivated .usr-full-name{color:var(--gray-500)}.usr-row-deactivated .usr-email{color:var(--gray-400)}.usr-row-deactivated .usr-role-badge{opacity:.6}.usr-modal-status-section{margin-top:var(--space-4)}.usr-modal-separator{background:var(--gray-200);height:1px;margin-bottom:var(--space-4)}.usr-modal-section-heading{color:var(--fps-dark-blue);font-size:var(--font-size-sm);font-weight:700;margin-bottom:4px}.usr-modal-section-heading.usr-modal-section-danger{color:#991b1b}.usr-modal-section-desc{color:var(--gray-500);font-size:var(--font-size-xs);line-height:1.5;margin-bottom:var(--space-3)}.usr-modal-deactivate-btn{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--border-radius-sm);color:#991b1b;cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:600;gap:6px;padding:7px 16px;transition:all .15s}.usr-modal-deactivate-btn:hover{background:#fee2e2;border-color:#f87171}.usr-modal-activate-btn{align-items:center;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:var(--border-radius-sm);color:#065f46;cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:600;gap:6px;padding:7px 16px;transition:all .15s}.usr-modal-activate-btn:hover{background:#d1fae5;border-color:#6ee7b7}.usr-detail-modal{background:#fff;border-radius:var(--border-radius-lg);box-shadow:0 20px 60px #0003;display:flex;flex-direction:column;max-height:90vh;max-width:540px;overflow:hidden;width:100%}.usr-detail-modal .usr-modal-body{flex:1 1;min-height:0;overflow-y:auto}.usr-profile-header{align-items:center;display:flex;gap:var(--space-4);margin-bottom:var(--space-5)}.usr-profile-avatar{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:var(--font-size-md);font-weight:700;height:48px;justify-content:center;overflow:hidden;width:48px}.usr-profile-avatar img{height:100%;object-fit:cover;width:100%}.usr-profile-info{display:flex;flex-direction:column}.usr-profile-name{color:var(--fps-dark-blue);font-size:var(--font-size-md);font-weight:700}.usr-profile-email{color:var(--gray-500);font-size:var(--font-size-sm)}.usr-modal .usr-readonly-field{background:var(--gray-50);color:var(--gray-500);cursor:not-allowed}.usr-sync-note{align-items:center;color:var(--gray-400);display:flex;font-size:var(--font-size-xs);gap:6px;margin-top:6px}.usr-sync-note svg{flex-shrink:0}.usr-activity-section,.usr-activity-separator,.usr-role-group{margin-top:var(--space-4)}.usr-activity-section .usr-modal-section-heading{align-items:center;display:flex;gap:6px;margin-bottom:var(--space-3)}.usr-activity-section .usr-modal-section-heading svg{color:var(--fps-vivid-blue)}.usr-activity-loading{color:var(--gray-400);padding:var(--space-3) 0}.usr-activity-loading,.usr-activity-summary{align-items:center;display:flex;font-size:var(--font-size-xs);gap:var(--space-2)}.usr-activity-summary{background:var(--gray-50);border-radius:var(--border-radius-sm);color:var(--gray-500);flex-wrap:wrap;margin-bottom:var(--space-3);padding:var(--space-3)}.usr-activity-summary strong{color:var(--fps-dark-blue);font-weight:600}.usr-activity-summary-sep{background:var(--gray-300);display:inline-block;height:12px;width:1px}.usr-ip{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:10px}.usr-activity-list{border:1px solid var(--gray-200);border-radius:var(--border-radius-sm);max-height:240px;overflow-y:auto}.usr-activity-row{align-items:center;border-bottom:1px solid var(--gray-100);display:flex;gap:var(--space-3);padding:var(--space-2) var(--space-3)}.usr-activity-row:last-child{border-bottom:none}.usr-activity-icon{align-items:center;border-radius:50%;display:flex;flex-shrink:0;height:22px;justify-content:center;width:22px}.usr-activity-icon.success{background:#d1fae5;color:#065f46}.usr-activity-icon.rejected{background:#fee2e2;color:#991b1b}.usr-activity-icon.neutral{background:var(--gray-100);color:var(--gray-500)}.usr-activity-details{display:flex;flex:1 1;flex-direction:column;min-width:0}.usr-activity-action{color:var(--fps-dark-blue);font-size:var(--font-size-xs);font-weight:600}.usr-activity-time{cursor:default}.usr-activity-ip,.usr-activity-time{color:var(--gray-400);font-size:10px}.usr-activity-ip{flex-shrink:0;font-family:SF Mono,Fira Code,Consolas,monospace}.usr-activity-empty{color:var(--gray-400);font-size:var(--font-size-xs);padding:var(--space-3) 0}.usr-activity-limit-note{color:var(--gray-400);font-size:10px;margin-top:var(--space-2)}.usr-confirm-text{color:var(--fps-body-text);font-size:var(--font-size-base);line-height:1.6}.usr-confirm-name{color:var(--fps-dark-blue);font-weight:600}.usr-confirm-btn-icon{margin-right:4px}.usr-page .pagination-bar{align-items:center;border-top:1px solid var(--border-color);color:var(--gray-500);display:flex;font-size:var(--font-size-sm);justify-content:space-between;padding:12px 16px}.usr-page .pagination-info{align-items:center;display:flex;font-weight:500;gap:4px}.usr-page .per-page-select{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--gray-600);font-family:inherit;font-size:var(--font-size-xs);margin-left:12px;padding:4px 8px}.usr-page .pagination-controls{align-items:center;display:flex;gap:4px}.usr-page .page-btn{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--gray-600);cursor:pointer;font-size:var(--font-size-xs);font-weight:500;padding:6px 12px;transition:all .15s}.usr-page .page-btn:hover:not(:disabled){background:var(--gray-100)}.usr-page .page-btn.active{background:var(--fps-dark-blue);border-color:var(--fps-dark-blue);color:#fff}.usr-page .page-btn:disabled{cursor:not-allowed;opacity:.4}.usr-empty-state{color:var(--gray-500);padding:var(--space-6);text-align:center}.usr-empty-state .spin{margin-bottom:var(--space-2)}.usr-empty-state--error{color:#991b1b}.usr-empty-state .usr-retry-btn{margin-top:var(--space-3)}.usr-retry-btn svg{margin-right:var(--space-2)}.usr-import-modal{background:#fff;border-radius:var(--border-radius-lg);box-shadow:0 20px 60px #0003;display:flex;flex-direction:column;max-height:80vh;max-width:600px;overflow:hidden;width:100%}.usr-import-modal .usr-modal-header h2{align-items:center;display:flex;gap:var(--space-2)}.usr-import-modal .usr-modal-body{flex:1 1;min-height:0;overflow-y:auto}.usr-import-loading{align-items:center;color:var(--gray-500);display:flex;font-size:var(--font-size-sm);gap:var(--space-3);justify-content:center;padding:var(--space-8) 0}.usr-import-not-configured{padding:var(--space-4) 0;text-align:center}.usr-import-not-configured svg{color:#f59e0b;margin-bottom:var(--space-3)}.usr-import-not-configured h3{color:var(--fps-dark-blue);font-size:var(--font-size-md);font-weight:700;margin-bottom:var(--space-2)}.usr-import-not-configured p{color:var(--gray-500);font-size:var(--font-size-sm);line-height:1.5}.usr-import-config-vars{background:var(--gray-50);border-radius:var(--border-radius-sm);margin-top:var(--space-4);padding:var(--space-4);text-align:left}.usr-import-config-vars p{color:var(--gray-600);font-size:var(--font-size-xs);font-weight:600;margin-bottom:var(--space-2)}.usr-import-config-vars ul{list-style:none;margin:0;padding:0}.usr-import-config-vars li{font-size:var(--font-size-xs);padding:2px 0}.usr-import-config-vars code{background:var(--gray-200);border-radius:3px;font-family:SF Mono,Fira Code,monospace;font-size:11px;padding:1px 6px}.usr-import-error{align-items:center;background:#fee2e2;border-radius:var(--border-radius-sm);color:#991b1b;display:flex;font-size:var(--font-size-sm);gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.usr-import-error .btn-outline{flex-shrink:0;margin-left:auto}.usr-import-result{margin-bottom:var(--space-4)}.usr-import-result-success{background:#d1fae5;color:#065f46;margin-bottom:var(--space-2)}.usr-import-result-skipped,.usr-import-result-success{align-items:center;border-radius:var(--border-radius-sm);display:flex;font-size:var(--font-size-sm);font-weight:600;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.usr-import-result-skipped{background:#fef3c7;color:#92400e}.usr-import-stats{border-bottom:1px solid var(--gray-200);display:flex;gap:var(--space-5);margin-bottom:var(--space-4);padding:var(--space-3) 0}.usr-import-stat{align-items:center;color:var(--gray-600);display:flex;font-size:var(--font-size-xs);font-weight:600;gap:var(--space-2)}.usr-import-stat svg{color:var(--fps-vivid-blue)}.usr-import-all-done{padding:var(--space-8) 0;text-align:center}.usr-import-all-done svg{color:#10b981;margin-bottom:var(--space-3)}.usr-import-all-done p{color:var(--gray-500);font-size:var(--font-size-sm)}.usr-import-toolbar{align-items:center;display:flex;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-3)}.usr-import-select-all{align-items:center;color:var(--gray-600);cursor:pointer;display:flex;font-size:var(--font-size-xs);font-weight:600;gap:var(--space-2);white-space:nowrap}.usr-import-select-all input[type=checkbox]{accent-color:var(--fps-vivid-blue)}.usr-import-search{flex:1 1;max-width:220px;position:relative}.usr-import-search svg{color:var(--gray-400);left:8px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.usr-import-search input{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-family:inherit;font-size:var(--font-size-xs);padding:5px 10px 5px 28px;width:100%}.usr-import-search input:focus{border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.usr-import-list{border:1px solid var(--gray-200);border-radius:var(--border-radius-sm);max-height:320px;overflow-y:auto}.usr-import-item{align-items:center;border-bottom:1px solid var(--gray-100);cursor:pointer;display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);transition:background .1s}.usr-import-item:last-child{border-bottom:none}.usr-import-item:hover{background:var(--gray-50)}.usr-import-item input[type=checkbox]{accent-color:var(--fps-vivid-blue);flex-shrink:0}.usr-import-item .usr-avatar{font-size:11px;height:30px;width:30px}.usr-import-item-info{display:flex;flex-direction:column;min-width:0}.usr-import-item-name{color:var(--fps-dark-blue);font-size:var(--font-size-sm);font-weight:600}.usr-import-item-email,.usr-import-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usr-import-item-email{color:var(--gray-500);font-size:var(--font-size-xs)}.usr-import-no-match{color:var(--gray-400);font-size:var(--font-size-sm);padding:var(--space-6);text-align:center}.usr-import-note{color:var(--gray-400);font-size:var(--font-size-xs);line-height:1.5;margin-top:var(--space-3)}@media (max-width:768px){.usr-page .page-header{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.usr-page .page-header .btn-outline,.usr-page .page-header .btn-primary{justify-content:center;min-height:44px;width:100%}.usr-tabs{-webkit-overflow-scrolling:touch;overflow-x:auto}.usr-tab{flex-shrink:0;min-height:44px;white-space:nowrap}.usr-filter-bar{align-items:stretch;flex-direction:column}.usr-search-wrap{margin-left:0}.usr-search-input{width:100%}.usr-role-filter,.usr-search-input{font-size:16px;min-height:44px}.usr-page .data-table{display:block}.usr-page .data-table thead{display:none}.usr-page .data-table tbody{display:flex;flex-direction:column}.usr-page .data-table tbody tr{align-items:center;border-bottom:1px solid var(--gray-100);display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.usr-page .data-table tbody td{border-bottom:none;padding:0}.usr-page .data-table tbody td:first-child{flex:1 1;min-width:0}.usr-page .data-table tbody td:nth-child(2),.usr-page .data-table tbody td:nth-child(3){flex-shrink:0}.usr-page .data-table tbody td:nth-child(4){display:none}.usr-page .data-table tbody td:nth-child(5){flex-basis:100%}.usr-actions{flex-wrap:wrap;gap:var(--space-2)}.usr-action-pill{min-height:36px}.usr-form-row{grid-template-columns:1fr}.usr-detail-modal,.usr-import-modal,.usr-modal{margin:var(--space-4);max-height:calc(100vh - 32px);max-width:100%}.usr-modal-overlay{padding:0}.usr-import-search{max-width:100%}.usr-page .pagination-bar{flex-direction:column;gap:var(--space-3)}.usr-page .pagination-info{flex-wrap:wrap;justify-content:center}.usr-page .per-page-select{display:none}.usr-page .page-btn,.usr-page .pagination-controls{justify-content:center}.usr-page .page-btn{align-items:center;display:flex;min-height:44px;min-width:44px}}@-webkit-keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size:12px;--rc-drag-handle-mobile-size:24px;--rc-drag-handle-bg-colour:#0003;--rc-drag-bar-size:6px;--rc-border-color:#ffffffb3;--rc-focus-color:#08f}.ReactCrop{cursor:crosshair;display:inline-block;max-width:100%;position:relative}.ReactCrop *,.ReactCrop :after,.ReactCrop :before{-webkit-box-sizing:border-box;box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{max-height:inherit;overflow:hidden}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-height:inherit;max-width:100%}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{-ms-touch-action:none;touch-action:none}.ReactCrop__crop-mask{bottom:0;height:calc(100% + .5px);left:0;pointer-events:none;position:absolute;right:0;top:0;width:calc(100% + .5px)}.ReactCrop__crop-selection{cursor:move;left:0;position:absolute;top:0;-webkit-transform:translateZ(0);transform:translateZ(0)}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{border:1px solid #ffffffb3;border:1px solid var(--rc-border-color);bottom:-1px;content:"";left:-1px;opacity:.3;pointer-events:none;position:absolute;right:-1px;top:-1px}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed #fff}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){-webkit-animation:marching-ants 1s;animation:marching-ants 1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-play-state:running;animation-play-state:running;-webkit-animation-timing-function:linear;animation-timing-function:linear;background-image:-webkit-gradient(linear,left top,right top,color-stop(50%,#fff),color-stop(50%,#444)),-webkit-gradient(linear,left top,right top,color-stop(50%,#fff),color-stop(50%,#444)),-webkit-gradient(linear,left top,left bottom,color-stop(50%,#fff),color-stop(50%,#444)),-webkit-gradient(linear,left top,left bottom,color-stop(50%,#fff),color-stop(50%,#444));background-image:linear-gradient(90deg,#fff 50%,#444 0),linear-gradient(90deg,#fff 50%,#444 0),linear-gradient(180deg,#fff 50%,#444 0),linear-gradient(180deg,#fff 50%,#444 0);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:10px 1px,10px 1px,1px 10px,1px 10px;color:#fff}.ReactCrop__crop-selection:focus{outline:2px solid #08f;outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-hz:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-vt:before{background-color:#fff6;content:"";display:block;position:absolute}.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-vt:before{height:100%;width:1px}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:after,.ReactCrop__rule-of-thirds-hz:before{height:1px;width:100%}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{background-color:#0003;background-color:var(--rc-drag-handle-bg-colour);border:1px solid #ffffffb3;border:1px solid var(--rc-border-color);height:12px;height:var(--rc-drag-handle-size);position:absolute;width:12px;width:var(--rc-drag-handle-size)}.ReactCrop__drag-handle:focus{background:#08f;background:var(--rc-focus-color)}.ReactCrop .ord-nw{cursor:nw-resize;left:0}.ReactCrop .ord-n,.ReactCrop .ord-nw{top:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ReactCrop .ord-n{cursor:n-resize;left:50%}.ReactCrop .ord-ne{cursor:ne-resize;top:0}.ReactCrop .ord-e,.ReactCrop .ord-ne{right:0;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ReactCrop .ord-e{cursor:e-resize;top:50%}.ReactCrop .ord-se{bottom:0;cursor:se-resize;right:0;-webkit-transform:translate(50%,50%);transform:translate(50%,50%)}.ReactCrop .ord-s{cursor:s-resize;left:50%}.ReactCrop .ord-s,.ReactCrop .ord-sw{bottom:0;-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%)}.ReactCrop .ord-sw{cursor:sw-resize;left:0}.ReactCrop .ord-w{cursor:w-resize;left:0;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{height:6px;height:var(--rc-drag-bar-size);left:0;top:0;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:100%}.ReactCrop__drag-bar.ord-e{height:100%;right:0;top:0;-webkit-transform:translate(50%);transform:translate(50%);width:6px;width:var(--rc-drag-bar-size)}.ReactCrop__drag-bar.ord-s{bottom:0;height:6px;height:var(--rc-drag-bar-size);left:0;-webkit-transform:translateY(50%);transform:translateY(50%);width:100%}.ReactCrop__drag-bar.ord-w{height:100%;left:0;top:0;-webkit-transform:translate(-50%);transform:translate(-50%);width:6px;width:var(--rc-drag-bar-size)}.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w,.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle{display:none}@media (pointer:coarse){.ReactCrop .ord-e,.ReactCrop .ord-n,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{height:24px;height:var(--rc-drag-handle-mobile-size);width:24px;width:var(--rc-drag-handle-mobile-size)}}.upload-page{display:flex;justify-content:center;min-height:calc(100vh - var(--header-height));padding:var(--space-4)}.upload-container{max-width:600px;width:100%}.upload-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-6)}.upload-header h1{color:var(--fps-dark-blue);font-size:var(--font-size-xl);font-weight:700;margin:0}.upload-error{align-items:center;background:#fee2e2;border-radius:var(--border-radius-sm);color:#991b1b;display:flex;font-size:var(--font-size-sm);gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.upload-error svg:first-child{flex-shrink:0}.upload-error span{flex:1 1}.error-dismiss{border-radius:4px;color:#991b1b;flex-shrink:0;padding:2px}.error-dismiss:hover{background:#00000014}.drop-zone{align-items:center;background:#fff;border:2px dashed var(--border-color);border-radius:var(--border-radius-lg);cursor:pointer;display:flex;justify-content:center;min-height:200px;overflow:hidden;transition:border-color .2s,background-color .2s}.drop-zone:hover{background:#0038ee05;border-color:var(--fps-vivid-blue)}.drop-zone-content{align-items:center;color:var(--gray-400);display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-8);text-align:center}.drop-zone-text{color:var(--gray-600);font-size:var(--font-size-md);font-weight:600}.drop-zone-hint{color:var(--gray-400);font-size:var(--font-size-xs)}.file-preview{align-items:center;display:flex;justify-content:center;padding:var(--space-4);position:relative;width:100%}.preview-image{border-radius:var(--border-radius-sm);max-height:200px;max-width:100%;object-fit:contain}.pdf-placeholder{color:var(--gray-500);flex-direction:column;font-size:var(--font-size-sm);gap:var(--space-2)}.pdf-placeholder,.remove-file{align-items:center;display:flex}.remove-file{background:#0009;border-radius:50%;color:#fff;height:28px;justify-content:center;position:absolute;right:var(--space-2);top:var(--space-2);width:28px}.remove-file:hover{background:#000c}.file-input-hidden{height:0;opacity:0;pointer-events:none;position:absolute;width:0}.capture-actions{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.btn-capture{flex:1 1;font-size:var(--font-size-base);justify-content:center;min-height:48px;padding:var(--space-3) var(--space-4)}.btn-upload{background:var(--fps-vivid-blue)}.upload-crop{display:flex;flex-direction:column;gap:var(--space-3)}.crop-header{align-items:center;display:flex}.crop-retake{align-items:center;color:var(--gray-500);display:inline-flex;font-size:var(--font-size-sm);gap:var(--space-1)}.crop-retake:hover{color:var(--fps-vivid-blue)}.crop-container{align-items:center;background:#f5f5f5;border-radius:var(--border-radius-lg);display:flex;justify-content:center;overflow:hidden;width:100%}.crop-instruction{color:var(--gray-500);font-size:var(--font-size-sm);margin-bottom:var(--space-1);text-align:center}.crop-controls{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-2)}.btn-crop-upload{background:var(--fps-vivid-blue)}.crop-skip{background:none;border:none;color:var(--gray-500);cursor:pointer;font-size:var(--font-size-sm);padding:var(--space-2);text-align:center;text-decoration:underline;text-underline-offset:2px}.crop-skip:hover{color:var(--fps-vivid-blue)}.crop-container .ReactCrop{--ReactCrop-drag-handle-size:20px}@media (max-width:768px){.crop-container .ReactCrop{--ReactCrop-drag-handle-size:28px}}.crop-container .ReactCrop__crop-selection{border:2px solid #fff;box-shadow:0 0 0 9999px #00000080}.upload-processing{align-items:center;display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-8) 0}.processing-preview{border-radius:var(--border-radius-sm);max-height:160px;max-width:100%;object-fit:contain;opacity:.7}.processing-pdf{opacity:.7}.upload-page .processing-indicator{align-items:center;color:var(--fps-vivid-blue);display:flex;font-size:var(--font-size-md);font-weight:500;gap:var(--space-3)}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.upload-review{display:flex;flex-direction:column;gap:var(--space-4)}.review-preview{background:var(--gray-50);border:1px solid var(--border-color);border-radius:var(--border-radius);display:flex;justify-content:center;padding:var(--space-3)}.review-image{max-height:200px;max-width:100%;object-fit:contain}.confidence-badge,.review-image{border-radius:var(--border-radius-sm)}.confidence-badge{align-items:center;background:var(--gray-50);display:inline-flex;font-size:var(--font-size-xs);font-weight:600;gap:var(--space-1);padding:var(--space-1) var(--space-2)}.review-form{display:flex;flex-direction:column}.review-form .form-group{margin-bottom:var(--space-4)}.upload-page .form-group .amount-input{font-size:var(--font-size-lg);font-weight:600}.vendor-input-wrapper,.vendor-selector{position:relative}.vendor-chevron{color:var(--gray-400);pointer-events:none;position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%)}.vendor-dropdown{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);box-shadow:var(--shadow-md);left:0;margin-top:2px;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:50}.vendor-option{align-items:center;background:none;border:none;color:var(--fps-body-text);cursor:pointer;display:flex;font-size:var(--font-size-sm);gap:var(--space-2);padding:var(--space-2) var(--space-3);text-align:left;width:100%}.vendor-option:hover{background:var(--gray-50)}.vendor-option.selected{background:#0038ee0f;color:var(--fps-vivid-blue);font-weight:500}.vendor-option.disabled{color:var(--gray-400);cursor:default}.vendor-create{border-top:1px solid var(--border-color);color:var(--fps-vivid-blue);font-weight:500}.new-vendor-badge{align-items:center;background:#dbeafe;border-radius:var(--border-radius-sm);color:#1e40af;display:inline-flex;font-size:var(--font-size-xs);font-weight:500;gap:var(--space-1);margin-top:var(--space-2);padding:var(--space-1) var(--space-2)}.review-actions{background:var(--gray-50);bottom:0;margin-top:var(--space-2);padding:var(--space-4) 0;position:sticky}.btn-save{background:#059669;font-size:var(--font-size-base);justify-content:center;min-height:48px;padding:var(--space-3) var(--space-4);width:100%}.btn-save:hover:not(:disabled){background:#047857}.btn-save:disabled{cursor:not-allowed;opacity:.6}.upload-success{align-items:center;display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-8) 0;text-align:center}.success-icon{color:#059669}.upload-success h2{color:var(--fps-dark-blue);font-size:var(--font-size-xl);font-weight:700;margin:0}.success-summary{background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--space-4);width:100%}.summary-row{display:flex;font-size:var(--font-size-sm);justify-content:space-between;padding:var(--space-2) 0}.summary-row:not(:last-child){border-bottom:1px solid var(--gray-100)}.summary-label{color:var(--gray-500)}.success-actions{display:flex;flex-direction:column;gap:var(--space-3);width:100%}.success-actions .btn-capture{min-height:48px}.upload-page input[type=date]{text-align:left}.upload-page .form-input,.upload-page .form-select,.upload-page .form-textarea,.upload-page .ss-trigger{font-size:var(--font-size-base);min-height:48px}.upload-page .ss-trigger{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:var(--space-2) var(--space-3)}@media (max-width:768px){.review-form{padding:0 var(--space-2)}.upload-page .ss-trigger{font-size:16px;min-height:48px;padding:var(--space-3)}.review-image{max-height:150px}}@media (min-width:768px){.upload-page{padding:var(--space-8)}.upload-container{margin-top:var(--space-4)}.success-actions{flex-direction:row}}:root{--fps-dark-blue:#0e193d;--fps-red:#f26863;--fps-vivid-blue:#0038ee;--fps-body-text:#30353f;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--status-new:#f59e0b;--status-reviewed:#3b82f6;--status-matched:#10b981;--status-duplicate:#9ca3af;--status-error:#ef4444;--status-warning-bg:#fef3c7;--status-warning-icon:#b45309;--status-warning-text:#92400e;--status-success-bg:#d1fae5;--status-success-icon:#047857;--status-success-text:#065f46;--status-info-bg:#dbeafe;--status-info-icon:#1d4ed8;--status-info-text:#1e40af;--status-error-bg:#fee2e2;--status-error-icon:#b91c1c;--status-error-text:#991b1b;--credit:#059669;--credit-bg:#d1fae5;--credit-border:#6ee7b7;--negative:#dc2626;--resync-bg:#fef3c7;--resync-fg:#92400e;--resync-border:#fcd34d;--sidebar-width:240px;--header-height:56px;--font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-size-xs:11px;--font-size-sm:12.5px;--font-size-base:14px;--font-size-md:15px;--font-size-lg:18px;--font-size-xl:22px;--font-size-2xl:28px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--border-radius:8px;--border-radius-sm:6px;--border-radius-lg:12px;--border-color:#e5e7eb;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001f}*,:after,:before{box-sizing:border-box;margin:0;padding:0}.credit-chip{align-items:center;background:#d1fae5;background:var(--credit-bg);border:1px solid #6ee7b7;border:1px solid var(--credit-border);border-radius:10px;color:#059669;color:var(--credit);display:inline-flex;font-size:10px;font-weight:600;gap:3px;letter-spacing:.02em;padding:1px 6px;vertical-align:middle}body{-webkit-font-smoothing:antialiased;background:#f9fafb;background:var(--gray-50);color:#30353f;color:var(--fps-body-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-family);font-size:14px;font-size:var(--font-size-base);line-height:1.5}a{color:#0038ee;color:var(--fps-vivid-blue);text-decoration:none}a:hover{text-decoration:underline}button{background:none;border:none;cursor:pointer;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-family)}.btn-primary{align-items:center;background:#0038ee;background:var(--fps-vivid-blue);border-radius:6px;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;display:inline-flex;font-size:12.5px;font-size:var(--font-size-sm);font-weight:600;gap:6px;padding:8px 18px;transition:background-color .15s cubic-bezier(.4,0,.2,1),color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1)}.btn-primary:hover{background:#0e193d;background:var(--fps-dark-blue)}.btn-primary:hover:not(:disabled){box-shadow:0 1px 3px #0000000f;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-primary:active:not(:disabled){box-shadow:none;transform:translateY(0) scale(.98)}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.btn-sm{font-size:11px;font-size:var(--font-size-xs);padding:6px 14px}.btn-outline{align-items:center;background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border-color);border-radius:6px;border-radius:var(--border-radius-sm);color:#30353f;color:var(--fps-body-text);cursor:pointer;display:inline-flex;font-size:12.5px;font-size:var(--font-size-sm);font-weight:500;gap:6px;padding:8px 18px;transition:background-color .15s cubic-bezier(.4,0,.2,1),color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1)}.btn-outline:hover{border-color:#0038ee;border-color:var(--fps-vivid-blue);color:#0038ee;color:var(--fps-vivid-blue)}.btn-outline:hover:not(:disabled){transform:translateY(-1px)}.btn-outline:active:not(:disabled){transform:translateY(0) scale(.98)}.btn-danger{align-items:center;background:#dc2626;border:none;border-radius:6px;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-size:var(--font-size-base);font-weight:500;gap:6px;padding:8px 16px;padding:var(--space-2) var(--space-4);transition:background-color .15s cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1)}.btn-danger:hover:not(:disabled){background:#b91c1c;transform:translateY(-1px)}.btn-danger:active:not(:disabled){transform:translateY(0) scale(.98)}.btn-ghost{align-items:center;background:#0000;border:none;border-radius:6px;border-radius:var(--border-radius-sm);color:#6b7280;color:var(--gray-500);cursor:pointer;display:inline-flex;font-size:12.5px;font-size:var(--font-size-sm);font-weight:500;gap:6px;padding:8px 12px;padding:var(--space-2) var(--space-3);transition:color .15s cubic-bezier(.4,0,.2,1),background-color .15s cubic-bezier(.4,0,.2,1)}.btn-ghost:hover{background:#f9fafb;background:var(--gray-50);color:#374151;color:var(--gray-700)}.form-input,.form-select,.form-textarea{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border-color);border-radius:6px;border-radius:var(--border-radius-sm);color:#30353f;color:var(--fps-body-text);font-family:inherit;font-size:12.5px;font-size:var(--font-size-sm);padding:8px 12px;padding:var(--space-2) var(--space-3);transition:border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1);width:100%}.form-input::placeholder,.form-textarea::placeholder{color:#9ca3af;color:var(--gray-400)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#0038ee;border-color:var(--fps-vivid-blue);box-shadow:0 0 0 2px #0038ee1f;outline:none}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background:#f9fafb;background:var(--gray-50);cursor:not-allowed;opacity:.6}.form-select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-position:right var(--space-3) center;background-repeat:no-repeat;padding-right:32px;padding-right:var(--space-8)}.form-textarea{line-height:1.5;min-height:80px;resize:vertical}.form-input-sm,.form-select-sm{font-size:11px;font-size:var(--font-size-xs);padding:4px 8px;padding:var(--space-1) var(--space-2)}.form-select-sm{padding-right:24px;padding-right:var(--space-6)}.form-label{color:#0e193d;color:var(--fps-dark-blue);display:block;font-size:12.5px;font-size:var(--font-size-sm);font-weight:600;margin-bottom:4px;margin-bottom:var(--space-1)}.form-description{color:#6b7280;color:var(--gray-500);font-size:11px;font-size:var(--font-size-xs);margin-top:4px;margin-top:var(--space-1)}.form-input-error,.form-input-error:focus,.form-select-error,.form-select-error:focus,.form-textarea-error,.form-textarea-error:focus{border-color:#ef4444;box-shadow:0 0 0 2px #ef44441f}.form-error-message{color:#991b1b;font-size:11px;font-size:var(--font-size-xs);margin-top:4px;margin-top:var(--space-1)}.form-group{margin-bottom:16px;margin-bottom:var(--space-4)}.form-row-2{grid-gap:16px;grid-gap:var(--space-4);display:grid;gap:16px;gap:var(--space-4);grid-template-columns:1fr 1fr}@media (max-width:640px){.form-row-2{grid-template-columns:1fr}}.form-checkbox{accent-color:#0038ee;accent-color:var(--fps-vivid-blue);border-radius:4px;cursor:pointer;height:16px;width:16px}.text-right{text-align:right}.text-center{text-align:center}input,select,textarea{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-family);font-size:14px;font-size:var(--font-size-base)}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#d1d5db;background:var(--gray-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9ca3af;background:var(--gray-400)}@media (max-width:768px){.form-input,.form-select,.form-textarea,input,select,textarea{font-size:16px}.form-input,.form-select{min-height:44px;padding:12px;padding:var(--space-3)}.form-textarea{min-height:80px;padding:12px;padding:var(--space-3)}.btn-danger,.btn-outline,.btn-primary{min-height:44px}.form-row-2{grid-template-columns:1fr}body{overflow-x:hidden}}
/*# sourceMappingURL=main.5877411e.css.map*/