.vendor-filter-bar{display:grid;grid-template-columns:minmax(18rem,1.3fr) 2fr;align-items:end;gap:var(--space-md);padding:var(--space-gutter) 0;border-block:1px solid var(--color-border-subtle)}.vendor-filter-bar__selects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md)}.vendor-directory__result-meta{min-height:3rem;display:flex;align-items:center;justify-content:space-between;color:var(--color-text-muted);font-size:.875rem}.vendor-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-gutter);padding-bottom:var(--space-xl)}.vendor-card{min-width:0;overflow:hidden;background:var(--color-surface-lowest);border:1px solid var(--color-border-subtle);border-radius:var(--radius-container);box-shadow:var(--shadow-ambient);transition:transform var(--transition-standard),border-color var(--transition-standard)}.vendor-card:hover{transform:translateY(-2px);border-color:var(--color-primary-container)}.vendor-card__accent{height:8.5rem;display:grid;place-items:center;color:var(--color-on-primary-subtle-variant);background:linear-gradient(135deg,var(--color-primary-subtle),var(--color-surface-container));font-family:var(--font-editorial);font-size:2.5rem}.vendor-card__body{display:grid;gap:var(--space-md);padding:var(--space-gutter)}.vendor-card__meta{min-height:1.5rem;display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);color:var(--color-secondary);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.vendor-card h2{margin:0;font-size:1.5rem}.vendor-card h2 a{color:var(--color-text);text-decoration:none}.vendor-card__location{margin:0;color:var(--color-text-muted)}.vendor-card__package-summary{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--space-md);padding-block:var(--space-md);border-block:1px solid var(--color-surface-container)}.vendor-card__package-summary div{display:grid;gap:var(--space-xs)}.vendor-card__package-summary small{color:var(--color-text-muted);font-size:.7rem;text-transform:uppercase}.vendor-card__package-summary strong{color:var(--color-primary);font-size:1rem}.vendor-card__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);font-size:.75rem;color:var(--color-text-muted)}.vendor-card__footer a{color:var(--color-secondary);font-weight:700;text-transform:uppercase}.vendor-list__add{min-height:25rem;display:grid;place-content:center;justify-items:center;gap:var(--space-sm);padding:var(--space-gutter);text-align:center;color:var(--color-text);text-decoration:none;border:1px dashed var(--color-border-subtle);border-radius:var(--radius-container)}.vendor-list__add span{width:4rem;height:4rem;display:grid;place-items:center;background:var(--color-surface-container);border-radius:var(--radius-container);font-size:2rem}.vendor-list__add strong{font-family:var(--font-editorial);font-size:1.25rem}.vendor-list__add small{max-width:14rem;color:var(--color-text-muted)}
.vendor-detail-header{display:grid;gap:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border-subtle)}.vendor-detail-header__content{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-gutter)}.vendor-detail-header__content h1{max-width:48rem;margin:var(--space-md) 0 0;font-size:3rem}.vendor-detail-header__meta,.vendor-detail-header__links{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.vendor-detail-header__meta{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.vendor-detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg);border-bottom:1px solid var(--color-border-subtle)}.vendor-tabs,.vendor-detail-toolbar__actions{display:flex;align-items:center;gap:var(--space-sm)}.vendor-tab{min-height:3.5rem;padding-inline:var(--space-xs);background:transparent;border:0;border-bottom:2px solid transparent;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.vendor-tab.is-active{color:var(--color-primary);border-color:var(--color-primary)}.vendor-overview{display:grid;grid-template-columns:minmax(0,2fr) minmax(16rem,1fr);gap:var(--space-gutter);padding-bottom:var(--space-xl)}.vendor-overview section,.vendor-overview aside{display:grid;align-content:start;gap:var(--space-md)}.vendor-overview h2{margin:0;font-family:var(--font-functional);font-size:1.05rem}.vendor-overview p{margin:0}.vendor-overview__contact{grid-column:1}.vendor-overview__pros-cons{grid-column:1}.vendor-overview__notes{grid-column:1}.vendor-overview__summary{grid-column:2;grid-row:1/span 3}.vendor-overview__columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.vendor-overview__columns>div{display:grid;align-content:start;gap:var(--space-sm)}.vendor-overview__positive{color:var(--color-primary)}.vendor-overview__negative{color:var(--color-error)}.preserve-lines{white-space:pre-line}.vendor-overview__summary dl{display:grid;gap:var(--space-md);margin:0}.vendor-overview__summary dl div{display:grid;gap:var(--space-xs);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-surface-container)}.vendor-overview__summary dt{font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase}.vendor-overview__summary dd{margin:0;font-weight:600}
.vendor-form{display:grid;gap:var(--space-gutter);max-width:68rem;margin-inline:auto;padding-bottom:var(--space-xl)}.vendor-form__section{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:var(--space-lg);padding:var(--space-lg);background:var(--color-surface-lowest);border:1px solid var(--color-border-subtle);border-radius:var(--radius-container)}.vendor-form__section-heading{display:flex;align-items:flex-start;gap:var(--space-sm)}.vendor-form__section-heading>span{color:var(--color-secondary);font-family:var(--font-editorial);font-size:1.5rem}.vendor-form__section-heading h2{margin:0 0 var(--space-xs);font-size:1.25rem}.vendor-form__section-heading p{margin:0;color:var(--color-text-muted);font-size:.875rem}.vendor-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}.vendor-form__wide{grid-column:1/-1}.vendor-form__long-text{min-height:8rem}.vendor-form__error{padding:var(--space-md);color:var(--color-on-error-container);background:var(--color-error-container);border-radius:var(--radius-control)}.vendor-form__actions{position:sticky;bottom:var(--layout-bottom-nav-height);z-index:5;display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md);background:color-mix(in srgb,var(--color-background) 92%,transparent);border:1px solid var(--color-border-subtle);border-radius:var(--radius-container);backdrop-filter:blur(8px)}
@media(min-width:768px) and (max-width:1199px){.vendor-filter-bar{grid-template-columns:1fr}.vendor-list{grid-template-columns:repeat(2,minmax(0,1fr))}.vendor-overview{grid-template-columns:1fr}.vendor-overview__summary{grid-column:1;grid-row:auto}.vendor-detail-header__content{align-items:flex-start;flex-direction:column}}
@media(max-width:767px){.vendor-filter-bar{grid-template-columns:1fr}.vendor-filter-bar__selects{grid-template-columns:1fr}.vendor-list{grid-template-columns:1fr}.vendor-card__accent{height:6rem}.vendor-detail-header__content,.vendor-detail-toolbar{align-items:stretch;flex-direction:column}.vendor-detail-header__content h1{font-size:2rem}.vendor-detail-header__links,.vendor-detail-toolbar__actions{display:grid;grid-template-columns:1fr}.vendor-tabs{overflow-x:auto}.vendor-tab{white-space:nowrap}.vendor-overview{grid-template-columns:1fr}.vendor-overview__contact,.vendor-overview__pros-cons,.vendor-overview__notes,.vendor-overview__summary{grid-column:1;grid-row:auto}.vendor-overview__columns{grid-template-columns:1fr}.vendor-form__section{grid-template-columns:1fr;padding:var(--space-md)}.vendor-form__grid{grid-template-columns:1fr}.vendor-form__wide{grid-column:auto}.vendor-card__footer{align-items:flex-start;flex-direction:column}}

/* Keep form actions close to the viewport on tablet/desktop and above the safe-area nav on mobile. */
.vendor-form__actions{bottom:var(--space-sm)}
@media(max-width:767px){.vendor-tabs{scrollbar-width:none}.vendor-tab{min-height:2.75rem}.vendor-form__actions{bottom:calc(var(--layout-bottom-nav-height) + env(safe-area-inset-bottom) + var(--space-sm))}}
@media(max-width:767px){.vendor-note-card__actions button{min-height:2.75rem;padding-inline:var(--space-sm)}}
.vendor-notes{display:grid;gap:var(--space-lg);padding-bottom:var(--space-xl)}.vendor-notes__header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-md)}.vendor-notes__header h2{margin:0 0 var(--space-xs);font-size:1.5rem}.vendor-notes__header p{margin:0;color:var(--color-text-muted)}.vendor-notes__filters{display:flex;gap:var(--space-sm);overflow-x:auto;padding-bottom:var(--space-xs)}.vendor-note-filter{min-height:2.5rem;padding:.5rem .875rem;color:var(--color-text-muted);background:var(--color-surface-lowest);border:1px solid var(--color-border-subtle);border-radius:999px;white-space:nowrap;cursor:pointer}.vendor-note-filter.is-active{color:var(--color-on-primary);background:var(--color-primary);border-color:var(--color-primary)}.vendor-note-timeline{position:relative;display:grid;gap:var(--space-lg);max-width:62rem;margin-inline:auto;width:100%}.vendor-note-timeline::before{content:"";position:absolute;top:1rem;bottom:1rem;left:1rem;width:2px;background:var(--color-primary-container)}.vendor-note-card{position:relative;display:grid;grid-template-columns:2rem minmax(0,1fr);gap:var(--space-md)}.vendor-note-card__dot{z-index:1;width:1rem;height:1rem;margin:.8rem 0 0 .55rem;background:var(--color-primary);border:3px solid var(--color-background);border-radius:50%;box-shadow:0 0 0 2px var(--color-primary-container)}.vendor-note-card__content{display:grid;gap:var(--space-sm);padding:var(--space-gutter);background:var(--color-surface-lowest);border:1px solid var(--color-border-subtle);border-radius:var(--radius-container);box-shadow:var(--shadow-ambient)}.vendor-note-card__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);font-size:.75rem;color:var(--color-text-muted)}.vendor-note-type{padding:.25rem .55rem;color:var(--color-secondary);background:var(--color-secondary-subtle);border-radius:999px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.vendor-note-card h3,.vendor-note-card p{margin:0}.vendor-note-rating{color:#a56b00;letter-spacing:.08em}.vendor-note-rating span{margin-left:var(--space-xs);color:var(--color-text-muted);font-size:.8rem;letter-spacing:0}.vendor-note-card__actions{display:flex;gap:var(--space-md);justify-content:flex-end;padding-top:var(--space-xs);border-top:1px solid var(--color-surface-container)}.vendor-note-card__actions button{padding:0;color:var(--color-primary);background:none;border:0;font-weight:700;cursor:pointer}.vendor-note-card__actions .is-danger{color:var(--color-error)}.vendor-note-form{display:grid;gap:var(--space-md)}.vendor-note-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.vendor-note-form__wide{grid-column:1/-1}.vendor-note-form__content{min-height:10rem}.vendor-note-form__error{padding:var(--space-md);margin:0;color:var(--color-on-error-container);background:var(--color-error-container);border-radius:var(--radius-control)}
@media(max-width:767px){.vendor-notes__header{align-items:stretch;flex-direction:column}.vendor-note-timeline{gap:var(--space-md)}.vendor-note-timeline::before{display:none}.vendor-note-card{display:block}.vendor-note-card__dot{display:none}.vendor-note-card__content{padding:var(--space-md);box-shadow:none}.vendor-note-card__meta{align-items:flex-start;flex-direction:column-reverse}.vendor-note-form__grid{grid-template-columns:1fr}.vendor-note-form__wide{grid-column:auto}}
.vendor-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-top:var(--space-lg)}
.vendor-pagination>span{color:var(--color-text-muted);font-size:.875rem}

@media (max-width: 36rem){.vendor-pagination{justify-content:space-between;gap:var(--space-sm)}.vendor-pagination .app-button{padding-inline:var(--space-sm)}}

/* Calm, sectioned SaaS editor for create/edit vendor. */
.vendor-form{display:grid;gap:var(--space-4);width:100%;max-width:none;margin-inline:auto;padding-bottom:var(--space-6)}
.vendor-form>.validation-summary-valid{display:none}.vendor-form>.validation-summary-errors{padding:var(--space-3) var(--space-4);color:var(--color-on-error-container);background:var(--color-error-container);border-radius:var(--radius-control)}
.vendor-form__section{display:grid;grid-template-columns:1fr;gap:var(--space-4);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-container);box-shadow:0 1px 2px rgba(23,32,24,.025)}
.vendor-form__section-heading{display:grid;grid-template-columns:2.25rem minmax(0,1fr);align-items:start;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}
.vendor-form__section-icon{display:grid;place-items:center;width:2.25rem;height:2.25rem;color:var(--color-primary)!important;background:var(--color-primary-subtle);border-radius:.6rem;font-size:inherit!important}
.vendor-form__section-heading h2{margin:0 0 .2rem;font-family:var(--font-functional);font-size:1.05rem}.vendor-form__section-heading p{margin:0;color:var(--color-text-muted);font-size:.8125rem;line-height:1.5}
.vendor-form__section-heading--with-action{grid-template-columns:2.25rem minmax(0,1fr) auto}.vendor-form__add-package{align-self:center}.vendor-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.vendor-form__wide{grid-column:1/-1}.vendor-form__long-text{min-height:7rem}.vendor-form__error{margin:0;padding:var(--space-3) var(--space-4)}
.vendor-form__package-empty{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);color:var(--color-text-muted);background:var(--color-surface-low);border:1px dashed var(--color-border);border-radius:var(--radius-control)}.vendor-form__package-empty svg{flex:0 0 auto;color:var(--color-primary)}.vendor-form__package-empty strong{display:block;color:var(--color-text);font-size:.875rem}.vendor-form__package-empty p{margin:.2rem 0 0;font-size:.8125rem}
.vendor-form__package-list{display:grid;border:1px solid var(--color-border);border-radius:var(--radius-control)}.vendor-form__package-row{display:grid;grid-template-columns:minmax(10rem,1.5fr) minmax(7rem,1fr) minmax(6rem,.8fr) auto auto;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.vendor-form__package-row+.vendor-form__package-row{border-top:1px solid var(--color-border)}.vendor-form__package-row>div{display:grid;min-width:0;gap:.15rem}.vendor-form__package-row small{color:var(--color-text-muted);font-size:.6875rem}.vendor-form__package-row strong{overflow:hidden;font-size:.8125rem;text-overflow:ellipsis;white-space:nowrap}.vendor-form__package-name strong{font-size:.875rem}.vendor-form__package-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:var(--space-1)}.vendor-form__package-actions .app-button{min-height:2.25rem;padding:.35rem .55rem}.vendor-form__delete-package{color:var(--color-error)}
.vendor-form__actions{position:sticky;z-index:30;bottom:var(--space-2);display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3);background:color-mix(in srgb,var(--color-surface) 94%,transparent);border:1px solid var(--color-border);border-radius:var(--radius-container);box-shadow:0 -4px 20px rgba(23,32,24,.08);backdrop-filter:blur(10px)}
@media(max-width:767px){.vendor-form{gap:var(--space-3);padding-bottom:calc(5rem + var(--layout-bottom-nav-height) + env(safe-area-inset-bottom))}.vendor-form__section{padding:var(--space-4)}.vendor-form__grid{grid-template-columns:1fr;gap:var(--space-3)}.vendor-form__wide{grid-column:auto}.vendor-form__section-heading--with-action{grid-template-columns:2.25rem minmax(0,1fr)}.vendor-form__add-package{grid-column:1/-1;width:100%}.vendor-form__package-row{grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2)}.vendor-form__package-row>div:nth-child(2),.vendor-form__package-row>div:nth-child(3){display:none}.vendor-form__package-row>.package-status-badge{justify-self:end}.vendor-form__package-actions{grid-column:1/-1;justify-content:flex-start}.vendor-form__actions{position:fixed;right:0;bottom:calc(var(--layout-bottom-nav-height) + env(safe-area-inset-bottom));left:0;display:flex;flex-direction:column-reverse;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-width:1px 0 0;border-radius:0;box-shadow:0 -8px 20px rgba(23,32,24,.1);backdrop-filter:none}.vendor-form__actions .app-button{width:100%}}

/* Vendor status indicator — neutral dot + text by default, sage for confirmed, coral for rejected. */
.vendor-status{display:inline-flex;align-items:center;gap:.4rem;color:var(--color-text-muted);font-size:.75rem;font-weight:650;white-space:nowrap}
.vendor-status__dot{width:.4375rem;height:.4375rem;flex:0 0 auto;background:currentColor;border-radius:50%}
.vendor-status--positive{color:var(--color-positive-text)}
.vendor-status--negative{color:var(--color-error)}

/* Vendor directory workspace */
.vendor-summary.kpi-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:var(--space-5)}
.vendor-summary.kpi-stats .kpi-tile__value{font-size:1.1rem}
.vendor-filter-shell{position:sticky;z-index:12;top:calc(var(--layout-topbar-height) + var(--space-2));display:grid;grid-template-columns:minmax(18rem,1.1fr) minmax(0,2fr);align-items:end;gap:var(--space-3);padding:var(--space-3);background:color-mix(in srgb,var(--color-background) 96%,transparent);border:1px solid var(--color-border);border-radius:var(--radius-container);box-shadow:0 6px 18px rgba(23,32,24,.035);backdrop-filter:blur(10px)}
.vendor-filter-search{min-width:0;align-self:end}.vendor-filter-search>.app-field{gap:0;margin:0}.vendor-filter-search .app-label,.vendor-filter-bar .app-label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.vendor-filter-mobile-trigger{display:none}.vendor-filter-shell .vendor-filter-bar{position:static;display:flex;align-items:end;gap:var(--space-3);padding:0;background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none}.vendor-filter-bar__selects{display:grid;grid-template-columns:repeat(3,minmax(8rem,1fr));flex:1;gap:var(--space-2)}.vendor-filter-bar .app-field{min-width:0}.vendor-view-toggle{flex:0 0 auto}.vendor-view-toggle .segmented-control__option{display:flex;align-items:center;gap:.35rem}
.active-filter-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:2.75rem;padding:.55rem 0}.active-filter-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.active-filter-chips button{display:flex;align-items:center;gap:.35rem;min-height:1.875rem;padding:.3rem .55rem;color:var(--color-primary-hover);background:var(--color-primary-subtle);border:0;border-radius:999px;font:inherit;font-size:.6875rem;cursor:pointer}.active-filter-reset{padding:.35rem;color:var(--color-text-muted);background:none;border:0;font:inherit;font-size:.75rem;font-weight:650;white-space:nowrap;cursor:pointer}.active-filter-reset:hover{color:var(--color-primary)}
.vendor-directory__result-meta{min-height:2.75rem}.vendor-directory__result-meta strong{color:var(--color-text)}.vendor-directory__notice{margin:var(--space-3) 0 0;padding:.65rem .8rem;color:#835A0C;background:var(--color-warning-soft);border-radius:var(--radius-control);font-size:.8125rem}
.vendor-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4);padding-bottom:var(--space-6)}
.vendor-card{display:flex;min-width:0;flex-direction:column;overflow:visible;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-container);box-shadow:var(--shadow-ambient);transition:transform var(--transition-standard),box-shadow var(--transition-standard)}.vendor-card:hover{transform:translateY(-2px);border-color:var(--color-border);box-shadow:var(--shadow-floating)}.vendor-card.is-compared{box-shadow:inset 0 0 0 1px var(--color-primary),var(--shadow-ambient)}
.vendor-card__media{aspect-ratio:16/8;display:grid;place-items:center;overflow:hidden;color:var(--color-primary);background:var(--color-surface-low);border-radius:var(--radius-container) var(--radius-container) 0 0;text-decoration:none}.vendor-card__media span{display:grid;place-items:center;width:3rem;height:3rem;background:var(--color-primary-subtle);border-radius:50%;font-size:.875rem;font-weight:750;letter-spacing:.05em}
.vendor-card__body{display:flex;min-height:15.5rem;flex:1;flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.vendor-card__topline{display:flex;min-height:1.65rem;align-items:center;justify-content:space-between;gap:var(--space-2)}.vendor-card__category{overflow:hidden;color:var(--color-text-muted);font-size:.6875rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.vendor-card__identity{display:grid;gap:.25rem}.vendor-card__identity h2{margin:0;font-family:var(--font-functional);font-size:1rem;line-height:1.35}.vendor-card__identity h2 a{text-decoration:none}.vendor-card__identity p{display:flex;align-items:center;gap:.35rem;margin:0;color:var(--color-text-muted);font-size:.75rem}
.vendor-card__facts{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(4rem,.75fr);gap:var(--space-3);margin:0;padding:var(--space-3) 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.vendor-card__facts div{display:grid;gap:.15rem;min-width:0}.vendor-card__facts dt{color:var(--color-text-muted);font-size:.625rem}.vendor-card__facts dd{margin:0;overflow:hidden;font-size:.8125rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.vendor-actions{display:flex;align-items:center;gap:var(--space-2);margin-top:auto}.vendor-actions__detail{display:flex;min-height:2.25rem;align-items:center;justify-content:center;gap:.4rem;flex:1;padding:.4rem .65rem;color:var(--color-primary-hover);background:var(--color-primary-subtle);border-radius:var(--radius-control);font-size:.75rem;font-weight:700;text-decoration:none}.vendor-actions .app-icon-button{width:2.25rem;height:2.25rem;flex:0 0 auto}.vendor-actions .app-icon-button.is-active{color:var(--color-primary);background:var(--color-primary-subtle);box-shadow:inset 0 0 0 1px var(--color-primary)}
.vendor-compare-tray{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-container);box-shadow:var(--shadow-ambient)}.vendor-compare-tray>div:first-child{display:grid}.vendor-compare-tray .type-label{color:var(--color-primary);font-size:.625rem}.vendor-compare-tray small{color:var(--color-text-muted)}.vendor-compare-tray>div:last-child{display:flex;gap:var(--space-2)}
.vendor-table-wrap{overflow-x:auto;padding-bottom:var(--space-2)}.vendor-table{width:100%;min-width:70rem;border-collapse:separate;border-spacing:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-container)}.vendor-table th{padding:.7rem .75rem;color:var(--color-text-muted);background:var(--color-surface-low);font-size:.625rem;font-weight:700;letter-spacing:.04em;text-align:left;text-transform:uppercase}.vendor-table td{padding:.7rem .75rem;border-top:1px solid var(--color-border);font-size:.75rem;white-space:nowrap}.vendor-table__identity{display:grid;grid-template-columns:2rem minmax(0,1fr);align-items:center;gap:.55rem;text-decoration:none}.vendor-table__identity span{display:grid;place-items:center;width:2rem;height:2rem;color:var(--color-primary);background:var(--color-primary-subtle);border-radius:.4rem;font-size:.625rem;font-weight:750}.vendor-table__price{font-weight:700}.vendor-table .vendor-actions{min-width:9.5rem}.vendor-table .vendor-actions__detail span{display:none}.vendor-table-mobile{display:none}.vendor-mobile-add{display:none}.vendor-filter-drawer{display:none}
@media(min-width:768px) and (max-width:1199px){.vendor-filter-shell{grid-template-columns:1fr}.vendor-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1200px) and (max-width:1450px){.vendor-filter-shell{grid-template-columns:minmax(16rem,.8fr) minmax(0,2fr)}.vendor-view-toggle span{display:none}.vendor-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767px){
 .vendor-header-add{display:none}.vendor-summary.kpi-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);margin-bottom:var(--space-4)}
 .vendor-filter-shell{position:sticky;top:calc(var(--layout-topbar-height) + env(safe-area-inset-top));grid-template-columns:1fr;padding:var(--space-2);backdrop-filter:none}.vendor-filter-search{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-2)}.vendor-filter-mobile-trigger{position:relative;display:flex;min-height:2.5rem;align-items:center;gap:.4rem;padding:.45rem .7rem;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);font:inherit;font-size:.75rem;font-weight:650}.vendor-filter-mobile-trigger b{position:absolute;top:-.35rem;right:-.35rem;display:grid;place-items:center;min-width:1.15rem;height:1.15rem;padding:0 .2rem;color:white;background:var(--color-primary);border-radius:999px;font-size:.625rem}.vendor-filter-shell .vendor-filter-bar{display:none}
 .active-filter-row{align-items:flex-start}.active-filter-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.active-filter-chips button{white-space:nowrap}.active-filter-reset{flex:0 0 auto}
 .vendor-list{grid-template-columns:1fr;gap:var(--space-3);padding-bottom:var(--space-4)}.vendor-card__media{aspect-ratio:16/6}.vendor-card__body{min-height:0}.vendor-card--compact .vendor-card__media{display:none}.vendor-card--compact{border-radius:var(--radius-container)}
 .vendor-table-wrap{display:none}.vendor-table-mobile{display:grid;gap:var(--space-3)}.vendor-compare-tray{align-items:stretch;flex-direction:column}.vendor-compare-tray>div:last-child{display:grid;grid-template-columns:1fr 1.5fr}
 .vendor-filter-dialog__body{display:grid;gap:var(--space-4)}
 .vendor-mobile-add{position:sticky;z-index:20;bottom:calc(var(--layout-bottom-nav-height) + env(safe-area-inset-bottom));display:block;margin:var(--space-4) calc(var(--space-4) * -1) calc(var(--space-4) * -1);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -8px 20px rgba(23,32,24,.08)}.vendor-mobile-add .app-button{width:100%}
}
@media(max-width:1199px){.vendor-table-wrap{display:none}.vendor-table-mobile{display:grid;gap:var(--space-3)}}
@media(max-width:767px){.vendor-tabs,.vendor-notes__filters,.active-filter-chips{flex-wrap:wrap;overflow:visible}.vendor-workspace-metrics.kpi-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:var(--space-4) 0}.vendor-workspace-metrics article{min-width:0}.vendor-filter-dialog__body{display:grid;gap:var(--space-4)}}

/* Vendor detail workspace */
.vendor-detail-header{gap:var(--space-5);padding-bottom:var(--space-6)}
.vendor-detail-header__content{align-items:center}.vendor-detail-header__identity{display:flex;min-width:0;align-items:center;gap:var(--space-4)}
.vendor-detail-header__logo{display:grid;place-items:center;width:4.5rem;height:4.5rem;flex:0 0 auto;color:var(--color-primary);background:linear-gradient(145deg,var(--color-primary-subtle),var(--color-surface-high));border:1px solid var(--color-primary-container);border-radius:var(--radius-container);font-size:1.125rem;font-weight:750;letter-spacing:.08em}
.vendor-detail-header__identity>div:last-child{min-width:0}.vendor-detail-header__content h1{margin:.35rem 0 0;font-family:var(--font-functional);font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.15}
.vendor-detail-header__meta{gap:var(--space-2);color:var(--color-text-muted);font-size:.7rem;letter-spacing:.04em}.vendor-detail-header__meta>span{display:inline-flex;align-items:center;gap:.25rem}.vendor-detail-header__meta .vendor-status{margin-left:.25rem}
.vendor-detail-header__actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap}.vendor-header-overflow{flex:0 0 auto}
.vendor-workspace-metrics.kpi-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:0;padding:var(--space-5) 0}
.vendor-workspace-metrics__survey{background:var(--color-primary-subtle)!important}
.vendor-detail-toolbar{position:sticky;z-index:10;top:var(--layout-topbar-height);margin-bottom:var(--space-5);background:color-mix(in srgb,var(--color-background) 96%,transparent);backdrop-filter:blur(10px)}
.vendor-tabs{gap:var(--space-5)}.vendor-tab{display:flex;align-items:center;gap:.4rem;min-height:3rem;padding-inline:0;font-size:.75rem;letter-spacing:.03em;text-transform:none}.vendor-tab span{display:grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .25rem;background:var(--color-surface-high);border-radius:999px;font-size:.625rem}.vendor-tab.is-active span{background:var(--color-primary-subtle)}
.vendor-overview{grid-template-columns:minmax(0,2fr) minmax(17rem,.8fr);align-items:start;gap:var(--space-4)}.vendor-overview__main{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.vendor-overview section,.vendor-overview aside{gap:var(--space-4);padding:var(--space-5);background:var(--color-surface);border-color:var(--color-border)}
.vendor-overview__description,.vendor-overview__notes{grid-column:1/-1}.vendor-overview__service>strong{font-size:.9rem}.vendor-overview__service>p{color:var(--color-text-muted);font-size:.8125rem}.vendor-overview__service>a{width:max-content;font-size:.8125rem;font-weight:700}
.vendor-section-heading{display:flex;align-items:center;gap:var(--space-3)}.vendor-section-heading>span{display:grid;place-items:center;width:2rem;height:2rem;flex:0 0 auto;color:var(--color-primary);background:var(--color-primary-subtle);border-radius:.5rem}.vendor-section-heading h2,.vendor-section-heading p{margin:0}.vendor-section-heading p{color:var(--color-text-muted);font-size:.75rem}
.vendor-contact-list{display:grid;gap:0;margin:0}.vendor-contact-list>div{display:flex;justify-content:space-between;gap:var(--space-3);padding:.65rem 0;border-top:1px solid var(--color-border);font-size:.8125rem}.vendor-contact-list dt{color:var(--color-text-muted)}.vendor-contact-list dd{margin:0;text-align:right;font-weight:650}
.vendor-overview__columns{gap:var(--space-4)}.vendor-overview__columns>div{padding:var(--space-3);background:var(--color-surface-low);border-radius:var(--radius-control)}.vendor-overview__columns h2{display:flex;align-items:center;gap:.35rem;font-size:.8125rem}.vendor-overview__columns p{color:var(--color-text-muted);font-size:.8125rem;line-height:1.6}
.vendor-overview__timeline{position:sticky;top:calc(var(--layout-topbar-height) + 4rem)}.vendor-overview__timeline>div h2{margin:.25rem 0 0;font-size:1.125rem}.vendor-overview__timeline ol{display:grid;margin:0;padding:0;list-style:none}.vendor-overview__timeline li{position:relative;display:grid;grid-template-columns:1rem minmax(0,1fr);gap:var(--space-3);min-height:3.5rem}.vendor-overview__timeline li:not(:last-child)::before{content:"";position:absolute;top:.8rem;bottom:-.2rem;left:.34rem;width:1px;background:var(--color-border)}.vendor-overview__timeline li>span{z-index:1;width:.75rem;height:.75rem;margin-top:.15rem;background:var(--color-surface);border:2px solid var(--color-border);border-radius:50%}.vendor-overview__timeline li.is-complete>span{background:var(--color-primary);border-color:var(--color-primary)}.vendor-overview__timeline li.is-current>span{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle)}.vendor-overview__timeline li div{display:grid;align-content:start;gap:.1rem}.vendor-overview__timeline li strong{font-size:.8125rem}.vendor-overview__timeline time{color:var(--color-text-muted);font-size:.6875rem}
@media(min-width:768px) and (max-width:1199px){.vendor-workspace-metrics.kpi-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.vendor-overview{grid-template-columns:1fr}.vendor-overview__timeline{position:static}}
@media(max-width:767px){
 .vendor-detail-header .breadcrumbs{display:none}.vendor-detail-header__content{align-items:stretch}.vendor-detail-header__identity{align-items:flex-start}.vendor-detail-header__logo{width:3.25rem;height:3.25rem}.vendor-detail-header__meta>span:nth-child(2){display:none}.vendor-detail-header__meta .vendor-status{order:-1;margin:0}.vendor-detail-header__content h1{font-size:1.65rem;overflow-wrap:anywhere}
 .vendor-detail-header__actions{display:grid;grid-template-columns:1fr 1.15fr auto}.vendor-header-edit{display:none}.vendor-detail-header__actions .app-button{min-width:0;padding-inline:var(--space-2)}
 .vendor-workspace-metrics.kpi-stats{display:grid;grid-template-columns:1fr;gap:var(--space-2);margin:0;padding:var(--space-4) 0}.vendor-workspace-metrics article{min-width:0}
 .vendor-detail-toolbar{top:calc(var(--layout-topbar-height) + env(safe-area-inset-top));margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4)}.vendor-tabs{gap:var(--space-5);scrollbar-width:none}
 .vendor-overview{grid-template-columns:1fr}.vendor-overview__main{grid-template-columns:1fr}.vendor-overview__description,.vendor-overview__notes{grid-column:auto}.vendor-overview section,.vendor-overview aside{padding:var(--space-4)}.vendor-overview__columns{grid-template-columns:1fr}.vendor-overview__timeline{position:static}
 .vendor-documents__header{flex-direction:column;align-items:stretch}
}

.vendor-card__media img{width:100%;height:100%;object-fit:contain;background:var(--color-surface-low)}

.vendor-photos{display:grid;gap:var(--space-lg);padding-bottom:var(--space-xl)}
.vendor-photos__header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-md)}
.vendor-photos__header h2{margin:0 0 var(--space-xs);font-size:1.5rem}
.vendor-photos__header p{margin:0;color:var(--color-text-muted)}
.vendor-photos__upload-button{position:relative;overflow:hidden}
.vendor-photos__upload-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.vendor-photos__error{padding:var(--space-md);margin:0;color:var(--color-on-error-container);background:var(--color-error-container);border-radius:var(--radius-control)}
.vendor-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md)}
.vendor-photo-tile{position:relative;overflow:hidden;aspect-ratio:1/1;background:var(--color-surface-low);border:1px solid var(--color-border-subtle);border-radius:var(--radius-container)}
.vendor-photo-tile img{width:100%;height:100%;object-fit:cover}
.vendor-photo-tile__view{display:block;width:100%;height:100%;padding:0;background:none;border:0;cursor:zoom-in}
.vendor-photo-lightbox{position:relative;width:min(90vw,64rem)}
.vendor-photo-lightbox .dialog-shell__header{position:absolute;top:0;right:0;z-index:1;padding:var(--space-sm);background:none;border-bottom:0}
.vendor-photo-lightbox .dialog-shell__header h2{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.vendor-photo-lightbox .app-icon-button.dialog-shell__close{background:rgba(0,0,0,.55);color:#fff;border-color:transparent}
.vendor-photo-lightbox .app-icon-button.dialog-shell__close:hover{background:rgba(0,0,0,.75);color:#fff}
.vendor-photo-lightbox .dialog-shell__body{position:relative;display:grid;place-items:center;padding:0;background:var(--color-surface-low)}
.vendor-photo-lightbox__nav{position:absolute;top:50%;z-index:1;display:grid;width:2.75rem;height:2.75rem;place-items:center;color:#fff;background:rgba(0,0,0,.45);border:0;border-radius:999px;transform:translateY(-50%);cursor:pointer}
.vendor-photo-lightbox__nav:hover:not(:disabled){background:rgba(0,0,0,.7)}
.vendor-photo-lightbox__nav:disabled{opacity:.3;cursor:not-allowed}
.vendor-photo-lightbox__nav--prev{left:var(--space-md)}
.vendor-photo-lightbox__nav--next{right:var(--space-md)}
.vendor-photo-lightbox__nav--next svg{transform:scaleX(-1)}
.vendor-photo-lightbox img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:var(--radius-container)}
.vendor-photo-tile.is-primary{box-shadow:inset 0 0 0 2px var(--color-primary)}
.vendor-photo-tile__badge{position:absolute;top:.5rem;left:.5rem;padding:.2rem .55rem;color:var(--color-on-primary);background:var(--color-primary);border-radius:999px;font-size:.625rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.vendor-photo-tile__actions{position:absolute;inset:auto 0 0 0;display:flex;gap:.25rem;padding:.4rem;background:linear-gradient(to top,rgba(0,0,0,.55),transparent);opacity:0;transition:opacity var(--transition-fast)}
.vendor-photo-tile:hover .vendor-photo-tile__actions,.vendor-photo-tile:focus-within .vendor-photo-tile__actions{opacity:1}
.vendor-photo-tile__actions button{padding:.25rem .5rem;color:#fff;background:rgba(255,255,255,.18);border:0;border-radius:var(--radius-control);font-size:.7rem;cursor:pointer}
.vendor-photo-tile__actions button.is-danger{background:var(--color-error)}
.vendor-photo-tile__actions button:disabled{opacity:.4;cursor:not-allowed}

.vendor-documents{display:grid;gap:var(--space-lg);padding-bottom:var(--space-xl)}
.vendor-documents__header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-md)}
.vendor-documents__header h2{margin:0 0 var(--space-xs);font-size:1.5rem}
.vendor-documents__header p{margin:0;color:var(--color-text-muted)}
.vendor-documents__upload{display:flex;align-items:center;gap:var(--space-sm)}
.vendor-documents__upload-button{position:relative;overflow:hidden}
.vendor-documents__upload-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.vendor-documents__error{padding:var(--space-md);margin:0;color:var(--color-on-error-container);background:var(--color-error-container);border-radius:var(--radius-control)}
.vendor-documents__filters{display:flex;gap:var(--space-sm);overflow-x:auto;padding-bottom:var(--space-xs)}
.vendor-document-filter{min-height:2.5rem;padding:.5rem .875rem;color:var(--color-text-muted);background:var(--color-surface-lowest);border:1px solid var(--color-border-subtle);border-radius:999px;white-space:nowrap;cursor:pointer}
.vendor-document-filter.is-active{color:var(--color-on-primary);background:var(--color-primary);border-color:var(--color-primary)}
.vendor-document-list{display:grid;gap:var(--space-sm)}
.vendor-document-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-surface-lowest);border:1px solid var(--color-border-subtle);border-radius:var(--radius-container)}
.vendor-document-row__thumb{width:3rem;height:3rem;object-fit:cover;border-radius:var(--radius-control)}
.vendor-document-row__icon{display:grid;flex:0 0 auto;width:3rem;height:3rem;place-items:center;color:var(--color-primary);background:var(--color-primary-subtle);border-radius:var(--radius-control)}
.vendor-document-row__body{display:grid;flex:1;min-width:0;gap:.15rem}
.vendor-document-row__category{font-weight:700}
.vendor-document-row__body time{color:var(--color-text-muted);font-size:.75rem}
.vendor-document-row__actions{display:flex;align-items:center;gap:var(--space-md);font-size:.8125rem}
.vendor-document-row__actions a{color:var(--color-secondary);font-weight:700;text-decoration:none}
.vendor-document-row__actions button{padding:0;color:var(--color-error);background:none;border:0;font-weight:700;cursor:pointer}

@media(max-width:767px){
 .vendor-photos__header{flex-direction:column;align-items:stretch}
 .vendor-photo-grid{grid-template-columns:1fr;gap:var(--space-md)}
 .vendor-photo-tile{aspect-ratio:auto;display:flex;flex-direction:column}
 .vendor-photo-tile__view{aspect-ratio:4/3}
 .vendor-photo-tile__actions{position:static;opacity:1;display:grid;grid-template-columns:1fr 1fr;gap:.35rem;padding:.4rem;background:var(--color-surface-lowest);border-top:1px solid var(--color-border-subtle)}
 .vendor-photo-tile__actions button{min-height:2.5rem;color:var(--color-text);background:var(--color-surface-low);font-size:.75rem}
 .vendor-photo-tile__actions button.is-danger,.vendor-photo-tile__actions button.vendor-photo-tile__action--wide{grid-column:1/-1}
 .vendor-photo-tile__actions button.is-danger{color:var(--color-on-error);background:var(--color-error)}
 .dialog-shell.vendor-photo-lightbox{width:100%}
 .vendor-photo-lightbox__nav{width:2.25rem;height:2.25rem}
}
