.login-page{background:var(--color-bg);justify-content:center;align-items:center;height:100vh;display:flex}.login-page__card{text-align:center;background:var(--color-surface);padding:var(--space-2xl) var(--space-2xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:400px}.login-page__logo-wrapper{margin-bottom:var(--space-lg);background:var(--color-primary);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);justify-content:center;display:inline-flex}.login-page__card .login-page__logo-wrapper{justify-content:center;display:flex}.login-page__logo-wrapper{background:var(--color-primary);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);margin:0 auto var(--space-lg);display:inline-flex}.login-page__logo{width:auto;height:48px}.login-page__title{color:var(--color-primary);margin-bottom:var(--space-xs);font-size:1.5rem;font-weight:700}.login-page__tagline{color:var(--color-text-muted);margin-bottom:var(--space-xl);font-size:.875rem}.login-page__btn{justify-content:center;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-md) var(--space-lg);background:var(--color-primary);color:var(--color-text-inverse);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);border:none;font-size:1rem;font-weight:600;display:inline-flex}.login-page__btn:hover{background:var(--color-primary-light)}.login-page__btn--mock{margin-top:var(--space-sm);color:var(--color-primary);border:1px solid var(--color-primary);background:0 0}.login-page__btn--mock:hover{background:var(--color-primary);color:var(--color-text-inverse)}.login-page__mock-note{color:var(--color-text-muted);margin-top:var(--space-md);font-size:.75rem}.toast-container{bottom:var(--space-lg);right:var(--space-lg);z-index:1000;gap:var(--space-sm);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);pointer-events:auto;font-size:.875rem;animation:.2s toast-slide-in;display:flex}.toast--success{border-left:3px solid var(--color-success)}.toast--error{border-left:3px solid var(--color-danger)}.toast--info{border-left:3px solid var(--color-info)}.toast__icon{font-size:.875rem;font-weight:600}.toast--success .toast__icon{color:var(--color-success)}.toast--error .toast__icon{color:var(--color-danger)}.toast--info .toast__icon{color:var(--color-info)}.toast__message{color:var(--color-text)}@keyframes toast-slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.error-boundary{padding:var(--space-2xl);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:50vh;display:flex}.error-boundary__icon{background:var(--color-danger-bg);width:48px;height:48px;color:var(--color-danger);margin-bottom:var(--space-md);border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;font-weight:700;display:flex}.error-boundary__title{margin-bottom:var(--space-xs);font-size:1.25rem;font-weight:600}.error-boundary__message{color:var(--color-text-muted);max-width:400px;margin-bottom:var(--space-lg);font-size:.875rem}.sidebar{width:var(--sidebar-width);background:var(--color-primary);height:100vh;color:var(--color-text-inverse);z-index:100;flex-direction:column;transition:width .25s;display:flex;position:sticky;top:0;overflow:hidden}.sidebar--collapsed{width:60px}.sidebar__brand{padding:var(--space-xl) var(--space-md) var(--space-lg);margin-bottom:var(--space-sm);border-bottom:1px solid #ffffff1a;justify-content:center;align-items:center;min-height:40px;display:flex;overflow:hidden}.sidebar__logo-img{object-fit:contain;width:auto;height:40px;transition:opacity .25s}.sidebar--collapsed .sidebar__logo-img{height:24px}.sidebar__nav{padding:var(--space-sm) var(--space-sm);gap:var(--space-xs);flex-direction:column;flex:1;display:flex}.sidebar__nav-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);color:#ffffff8c;transition:all var(--transition-fast);white-space:nowrap;border-left:3px solid #0000;font-size:.8125rem;font-weight:400;display:flex;position:relative}.sidebar__nav-item:hover{color:#ffffffd9;background:#ffffff14}.sidebar__nav-item--active{border-left-color:var(--color-primary-light);color:#fff;background:#ffffff1a;font-weight:600}.sidebar__nav-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.sidebar__nav-label{transition:opacity .2s,width .2s;overflow:hidden}.sidebar--collapsed .sidebar__nav-item{padding:var(--space-sm);border-left:none;justify-content:center}.sidebar--collapsed .sidebar__nav-label{opacity:0;width:0;overflow:hidden}.sidebar--collapsed .sidebar__nav-item:hover:after{content:attr(title);color:#fff;border-radius:var(--radius-sm);white-space:nowrap;z-index:200;pointer-events:none;background:#1a1a1a;padding:4px 10px;font-size:.75rem;font-weight:500;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%);box-shadow:0 2px 8px #0003}.sidebar__footer{padding:var(--space-sm);border-top:1px solid #ffffff1a}.sidebar__collapse-btn{justify-content:center;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);color:#fff6;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;font-size:.6875rem;display:flex}.sidebar__collapse-btn:hover{color:#fffc;background:#ffffff14}.sidebar__collapse-text{white-space:nowrap;transition:opacity .2s,width .2s;overflow:hidden}.sidebar--collapsed .sidebar__collapse-btn{padding:var(--space-sm)}.sidebar--collapsed .sidebar__collapse-text{opacity:0;width:0}@media (width<=768px){.sidebar{width:var(--sidebar-width);transition:transform var(--transition-normal);position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar--open{transform:translate(0)}.sidebar--collapsed{width:var(--sidebar-width)}.sidebar--collapsed .sidebar__nav-item{padding:var(--space-sm) var(--space-md);border-left:3px solid #0000;justify-content:flex-start}.sidebar--collapsed .sidebar__nav-label,.sidebar--collapsed .sidebar__collapse-text{opacity:1;width:auto}.sidebar__collapse-btn{display:none}}.topbar{height:var(--topbar-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 var(--space-lg);z-index:50;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar__left{align-items:center;gap:var(--space-md);display:flex}.topbar__title{color:var(--color-text);font-size:1.125rem;font-weight:600}.topbar__hamburger{cursor:pointer;padding:var(--space-xs);background:0 0;border:none;flex-direction:column;gap:4px;display:none}.topbar__hamburger span{background:var(--color-text);border-radius:1px;width:20px;height:2px;display:block}.topbar__user{position:relative}.topbar__user-trigger{align-items:center;gap:var(--space-sm);cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);transition:background var(--transition-fast);display:flex}.topbar__user-trigger:hover{background:var(--color-bg)}.topbar__avatar{background:var(--color-primary);width:32px;height:32px;color:var(--color-text-inverse);border-radius:50%;justify-content:center;align-items:center;font-size:.8rem;font-weight:600;display:flex}.topbar__user-name{color:var(--color-text-muted);font-size:.875rem;font-weight:500}.topbar__chevron{color:var(--color-text-muted);font-size:.7rem}.topbar__menu{top:calc(100% + var(--space-xs));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:200;min-width:200px;animation:.15s topbar-menu-in;position:absolute;right:0}.topbar__menu-header{padding:var(--space-sm) var(--space-md);flex-direction:column;gap:2px;display:flex}.topbar__menu-divider{background:var(--color-border);height:1px}.topbar__menu-item{text-align:left;width:100%;padding:var(--space-sm) var(--space-md);color:var(--color-text);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;font-size:.875rem;display:block}.topbar__menu-item:hover{background:var(--color-bg)}@keyframes topbar-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.topbar__hamburger{display:flex}.topbar__user-name{display:none}}.app-layout{grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;transition:grid-template-columns .25s;display:grid}.app-layout--collapsed{grid-template-columns:60px 1fr}.app-layout__main{flex-direction:column;min-height:100vh;display:flex}.app-layout__content{flex:1;overflow-y:auto}.app-layout__overlay{display:none}@media (width<=768px){.app-layout,.app-layout--collapsed{grid-template-columns:1fr}.app-layout__overlay{z-index:99;background:#0006;animation:.2s overlay-fade-in;display:block;position:fixed;inset:0}}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.dashboard__top-row{gap:var(--space-lg);margin-bottom:var(--space-lg);grid-template-columns:1fr 1fr;display:grid}.dashboard__kpis{gap:var(--space-sm);grid-template-columns:repeat(2,1fr);display:grid}.dashboard__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);border-top:3px solid #8fa8b5;border-left:none;flex-direction:column;gap:2px;display:flex}.dashboard__card--accent{border-top-color:#4a9b7a}.dashboard__card--split{border-top-color:#4a9b7a;flex-direction:row;align-items:stretch;gap:0}.dashboard__card--split .dashboard__card-half:first-child .dashboard__card-value{color:#4a9b7a}.dashboard__card--split .dashboard__card-half:last-child .dashboard__card-value{color:#7db89a}.dashboard__card-half{flex-direction:column;flex:1;gap:2px;display:flex}.dashboard__card-divider{background:var(--color-border);width:1px;margin:0 var(--space-md)}.dashboard__card-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:.7rem;font-weight:600}.dashboard__card-value{color:var(--color-text);font-size:1.25rem;font-weight:700}.dashboard__card-sub{color:var(--color-text-muted);font-size:.75rem}.dashboard__card-mini-divider{background:var(--color-border);height:1px;margin:var(--space-sm) 0}.dashboard__card-value--closed{color:#5c6b7a}.dashboard__row{gap:var(--space-lg);margin-bottom:var(--space-lg);grid-template-columns:1fr 1fr;display:grid}.dashboard__row--three{grid-template-columns:1fr 1fr 1fr}.dashboard__section-title{margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border);font-size:.9375rem;font-weight:600}.funnel{flex-direction:column;align-items:center;gap:3px;display:flex}.funnel__tier{cursor:pointer;flex-direction:column;align-items:center;width:100%;display:flex}.funnel__tier:hover .funnel__shape{filter:brightness(1.1)}.funnel__shape{border-radius:var(--radius-sm);height:48px;transition:filter var(--transition-fast)}.funnel__shape--open{background:#8fa8b5}.funnel__shape--bid-sent{background:#7db89a}.funnel__shape--soft-award{background:#c4a94d}.funnel__shape--awarded{background:#4a9b7a}.funnel__shape--closed{background:#5c6b7a}.funnel__info{align-items:center;gap:var(--space-xs);padding:var(--space-xs) 0;display:flex}.funnel__sep{color:var(--color-text-muted);font-size:.75rem}.funnel__status,.funnel__count,.funnel__amount{color:var(--color-text);font-size:.8125rem;font-weight:600}.funnel__declined-row{gap:var(--space-xs);margin-top:var(--space-sm);width:100%;display:flex}.funnel__declined-item{justify-content:center;align-items:center;gap:var(--space-xs);padding:var(--space-xs);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:#fef0f0;border:1px solid #e88080;flex:1;display:flex}.funnel__declined-item:hover{background:#e88080}.funnel__declined-item:hover .funnel__declined-count,.funnel__declined-item:hover .funnel__declined-label{color:#fff}.funnel__declined-count{color:#e88080;font-size:.8125rem;font-weight:700}.funnel__declined-label{color:#e88080;font-size:.625rem;font-weight:500}.bar-chart{align-items:flex-end;gap:var(--space-sm);height:200px;padding-top:var(--space-md);display:flex}.bar-chart__col{align-items:center;gap:var(--space-xs);flex-direction:column;flex:1;height:100%;display:flex}.bar-chart__bar-track{flex:1;align-items:flex-end;width:100%;display:flex}.bar-chart__bar{border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:pointer;background:#4a9b7a;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;min-height:4px;transition:height .4s,filter .15s;display:flex;position:relative;overflow:visible}.bar-chart__col:hover .bar-chart__bar{filter:brightness(1.15)}.bar-chart__hover-value,.bar-chart__hover-count{white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;position:absolute;left:50%;transform:translate(-50%)}.bar-chart__hover-value{color:var(--color-text);font-size:.6875rem;font-weight:700;bottom:calc(100% + 4px)}.bar-chart__hover-count{color:var(--color-text-muted);font-size:.5625rem;font-weight:500;bottom:calc(100% + 18px)}.bar-chart__col:hover .bar-chart__hover-value,.bar-chart__col:hover .bar-chart__hover-count{opacity:1}.bar-chart__label{color:var(--color-text-muted);font-size:.6875rem;font-weight:500}.donut-chart{align-items:center;gap:var(--space-lg);padding:var(--space-md) 0;display:flex}.donut-chart__svg-wrapper{flex-shrink:0;width:120px;height:120px;position:relative}.donut-chart__svg-wrapper svg{display:block}.donut-chart__slice{transform-origin:60px 60px;cursor:pointer;transition:opacity .15s,transform .15s}.donut-chart__slice:hover,.donut-chart__slice--active{opacity:.85;filter:brightness(1.1);transform:scale(1.06)}.donut-chart__center-overlay{pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.donut-chart__total{color:var(--color-text);font-size:1.25rem;font-weight:700;line-height:1}.donut-chart__total-label{color:var(--color-text-muted);font-size:.625rem}.donut-chart__legend{gap:var(--space-xs);flex-direction:column;display:flex}.donut-chart__legend-item{align-items:center;gap:var(--space-xs);color:var(--color-text);font-size:.75rem;display:flex}.donut-chart__legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.grouped-bar-chart{align-items:flex-end;gap:var(--space-sm);height:180px;padding-top:var(--space-md);display:flex}.grouped-bar-chart__col{align-items:center;gap:var(--space-xs);flex-direction:column;flex:1;height:100%;display:flex}.grouped-bar-chart__bars{flex:1;align-items:flex-end;gap:2px;width:100%;display:flex}.grouped-bar-chart__bar{border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:pointer;flex:1;min-height:2px;transition:height .4s,filter .15s;position:relative}.grouped-bar-chart__bar:hover{filter:brightness(1.15)}.grouped-bar-chart__bar:hover .bar-chart__hover-value{opacity:1}.grouped-bar-chart__bar--bid{background:#7db89a}.grouped-bar-chart__bar--awarded{background:#4a9b7a}.grouped-bar-chart__legend{justify-content:center;gap:var(--space-lg);margin-top:var(--space-sm);display:flex}.grouped-bar-chart__legend-item{align-items:center;gap:var(--space-xs);color:var(--color-text-muted);font-size:.6875rem;display:flex}.grouped-bar-chart__legend-dot{border-radius:2px;width:10px;height:10px}.grouped-bar-chart__legend-dot--bid{background:#7db89a}.grouped-bar-chart__legend-dot--awarded{background:#4a9b7a}.h-bar-chart{gap:var(--space-sm);flex-direction:column;display:flex}.h-bar-chart__row{align-items:center;gap:var(--space-sm);grid-template-columns:90px 1fr;display:grid}.h-bar-chart__label{color:var(--color-text);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;font-weight:500;overflow:hidden}.h-bar-chart__track{background:var(--color-bg);border-radius:var(--radius-sm);height:24px;overflow:hidden}.h-bar-chart__bar{border-radius:var(--radius-sm);cursor:pointer;min-width:24px;height:100%;padding-left:var(--space-sm);background:#4a9b7a;align-items:center;transition:width .4s,filter .15s;display:flex}.h-bar-chart__bar:hover{filter:brightness(1.1)}.h-bar-chart__bar-count{color:#fff;font-size:.6875rem;font-weight:700}.deadline__list{gap:var(--space-xs);flex-direction:column;display:flex}.deadline__item{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);border-left:3px solid #0000;justify-content:space-between;align-items:center;display:flex}.deadline__item:hover{background:var(--color-bg)}.deadline--soon{border-left-color:#c49a55}.deadline--critical{background:#fef0f0;border-left-color:#e88080}.deadline__info{flex-direction:column;display:flex}.deadline__project{font-size:.875rem}.deadline__date{flex-direction:column;align-items:flex-end;font-size:.8125rem;display:flex}.deadline__days{color:var(--color-text-muted);font-size:.75rem}.deadline__days--soon{color:#c49a55;font-weight:600}.deadline__days--critical{color:#e88080;font-weight:700}.dashboard__table{border-collapse:collapse;width:100%}.dashboard__table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--color-border);font-size:.7rem;font-weight:600}.dashboard__table td{padding:var(--space-sm) var(--space-sm);border-bottom:1px solid var(--color-border);font-size:.8125rem}.activity-feed{flex-direction:column;display:flex}.activity-feed__item{gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background var(--transition-fast);display:flex}.activity-feed__item:hover{background:var(--color-bg)}.activity-feed__item:last-child{border-bottom:none}.activity-feed__dot{background:#7db89a;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.activity-feed__content{flex:1;min-width:0}.activity-feed__header{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.activity-feed__content p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-danger{color:#e88080;font-weight:500}.text-success{color:#4a9b7a;font-weight:500}[data-tooltip]{cursor:pointer;position:relative}[data-tooltip]:after{content:attr(data-tooltip);background:var(--color-text);color:var(--color-surface);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);white-space:pre;pointer-events:none;opacity:0;z-index:10;box-shadow:var(--shadow-md);font-size:.6875rem;font-weight:500;line-height:1.5;transition:opacity .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}[data-tooltip]:hover:after{opacity:1}.donut-chart__legend-item{transition:background var(--transition-fast);padding:2px var(--space-xs);border-radius:var(--radius-sm);margin:-2px calc(-1 * var(--space-xs));cursor:pointer}.donut-chart__legend-item:hover,.donut-chart__legend-item--active{background:var(--color-bg);font-weight:600}@media (width<=1200px){.dashboard__row--three{grid-template-columns:1fr 1fr}}@media (width<=1024px){.dashboard__top-row{grid-template-columns:1fr}.dashboard__kpis{grid-template-columns:repeat(4,1fr)}.dashboard__row,.dashboard__row--three{grid-template-columns:1fr}}@media (width<=640px){.dashboard__kpis{grid-template-columns:1fr}}.data-table-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.data-table__search{padding:var(--space-md);border-bottom:1px solid var(--color-border)}.data-table__search-input{width:100%;max-width:320px;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);font-size:.875rem}.data-table__search-input:focus{border-color:var(--color-primary);outline:none}.data-table__scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table__th{padding:var(--space-sm) var(--space-md);text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);background:var(--color-bg);border-bottom:2px solid var(--color-border);white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:.6875rem;font-weight:600}.data-table__th--sortable{cursor:pointer}.data-table__th--sortable:hover{color:var(--color-text)}.data-table__sort-icon{font-size:.625rem}.data-table__td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);vertical-align:middle;font-size:.8125rem}.data-table__row:nth-child(2n){background:#f8faf9}.data-table__row--clickable{cursor:pointer}.data-table__row--clickable:hover{background:#f2f6f4}.data-table__empty{padding:var(--space-xl) var(--space-md);text-align:center;color:var(--color-text-muted);font-size:.875rem}.col--muted{color:var(--color-text-muted)}.col--bid-value{text-align:right;font-weight:600}.col--project-name{font-weight:500}.project-filters{align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.project-filters__search{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-width:200px;font-size:.8125rem}.project-filters__search:focus{border-color:var(--color-primary);outline:none}.project-filters__chips{gap:var(--space-xs);display:flex}.project-filters__chip{padding:var(--space-xs) var(--space-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);border-radius:9999px;font-size:.75rem;font-weight:500}.project-filters__chip:hover{border-color:var(--color-primary);color:var(--color-text)}.project-filters__chip--all{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.project-filters__chip--awarded{color:#fff;background:#4a9b7a;border-color:#4a9b7a}.project-filters__chip--bid-sent{color:#fff;background:#7db89a;border-color:#7db89a}.project-filters__chip--open{color:#fff;background:#8fa8b5;border-color:#8fa8b5}.project-filters__chip--declined{color:#fff;background:#e88080;border-color:#e88080}.project-filters__chip--closed{color:#fff;background:#5c6b7a;border-color:#5c6b7a}.project-filters__select{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:.8125rem}.project-filters__select:focus{border-color:var(--color-primary);outline:none}.project-status-badge{padding:2px var(--space-sm);white-space:nowrap;border-radius:9999px;font-size:.6875rem;font-weight:600;display:inline-block}.form-field{gap:var(--space-xs);flex-direction:column;display:flex}.form-field__label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.6875rem;font-weight:500}.form-field__required{color:#e88080;margin-left:2px}.form-field__input{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);transition:border-color var(--transition-fast);width:100%;font-size:.875rem}.form-field__input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #04533926}.form-field__input:disabled{background:var(--color-bg);color:var(--color-text-muted);cursor:not-allowed}.form-field__textarea{resize:vertical;min-height:60px}.form-field__checkbox-label{align-items:center;gap:var(--space-sm);cursor:pointer;font-size:.875rem;display:flex}.form-field__checkbox{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.form-field--error .form-field__input{border-color:var(--color-danger)}.form-field__error{color:var(--color-danger);font-size:.75rem}select.form-field__input{appearance:auto}.activity-log__title{margin-bottom:var(--space-md);font-size:1rem;font-weight:600}.activity-log__add{gap:var(--space-sm);margin-bottom:var(--space-md);flex-direction:column;display:flex}.activity-log__add-top{align-items:center;gap:var(--space-sm);display:flex}.activity-log__type-select{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-size:.8125rem}.activity-log__type-select:focus{border-color:#4a9b7a;outline:none}.activity-log__input{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;box-sizing:border-box;min-height:60px;font-family:inherit;font-size:.875rem}.activity-log__input:focus{border-color:#4a9b7a;outline:none;box-shadow:0 0 0 2px #4a9b7a26}.activity-log__add-bottom{justify-content:flex-end;display:flex}.activity-log__add-btn{padding:var(--space-xs) var(--space-lg);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);background:#4a9b7a;border:none;font-size:.75rem;font-weight:600}.activity-log__add-btn:hover{background:#3d8568}.activity-log__add-btn:disabled{background:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.activity-log__entries{flex-direction:column;display:flex}.activity-log__entry{padding:var(--space-sm) 0 var(--space-sm) var(--space-md);border-left:2px solid var(--color-primary-light);margin-bottom:var(--space-sm)}.activity-log__entry-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs);display:flex}.activity-log__author{color:var(--color-text);font-size:.8125rem;font-weight:600}.activity-log__timestamp{color:var(--color-text-muted);font-size:.75rem}.activity-log__badge{padding:1px var(--space-xs);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.02em;background:var(--color-border);color:var(--color-text-muted);font-size:.6875rem;font-weight:600}.activity-log__badge--call{color:#1d4ed8;background:#dbeafe}.activity-log__badge--email{color:#92400e;background:#fef3c7}.activity-log__badge--meeting{color:#6d28d9;background:#ede9fe}.activity-log__badge--site-visit{color:#065f46;background:#d1fae5}.activity-log__badge--note{background:var(--color-border);color:var(--color-text-muted)}.activity-log__text{color:var(--color-text);white-space:pre-wrap;font-size:.875rem}.create-lead-tab__header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.create-lead-tab__header h2{color:var(--color-text);font-size:1.125rem;font-weight:600}.btn-save{padding:var(--space-sm) var(--space-lg);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);background:#4a9b7a;border:none;font-size:.8125rem;font-weight:600}.btn-save:hover{background:#3d8568}.btn-save:disabled{background:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.create-lead-tab__grid{gap:var(--space-lg);grid-template-columns:1fr 1fr;display:grid}.create-lead-tab__col{gap:var(--space-md);flex-direction:column;display:flex}.create-lead-tab__row{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.create-lead-tab__row--address{grid-template-columns:2fr 1fr 1fr}.form-card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-md);border:1px solid #d8e8e0}.form-card--full{margin-top:var(--space-lg)}.form-card__title{color:#1a3d2b;text-transform:uppercase;letter-spacing:.04em;padding-bottom:var(--space-sm);margin-bottom:var(--space-md);border-bottom:1px solid #d8e8e0;font-size:.75rem;font-weight:500}.form-card__body{gap:var(--space-md);flex-direction:column;display:flex}.search-select{position:relative}.search-select__trigger{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;transition:border-color var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.search-select__trigger:hover{border-color:#4a9b7a}.search-select__value{color:var(--color-text);font-size:.875rem}.search-select__value--placeholder{color:var(--color-text-muted)}.search-select__arrow{color:var(--color-text-muted);font-size:.75rem}.search-select__dropdown{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:50;border:1px solid #d8e8e0;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden}.search-select__input{width:100%;padding:var(--space-sm) var(--space-md);border:none;border-bottom:1px solid var(--color-border);background:#f8faf8;outline:none;font-size:.8125rem}.search-select__list{max-height:200px;overflow-y:auto}.search-select__option{padding:var(--space-sm) var(--space-md);cursor:pointer;transition:background var(--transition-fast);font-size:.8125rem}.search-select__option:hover{background:#f8faf8}.search-select__option--selected{color:#1a3d2b;background:#e8f5ef;font-weight:500}.search-select__empty{padding:var(--space-md);color:var(--color-text-muted);text-align:center;font-size:.75rem}.search-select__footer{border-top:1px solid var(--color-border);padding:var(--space-sm) var(--space-md)}.search-select__create{color:#4a9b7a;cursor:pointer;transition:opacity var(--transition-fast);background:0 0;border:none;padding:0;font-size:.75rem;font-weight:600}.search-select__create:hover{opacity:.7}.contact-create-link{color:#4a9b7a;cursor:pointer;transition:opacity var(--transition-fast);background:0 0;border:none;padding:0;font-size:.6875rem;font-weight:500}.contact-create-link:hover{opacity:.7}.building-inputs{gap:var(--space-sm);flex-direction:column;display:flex}.building-input-group{border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);background:#f8faf8;border:1px solid #d8e8e0;border-left:3px solid #4a9b7a}.building-input-group__label{color:#1a3d2b;margin-bottom:var(--space-sm);font-size:.75rem;font-weight:600;display:block}.building-input-group__fields{gap:var(--space-sm);grid-template-columns:1fr 1fr;display:grid}.building-input-group__preview{color:#4a9b7a;margin-top:6px;font-size:.75rem;font-weight:600;display:inline-block}.modal-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-lg);width:100%;max-width:480px;box-shadow:var(--shadow-lg);border:1px solid #d8e8e0}.modal-card__header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.modal-card__title{color:#1a3d2b;margin:0;font-size:1rem;font-weight:600}.modal-card__close{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:2px 6px;font-size:1.25rem;line-height:1}.modal-card__close:hover{background:var(--color-bg);color:var(--color-text)}.modal-card__body{gap:var(--space-md);flex-direction:column;display:flex}.modal-card__footer{justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid #d8e8e0;display:flex}@media (width<=768px){.create-lead-tab__grid,.create-lead-tab__row{grid-template-columns:1fr}}.checkbox-tree{flex-direction:column;gap:0;display:flex}.checkbox-tree__group{border-bottom:1px solid #eef2ee}.checkbox-tree__group:last-child{border-bottom:none}.checkbox-tree__group-header{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast);background:#f8faf8;display:flex}.checkbox-tree__group-header:hover{background:#eff5ef}.checkbox-tree__chevron{color:var(--color-text-muted);transition:transform var(--transition-fast);text-align:center;flex-shrink:0;width:14px;font-size:.5625rem}.checkbox-tree__chevron--expanded{transform:rotate(90deg)}.checkbox-tree__group-label{align-items:center;gap:var(--space-sm);cursor:pointer;flex:1;display:flex}.checkbox-tree__label-text{color:#1a3d2b;font-size:.8125rem;font-weight:500}.checkbox-tree__count{border-radius:9999px;margin-left:auto;padding:1px 6px;font-size:.625rem;font-weight:600}.checkbox-tree__count--full{color:#2d6a4f;background:#e8f5ef}.checkbox-tree__count--partial{color:#8b6914;background:#fff8e7}.checkbox-tree__checkbox{accent-color:#045339;cursor:pointer;flex-shrink:0;width:16px;height:16px}.checkbox-tree__children{grid-template-rows:0fr;transition:grid-template-rows .25s;display:grid}.checkbox-tree__children--expanded{grid-template-rows:1fr}.checkbox-tree__children-inner{overflow:hidden}.checkbox-tree__item{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);color:var(--color-text);cursor:pointer;transition:background var(--transition-fast);padding-left:36px;font-size:.75rem;display:flex}.checkbox-tree__item:hover{background:#f8faf8}.checkbox-tree__subgroup-header{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast);display:flex}.checkbox-tree__subgroup-header:hover{background:#f8faf8}.checkbox-tree__subgroup-header .checkbox-tree__label-text{color:var(--color-text);font-size:.75rem;font-weight:500}.checkbox-tree__nested{border-left:1px solid #d8e8e0;margin-left:28px;padding-top:2px;padding-bottom:2px}.checkbox-tree__nested--root{margin-left:28px}.checkbox-tree__nested .checkbox-tree__item,.checkbox-tree__nested .checkbox-tree__subgroup-header{padding-left:var(--space-md)}.checkbox-tree__nested .checkbox-tree__nested .checkbox-tree__item{color:var(--color-text-muted);padding-left:var(--space-md);font-size:.6875rem}.scope-tab__header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.scope-tab__header h2{font-size:1.125rem;font-weight:600}.scope-tab__grid{gap:var(--space-lg);grid-template-columns:1fr 340px;align-items:flex-start;display:grid}.scope-tab__tree-header{margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid #d8e8e0;justify-content:space-between;align-items:flex-start;display:flex}.scope-tab__hint{color:var(--color-text-muted);font-size:.6875rem}.scope-tab__select-all{color:#4a9b7a;cursor:pointer;transition:opacity var(--transition-fast);background:0 0;border:none;padding:0;font-size:.75rem;font-weight:500}.scope-tab__select-all:hover{opacity:.7}.scope-tab__sidebar{gap:var(--space-md);flex-direction:column;display:flex}.scope-summary{gap:var(--space-sm);flex-direction:column;display:flex}.scope-summary__row{padding:var(--space-xs) 0;justify-content:space-between;align-items:center;display:flex}.scope-summary__label{color:var(--color-text-muted);font-size:.75rem}.scope-summary__value{color:#1a3d2b;font-size:.875rem;font-weight:600}@media (width<=1024px){.scope-tab__grid{grid-template-columns:1fr}}.rfq-tab__header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.rfq-tab__header h2{font-size:1.125rem;font-weight:600}.rfq-tab__header-right{align-items:center;gap:var(--space-sm);display:flex}.rfq-tab__add-scope-btn{padding:var(--space-xs) var(--space-md);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);background:#1a3d2b;border:none;font-size:.75rem;font-weight:600}.rfq-tab__add-scope-btn:hover{background:#2a5a3f}.rfq-tab__add-scope-btn:disabled{opacity:.5;cursor:not-allowed}.rfq-tab__cancel-btn{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;font-size:.75rem}.rfq-tab__add-row{align-items:center;gap:var(--space-xs);display:flex}.rfq-tab__add-select{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-size:.75rem}.rfq-stats{gap:var(--space-sm);margin-bottom:var(--space-md);grid-template-columns:repeat(3,1fr);display:grid}.rfq-stats__card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);border:1px solid #d8e8e0;flex-direction:column;align-items:center;gap:2px;display:flex}.rfq-stats__value{color:#1a3d2b;font-size:1.125rem;font-weight:700}.rfq-stats__label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-size:.625rem;font-weight:500}.rfq-tab__scroll{border-radius:var(--radius-md);background:var(--color-surface);border:1px solid #d8e8e0;overflow-x:auto}.rfq-table{border-collapse:collapse;width:100%;min-width:900px}.rfq-table__th{padding:var(--space-sm) var(--space-sm);text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);white-space:nowrap;background:#f8faf8;border-bottom:1px solid #d8e8e0;font-size:.625rem;font-weight:600}.rfq-table__th--center{text-align:center}.rfq-table__category-row{background:#1a3d2b}.rfq-table__category-cell{padding:var(--space-xs) var(--space-md);text-transform:uppercase;letter-spacing:.06em;color:#ffffffe6;border-bottom:1px solid #d8e8e0;font-size:.6875rem;font-weight:600}.rfq-table__scope-row{background:#edf2ee}.rfq-table__scope-cell{padding:var(--space-sm) var(--space-md);border-bottom:1px solid #d8e8e0}.rfq-table__scope-header{align-items:center;gap:var(--space-sm);display:flex}.rfq-table__scope-name{color:#1a3d2b;font-size:.8125rem;font-weight:500}.rfq-table__scope-badge{color:#2d6a4f;background:#e8f5ef;border-radius:9999px;padding:1px 8px;font-size:.625rem;font-weight:600}.rfq-table__scope-empty{color:var(--color-text-muted);font-size:.6875rem;font-style:italic}.rfq-table__add-company-pill{padding:2px var(--space-sm);color:#4a9b7a;cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px dashed #4a9b7a;border-radius:9999px;font-size:.625rem;font-weight:500}.rfq-table__add-company-pill:hover{background:#e8f5ef}.rfq-table__add-company-inline{align-items:center;gap:var(--space-xs);margin-left:auto;display:flex}.rfq-table__add-company-select{padding:2px var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-size:.6875rem}.rfq-table__cancel-inline{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;font-size:.625rem}.rfq-table__company-row:hover .rfq-table__td{background:#f8faf8}.rfq-table__td{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--color-border);vertical-align:middle;font-size:.8125rem}.rfq-table__td--center{text-align:center}.rfq-table__td--company{align-items:center;gap:var(--space-sm);padding-left:32px;display:flex}.rfq-table__td--notes{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.rfq-table__dot{background:#d0d5d0;border-radius:50%;flex-shrink:0;width:8px;height:8px}.rfq-table__dot--sent{background:#4a9b7a}.rfq-table__company-select{color:var(--color-text);cursor:pointer;padding:var(--space-xs) 0;background:0 0;border:none;font-size:.8125rem}.rfq-table__company-select:focus{outline:none}.rfq-table__date-input{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;min-width:110px;font-size:.8125rem}.rfq-table__date-input:hover,.rfq-table__date-input:focus{border-color:var(--color-border);outline:none}.rfq-table__checkbox{accent-color:#4a9b7a;cursor:pointer;width:16px;height:16px}.rfq-table__muted{color:var(--color-text-muted);font-size:.75rem}.rfq-table__note-cell{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;max-width:140px;padding:2px var(--space-sm);border-radius:var(--radius-sm);transition:background var(--transition-fast);font-size:.75rem;display:inline-block;overflow:hidden}.rfq-table__note-cell:hover{background:#f0f8f4}.rfq-table__note-cell--empty{color:#4a9b7a;font-size:.6875rem;font-weight:500}.rfq-table__note-text{color:var(--color-text-muted);font-size:.75rem}.rfq-table__note-edit{align-items:center;gap:var(--space-xs);display:flex}.rfq-table__note-input{min-width:120px;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);border:1px solid #4a9b7a;outline:none;flex:1;font-size:.75rem}.rfq-table__note-save{padding:var(--space-xs) var(--space-sm);color:#fff;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:#4a9b7a;border:none;font-size:.6875rem;font-weight:600}.rfq-table__note-save:hover{background:#3d8568}.rfq-table__partner-badge{color:#4a9b7a;background:#e8f5ef;border-radius:9999px;padding:1px 8px;font-size:.625rem;font-weight:600;display:inline-block}.rfq-table__td--delete{text-align:center;width:36px}.rfq-table__delete{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);opacity:.4;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:inline-flex}.rfq-table__company-row:hover .rfq-table__delete{opacity:1}.rfq-table__delete:hover{color:#e88080;opacity:1;background:#fce8e8}.rfq-table__empty{padding:var(--space-xl) var(--space-md);text-align:center;color:var(--color-text-muted);font-size:.875rem}.rfq-table__empty-scope{color:var(--color-text-muted);padding-left:32px;font-size:.75rem;font-style:italic}.estimating-tab__header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.estimating-tab__header h2{font-size:1.125rem;font-weight:600}.estimating-tab__grid{gap:var(--space-lg);grid-template-columns:1fr 1fr;display:grid}.estimating-tab__col{gap:var(--space-md);flex-direction:column;display:flex}.estimating-tab__row{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.est-bid-card{border-radius:var(--radius-md);padding:var(--space-md);background:#f0f8f4;border:1px solid #4a9b7a}.est-bid-card__label{text-transform:uppercase;letter-spacing:.03em;color:#2d6a4f;margin-bottom:var(--space-sm);font-size:.6875rem;font-weight:500;display:block}.est-bid-card__input{width:100%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);color:#1a3d2b;background:#fff;border:1px solid #4a9b7a;font-size:1.125rem;font-weight:500}.est-bid-card__input:focus{outline:none;box-shadow:0 0 0 2px #4a9b7a33}.est-bid-card__input::placeholder{color:var(--color-text-muted);font-weight:400}.est-mitek{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-md);transition:all var(--transition-fast);border:1px solid #d8e8e0}.est-mitek--sent{background:#f0f8f4;border-color:#4a9b7a}.est-mitek__header{justify-content:space-between;align-items:center;display:flex}.est-mitek__brand{align-items:center;gap:var(--space-sm);display:flex}.est-mitek__logo{padding:var(--space-xs) var(--space-sm);color:#fff;border-radius:var(--radius-sm);letter-spacing:.02em;background:#1a3d2b;justify-content:center;align-items:center;font-size:.6875rem;font-weight:700;display:inline-flex}.est-mitek__title{color:#1a3d2b;font-size:.8125rem;font-weight:600;display:block}.est-mitek__subtitle{color:var(--color-text-muted);font-size:.6875rem;display:block}.est-mitek--sent .est-mitek__subtitle{color:#4a9b7a}.est-mitek__toggle-wrap{align-items:center;gap:var(--space-sm);display:flex}.est-mitek__toggle-label{color:var(--color-text-muted);font-size:.6875rem;font-weight:500}.est-mitek__toggle-label--on{color:#4a9b7a}.est-mitek__toggle{cursor:pointer;width:40px;height:22px;transition:background var(--transition-fast);background:#d0d5d0;border:none;border-radius:11px;padding:0;position:relative}.est-mitek__toggle--on{background:#4a9b7a}.est-mitek__toggle-knob{width:16px;height:16px;transition:left var(--transition-fast);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000026}.est-mitek__toggle--on .est-mitek__toggle-knob{left:21px}.est-mitek__divider{height:1px;margin:var(--space-sm) 0;background:#d8e8e0}.est-mitek--sent .est-mitek__divider{background:#4a9b7a4d}.est-mitek__status{align-items:center;gap:var(--space-sm);display:flex}.est-mitek__dot{background:#d0d5d0;border-radius:50%;flex-shrink:0;width:8px;height:8px}.est-mitek__dot--on{background:#4a9b7a}.est-mitek__status-text{color:var(--color-text-muted);font-size:.75rem}.est-mitek__status-text--on{color:#4a9b7a;font-weight:500}.est-mitek__date{color:var(--color-text-muted);margin-left:auto;font-size:.6875rem}@media (width<=768px){.estimating-tab__grid,.estimating-tab__row{grid-template-columns:1fr}}.detail-header{margin-bottom:var(--space-lg)}.detail-header__back{color:#4a9b7a;cursor:pointer;margin-bottom:var(--space-sm);transition:opacity var(--transition-fast);background:0 0;border:none;padding:0;font-size:.8125rem;font-weight:500}.detail-header__back:hover{opacity:.7}.detail-header__main{justify-content:space-between;align-items:flex-start;display:flex}.detail-header__title-row{align-items:center;gap:var(--space-md);display:flex}.detail-header__title{color:var(--color-text);margin:0;font-size:1.375rem;font-weight:700}.detail-header__customer{color:var(--color-text-muted);margin-top:2px;font-size:.8125rem}.detail-header__actions{gap:var(--space-sm);align-items:center;display:flex}.btn-outline-subtle{padding:var(--space-xs) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);font-size:.75rem;font-weight:500}.btn-outline-subtle:hover{color:#e88080;border-color:#e88080}.status-dropdown{position:relative}.status-badge{padding:var(--space-sm) var(--space-lg);cursor:pointer;align-items:center;gap:var(--space-xs);transition:opacity var(--transition-fast);border-radius:9999px;font-size:.9375rem;font-weight:700;display:inline-flex}.status-badge:hover{opacity:.85}.status-badge__arrow{opacity:.6;font-size:.6875rem}.status-dropdown__menu{top:calc(100% + var(--space-xs));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:50;min-width:180px;padding:var(--space-xs) 0;position:absolute;left:0}.status-dropdown__item{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);color:var(--color-text);cursor:pointer;text-align:left;transition:background var(--transition-fast);background:0 0;border:none;font-size:.8125rem;display:flex}.status-dropdown__item:hover{background:var(--color-bg)}.status-dropdown__item--active{font-weight:600}.status-dropdown__dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.project-tabs{border-bottom:1px solid var(--color-border);margin-bottom:var(--space-lg);gap:0;display:flex}.project-tabs__tab{padding:var(--space-sm) var(--space-lg);color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;font-size:.8125rem;font-weight:400;position:relative}.project-tabs__tab:hover{color:var(--color-text)}.project-tabs__tab--active{color:#1a3d2b;font-weight:500}.project-tabs__tab--active:after{content:"";background:#4a9b7a;height:2px;position:absolute;bottom:-1px;left:0;right:0}.detail-header__decline-reason{color:#8b2a2a;margin-top:4px;font-size:.75rem;font-style:italic}.decline-modal-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.decline-modal{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-lg);width:90%;max-width:440px;box-shadow:var(--shadow-lg);border:1px solid #d8e8e0}.decline-modal__title{color:#8b2a2a;margin:0 0 4px;font-size:1rem;font-weight:600}.decline-modal__subtitle{color:var(--color-text-muted);margin:0 0 var(--space-md);font-size:.8125rem}.decline-modal__select{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);transition:border-color var(--transition-fast);outline:none;font-family:inherit;font-size:.875rem}.decline-modal__select:focus{border-color:#4a9b7a}.decline-modal__other-input{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-top:var(--space-sm);transition:border-color var(--transition-fast);outline:none;font-family:inherit;font-size:.875rem}.decline-modal__other-input:focus{border-color:#4a9b7a}.decline-modal__actions{justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-md);display:flex}.decline-modal__confirm{padding:var(--space-sm) var(--space-lg);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);background:#8b2a2a;border:none;font-size:.8125rem;font-weight:600}.decline-modal__confirm:hover{background:#7a2020}.decline-modal__confirm:disabled{background:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.contacts-title{color:#1a3d2b;font-size:1.25rem;font-weight:500}.contacts-new-btn{padding:var(--space-sm) var(--space-lg);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);background:#1a3d2b;border:none;font-size:.8125rem;font-weight:600}.contacts-new-btn:hover{background:#2a5a3f}.contacts-filters{align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.contacts-filters__search{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);flex:1;font-size:.8125rem}.contacts-filters__search:focus{border-color:#4a9b7a;outline:none}.contacts-filters__select{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;min-width:130px;font-size:.8125rem}.contacts-filters__select:focus{border-color:#4a9b7a;outline:none}.contacts-table-wrap{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid #d8e8e0;overflow:hidden}.contacts-table{border-collapse:collapse;width:100%}.contacts-table__th{padding:var(--space-sm) var(--space-md);text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);white-space:nowrap;background:#f8faf8;border-bottom:1px solid #d8e8e0;font-size:.625rem;font-weight:600}.contacts-table__td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);vertical-align:middle;font-size:.8125rem}.contacts-table__row{cursor:pointer;transition:background var(--transition-fast)}.contacts-table__row:hover{background:#f8faf8}.contacts-table__row:nth-child(2n){background:#f4f6f4}.contacts-table__row:nth-child(2n):hover{background:#f0f4f0}.contacts-table__td--name{align-items:center;gap:var(--space-sm);display:flex}.contacts-table__avatar{color:#fff;letter-spacing:.02em;background:#1a3d2b;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:.625rem;font-weight:700;display:inline-flex}.contacts-table__name-text{color:#1a3d2b;font-weight:500}.contacts-table__email{color:#4a9b7a;font-size:.8125rem;text-decoration:none}.contacts-table__email:hover{text-decoration:underline}.contacts-table__td--role{color:#666}.contacts-table__vendor-badge{padding:2px var(--space-sm);color:#3a6e57;white-space:nowrap;background:#eef6f2;border:1px solid #a8c5b5;border-radius:9999px;font-size:.6875rem;font-weight:500;display:inline-block}.contacts-table__muted{color:var(--color-text-muted);font-size:.8125rem}.contacts-table__empty{padding:var(--space-xl) var(--space-md);text-align:center;color:var(--color-text-muted);font-size:.875rem}@media (width<=768px){.contacts-filters{flex-direction:column}.contacts-filters__search{width:100%}}.contact-header{margin-bottom:var(--space-lg)}.contact-header__back{color:#4a9b7a;cursor:pointer;margin-bottom:var(--space-sm);transition:opacity var(--transition-fast);background:0 0;border:none;padding:0;font-size:.8125rem;font-weight:500}.contact-header__back:hover{opacity:.7}.contact-header__main{justify-content:space-between;align-items:flex-start;display:flex}.contact-header__left{align-items:center;gap:var(--space-md);display:flex}.contact-header__avatar{color:#fff;letter-spacing:.02em;background:#1a3d2b;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:1rem;font-weight:700;display:flex}.contact-header__info{flex-direction:column;display:flex}.contact-header__name{color:#1a3d2b;margin:0;font-size:1.25rem;font-weight:500;line-height:1.3}.contact-header__email{color:#4a9b7a;transition:opacity var(--transition-fast);font-size:.8125rem;text-decoration:none}.contact-header__email:hover{opacity:.7}.contact-header__meta{color:var(--color-text-muted);margin-top:2px;font-size:.75rem}.contact-header__actions{gap:var(--space-sm);align-items:center;display:flex}.contact-detail__grid{gap:var(--space-lg);grid-template-columns:1fr 1fr;align-items:flex-start;display:grid}.contact-detail__col{gap:var(--space-md);flex-direction:column;display:flex}.contact-detail__row{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.contact-detail__empty{color:var(--color-text-muted);font-size:.8125rem;font-style:italic}.contact-projects{gap:var(--space-xs);flex-direction:column;display:flex}.contact-projects__item{padding:var(--space-sm) var(--space-sm);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.contact-projects__item:hover{background:#f8faf8}.contact-projects__info{flex-direction:column;display:flex}.contact-projects__name{color:#1a3d2b;font-size:.8125rem;font-weight:500}.contact-projects__customer{color:var(--color-text-muted);font-size:.6875rem}.contact-projects__badge{padding:2px var(--space-sm);white-space:nowrap;border-radius:9999px;font-size:.625rem;font-weight:600;display:inline-block}@media (width<=768px){.contact-detail__grid,.contact-detail__row{grid-template-columns:1fr}.contact-header__main{gap:var(--space-md);flex-direction:column}}.vendors-title{color:#1a3d2b;font-size:1.25rem;font-weight:500}.vendors-new-btn{padding:var(--space-sm) var(--space-lg);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);background:#1a3d2b;border:none;font-size:.8125rem;font-weight:600}.vendors-new-btn:hover{background:#2a5a3f}.vendors-filters{align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.vendors-filters__search{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);flex:1;font-size:.8125rem}.vendors-filters__search:focus{border-color:#4a9b7a;outline:none}.vendors-filters__chips{gap:var(--space-xs);display:flex}.vendors-filters__chip{padding:var(--space-xs) var(--space-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);border-radius:9999px;font-size:.75rem;font-weight:500}.vendors-filters__chip:hover{color:var(--color-text);border-color:#1a3d2b}.vendors-filters__chip--active{color:#fff;background:#1a3d2b;border-color:#1a3d2b}.vendors-table-wrap{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid #d8e8e0;overflow:hidden}.vendors-table{border-collapse:collapse;width:100%}.vendors-table__th{padding:var(--space-sm) var(--space-md);text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);white-space:nowrap;background:#f8faf8;border-bottom:1px solid #d8e8e0;font-size:.625rem;font-weight:600}.vendors-table__td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);vertical-align:middle;font-size:.8125rem}.vendors-table__row{cursor:pointer;transition:background var(--transition-fast)}.vendors-table__row:hover{background:#f8faf8}.vendors-table__td--company{align-items:center;gap:var(--space-sm);display:flex}.vendors-table__avatar{color:#fff;background:#1a3d2b;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.625rem;font-weight:700;display:inline-flex}.vendors-table__name{color:#1a3d2b;font-weight:500}.vendors-table__badge--partner{padding:2px var(--space-sm);color:#2d6a4f;white-space:nowrap;background:#e8f5ef;border:1px solid #4a9b7a;border-radius:9999px;align-items:center;gap:4px;font-size:.6875rem;font-weight:500;display:inline-flex}.vendors-table__badge--preferred{padding:2px var(--space-sm);color:#8b6914;white-space:nowrap;background:#fff8e7;border:1px solid #c9a96e;border-radius:9999px;align-items:center;gap:4px;font-size:.6875rem;font-weight:500;display:inline-flex}.vendors-table__td--notes{max-width:280px}.vendors-table__notes-text{text-overflow:ellipsis;white-space:nowrap;color:#666;max-width:280px;font-size:.8125rem;display:inline-block;overflow:hidden}.vendors-table__muted{color:var(--color-text-muted);font-size:.8125rem}.vendors-table__empty{padding:var(--space-xl) var(--space-md);text-align:center;color:var(--color-text-muted);font-size:.875rem}@media (width<=768px){.vendors-filters{flex-direction:column}.vendors-filters__search{width:100%}}.vendor-header{margin-bottom:var(--space-lg)}.vendor-header__back{color:#4a9b7a;cursor:pointer;margin-bottom:var(--space-sm);transition:opacity var(--transition-fast);background:0 0;border:none;padding:0;font-size:.8125rem;font-weight:500}.vendor-header__back:hover{opacity:.7}.vendor-header__main{justify-content:space-between;align-items:flex-start;display:flex}.vendor-header__left{align-items:center;gap:var(--space-md);display:flex}.vendor-header__avatar{color:#fff;letter-spacing:.02em;background:#1a3d2b;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:1rem;font-weight:700;display:flex}.vendor-header__info{flex-direction:column;display:flex}.vendor-header__name{color:#1a3d2b;margin:0;font-size:1.25rem;font-weight:500;line-height:1.3}.vendor-header__meta{color:var(--color-text-muted);margin-top:2px;font-size:.75rem}.vendor-header__actions{gap:var(--space-sm);align-items:center;display:flex}.vendor-detail__grid{gap:var(--space-lg);grid-template-columns:1fr 1fr;align-items:flex-start;display:grid}.vendor-detail__col{gap:var(--space-md);flex-direction:column;display:flex}.vendor-detail__empty{color:var(--color-text-muted);font-size:.8125rem;font-style:italic}.vendor-toggle{padding:var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:var(--color-surface);border:1px solid #d8e8e0;justify-content:space-between;align-items:center;display:flex}.vendor-toggle:hover{background:#f8faf8}.vendor-toggle--active{background:#f0f8f4;border-color:#4a9b7a}.vendor-toggle__left{align-items:center;gap:var(--space-sm);display:flex}.vendor-toggle__icon{border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;display:flex}.vendor-toggle__icon--partner{background:#e8f5ef}.vendor-toggle__icon--preferred{background:#fff8e7}.vendor-toggle__title{color:#1a3d2b;font-size:.8125rem;font-weight:600;display:block}.vendor-toggle__subtitle{color:var(--color-text-muted);font-size:.6875rem;display:block}.vendor-toggle--active .vendor-toggle__subtitle{color:#4a9b7a}.vendor-toggle__switch{cursor:pointer;width:40px;height:22px;transition:background var(--transition-fast);background:#d0d5d0;border:none;border-radius:11px;flex-shrink:0;padding:0;position:relative}.vendor-toggle__switch--on{background:#4a9b7a}.vendor-toggle__knob{width:16px;height:16px;transition:left var(--transition-fast);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000026}.vendor-toggle__switch--on .vendor-toggle__knob{left:21px}.vendor-contacts{gap:var(--space-xs);flex-direction:column;display:flex}.vendor-contacts__item{padding:var(--space-sm);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.vendor-contacts__item:hover{background:#f8faf8}.vendor-contacts__left{align-items:center;gap:var(--space-sm);display:flex}.vendor-contacts__avatar{color:#fff;background:#1a3d2b;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:.625rem;font-weight:700;display:inline-flex}.vendor-contacts__name{color:#1a3d2b;font-size:.8125rem;font-weight:500;display:block}.vendor-contacts__role{color:var(--color-text-muted);font-size:.6875rem;display:block}.vendor-contacts__email{color:#4a9b7a;font-size:.75rem;text-decoration:none}.vendor-contacts__email:hover{text-decoration:underline}@media (width<=768px){.vendor-detail__grid{grid-template-columns:1fr}.vendor-header__main{gap:var(--space-md);flex-direction:column}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg);min-height:100vh;line-height:1.5}img,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}:root{--color-primary:#045339;--color-primary-light:#06704d;--color-primary-dark:#033a28;--color-accent:#868ed5;--color-accent-light:#a0a7e0;--color-accent-bg:#868ed51f;--color-bg:#f5f6fa;--color-surface:#fff;--color-text:#1a1a1a;--color-text-muted:#718096;--color-text-inverse:#fff;--color-border:#e2e8f0;--color-success:#045339;--color-success-bg:#e6f4ed;--color-danger:#e53e3e;--color-danger-bg:#fed7d7;--color-warning:#d69e2e;--color-warning-bg:#fefcbf;--color-info:#868ed5;--color-info-bg:#868ed51a;--sidebar-width:240px;--topbar-height:56px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #00000012;--shadow-lg:0 10px 15px #0000001a;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--transition-fast:.15s ease;--transition-normal:.25s ease}.flex-row{flex-direction:row;align-items:center;display:flex}.flex-col{flex-direction:column;display:flex}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-muted{color:var(--color-text-muted)}.text-center{text-align:center}.text-right{text-align:right}.font-medium{font-weight:500}.font-semibold{font-weight:600}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;font-size:.875rem;font-weight:500;display:inline-flex}.btn:hover{background:var(--color-bg)}.btn:active{transform:scale(.98)}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-light);border-color:var(--color-primary-light)}.btn-danger{background:var(--color-danger);color:var(--color-text-inverse);border-color:var(--color-danger)}.btn-danger:hover{background:#c53030;border-color:#c53030}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--color-bg)}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:.75rem}.badge{border-radius:999px;align-items:center;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-flex}.badge-success{color:#045339;background:#e6f4ed}.badge-danger{color:#e53e3e;background:#fed7d7}.badge-warning{color:#d69e2e;background:#fef9e7}.badge-info{color:#64748b;background:#eef0f6}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.page{padding:var(--space-lg);max-width:1400px}.page__header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.page__header h1{color:var(--color-text);font-size:1.5rem}.divider{border:none;border-top:1px solid var(--color-border);margin:var(--space-md) 0}
