.service-grid-skeleton{width:100%;padding:1rem 0}.service-grid-skeleton__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;width:100%}.service-card-skeleton{background:var(--card);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1);display:flex;flex-direction:column;gap:1rem;min-height:280px}.service-card-skeleton__header{display:flex;align-items:center;gap:.75rem}.service-card-skeleton__icon{width:3rem;height:3rem;border-radius:.5rem;flex-shrink:0}.service-card-skeleton__icon,.service-card-skeleton__title{background:linear-gradient(90deg,var(--muted) 0,var(--border) 50%,var(--muted) 100%);background-size:200% 100%;animation:skeleton-shimmer 2s infinite}.service-card-skeleton__title{height:1.5rem;border-radius:.375rem;flex:1;max-width:60%}.service-card-skeleton__content{flex:1;display:flex;flex-direction:column;gap:1rem}.service-card-skeleton__description{display:flex;flex-direction:column;gap:.5rem}.service-card-skeleton__line{height:1rem;background:linear-gradient(90deg,var(--muted) 0,var(--border) 50%,var(--muted) 100%);background-size:200% 100%;animation:skeleton-shimmer 2s infinite;border-radius:.25rem}.service-card-skeleton__line--full{width:100%}.service-card-skeleton__line--partial{width:75%}.service-card-skeleton__metadata{display:flex;flex-direction:column;gap:.75rem;margin-top:auto}.service-card-skeleton__category{width:40%;height:1.25rem;background:linear-gradient(90deg,var(--muted) 0,var(--border) 50%,var(--muted) 100%);background-size:200% 100%;animation:skeleton-shimmer 2s infinite;border-radius:.375rem}.service-card-skeleton__metrics{display:flex;gap:.75rem}.service-card-skeleton__metric{width:2.5rem;height:1rem;background:linear-gradient(90deg,var(--muted) 0,var(--border) 50%,var(--muted) 100%);background-size:200% 100%;animation:skeleton-shimmer 2s infinite;border-radius:.25rem}.service-card-skeleton__footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:1rem;border-top:1px solid var(--border)}.service-card-skeleton__pricing{width:30%;height:1.25rem;border-radius:.375rem}.service-card-skeleton__company,.service-card-skeleton__pricing{background:linear-gradient(90deg,var(--muted) 0,var(--border) 50%,var(--muted) 100%);background-size:200% 100%;animation:skeleton-shimmer 2s infinite}.service-card-skeleton__company{width:25%;height:1rem;border-radius:.25rem}@media (max-width:640px){.service-grid-skeleton__grid{grid-template-columns:1fr;gap:1rem}.service-card-skeleton{padding:1rem;min-height:240px}.service-card-skeleton__header{gap:.5rem}.service-card-skeleton__icon{width:2.5rem;height:2.5rem}}@media (min-width:641px) and (max-width:768px){.service-grid-skeleton__grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:769px) and (max-width:1024px){.service-grid-skeleton__grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1025px){.service-grid-skeleton__grid{grid-template-columns:repeat(4,1fr)}}@media (min-width:1400px){.service-grid-skeleton__grid{grid-template-columns:repeat(5,1fr)}}@media (min-width:1600px){.service-grid-skeleton__grid{grid-template-columns:repeat(6,1fr)}}@media (prefers-reduced-motion:reduce){.service-card-skeleton__category,.service-card-skeleton__company,.service-card-skeleton__icon,.service-card-skeleton__line,.service-card-skeleton__metric,.service-card-skeleton__pricing,.service-card-skeleton__title{animation:none;background:var(--muted)}}@media (prefers-contrast:high){.service-card-skeleton{border:2px solid #000;background:white}.service-card-skeleton__category,.service-card-skeleton__company,.service-card-skeleton__icon,.service-card-skeleton__line,.service-card-skeleton__metric,.service-card-skeleton__pricing,.service-card-skeleton__title{background:#e5e5e5;animation:none}}.services-page{min-height:100vh;background:var(--background);display:flex;flex-direction:column}.services-header{background:var(--background);border-bottom:1px solid var(--border);padding:2rem 0 1.75rem}.services-header__container{max-width:1280px;margin:0 auto;padding:0 1.5rem}.services-header__content{text-align:left;max-width:44rem}.services-header__title{font-size:1.875rem;font-weight:600;letter-spacing:-.02em;margin:0;color:var(--foreground);line-height:1.15}.services-header__subtitle{font-size:1rem;color:var(--muted-foreground);margin:.5rem 0 0;line-height:1.6}.services-content{flex:1;padding:2rem 0}.services-content__container{max-width:1200px;margin:0 auto;padding:0 1.5rem;display:grid;grid-template-columns:1fr;gap:2rem}.services-search-section{background:var(--card);border-radius:1rem;padding:1.5rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);border:1px solid var(--border)}.services-search-section__container{display:flex;flex-direction:column;gap:1rem}.service-browser__search{margin-bottom:1rem}.service-browser__filters,.service-browser__grid{margin-bottom:2rem}.service-browser__filter-panel,.service-browser__search-bar,.service-browser__service-grid{width:100%}.services-grid-section{min-height:600px}.services-grid-section,.services-sidebar{background:var(--card);border-radius:1rem;padding:2rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);border:1px solid var(--border)}.services-sidebar{height:fit-content;position:sticky;top:2rem}.services-sidebar__content{display:flex;flex-direction:column;gap:2rem}.services-help,.stack-builder-teaser{padding:1.5rem;border-radius:.75rem;border:1px solid var(--border)}.stack-builder-teaser{background:color-mix(in oklab,var(--info) 12%,transparent);border-color:color-mix(in oklab,var(--info) 30%,transparent)}.stack-builder-teaser h3{color:var(--info-foreground);margin:0 0 .5rem;font-size:1.125rem;font-weight:600}.stack-builder-teaser p{color:var(--info-foreground);margin:0;font-size:.875rem;opacity:.8}.services-help h3{margin:0 0 1rem;font-size:1.125rem;font-weight:600;color:var(--foreground)}.services-help ul{margin:0;padding:0;list-style:none}.services-help li{margin-bottom:.75rem}.services-help li:last-child{margin-bottom:0}.help-link{color:var(--info);text-decoration:none;font-size:.875rem;font-weight:500;padding:.5rem 0;display:block;border-radius:.375rem;transition:all .2s ease}.help-link:hover{color:color-mix(in oklab,var(--info) 82%,var(--foreground));background-color:var(--accent);padding-left:.5rem}.search-bar-skeleton{display:flex;gap:1rem;align-items:center}.search-bar-skeleton__input{flex:1}.search-bar-skeleton__button,.search-bar-skeleton__input{height:3rem;background:linear-gradient(90deg,var(--muted) 0,var(--border) 50%,var(--muted) 100%);background-size:200% 100%;animation:skeleton-shimmer 2s infinite;border-radius:.5rem}.search-bar-skeleton__button{width:6rem}.services-header__subtitle-skeleton,.services-header__title-skeleton{background:linear-gradient(90deg,rgba(255,255,255,.1),rgba(255,255,255,.3) 50%,rgba(255,255,255,.1));background-size:200% 100%;animation:skeleton-shimmer 2s infinite;border-radius:.5rem;margin:0 auto}.services-header__title-skeleton{height:3.5rem;width:60%;margin-bottom:1rem}.services-header__subtitle-skeleton{height:1.5rem;width:80%}.services-page--error .services-error,.services-page--not-found .services-not-found{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:2rem}.services-error__content,.services-not-found__content{text-align:center;max-width:500px;background:var(--card);padding:3rem;border-radius:1rem;box-shadow:0 10px 25px -5px rgba(0,0,0,.1);border:1px solid var(--border)}.services-error__title,.services-not-found__title{font-size:2rem;font-weight:700;color:var(--destructive);margin:0 0 1rem}.services-error__message,.services-not-found__message{font-size:1.125rem;color:var(--muted-foreground);margin:0 0 2rem;line-height:1.6}.services-error__actions,.services-not-found__actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn{padding:.75rem 1.5rem;border-radius:.5rem;font-weight:600;text-decoration:none;border:none;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;font-size:.875rem}.btn--primary{background:var(--primary);color:var(--primary-foreground)}.btn--primary:hover{background:color-mix(in oklab,var(--primary) 88%,var(--primary-foreground));transform:translateY(-1px)}.btn--secondary{background:var(--muted);color:var(--foreground);border:1px solid var(--border)}.btn--secondary:hover{background:var(--accent);transform:translateY(-1px)}.services-error__details{margin-top:2rem;text-align:left;background:color-mix(in oklab,var(--destructive) 10%,transparent);border:1px solid color-mix(in oklab,var(--destructive) 30%,transparent);border-radius:.5rem;padding:1rem}.services-error__details summary{cursor:pointer;font-weight:600;color:var(--destructive);margin-bottom:.5rem}.services-error__details pre{font-size:.75rem;color:var(--destructive);margin:0;white-space:pre-wrap;word-break:break-word}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media (min-width:640px){.services-header__title{font-size:3.5rem}.services-search-section__container{flex-direction:row;align-items:center}.service-browser__search{flex:1;margin-bottom:0}}@media (min-width:768px){.services-content__container{display:block}.services-grid-section,.services-search-section{grid-area:main}.services-sidebar{grid-area:sidebar}}@media (min-width:1024px){.services-header{padding:4rem 0 5rem}.services-header__title{font-size:4rem}.services-content{padding:3rem 0}.services-content__container{gap:3rem}.services-sidebar{width:320px}}@media (prefers-contrast:high){.services-header{background:#000}.services-header__title{-webkit-text-fill-color:#fff;background:none}.services-grid-section,.services-search-section,.services-sidebar{border:2px solid #000}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.services-header:before,.skeleton-shimmer{animation:none}}.service-browser__controls{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:1rem;margin-bottom:1.5rem;background:var(--card);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.stack-mode-toggle{padding:.5rem;background:var(--muted);border-radius:.375rem;border:1px solid var(--border)}.stack-controls,.stack-mode-toggle{display:flex;gap:.5rem;align-items:center}.service-browser__content{display:grid;grid-template-columns:1fr;gap:1.5rem;grid-template-areas:"left" "stack"}.service-browser__content.stack-mode{grid-template-columns:minmax(0,1fr) clamp(320px,32%,400px);grid-template-areas:"left stack";align-items:start}.service-browser__left-panel{grid-area:left}@media (min-width:1024px){.service-browser__left-panel{display:grid;grid-template-columns:260px minmax(0,1fr);grid-template-areas:"search search" "filters grid";column-gap:2rem;row-gap:1.5rem;align-items:start}.service-browser__search{grid-area:search;margin-bottom:0}.service-browser__filters{grid-area:filters;margin-bottom:0;position:sticky;top:1rem}.service-browser__grid{grid-area:grid;margin-bottom:0}}.service-browser__stack-panel{grid-area:stack;background:var(--card);border:1px solid var(--border);border-radius:.5rem;display:flex;flex-direction:column;position:sticky;top:1rem;align-self:start;max-height:calc(100vh - 2rem);overflow:hidden}.stack-canvas-container{min-height:0;overflow-y:auto}.service-browser__stack-panel [data-testid=service-configuration-card]{aspect-ratio:auto}.stack-panel-header{padding:1rem;border-bottom:1px solid var(--border);background:var(--muted);display:flex;align-items:center;justify-content:space-between}.stack-panel-header h3{margin:0;font-size:1.125rem;font-weight:600;color:var(--foreground)}.stack-panel-actions{display:flex;gap:.5rem;align-items:center}.stack-canvas-container{flex:1;padding:1rem;min-height:400px;background:var(--muted);border:2px dashed var(--border);border-radius:.375rem;margin:1rem;display:flex;align-items:center;justify-content:center;color:var(--muted-foreground);font-size:.875rem;text-align:center;transition:border-color .2s ease,background-color .2s ease}.stack-canvas-container:hover{border-color:var(--ring);background:var(--accent)}.stack-canvas-container.has-items{justify-content:flex-start;align-items:flex-start;background:var(--card);border-style:solid;border-color:var(--border)}.stack-canvas-empty-state{max-width:240px;line-height:1.5}.stack-canvas-empty-state h4{margin:0 0 .5rem;font-weight:600;color:var(--foreground)}.stack-canvas-empty-state p{margin:0;font-size:.8125rem}.stack-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;margin:.5rem;background:var(--card);border:1px solid var(--border);border-radius:.375rem;box-shadow:0 1px 2px rgba(0,0,0,.05);transition:all .2s ease}.stack-item:hover{border-color:var(--ring);box-shadow:0 4px 6px -1px rgba(0,0,0,.1);transform:translateY(-1px)}.stack-item__icon{width:32px;height:32px;border-radius:.25rem;flex-shrink:0}.stack-item__content{flex:1;min-width:0}.stack-item__name{font-size:.875rem;font-weight:600;color:var(--foreground);margin:0 0 .125rem}.stack-item__category{font-size:.75rem;color:var(--muted-foreground);margin:0}.stack-item__actions{display:flex;gap:.25rem;opacity:0;transition:opacity .2s ease}.stack-item:hover .stack-item__actions{opacity:1}.stack-item__action{padding:.25rem;border:none;background:none;color:var(--muted-foreground);cursor:pointer;border-radius:.25rem;transition:color .2s ease,background-color .2s ease}.stack-item__action:hover{color:var(--destructive);background:color-mix(in oklab,var(--destructive) 10%,transparent)}@media (max-width:1023px){.service-browser__content.stack-mode{grid-template-columns:1fr;grid-template-areas:"left" "stack"}}@media (max-width:767px){.service-browser__controls{flex-direction:column;gap:1rem;align-items:stretch}.stack-actions,.stack-mode-toggle{justify-content:center}.stack-canvas-container{min-height:300px}}@media print{.services-header,.services-page{background:white;color:black}.services-header{padding:1rem 0}.services-sidebar{display:none}.services-content__container{grid-template-columns:1fr}.btn{border:1px solid black;background:white;color:black}.service-browser__controls,.service-browser__stack-panel{display:none}}