:root{--primary-color: #FF6600;--primary-hover: #e55a00;--primary-light: #ff8533;--primary-dark: #cc5200;--secondary-color: #333333;--secondary-hover: #2a2a2a;--secondary-light: #4d4d4d;--success-color: #10b981;--success-light: #34d399;--success-dark: #059669;--error-color: #ef4444;--error-light: #f87171;--error-dark: #dc2626;--warning-color: #f59e0b;--warning-light: #fbbf24;--color-primary-dark-bg: #1A1A1A;--color-primary-light-bg: #F5F5F5;--color-accent-orange: #FF6600;--color-text-white: #FFFFFF;--color-text-dark-gray: #333333;--color-text-placeholder: #999999;--color-hover-dark-gray: #333333;--background: #FFFFFF;--background-secondary: #F5F5F5;--background-tertiary: #1A1A1A;--background-dark: #1A1A1A;--background-light: #F5F5F5;--text-primary: #333333;--text-secondary: #999999;--text-muted: #999999;--text-white: #FFFFFF;--text-dark: #1A1A1A;--border-color: #e2e8f0;--border-hover: #333333;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--transition-fast: .15s ease-in-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out;--sat: env(safe-area-inset-top, 0);--sab: env(safe-area-inset-bottom, 0);--sal: env(safe-area-inset-left, 0);--sar: env(safe-area-inset-right, 0)}*{box-sizing:border-box;margin:0;padding:0}html{overscroll-behavior:none}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;color:var(--text-primary);background-color:var(--color-primary-light-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:transparent}.signup-container,.login-container{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:calc(var(--spacing-md) + var(--sat)) calc(var(--spacing-md) + var(--sar)) calc(var(--spacing-md) + var(--sab)) calc(var(--spacing-md) + var(--sal));background-image:url(/assets/SignupPage.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;position:relative}.signup-container:before,.login-container:before{content:"";position:absolute;inset:0;background:#0006;z-index:1}.signup-container .signup-card,.login-container .login-card{position:relative;z-index:2}.signup-card,.login-card{width:100%;max-width:500px;background:var(--background);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--spacing-2xl);animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.signup-header,.login-header{text-align:center;margin-bottom:var(--spacing-xl)}.signup-header h1,.login-header h1{font-size:var(--font-size-3xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.signup-header p,.login-header p{color:var(--text-secondary);font-size:var(--font-size-base)}.login-tabs{display:flex;gap:0;margin:0 calc(-1 * var(--spacing-2xl)) var(--spacing-lg);padding-top:0;border-bottom:1px solid var(--border-color);overflow:visible}.login-tab{flex:1;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base);font-weight:600;line-height:1.4;color:var(--text-secondary);background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:color var(--transition-base),border-color var(--transition-base)}.login-tab:hover{color:var(--text-primary)}.login-tab--active{color:var(--color-accent-orange);border-bottom-color:var(--color-accent-orange)}.signup-type-toggle,.login-type-toggle{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-lg);background:var(--background-tertiary);padding:var(--spacing-xs);border-radius:var(--radius-md)}.toggle-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base)}.toggle-btn:hover{background:var(--background);color:var(--text-primary)}.toggle-btn.active{background:var(--color-accent-orange);color:var(--color-text-white);box-shadow:var(--shadow-sm)}.signup-form,.login-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.vendor-multi-select{min-height:120px;max-height:200px}.vendor-checkbox-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:200px;overflow-y:auto;padding:var(--spacing-sm) 0}.vendor-checkbox-item{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-weight:400}.vendor-checkbox-item input{width:auto}.text-muted{font-size:var(--font-size-sm);color:var(--text-secondary, #666)}.badge{display:inline-block;padding:.15rem .4rem;font-size:var(--font-size-xs);font-weight:600;border-radius:var(--radius-sm)}.badge-success{background:#22c55e33;color:#15803d}.badge-muted{background:var(--background-secondary);color:var(--text-secondary)}.badge-warning{background:#eab30833;color:#a16207}.badge-info{background:#3b82f633;color:#1d4ed8}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}label{font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary)}.required{color:var(--error-color)}input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],textarea,select{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--text-primary);background:var(--background);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-base);outline:none}input:focus,textarea:focus,select:focus{border-color:var(--color-accent-orange);box-shadow:0 0 0 3px #ff66001a}input.invalid,textarea.invalid,select.invalid{border-color:var(--error-color)}.error-text{font-size:var(--font-size-xs);color:var(--error-color);margin-top:var(--spacing-xs)}textarea{resize:vertical;min-height:80px}.toggle-label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.toggle-switch{display:inline-flex;align-items:center;width:48px;height:26px;padding:0;border:1px solid var(--border-color, #e5e7eb);border-radius:999px;background:var(--background-secondary, #e5e7eb);cursor:pointer;transition:background-color .2s ease,border-color .2s ease;outline:none}.toggle-switch:focus-visible{box-shadow:0 0 0 3px #ff660040}.toggle-switch__thumb{width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s ease;margin-left:2px}.toggle-switch--on{background:var(--color-accent-orange, #ff6600);border-color:var(--color-accent-orange, #ff6600)}.toggle-switch--on .toggle-switch__thumb{transform:translate(24px)}.submit-btn,.btn-primary{width:100%;padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base);font-weight:600;color:var(--color-text-white);background:var(--color-accent-orange);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md)}.submit-btn:hover:not(:disabled),.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.submit-btn:disabled,.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.alert{padding:var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--spacing-lg);animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.alert-error{background:#ef44441a;color:var(--error-dark);border:1px solid var(--error-light)}.alert-success{background:#10b9811a;color:var(--success-dark);border:1px solid var(--success-light)}.alert-hint{background:#ff660014;color:var(--text-primary);border:1px solid rgba(255,102,0,.35)}.signup-footer,.login-footer{text-align:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.signup-footer p,.login-footer p{color:var(--text-secondary);font-size:var(--font-size-sm)}.link{color:var(--color-accent-orange);text-decoration:none;font-weight:500;transition:color var(--transition-base)}.link:hover{color:var(--primary-hover);text-decoration:underline}.form-group-forgot{display:flex;justify-content:flex-end;margin-top:calc(var(--spacing-xs) * -1)}.forgot-password-link{font-size:var(--font-size-sm);color:var(--color-accent-orange);text-decoration:none;transition:color var(--transition-base)}.forgot-password-link:hover{color:var(--primary-hover);text-decoration:underline}@media(max-width:640px){.signup-card,.login-card{padding:var(--spacing-lg);max-width:100%}.form-row{grid-template-columns:1fr}.signup-header h1,.login-header h1{font-size:var(--font-size-2xl)}}.layout-container{display:flex;height:100vh;min-height:100vh;min-height:100dvh;height:100dvh;background:var(--background-secondary);overflow:hidden}.sidebar{width:280px;flex-shrink:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--color-primary-dark-bg);border-right:2px solid rgba(255,102,0,.2);display:flex;flex-direction:column;position:fixed;left:0;top:0;height:100vh;height:100dvh;padding-top:var(--sat);padding-bottom:var(--sab);padding-left:var(--sal);box-sizing:border-box;z-index:1000;transform:translate(-100%);transition:transform var(--transition-base);box-shadow:inset -2px -2px 4px #ffffff0d,inset 2px 2px 4px #0000004d,4px 0 8px #00000040}.sidebar.open{transform:translate(0)}.sidebar-header{padding:var(--spacing-lg);border-bottom:2px solid rgba(255,102,0,.3);display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,var(--color-accent-orange) 0%,#e55a00 100%);color:var(--color-text-white);box-shadow:inset 0 2px 4px #fff3,0 2px 4px #0000004d;position:relative}.sidebar-header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:#ffffff4d;box-shadow:0 1px 2px #0000001a}.sidebar-header h2{margin:0;font-size:var(--font-size-xl);font-weight:600}.close-btn{background:none;border:none;color:#fff;font-size:var(--font-size-2xl);cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background var(--transition-base)}.close-btn:hover{background:#fff3}.nav-menu{flex:1;padding:var(--spacing-md) 0;overflow-y:auto;background:var(--color-primary-dark-bg)}.sidebar::-webkit-scrollbar,.nav-menu::-webkit-scrollbar,.nav-group-items--setup::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track,.nav-menu::-webkit-scrollbar-track,.nav-group-items--setup::-webkit-scrollbar-track{background:#0003;border-radius:3px}.sidebar::-webkit-scrollbar-thumb,.nav-menu::-webkit-scrollbar-thumb,.nav-group-items--setup::-webkit-scrollbar-thumb{background:#f60;border-radius:3px}.sidebar::-webkit-scrollbar-thumb:hover,.nav-menu::-webkit-scrollbar-thumb:hover,.nav-group-items--setup::-webkit-scrollbar-thumb:hover{background:#e55a00}.sidebar,.nav-menu,.nav-group-items--setup{scrollbar-width:thin;scrollbar-color:#FF6600 rgba(0,0,0,.2)}.nav-item{display:flex;align-items:center;padding:var(--spacing-md) var(--spacing-lg);color:var(--color-text-white);text-decoration:none;transition:all var(--transition-base);border-left:3px solid transparent;margin:2px var(--spacing-sm);border-radius:var(--radius-md);position:relative;background:#ffffff0d;box-shadow:inset 0 1px 2px #ffffff1a,inset 0 -1px 2px #0000004d,0 1px 2px #0003}.nav-item:hover{background:#ff660026;border-left-color:var(--color-accent-orange);color:var(--color-text-white);box-shadow:inset 0 1px 2px #ffffff26,0 2px 4px #ff66004d,0 1px 3px #0000004d;transform:translateY(-1px)}.nav-item.active{background:#ff660040;border-left-color:var(--color-accent-orange);color:var(--color-text-white);font-weight:600;box-shadow:inset 0 2px 4px #f606,inset 0 -1px 2px #0000004d,0 1px 1px #0003;border:1px solid rgba(255,102,0,.4)}.nav-icon{font-size:var(--font-size-lg);margin-right:var(--spacing-md);width:24px;text-align:center}.nav-text{font-size:var(--font-size-base)}.nav-group{margin:2px var(--spacing-sm)}.nav-group-header{display:flex;align-items:center;width:100%;padding:var(--spacing-md) var(--spacing-lg);color:var(--color-text-white);background:#ffffff0d;border:none;border-left:3px solid transparent;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-base);text-align:left;transition:all var(--transition-base);box-shadow:inset 0 1px 2px #ffffff1a,inset 0 -1px 2px #0000004d,0 1px 2px #0003}.nav-group-header:hover{background:#ff660026;border-left-color:var(--color-accent-orange);color:var(--color-text-white)}.nav-group-chevron{margin-left:auto;font-size:.7em;opacity:.9;transition:transform var(--transition-base);transform:rotate(-90deg)}.nav-group-chevron.expanded{transform:rotate(0)}.nav-group-items{overflow:hidden;max-height:0;opacity:0;transition:max-height .25s ease-out,opacity .2s ease-out}.nav-group-items.expanded{max-height:220px;opacity:1}.nav-group-items--setup.expanded{max-height:min(420px,50vh);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.nav-item--nested{margin-left:var(--spacing-md);margin-top:1px;margin-bottom:1px;padding:var(--spacing-xs) var(--spacing-lg) var(--spacing-xs) calc(var(--spacing-lg) - 4px);font-size:var(--font-size-sm);border-left:2px solid rgba(255,102,0,.2)}.sidebar-footer{padding:var(--spacing-md);border-top:2px solid rgba(255,102,0,.2);background:var(--color-primary-dark-bg);box-shadow:inset 0 2px 4px #0000004d,0 -2px 4px #ffffff0d}.logout-btn{display:flex;align-items:center;padding:var(--spacing-md) var(--spacing-lg);color:var(--error-color);text-decoration:none;transition:all var(--transition-base);border-radius:var(--radius-md);margin:2px var(--spacing-sm);background:#ef444426;box-shadow:inset 0 1px 2px #ffffff1a,inset 0 -1px 2px #0000004d,0 1px 2px #0003;border:1px solid rgba(239,68,68,.3)}.logout-btn:hover{background:#ef444440;color:var(--color-text-white);box-shadow:inset 0 1px 2px #ffffff26,0 2px 4px #ef444466,0 1px 3px #0000004d;transform:translateY(-1px)}.main-content{flex:1;margin-left:0;display:flex;flex-direction:column;width:100%;min-width:0;min-height:0;transition:margin-left var(--transition-base);overflow:hidden}.sidebar.open~.main-content{margin-left:280px}.top-header{background:var(--color-primary-light-bg);border-bottom:1px solid rgba(255,102,0,.2);padding:calc(var(--spacing-sm) + var(--sat)) calc(var(--spacing-md) + var(--sar)) var(--spacing-sm) calc(var(--spacing-md) + var(--sal));display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.menu-toggle{background:none;border:none;font-size:var(--font-size-xl);cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-md);transition:background var(--transition-base);display:flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:44px;min-height:44px;-webkit-tap-highlight-color:transparent}.menu-toggle:hover{background:var(--background-tertiary)}.header-title h1{margin:0;font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary)}.header-actions{display:flex;align-items:center;gap:var(--spacing-md)}.user-info{font-size:var(--font-size-sm);color:var(--text-secondary)}.page-content{flex:1;padding:var(--spacing-xl);padding-left:calc(var(--spacing-xl) + var(--sal));padding-right:calc(var(--spacing-xl) + var(--sar));padding-bottom:calc(var(--spacing-xl) + var(--sab));overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;min-width:0;min-height:0;background:var(--color-primary-light-bg)}@media(min-width:1024px){.layout-container{display:flex;gap:0}.sidebar{transform:translate(0);position:fixed;left:0;top:0;height:100vh;flex-shrink:0}.main-content{margin-left:280px;flex:1;padding:0;width:auto;min-height:0;height:100vh}.sidebar.open~.main-content,.main-content{margin-left:280px;padding:0;width:auto}.menu-toggle,.close-btn{display:none}.page-content{padding:var(--spacing-xl);margin:0;flex:1;min-height:0;overflow-y:auto}}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;z-index:999;animation:fadeIn .2s ease-out;-webkit-tap-highlight-color:transparent}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:1023px){.sidebar-backdrop{display:block}}@media(min-width:1024px){.sidebar-backdrop{display:none!important}}@media(max-width:768px){.sidebar{width:100%;max-width:300px}.sidebar.open~.main-content{margin-left:0}.page-content{padding:var(--spacing-md);padding-left:calc(var(--spacing-md) + var(--sal));padding-right:calc(var(--spacing-md) + var(--sar));padding-bottom:calc(var(--spacing-md) + var(--sab))}.nav-item:not(.nav-item--nested),.nav-group-header{min-height:44px;padding:var(--spacing-md) var(--spacing-lg)}.nav-item--nested{min-height:auto}.close-btn{min-width:44px;min-height:44px}.logout-btn{min-height:44px}}.page-card{max-width:960px;background:var(--background);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:var(--spacing-2xl)}.page-card--sm{max-width:480px}.page-card--full{max-width:none;width:100%;min-width:0}@media(max-width:575px){.page-content{padding:var(--spacing-sm);padding-left:calc(var(--spacing-sm) + var(--sal));padding-right:calc(var(--spacing-sm) + var(--sar));padding-bottom:calc(var(--spacing-sm) + var(--sab))}.page-card{padding:var(--spacing-md);border-radius:var(--radius-lg)}.page-header{flex-direction:column;align-items:stretch;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.page-title{font-size:var(--font-size-xl)}.page-header .btn-add,.page-header .btn-submit,.page-header .btn-cancel{width:100%;justify-content:center;min-height:44px}.page-header-actions{flex-direction:column}.top-header{padding:calc(var(--spacing-xs) + var(--sat)) calc(var(--spacing-sm) + var(--sar)) var(--spacing-xs) calc(var(--spacing-sm) + var(--sal));flex-wrap:wrap;gap:var(--spacing-xs)}.header-title h1{font-size:var(--font-size-base);line-height:1.3}.user-info{font-size:var(--font-size-xs)}.menu-toggle{width:44px;height:44px;min-width:44px;min-height:44px;padding:var(--spacing-xs)}.form-row{grid-template-columns:1fr}.data-table{font-size:var(--font-size-sm)}.data-table th,.data-table td{padding:var(--spacing-xs) var(--spacing-sm)}.modal-overlay{padding:var(--spacing-sm);padding-top:calc(var(--spacing-md) + var(--sat));padding-bottom:calc(var(--spacing-md) + var(--sab));padding-left:calc(var(--spacing-sm) + var(--sal));padding-right:calc(var(--spacing-sm) + var(--sar));align-items:flex-start}.modal-box{max-height:calc(85vh - var(--sat) - var(--sab));width:100%;max-width:100%;border-radius:var(--radius-lg)}.modal-box--2xl,.modal-box--total-cpm,.modal-box--other-costs,.modal-box--xl,.modal-box--wide{max-width:100%;border-radius:var(--radius-lg)}.modal-header{padding:var(--spacing-md) var(--spacing-lg)}.modal-title{font-size:var(--font-size-lg)}.modal-box .form{padding:var(--spacing-md)}.modal-actions{flex-wrap:wrap}.modal-actions .btn-cancel,.modal-actions .btn-submit{flex:1;min-width:0;min-height:44px}.col-actions{flex-wrap:wrap;gap:var(--spacing-xs)}.btn-edit,.btn-delete{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);min-height:44px}input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],select{min-height:44px;padding:var(--spacing-md)}.submit-btn,.btn-primary{min-height:44px}}@media(min-width:576px)and (max-width:767px){.page-content{padding:var(--spacing-md)}.page-card{padding:var(--spacing-lg)}.page-title{font-size:var(--font-size-xl)}.header-title h1{font-size:var(--font-size-lg)}.data-table th,.data-table td{padding:var(--spacing-sm) var(--spacing-md)}.modal-overlay{padding:var(--spacing-md)}}@media(min-width:768px)and (max-width:1023px){.page-content{padding:var(--spacing-lg)}.page-header{flex-wrap:wrap}.header-title h1{font-size:var(--font-size-lg)}}@media(min-width:1024px){.page-card--full{max-width:100%}}@media(min-width:1280px){.page-content{padding:var(--spacing-2xl)}}.table-wrap--responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-left:calc(-1 * var(--spacing-sm));margin-right:calc(-1 * var(--spacing-sm));padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}@media(min-width:576px){.table-wrap--responsive{margin-left:calc(-1 * var(--spacing-md));margin-right:calc(-1 * var(--spacing-md));padding-left:var(--spacing-md);padding-right:var(--spacing-md)}}@media(min-width:1024px){.table-wrap--responsive{margin-left:0;margin-right:0;padding-left:0;padding-right:0}}@media(max-width:1023px){.table-wrap--responsive .data-table{min-width:800px}}.expansion-panel{border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-md);background:var(--background);margin-bottom:var(--spacing-lg);overflow:hidden}.expansion-panel__header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--spacing-md) var(--spacing-lg);background:var(--background-secondary, #f9fafb);border:none;cursor:pointer;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);text-align:left;transition:background-color .2s ease}.expansion-panel__header:hover{background:#f60;color:#fff}.expansion-panel__header:hover .expansion-panel__icon{color:#ffffffe6}.expansion-panel__title{flex:1}.expansion-panel__icon{flex-shrink:0;margin-left:var(--spacing-sm);font-size:.7rem;transition:transform .25s ease;color:var(--text-muted, #6b7280)}.expansion-panel__icon--expanded{transform:rotate(180deg)}.expansion-panel__content{max-height:0;overflow:hidden;transition:max-height .35s cubic-bezier(.4,0,.2,1)}.expansion-panel__content--expanded{max-height:400px;overflow-y:auto;overflow-x:auto}.total-prices-expansion .total-prices-box{padding:var(--spacing-md) var(--spacing-lg);background:var(--background);border-top:1px solid var(--border-color, #e5e7eb)}.other-costs-expansion .expansion-panel__content--expanded,.process-costs-expansion .expansion-panel__content--expanded{max-height:min(70vh,600px)}.total-prices-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.total-prices-table th,.total-prices-table td{padding:var(--spacing-xs) var(--spacing-sm);text-align:left;border-bottom:1px solid var(--border-color, #e5e7eb)}.total-prices-table th:first-child,.total-prices-table td:first-child{font-weight:600}.total-prices-table__label{min-width:140px}.total-prices-table__num{text-align:right;font-variant-numeric:tabular-nums;min-width:90px}.total-prices-table tbody tr:last-child td{border-bottom:none}.total-prices-table tbody tr:last-child{font-weight:600}.total-cpm-expansion .total-prices-box{padding:var(--spacing-md) var(--spacing-lg);background:var(--background);border-top:1px solid var(--border-color, #e5e7eb)}.total-cpm-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.total-cpm-table th,.total-cpm-table td{padding:var(--spacing-xs) var(--spacing-sm);text-align:left;border-bottom:1px solid var(--border-color, #e5e7eb)}.total-cpm-table__label{min-width:100px}.total-cpm-table__num{text-align:right;font-variant-numeric:tabular-nums;min-width:90px}.total-cpm-table tr.total-cpm-group-total td{border-top:1px solid var(--border-color, #e5e7eb);background:var(--background-alt, #f9fafb);padding-top:var(--spacing-sm)}.other-costs-expansion .total-prices-box{padding:var(--spacing-md) var(--spacing-lg);background:var(--background);border-top:1px solid var(--border-color, #e5e7eb)}.other-costs-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.other-costs-table th,.other-costs-table td{padding:var(--spacing-xs) var(--spacing-sm);text-align:left;border-bottom:1px solid var(--border-color, #e5e7eb)}.other-costs-table__label{min-width:100px}.other-costs-table__num{text-align:right;font-variant-numeric:tabular-nums;min-width:90px}.other-costs-table tr.other-costs-group-total td{border-top:1px solid var(--border-color, #e5e7eb);background:var(--background-alt, #f9fafb);padding-top:var(--spacing-sm)}.other-costs-table tr.other-costs-combined-total td{border-top:2px solid var(--border-color, #e5e7eb);font-weight:700}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);flex-wrap:wrap;gap:var(--spacing-md)}.page-title{font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary);margin:0}.page-title:not(.page-header .page-title){margin-bottom:var(--spacing-xl)}.dashboard-card{max-width:560px;background:var(--background);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:var(--spacing-2xl)}.dashboard-card h1{font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-md)}.dashboard-card p{color:var(--text-secondary);margin-top:var(--spacing-sm)}.form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-control{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);border:1px solid var(--border-color);border-radius:var(--radius-md);outline:none;transition:border-color var(--transition-base)}.form-control:focus{border-color:var(--color-accent-orange)}.form-control.invalid{border-color:var(--error-color)}textarea.form-control{resize:vertical;min-height:80px}.loading-text{color:var(--text-secondary);margin:var(--spacing-xl) 0}.table-wrap{overflow-x:auto}.table-wrap--no-scroll{overflow-x:visible}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.data-table--no-wrap th,.data-table--no-wrap td{white-space:nowrap}.data-table th,.data-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-color)}.data-table th{font-weight:600;color:var(--text-primary);background:var(--background-secondary)}.data-table--orange-header thead,.data-table--orange-header thead th{background:#f3f1f0;color:#000;border-bottom:none}.data-table--orange-header thead tr:first-child th{border-top:none}.filter-row{margin-bottom:var(--spacing-md)}.filter-input{width:100%;max-width:320px;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:var(--font-size-base)}.filter-input::placeholder{color:var(--text-muted)}.filter-input:focus{outline:none;border-color:var(--color-accent-orange);box-shadow:0 0 0 2px #f603}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.data-table th.sortable:hover{opacity:.95}.data-table--orange-header th.sortable:hover{background:var(--primary-hover, #e55a00)}.sort-icon{margin-left:var(--spacing-xs);font-size:.85em;opacity:.95}.data-table tbody tr:hover{background:#ff66000f}.data-table td input.form-control,.data-table td input[type=number]{min-width:4rem;cursor:text;background:var(--background);border:1px solid var(--border-color)}.data-table .col-numeric-3dec{min-width:7.5rem}.data-table th.col-bom-currency,.data-table td.col-bom-currency{min-width:8.5rem;width:8.5rem;max-width:none;box-sizing:border-box;vertical-align:middle}.data-table td.col-bom-currency select.form-control.bom-line-currency-select{width:100%;max-width:100%;min-width:4.5rem;box-sizing:border-box}.data-table th.col-bom-unit-price-th{white-space:normal;vertical-align:bottom;line-height:1.25;min-width:8rem}.data-table .table-th-hint{display:block;font-size:.68rem;font-weight:600;letter-spacing:.02em;color:var(--text-secondary, #555);margin-top:.2rem;text-transform:none}.form-label-hint{font-weight:500;font-size:.85em;color:var(--text-secondary, #555)}.editable-cell{pointer-events:auto!important;user-select:text!important;-webkit-user-select:text!important}input.editable-cell--unit-price-needs-currency[readonly]{background:var(--background-secondary, #f3f3f3);cursor:not-allowed;color:var(--text-muted, #666)}.col-actions{white-space:nowrap;display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-sm)}.col-actions-header{text-align:right}.bom-product-spec{display:flex;flex-direction:column;min-width:0}.bom-page-header{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--spacing-md)}.bom-spec-status{display:inline-block;margin-left:.75rem;padding:.2rem .55rem;font-size:.85rem;font-weight:600;color:#5a4a42;background:#f0ebe8;border-radius:4px;vertical-align:middle}.bom-page-header--responsive{grid-template-columns:1fr}@media(min-width:480px){.bom-page-header--responsive{grid-template-columns:1fr auto}}.bom-product-spec-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;min-width:0}.bom-product-spec-table{table-layout:auto;width:100%;min-width:520px}.bom-product-spec-table thead{background:#f3f1f0}.bom-product-spec-table thead tr:first-child th{border-top:none}.bom-product-spec-table thead th{border-bottom:none;color:#000}.bom-product-spec-table th{background:#f3f1f0;color:#000}.table-wrap--sticky-cols-4,.table-wrap--sticky-cols-5,.table-wrap--sticky-cols-7{overflow-x:auto!important;-webkit-overflow-scrolling:touch}.table-wrap--sticky-cols-4 .data-table{border-collapse:separate;border-spacing:0}.table-wrap--sticky-cols-4 .data-table thead th:nth-child(1),.table-wrap--sticky-cols-4 .data-table thead th:nth-child(2),.table-wrap--sticky-cols-4 .data-table thead th:nth-child(3),.table-wrap--sticky-cols-4 .data-table thead th:nth-child(4),.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(1),.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(2),.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(3),.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(4){position:sticky;background:#f3f1f0;box-shadow:2px 0 4px #0000000f}.table-wrap--sticky-cols-4 .data-table thead th:nth-child(1){z-index:16}.table-wrap--sticky-cols-4 .data-table thead th:nth-child(2){z-index:17}.table-wrap--sticky-cols-4 .data-table thead th:nth-child(3){z-index:18}.table-wrap--sticky-cols-4 .data-table thead th:nth-child(4){z-index:19}.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(1){z-index:11}.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(2){z-index:12}.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(3){z-index:13}.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(4){z-index:14}.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(1),.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(2),.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(3),.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(4){background:var(--background, #fff)}.table-wrap--sticky-cols-4 .data-table thead th:nth-child(1),.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(1){left:0;min-width:5.5rem}.table-wrap--sticky-cols-4 .data-table thead th:nth-child(2),.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(2){left:5.5rem;min-width:5rem}.table-wrap--sticky-cols-4 .data-table thead th:nth-child(3),.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(3){left:10.5rem;min-width:8rem}.table-wrap--sticky-cols-4 .data-table thead th:nth-child(4),.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(4){left:18.5rem;min-width:5.5rem}.table-wrap--sticky-cols-4 .data-table thead th:nth-child(4),.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row td:nth-child(4){box-shadow:2px 0 6px #ff66001f;border-right:3px solid var(--color-accent-orange, #ff6600)}.table-wrap--sticky-cols-5 .data-table{border-collapse:separate;border-spacing:0}.table-wrap--sticky-cols-5 .data-table thead th:nth-child(1),.table-wrap--sticky-cols-5 .data-table thead th:nth-child(2),.table-wrap--sticky-cols-5 .data-table thead th:nth-child(3),.table-wrap--sticky-cols-5 .data-table thead th:nth-child(4),.table-wrap--sticky-cols-5 .data-table thead th:nth-child(5),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(1):not([colspan]),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(2),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(3),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(4),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(5){position:sticky;background:#f3f1f0;box-shadow:2px 0 4px #0000000f}.table-wrap--sticky-cols-5 .data-table thead th:nth-child(1){z-index:16}.table-wrap--sticky-cols-5 .data-table thead th:nth-child(2){z-index:17}.table-wrap--sticky-cols-5 .data-table thead th:nth-child(3){z-index:18}.table-wrap--sticky-cols-5 .data-table thead th:nth-child(4){z-index:19}.table-wrap--sticky-cols-5 .data-table thead th:nth-child(5){z-index:20}.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(1):not([colspan]){z-index:11}.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(2){z-index:12}.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(3){z-index:13}.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(4){z-index:14}.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(5){z-index:15}.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(1):not([colspan]),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(2),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(3),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(4),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(5){background:var(--background, #fff)}.table-wrap--sticky-cols-5 .data-table thead th:nth-child(1),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(1):not([colspan]){left:0;min-width:2.5rem}.table-wrap--sticky-cols-5 .data-table thead th:nth-child(2),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(2){left:2.5rem;min-width:5rem}.table-wrap--sticky-cols-5 .data-table thead th:nth-child(3),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(3){left:7.5rem;min-width:8rem}.table-wrap--sticky-cols-5 .data-table thead th:nth-child(4),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(4){left:15.5rem;min-width:9rem}.table-wrap--sticky-cols-5 .data-table thead th:nth-child(5),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(5){left:24.5rem;min-width:5.5rem}.table-wrap--sticky-cols-5 .data-table thead th:nth-child(5),.table-wrap--sticky-cols-5 .data-table tbody tr td:nth-child(5){box-shadow:2px 0 6px #ff66001f;border-right:3px solid var(--color-accent-orange, #ff6600)}.table-wrap--sticky-cols-7 .data-table{border-collapse:separate;border-spacing:0}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(1),.table-wrap--sticky-cols-7 .data-table thead th:nth-child(2),.table-wrap--sticky-cols-7 .data-table thead th:nth-child(3),.table-wrap--sticky-cols-7 .data-table thead th:nth-child(4),.table-wrap--sticky-cols-7 .data-table thead th:nth-child(5),.table-wrap--sticky-cols-7 .data-table thead th:nth-child(6),.table-wrap--sticky-cols-7 .data-table thead th:nth-child(7),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(1):not([colspan]),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(2),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(3),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(4),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(5),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(6),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(7){position:sticky;background:#f3f1f0;box-shadow:2px 0 4px #0000000f}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(1){z-index:16}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(2){z-index:17}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(3){z-index:18}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(4){z-index:19}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(5){z-index:20}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(6){z-index:21}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(7){z-index:22}.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(1):not([colspan]){z-index:11}.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(2){z-index:12}.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(3){z-index:13}.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(4){z-index:14}.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(5){z-index:15}.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(6){z-index:16}.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(7){z-index:17}.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(1):not([colspan]),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(2),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(3),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(4),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(5),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(6),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(7){background:var(--background, #fff)}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(1),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(1):not([colspan]){left:0;min-width:2.5rem}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(2),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(2){left:2.5rem;min-width:5rem}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(3),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(3){left:7.5rem;min-width:8rem}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(4),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(4){left:15.5rem;min-width:9rem}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(5),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(5){left:24.5rem;min-width:5.5rem}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(6),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(6){left:30rem;min-width:8.5rem}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(7),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(7){left:38.5rem;min-width:8rem}.table-wrap--sticky-cols-7 .data-table thead th:nth-child(7),.table-wrap--sticky-cols-7 .data-table tbody tr td:nth-child(7){box-shadow:2px 0 6px #ff66001f;border-right:3px solid var(--color-accent-orange, #ff6600)}.table-wrap--sticky-cols-4.table-wrap--bom-scroll,.table-wrap--sticky-cols-7.table-wrap--bom-scroll{max-height:70vh;overflow:auto!important;-webkit-overflow-scrolling:touch}.table-wrap--sticky-cols-4.table-wrap--bom-scroll .data-table thead th,.table-wrap--sticky-cols-7.table-wrap--bom-scroll .data-table thead th{position:sticky;top:0}.table-wrap--sticky-cols-4.table-wrap--bom-scroll .data-table thead th:nth-child(n+5){z-index:20;background:#f3f1f0}.table-wrap--sticky-cols-4.table-wrap--bom-scroll .data-table thead th:nth-child(1){z-index:31}.table-wrap--sticky-cols-4.table-wrap--bom-scroll .data-table thead th:nth-child(2){z-index:32}.table-wrap--sticky-cols-4.table-wrap--bom-scroll .data-table thead th:nth-child(3){z-index:33}.table-wrap--sticky-cols-4.table-wrap--bom-scroll .data-table thead th:nth-child(4){z-index:34}.table-wrap--sticky-cols-7.table-wrap--bom-scroll .data-table thead th:nth-child(n+8){z-index:20;background:#f3f1f0}.table-wrap--sticky-cols-7.table-wrap--bom-scroll .data-table thead th:nth-child(1){z-index:31}.table-wrap--sticky-cols-7.table-wrap--bom-scroll .data-table thead th:nth-child(2){z-index:32}.table-wrap--sticky-cols-7.table-wrap--bom-scroll .data-table thead th:nth-child(3){z-index:33}.table-wrap--sticky-cols-7.table-wrap--bom-scroll .data-table thead th:nth-child(4){z-index:34}.table-wrap--sticky-cols-7.table-wrap--bom-scroll .data-table thead th:nth-child(5){z-index:35}.table-wrap--sticky-cols-7.table-wrap--bom-scroll .data-table thead th:nth-child(6){z-index:36}.table-wrap--sticky-cols-7.table-wrap--bom-scroll .data-table thead th:nth-child(7){z-index:37}.table-wrap--sticky-cols-4 .data-table tbody tr:hover,.table-wrap--sticky-cols-5 .data-table tbody tr:hover,.table-wrap--sticky-cols-7 .data-table tbody tr:hover{background:transparent}.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-detail-row:hover td,.table-wrap--sticky-cols-5 .data-table tbody tr:not(.vendor-header-row):hover td,.table-wrap--sticky-cols-7 .data-table tbody tr:not(.vendor-header-row):hover td{background:var(--background, #fff)}.table-wrap--sticky-cols-4 .data-table tbody tr.vendor-header-row:hover td,.table-wrap--sticky-cols-5 .data-table tbody tr.vendor-header-row:hover td,.table-wrap--sticky-cols-7 .data-table tbody tr.vendor-header-row:hover td{background:var(--background-secondary)}.vendor-quote-history-table{min-width:680px}.raw-materials-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;min-width:0}.raw-materials-table{width:100%;min-width:720px}.btn-add{display:inline-flex;align-items:center}.btn-add-icon{margin-right:var(--spacing-xs);font-size:1.1em;font-weight:700}.vendor-header-row td{background:var(--background-secondary);font-weight:600;vertical-align:middle}.vendor-detail-row td:first-child{background:var(--background)}.btn-expand-collapse{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-right:var(--spacing-sm);padding:0;font-size:.7rem;line-height:1;color:var(--text-primary);background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;vertical-align:middle}.btn-expand-collapse:hover{background:#ff66001f;border-color:var(--color-accent-orange)}.vendor-line-count{font-weight:400;color:var(--text-secondary);margin-left:var(--spacing-xs)}.empty-cell{color:var(--text-secondary);font-style:italic;padding:var(--spacing-xl);text-align:center}.btn-add{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-accent-orange);color:var(--color-text-white);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:opacity var(--transition-base),transform var(--transition-base);width:fit-content}.btn-add:hover{opacity:.9;transform:translateY(-1px)}.btn-edit{padding:var(--spacing-xs) var(--spacing-md);background:transparent;color:var(--color-accent-orange);border:1px solid var(--color-accent-orange);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-base),color var(--transition-base)}.btn-edit:hover:not(:disabled){background:var(--color-accent-orange);color:var(--color-text-white)}.btn-edit:disabled{opacity:.6;cursor:not-allowed}.btn-delete{padding:var(--spacing-xs) var(--spacing-md);background:transparent;color:var(--color-error, #c62828);border:1px solid var(--color-error, #c62828);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-base),color var(--transition-base);margin-left:var(--spacing-xs)}.btn-delete:hover:not(:disabled){background:var(--color-error, #c62828);color:var(--color-text-white)}.btn-delete:disabled{opacity:.6;cursor:not-allowed}.btn-cancel{padding:var(--spacing-sm) var(--spacing-lg);background:var(--background-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-base);cursor:pointer;transition:background var(--transition-base)}.btn-cancel:hover,.page-header-actions .btn-cancel:hover{background:#f60;color:#fff;border-color:#f60}.btn-submit{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-accent-orange);color:var(--color-text-white);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:opacity var(--transition-base)}.btn-submit:hover:not(:disabled){opacity:.9}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.vendor-bom-exchange-rate-line{margin-bottom:var(--spacing-md);padding:var(--spacing-sm) 0;font-size:var(--font-size-base);color:var(--text-primary)}.vendor-bom-exchange-rate-line__label{margin-right:var(--spacing-sm);font-weight:600}.vendor-bom-exchange-rate-line__value{font-weight:700}.vendor-bom-exchange-rate-line__value-num{color:var(--color-accent-orange)}.vendor-bom-line-actions{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:.25rem;min-width:0}.btn-icon-comments{flex-shrink:0;width:2rem;height:2rem;padding:0;border:1px solid var(--color-accent-orange);border-radius:var(--radius-md);background:var(--background);color:var(--color-accent-orange);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background var(--transition-base),color var(--transition-base)}.btn-icon-comments:hover:not(:disabled){background:var(--color-accent-orange);color:var(--color-text-white)}.btn-icon-comments:disabled{opacity:.45;cursor:not-allowed}.quote-comments-list--modal{max-height:min(360px,55vh);overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem;background:var(--background-secondary, #f9fafb)}.btn-submit.btn-submit--compact,.btn-cancel.btn-cancel--compact{padding:.22rem .55rem;font-size:.8125rem;font-weight:600;line-height:1.3;border-radius:var(--radius-sm);white-space:nowrap}.bom-line-approve-actions{white-space:nowrap;vertical-align:middle}.bom-line-approve-actions__inner{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:.35rem;min-width:0}.btn-total-cpm{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-accent-orange);color:var(--color-text-white);border:none;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:opacity var(--transition-base)}.btn-total-cpm:hover:not(:disabled){opacity:.9}.btn-total-cpm:disabled{opacity:.6;cursor:not-allowed}.btn-other-costs{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-accent-orange);color:var(--color-text-white);border:none;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:opacity var(--transition-base)}.btn-other-costs:hover:not(:disabled){opacity:.9}.btn-other-costs:disabled{opacity:.6;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:var(--spacing-lg)}.modal-overlay--nested{z-index:2100}.input-with-action{display:flex;align-items:center;gap:var(--spacing-sm)}.input-with-action .form-control{flex:1;min-width:0}.btn-inline-add{flex-shrink:0;padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);font-weight:500;color:var(--color-accent-orange);background:transparent;border:1px solid var(--color-accent-orange);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base),color var(--transition-base)}.btn-inline-add:hover{background:var(--color-accent-orange);color:var(--color-text-white)}.modal-box{background:var(--background);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);max-width:480px;width:100%;max-height:90vh;overflow-y:auto}.modal-box--wide{max-width:640px}.modal-box--pending-revision{max-width:min(920px,96vw)}.modal-body--revision-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem 1rem;align-items:start;max-height:min(70vh,640px);overflow-y:auto;padding-right:.25rem}@media(max-width:720px){.modal-body--revision-grid{grid-template-columns:1fr}}.modal-box--xl{max-width:960px}.modal-box--2xl{max-width:min(1600px,95vw);width:100%}.modal-box--total-cpm{max-width:min(960px,92vw);width:100%;max-height:90vh;display:flex;flex-direction:column}.modal-body--total-cpm{overflow-y:auto;padding:var(--spacing-lg) var(--spacing-xl);flex:1 1 auto}.total-cpm-section{margin-bottom:var(--spacing-xl)}.total-cpm-section:last-child{margin-bottom:0}.total-cpm-section--add{padding-top:var(--spacing-lg);border-top:1px solid var(--border-color, #e5e7eb)}.table-wrap--total-cpm{margin-bottom:0;overflow-x:auto}.data-table--total-cpm{width:100%;min-width:560px}.data-table--total-cpm th,.data-table--total-cpm td{padding:var(--spacing-sm) var(--spacing-md);white-space:nowrap}.data-table--total-cpm th:first-child,.data-table--total-cpm td:first-child{min-width:120px;white-space:normal}.data-table--total-cpm .col-actions{white-space:nowrap}.data-table--total-cpm tr.total-cpm-group-total td{border-top:1px solid var(--border-color, #e5e7eb);background:var(--background-alt, #f9fafb);padding-top:var(--spacing-sm)}.form--total-cpm{max-width:none;padding:0}.form-row--total-cpm{display:flex;gap:var(--spacing-lg);flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--spacing-md)}.form-row--total-cpm:last-child{margin-bottom:0}.form-group--total-cpm{flex:1 1 0;min-width:140px;margin-bottom:0}.form-group--total-cpm.form-group--action{flex:0 0 auto;min-width:0}.form-label-invisible{visibility:hidden;display:block;height:0;margin:0;padding:0;overflow:hidden;font-size:0}.modal-actions--total-cpm{padding:var(--spacing-md) var(--spacing-xl);border-top:1px solid var(--border-color, #e5e7eb)}.modal-box--other-costs{max-width:min(960px,92vw);width:100%;max-height:90vh;display:flex;flex-direction:column}.modal-body--other-costs{overflow-y:auto;padding:var(--spacing-lg) var(--spacing-xl);flex:1 1 auto}.other-costs-section{margin-bottom:var(--spacing-xl)}.other-costs-section:last-child{margin-bottom:0}.other-costs-section--add{padding-top:var(--spacing-lg);border-top:1px solid var(--border-color, #e5e7eb)}.table-wrap--other-costs{margin-bottom:0;overflow-x:auto}.data-table--other-costs{width:100%;min-width:560px}.data-table--other-costs th,.data-table--other-costs td{padding:var(--spacing-sm) var(--spacing-md);white-space:nowrap}.data-table--other-costs th:first-child,.data-table--other-costs td:first-child{min-width:120px;white-space:normal}.data-table--other-costs .col-actions{white-space:nowrap}.data-table--other-costs .form-control--inline{max-width:100%;min-width:80px;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.data-table--other-costs tr.other-costs-group-total td{border-top:1px solid var(--border-color, #e5e7eb);background:var(--background-alt, #f9fafb);padding-top:var(--spacing-sm)}.form--other-costs{max-width:none;padding:0}.form-row--other-costs{display:flex;gap:var(--spacing-lg);flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--spacing-md)}.form-row--other-costs:last-child{margin-bottom:0}.form-group--other-costs{flex:1 1 0;min-width:140px;margin-bottom:0}.form-group--other-costs.form-group--action{flex:0 0 auto;min-width:0}.form-control--readonly{background:var(--background-alt, #f3f4f6);color:var(--text-primary);cursor:default;min-height:2.25rem;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-md)}.modal-actions--other-costs{padding:var(--spacing-md) var(--spacing-xl);border-top:1px solid var(--border-color, #e5e7eb)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--border-color)}.modal-title{font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary);margin:0}.modal-subtitle{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);margin:0 0 .75rem}.modal-close{background:none;border:none;font-size:1.5rem;line-height:1;color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background var(--transition-base),color var(--transition-base)}.modal-close:hover{background:var(--background-secondary);color:var(--text-primary)}.modal-body{padding:var(--spacing-lg) var(--spacing-xl)}.modal-box .alert{margin:var(--spacing-md) var(--spacing-xl) 0}.modal-box .form{padding:var(--spacing-xl)}.modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-md)}.form-actions{display:flex;gap:var(--spacing-md);align-items:center;margin-top:var(--spacing-md)}.searchable-dropdown{position:relative;width:100%}.searchable-dropdown .form-control{width:100%}.dropdown-list{position:absolute;top:100%;left:0;right:0;max-height:220px;overflow-y:auto;background:var(--background);border:1px solid var(--border-color);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:var(--shadow-md);z-index:100;margin:0;padding:0;list-style:none}.dropdown-list li{padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;border-bottom:1px solid var(--border-color);font-size:var(--font-size-sm)}.dropdown-list li:last-child{border-bottom:none}.dropdown-list li:hover{background:var(--background-secondary)}.dropdown-list li.selected,.dropdown-list li:active{background:#ff66001f}.vendor-dropdown-trigger{text-align:left;cursor:pointer;appearance:none;background-color:var(--background);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-md) center;padding-right:2rem}.vendor-dropdown-trigger.invalid{border-color:var(--error-color)}.vendor-dropdown-list{max-height:200px}.vendor-dropdown-list .vendor-checkbox-item{margin:0;padding:0;cursor:pointer}.searchable-dropdown--inline{display:inline-block;min-width:12rem;max-width:100%}.component-supplier-cell{display:flex;align-items:center;gap:var(--spacing-sm)}.component-supplier-cell .searchable-dropdown--inline{flex:1;min-width:0}.component-supplier-cell--unit .unit-of-measure-select,.component-supplier-cell--unit .component-supplier-select{min-width:7rem;width:auto}.btn-add-supplier{flex-shrink:0;width:2rem;height:2rem;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;line-height:1;color:var(--primary-color);background:transparent;border:1px solid var(--primary-color);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.btn-add-supplier:hover{background:var(--primary-color);color:var(--color-text-white)}.supplier-dropdown-list{max-height:280px;overflow-x:hidden;overflow-y:auto}.supplier-dropdown-list--fixed{position:fixed;z-index:9999;top:0;left:0;overflow-x:hidden;overflow-y:auto}.supplier-search-results{list-style:none;margin:0;padding:0;max-height:200px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--radius-sm)}.supplier-search-result-item{padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;transition:background var(--transition-fast)}.supplier-search-result-item:hover{background:#ff660014}.modal-hint{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.modal-hint--spaced{margin-top:0;margin-bottom:var(--spacing-lg);line-height:1.5}.form-group--modal{margin-bottom:var(--spacing-lg)}.form-group--modal:last-of-type{margin-bottom:0}.empty-hint--spaced{margin-top:var(--spacing-sm);margin-bottom:0;line-height:1.5}.modal-box--add-supplier{min-width:min(340px,92vw);max-width:480px;display:flex;flex-direction:column;max-height:90vh}.modal-body--add-supplier{flex:1 1 auto;min-height:0;overflow-y:auto;word-wrap:break-word}.modal-actions--add-supplier{flex-shrink:0;margin-top:0;padding:var(--spacing-md) var(--spacing-xl);border-top:1px solid var(--border-color);background:var(--background)}.loading-inline{margin:var(--spacing-sm) 0;color:var(--color-text-muted)}.empty-hint{padding:var(--spacing-sm);color:var(--color-text-muted);font-size:var(--font-size-sm)}.btn-link{background:none;border:none;color:var(--primary-color);cursor:pointer;text-decoration:underline;padding:0;font:inherit}.btn-link:hover{color:var(--primary-dark)}.page-header-actions{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.search-inline .search-input{min-width:220px}.dropdown-item-add{border-top:1px solid var(--border-color)!important;font-weight:500;color:var(--primary-color)}.dropdown-item-add:hover{background:#ff660014;color:var(--primary-dark)}.dropdown-item-add-icon{display:inline-block;margin-right:var(--spacing-xs);font-size:1.1em;font-weight:700}.btn-remove-row{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);color:var(--error-color);background:transparent;border:1px solid var(--error-color);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-base),color var(--transition-base)}.btn-remove-row:hover{background:var(--error-color);color:var(--color-text-white)}.quote-comment-item{margin-bottom:1rem;padding:.75rem;border-radius:var(--radius-sm);border-left:3px solid var(--color-accent-orange, #ff6600)}.quote-comment-from-user{background:#e8f4fc;border-left-color:#0ea5e9}.quote-comment-from-vendor{background:#fef3e2;border-left-color:var(--color-accent-orange, #ff6600)}.quote-comment-item.quote-comment-vendor-resubmit{background:#ecfdf5;border:1px solid #a7f3d0;border-left:4px solid #047857}.quote-comment-item.quote-comment-vendor-resubmit .quote-comment-meta{color:#064e3b}.quote-comment-item.quote-comment-vendor-resubmit .quote-comment-reason{color:var(--text-muted, #6b7280);font-weight:400}.quote-comment-item.quote-comment-vendor-resubmit .quote-comment-text{color:#111827}.quote-comment-meta{font-size:.85rem;color:var(--text-muted, #6b7280);margin-bottom:.5rem}.quote-comment-meta .quote-comment-reason,.quote-comment-meta span+span{margin-left:1rem}.quote-comment-text{white-space:pre-wrap}.vendor-bom-view--history input.form-control,.vendor-bom-view--history select.form-control,.vendor-bom-view--history textarea.form-control,.vendor-bom-view--history button.vendor-dropdown-trigger:not(.btn-cancel){pointer-events:none;background:var(--background-secondary, #f5f5f5)}.vendor-bom-view--history .btn-expand-collapse{pointer-events:none;opacity:.8}
