:root{--color-background:#fafafa;--color-background-alt:#f5f5f5;--color-surface:#fff;--color-border:#e5e5e5;--color-border-subtle:#efefef;--color-text-primary:#1a1a1a;--color-text-secondary:#666;--color-text-muted:#999;--color-accent:#1a1a1a;--color-accent-hover:#333;--font-family-sans:"Helvetica Neue",Helvetica,Arial,sans-serif;--font-family-serif:Georgia,"Times New Roman",serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-weight-normal:400;--font-weight-medium:500;--letter-spacing-wide:0.1em;--letter-spacing-tight:-0.01em;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--header-height:56px;--max-content-width:1400px;--sidebar-width:320px;--transition-fast:150ms ease;--transition-normal:250ms ease;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 2px 8px #0000000f;--radius-sm:2px;--radius-md:4px}*,:after,:before{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-background);color:var(--color-text-primary);font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:1.5;margin:0}img{display:block;height:auto;max-width:100%}button{background:none;border:none;cursor:pointer;font-family:inherit}a{color:inherit;text-decoration:none}ol,ul{list-style:none;padding:0}h1,h2,h3,h4,h5,h6,ol,p,ul{margin:0}input{font-family:inherit;font-size:inherit}.header{background-color:var(--color-surface);border-bottom:1px solid var(--color-border-subtle);height:var(--header-height);position:-webkit-sticky;position:sticky;top:0;z-index:100}.header__nav{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:var(--max-content-width);padding:0 var(--spacing-lg)}.header__logo{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.header__links{display:flex;gap:var(--spacing-xl)}.header__link{color:var(--color-text-secondary);font-size:var(--font-size-sm);letter-spacing:.02em;transition:color var(--transition-fast)}.header__link--active,.header__link:hover{color:var(--color-text-primary)}.header__link--active{text-decoration:underline;text-underline-offset:6px}.piece-card{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;padding:0;text-align:left;width:100%}.piece-card__image-container{aspect-ratio:3/4;background-color:var(--color-background-alt);border:2px solid #0000;overflow:hidden;transition:border-color var(--transition-fast)}.piece-card--selected .piece-card__image-container{border-color:var(--color-text-primary)}.piece-card__image{height:100%;object-fit:cover;transition:transform var(--transition-normal);width:100%}.piece-card:hover .piece-card__image{transform:scale(1.02)}.piece-card__placeholder{align-items:center;color:var(--color-text-muted);display:flex;font-size:var(--font-size-sm);height:100%;justify-content:center;text-transform:capitalize;width:100%}.piece-card__info{padding:var(--spacing-sm) 0}.piece-card__name{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:1.3;margin:0}.piece-card--selected .piece-card__name{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.pieces-grid{grid-gap:var(--spacing-xl);display:grid;gap:var(--spacing-xl);grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.pieces-grid__detail-row{grid-column:1/-1}.piece-detail{animation:slideDown .2s ease-out;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:var(--spacing-md);padding:var(--spacing-lg);position:relative}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.piece-detail__close{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;display:flex;font-size:var(--font-size-xl);height:32px;justify-content:center;position:absolute;right:var(--spacing-sm);top:var(--spacing-sm);transition:all var(--transition-fast);width:32px}.piece-detail__close:hover{background-color:var(--color-background-alt);color:var(--color-text-primary)}.piece-detail__content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.piece-detail__main{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:200px 1fr}@media (max-width:600px){.piece-detail__main{grid-template-columns:1fr}}.piece-detail__image-section{aspect-ratio:3/4;background-color:var(--color-background-alt);border-radius:var(--radius-sm);overflow:hidden}.piece-detail__image{height:100%;object-fit:cover;width:100%}.piece-detail__image-placeholder{align-items:center;color:var(--color-text-muted);display:flex;font-size:var(--font-size-sm);height:100%;justify-content:center;text-transform:capitalize;width:100%}.piece-detail__info{display:flex;flex-direction:column;gap:var(--spacing-sm)}.piece-detail__name{font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);margin:0}.piece-detail__designer{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.piece-detail__meta{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-xs)}.piece-detail__color,.piece-detail__type{background-color:var(--color-background-alt);border:none;border-radius:var(--radius-xs);color:var(--color-text-secondary);font-family:inherit;font-size:var(--font-size-xs);padding:2px var(--spacing-sm);text-transform:capitalize}.piece-detail__tag--editable{cursor:pointer;transition:all var(--transition-fast)}.piece-detail__tag--editable:hover{background-color:var(--color-border)}.piece-detail__meta{flex-wrap:wrap}.piece-detail__tag-edit{align-items:center;display:flex;gap:var(--spacing-xs)}.piece-detail__tag-input,.piece-detail__tag-select{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xs);font-family:inherit;font-size:var(--font-size-xs);padding:2px var(--spacing-sm)}.piece-detail__tag-input:focus,.piece-detail__tag-select:focus{border-color:var(--color-text-primary);outline:none}.piece-detail__tag-input{width:100px}.piece-detail__tag-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xs);padding:2px var(--spacing-xs);text-decoration:underline}.piece-detail__tag-btn:hover:not(:disabled){color:var(--color-text-primary)}.piece-detail__tag-btn:disabled{cursor:not-allowed;opacity:.5}.piece-detail__tag-btn--cancel{color:var(--color-text-muted)}.piece-detail__description{margin-top:var(--spacing-md)}.piece-detail__label{color:var(--color-text-muted);display:block;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);margin-bottom:var(--spacing-xs);text-transform:uppercase}.piece-detail__description-text{background-color:var(--color-background-alt);border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-sm);line-height:1.5;min-height:60px;padding:var(--spacing-sm);transition:background-color var(--transition-fast)}.piece-detail__description-text:hover{background-color:var(--color-border-subtle)}.piece-detail__placeholder{color:var(--color-text-muted);font-style:italic}.piece-detail__edit-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.piece-detail__textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--font-size-sm);line-height:1.5;padding:var(--spacing-sm);resize:vertical;width:100%}.piece-detail__textarea:focus{border-color:var(--color-text-primary);outline:none}.piece-detail__edit-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.piece-detail__btn{border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-wide);padding:var(--spacing-xs) var(--spacing-md);text-transform:uppercase;transition:all var(--transition-fast)}.piece-detail__btn--primary{background-color:var(--color-text-primary);border:1px solid var(--color-text-primary);color:var(--color-surface)}.piece-detail__btn--primary:hover:not(:disabled){background-color:var(--color-accent-hover);border-color:var(--color-accent-hover)}.piece-detail__btn--secondary{background:none;border:1px solid var(--color-border);color:var(--color-text-secondary)}.piece-detail__btn--secondary:hover:not(:disabled){border-color:var(--color-text-secondary);color:var(--color-text-primary)}.piece-detail__btn:disabled{cursor:not-allowed;opacity:.5}.piece-detail__link{color:var(--color-text-secondary);display:inline-block;font-size:var(--font-size-sm);margin-top:var(--spacing-sm);text-decoration:underline}.piece-detail__link:hover{color:var(--color-text-primary)}.piece-detail__outfits{border-top:1px solid var(--color-border-subtle);padding-top:var(--spacing-lg)}.piece-detail__outfits-title{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);margin:0 0 var(--spacing-md) 0;text-transform:uppercase}.piece-detail__outfits-grid{display:flex;gap:var(--spacing-md);overflow-x:auto;padding-bottom:var(--spacing-sm)}.piece-detail__outfit-thumb{align-items:center;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;flex-shrink:0;gap:var(--spacing-xs);padding:0}.piece-detail__outfit-preview{grid-gap:2px;background-color:var(--color-background-alt);border-radius:var(--radius-sm);display:grid;gap:2px;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;height:80px;overflow:hidden;transition:transform var(--transition-fast);width:80px}.piece-detail__outfit-thumb:hover .piece-detail__outfit-preview{transform:scale(1.05)}.piece-detail__outfit-item{background-color:var(--color-border-subtle);background-position:50%;background-size:cover}.piece-detail__outfit-name{color:var(--color-text-secondary);font-size:var(--font-size-xs);max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background-color:var(--color-surface);border-radius:var(--radius-md);max-height:90vh;max-width:500px;overflow-y:auto;width:90%}.modal__header{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg)}.modal__title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.modal__close{color:var(--color-text-muted);font-size:24px;line-height:1;padding:0}.modal__close:hover{color:var(--color-text-primary)}.modal__content{padding:var(--spacing-lg)}.add-piece__url-step{text-align:center}.add-piece__instructions{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-lg)}.add-piece__url-input-group{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.add-piece__url-input{border:1px solid var(--color-border);flex:1 1;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md)}.add-piece__url-input:focus{border-color:var(--color-text-primary);outline:none}.add-piece__fetch-btn{background-color:var(--color-text-primary);color:var(--color-surface);font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);white-space:nowrap}.add-piece__fetch-btn:hover:not(:disabled){background-color:var(--color-accent-hover)}.add-piece__fetch-btn:disabled{cursor:not-allowed;opacity:.5}.add-piece__skip-btn{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-top:var(--spacing-md);text-decoration:underline}.add-piece__skip-btn:hover{color:var(--color-text-primary)}.add-piece__error{color:#c00;font-size:var(--font-size-sm);margin-top:var(--spacing-sm)}.add-piece__form{display:flex;flex-direction:column;gap:var(--spacing-md)}.add-piece__preview{background-color:var(--color-background-alt);height:160px;margin:0 auto var(--spacing-md);overflow:hidden;width:120px}.add-piece__preview-image{height:100%;object-fit:cover;width:100%}.add-piece__field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.add-piece__field label{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.add-piece__field input,.add-piece__field select{background-color:var(--color-surface);border:1px solid var(--color-border);font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md)}.add-piece__field input:focus,.add-piece__field select:focus{border-color:var(--color-text-primary);outline:none}.add-piece__actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-md)}.add-piece__btn{flex:1 1;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md)}.add-piece__btn--primary{background-color:var(--color-text-primary);color:var(--color-surface)}.add-piece__btn--primary:hover{background-color:var(--color-accent-hover)}.add-piece__btn--secondary{border:1px solid var(--color-border);color:var(--color-text-secondary)}.add-piece__btn--secondary:hover{border-color:var(--color-text-primary);color:var(--color-text-primary)}.pieces-page{margin:0 auto;max-width:var(--max-content-width);padding:var(--spacing-xl) var(--spacing-lg)}.pieces-page__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-xl)}.pieces-page__title-group{align-items:baseline;display:flex;gap:var(--spacing-md)}.pieces-page__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);letter-spacing:var(--letter-spacing-tight)}.pieces-page__count{color:var(--color-text-muted);font-size:var(--font-size-sm)}.pieces-page__add-btn{background-color:var(--color-text-primary);color:var(--color-surface);font-size:var(--font-size-sm);letter-spacing:.02em;padding:var(--spacing-sm) var(--spacing-lg);transition:background-color var(--transition-fast)}.pieces-page__add-btn:hover{background-color:var(--color-accent-hover)}.pieces-page__loading{color:var(--color-text-muted);padding:var(--spacing-2xl);text-align:center}.outfit-card{background-color:var(--color-surface);border:1px solid var(--color-border-subtle);display:flex;flex-direction:column}.outfit-card__preview{aspect-ratio:4/3;background-color:var(--color-background-alt);cursor:pointer;overflow:hidden;position:relative}.outfit-card__collage{height:100%;position:relative;width:100%}.outfit-card__collage-item{overflow:hidden;position:absolute}.outfit-card__collage-image{height:100%;object-fit:cover;width:100%}.outfit-card__collage-placeholder{background-color:var(--color-background);font-size:var(--font-size-xs);text-transform:capitalize}.outfit-card__collage-placeholder,.outfit-card__empty{align-items:center;color:var(--color-text-muted);display:flex;height:100%;justify-content:center;width:100%}.outfit-card__empty{font-size:var(--font-size-sm)}.outfit-card__info{padding:var(--spacing-md)}.outfit-card__name{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);margin-bottom:var(--spacing-xs)}.outfit-card__date{color:var(--color-text-muted);font-size:var(--font-size-xs)}.outfit-card__actions{border-top:1px solid var(--color-border-subtle);display:flex}.outfit-card__btn{color:var(--color-text-secondary);flex:1 1;font-size:var(--font-size-xs);padding:var(--spacing-sm);transition:all var(--transition-fast)}.outfit-card__btn--edit{border-right:1px solid var(--color-border-subtle)}.outfit-card__btn:hover{background-color:var(--color-background-alt);color:var(--color-text-primary)}.outfit-card__btn--delete:hover{color:#c00}.outfits-grid{grid-gap:var(--spacing-xl);display:grid;gap:var(--spacing-xl);grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.outfits-page{margin:0 auto;max-width:var(--max-content-width);padding:var(--spacing-xl) var(--spacing-lg)}.outfits-page__header{align-items:baseline;display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.outfits-page__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);letter-spacing:var(--letter-spacing-tight)}.outfits-page__count{color:var(--color-text-muted);font-size:var(--font-size-sm)}.outfits-page__loading{color:var(--color-text-muted)}.outfits-page__empty,.outfits-page__loading{padding:var(--spacing-2xl);text-align:center}.outfits-page__empty{color:var(--color-text-secondary)}.outfits-page__empty p{margin-bottom:var(--spacing-lg)}.outfits-page__create-btn{background-color:var(--color-text-primary);color:var(--color-surface);font-size:var(--font-size-sm);letter-spacing:.02em;padding:var(--spacing-sm) var(--spacing-lg);transition:background-color var(--transition-fast)}.outfits-page__create-btn:hover{background-color:var(--color-accent-hover)}.draggable-piece{cursor:grab;position:relative;transition:opacity var(--transition-fast)}.draggable-piece:active{cursor:grabbing}.draggable-piece--dragging{opacity:.5}.draggable-piece--suggested{outline:2px solid var(--color-text-primary);outline-offset:2px}.draggable-piece__tag{background-color:var(--color-text-primary);color:var(--color-surface);font-size:10px;left:var(--spacing-xs);letter-spacing:var(--letter-spacing-wide);padding:2px var(--spacing-xs);position:absolute;text-transform:uppercase;top:var(--spacing-xs);z-index:1}.draggable-piece__image-container{aspect-ratio:3/4;background-color:var(--color-background);margin-bottom:var(--spacing-xs);overflow:hidden}.draggable-piece__image{height:100%;object-fit:cover;pointer-events:none;width:100%}.draggable-piece__placeholder{align-items:center;color:var(--color-text-muted);display:flex;font-size:var(--font-size-xs);height:100%;justify-content:center;text-transform:capitalize;width:100%}.draggable-piece__name{color:var(--color-text-secondary);font-size:var(--font-size-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wardrobe-panel{flex:1 1;overflow-y:auto}.wardrobe-panel__title{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:.02em;margin-bottom:var(--spacing-md)}.wardrobe-panel__grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(2,1fr)}.image-editor{background-color:var(--color-surface);border-radius:var(--radius-md);display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow:hidden;width:90%}.image-editor__header{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg)}.image-editor__title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.image-editor__close{color:var(--color-text-muted);font-size:24px;line-height:1;padding:0}.image-editor__close:hover{color:var(--color-text-primary)}.image-editor__tabs{border-bottom:1px solid var(--color-border-subtle);display:flex}.image-editor__tab{border-bottom:2px solid #0000;color:var(--color-text-secondary);flex:1 1;font-size:var(--font-size-sm);margin-bottom:-1px;padding:var(--spacing-sm) var(--spacing-md);transition:all var(--transition-fast)}.image-editor__tab--active,.image-editor__tab:hover{color:var(--color-text-primary)}.image-editor__tab--active{border-bottom-color:var(--color-text-primary)}.image-editor__content{flex:1 1;overflow-y:auto;padding:var(--spacing-lg)}.image-editor__preview{align-items:center;background-color:var(--color-background-alt);background-image:linear-gradient(45deg,#e0e0e0 25%,#0000 0),linear-gradient(-45deg,#e0e0e0 25%,#0000 0),linear-gradient(45deg,#0000 75%,#e0e0e0 0),linear-gradient(-45deg,#0000 75%,#e0e0e0 0);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;display:flex;justify-content:center;margin-bottom:var(--spacing-lg);max-height:400px;min-height:300px;padding:var(--spacing-md)}.image-editor__image{max-height:350px;max-width:100%;object-fit:contain}.image-editor__controls{padding:var(--spacing-md) 0}.image-editor__description{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-lg);text-align:center}.image-editor__action-btn{background-color:var(--color-text-primary);color:var(--color-surface);display:block;font-size:var(--font-size-sm);padding:var(--spacing-md);transition:background-color var(--transition-fast);width:100%}.image-editor__action-btn:hover:not(:disabled){background-color:var(--color-accent-hover)}.image-editor__action-btn:disabled{cursor:not-allowed;opacity:.5}.image-editor__error{color:#c00;font-size:var(--font-size-sm);margin-top:var(--spacing-md);text-align:center}.image-editor__crop-controls{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:1fr 1fr}.image-editor__crop-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.image-editor__crop-field label{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.image-editor__crop-field input[type=range]{cursor:pointer;width:100%}.image-editor__crop-field span{color:var(--color-text-muted);font-size:var(--font-size-xs);text-align:right}.image-editor__footer{align-items:center;border-top:1px solid var(--color-border-subtle);display:flex;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg)}.image-editor__footer-right{display:flex;gap:var(--spacing-sm)}.image-editor__btn{font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-lg);transition:all var(--transition-fast)}.image-editor__btn--primary{background-color:var(--color-text-primary);color:var(--color-surface)}.image-editor__btn--primary:hover{background-color:var(--color-accent-hover)}.image-editor__btn--secondary{border:1px solid var(--color-border);color:var(--color-text-secondary)}.image-editor__btn--secondary:hover{border-color:var(--color-text-primary);color:var(--color-text-primary)}.canvas-item{border:1px solid #0000;cursor:move;position:absolute;transition:border-color var(--transition-fast);-webkit-user-select:none;user-select:none}.canvas-item:hover{border-color:var(--color-border)}.canvas-item--dragging,.canvas-item--resizing{border-color:var(--color-text-primary)}.canvas-item__image{height:100%;object-fit:contain;pointer-events:none;width:100%}.canvas-item__placeholder{align-items:center;background-color:var(--color-background-alt);color:var(--color-text-muted);display:flex;font-size:var(--font-size-sm);height:100%;justify-content:center;text-transform:capitalize;width:100%}.canvas-item__controls{display:flex;gap:4px;opacity:0;position:absolute;right:-10px;top:-10px;transition:opacity var(--transition-fast)}.canvas-item:hover .canvas-item__controls{opacity:1}.canvas-item__btn{align-items:center;background-color:var(--color-text-primary);border-radius:50%;color:var(--color-surface);cursor:pointer;display:flex;font-size:14px;height:24px;justify-content:center;line-height:1;transition:background-color var(--transition-fast);width:24px}.canvas-item__btn--edit:hover{background-color:#06c}.canvas-item__btn--delete:hover{background-color:#c00}.canvas-item__handle{background-color:var(--color-surface);border:1px solid var(--color-text-primary);height:10px;opacity:0;position:absolute;transition:opacity var(--transition-fast);width:10px}.canvas-item:hover .canvas-item__handle{opacity:1}.canvas-item__handle--nw{cursor:nw-resize;left:-5px;top:-5px}.canvas-item__handle--ne{cursor:ne-resize;right:-5px;top:-5px}.canvas-item__handle--sw{bottom:-5px;cursor:sw-resize;left:-5px}.canvas-item__handle--se{bottom:-5px;cursor:se-resize;right:-5px}.outfit-canvas{background-color:var(--color-background);flex:1 1;min-height:500px;overflow:hidden;position:relative}.outfit-canvas--over{background-color:var(--color-background-alt)}.outfit-canvas__empty{color:var(--color-text-muted);font-size:var(--font-size-sm);left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.suggest-panel{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);padding:var(--spacing-md)}.suggest-panel__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-sm)}.suggest-panel__title{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.suggest-panel__actions{display:flex;gap:var(--spacing-xs)}.suggest-panel__add-all{background-color:var(--color-text-primary);border:1px solid var(--color-text-primary);border-radius:var(--radius-sm);color:var(--color-surface);cursor:pointer;font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-sm);transition:all var(--transition-fast)}.suggest-panel__add-all:hover{background-color:var(--color-accent-hover);border-color:var(--color-accent-hover)}.suggest-panel__clear{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-sm);transition:all var(--transition-fast)}.suggest-panel__clear:hover{border-color:var(--color-text-secondary);color:var(--color-text-primary)}.suggest-panel__loading{display:flex;gap:4px;padding:var(--spacing-sm) 0}.suggest-panel__loading-dot{animation:suggest-bounce 1.4s ease-in-out infinite both;background-color:var(--color-text-muted);border-radius:50%;height:6px;width:6px}.suggest-panel__loading-dot:first-child{animation-delay:-.32s}.suggest-panel__loading-dot:nth-child(2){animation-delay:-.16s}@keyframes suggest-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.suggest-panel__error{background-color:#fee;border:1px solid #fcc;border-radius:var(--radius-sm);color:#c33;font-size:var(--font-size-sm);padding:var(--spacing-sm)}.suggest-panel__explanation{color:var(--color-text-primary);font-size:var(--font-size-sm);line-height:1.5;margin:0 0 var(--spacing-md) 0}.suggest-panel__items{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.suggest-panel__item{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-xs);width:64px}.suggest-panel__item-image{background-color:var(--color-background-alt);border-radius:var(--radius-sm);height:56px;object-fit:cover;width:56px}.suggest-panel__item-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--color-text-secondary);display:-webkit-box;font-size:var(--font-size-xs);line-height:1.2;overflow:hidden;text-align:center;text-overflow:ellipsis}.builder-page{display:flex;flex-direction:column;height:calc(100vh - var(--header-height))}.builder-page__content{display:flex;flex:1 1;overflow:hidden}.builder-page__sidebar{border-right:1px solid var(--color-border-subtle);flex-direction:column;flex-shrink:0;height:100%;overflow-y:auto;padding:var(--spacing-md);width:50%}.builder-page__footer,.builder-page__sidebar{background-color:var(--color-surface);display:flex}.builder-page__footer{align-items:center;border-top:1px solid var(--color-border-subtle);justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg)}.builder-page__name-input{background-color:var(--color-background);border:1px solid var(--color-border);font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);width:300px}.builder-page__name-input:focus{border-color:var(--color-text-primary);outline:none}.builder-page__actions{display:flex;gap:var(--spacing-md)}.builder-page__btn{font-size:var(--font-size-sm);letter-spacing:.02em;padding:var(--spacing-sm) var(--spacing-lg);transition:all var(--transition-fast)}.builder-page__btn--primary{background-color:var(--color-text-primary);color:var(--color-surface)}.builder-page__btn--primary:hover:not(:disabled){background-color:var(--color-accent-hover)}.builder-page__btn--primary:disabled{cursor:not-allowed;opacity:.5}.builder-page__btn--secondary{border:1px solid var(--color-border);color:var(--color-text-secondary)}.builder-page__btn--secondary:hover{border-color:var(--color-text-primary);color:var(--color-text-primary)}.builder-page__btn--suggest{border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-md)}.builder-page__btn--suggest:hover:not(:disabled){border-color:var(--color-text-primary);color:var(--color-text-primary)}.builder-page__btn--suggest:disabled{cursor:not-allowed;opacity:.5}.chat-message{display:flex;margin-bottom:var(--spacing-md)}.chat-message--user{justify-content:flex-end}.chat-message--assistant{justify-content:flex-start}.chat-message__content{border-radius:var(--radius-md);max-width:80%;padding:var(--spacing-md)}.chat-message--user .chat-message__content{background-color:var(--color-accent);color:var(--color-surface)}.chat-message--assistant .chat-message__content{background-color:var(--color-background-alt);color:var(--color-text-primary)}.chat-message__text{line-height:1.6;margin:0;white-space:pre-wrap}.chat-message__markdown{line-height:1.6}.chat-message__markdown p{margin:0 0 var(--spacing-sm) 0}.chat-message__markdown p:last-child{margin-bottom:0}.chat-message__markdown h1,.chat-message__markdown h2,.chat-message__markdown h3,.chat-message__markdown h4{font-weight:var(--font-weight-medium);margin:var(--spacing-md) 0 var(--spacing-sm) 0}.chat-message__markdown h1:first-child,.chat-message__markdown h2:first-child,.chat-message__markdown h3:first-child{margin-top:0}.chat-message__markdown h3{font-size:var(--font-size-base)}.chat-message__markdown h4{font-size:var(--font-size-sm)}.chat-message__markdown ol,.chat-message__markdown ul{margin:var(--spacing-sm) 0;padding-left:var(--spacing-lg)}.chat-message__markdown li{margin-bottom:var(--spacing-xs)}.chat-message__markdown strong{font-weight:var(--font-weight-medium)}.chat-message__markdown em{font-style:italic}.chat-message__markdown code{background-color:#0000000d;border-radius:var(--radius-sm);font-size:.9em;padding:2px 4px}.chat-message__markdown blockquote{border-left:2px solid var(--color-border);color:var(--color-text-secondary);margin:var(--spacing-sm) 0;padding-left:var(--spacing-md)}.chat-message__items{border-top:1px solid var(--color-border-subtle);margin-top:var(--spacing-md);padding-top:var(--spacing-md)}.chat-message--user .chat-message__items{border-top-color:#fff3}.chat-message__items-label{color:var(--color-text-muted);display:block;font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-wide);margin-bottom:var(--spacing-sm);text-transform:uppercase}.chat-message--user .chat-message__items-label{color:#ffffffb3}.chat-message__items-grid{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.chat-message__item{align-items:center;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-xs);transition:all var(--transition-fast);width:80px}.chat-message__item:hover{background-color:#0000000d}.chat-message--user .chat-message__item:hover{background-color:#ffffff1a}.chat-message__item-image{background-color:var(--color-surface);border-radius:var(--radius-sm);height:72px;object-fit:cover;width:72px}.chat-message__item-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:var(--font-size-xs);line-height:1.2;overflow:hidden;text-align:center;text-overflow:ellipsis}.chat-message--user .chat-message__item-name{color:#ffffffe6}.chat-message__actions{border-top:1px solid var(--color-border-subtle);display:flex;justify-content:flex-end;margin-top:var(--spacing-sm);padding-top:var(--spacing-sm)}.chat-message__redo-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:var(--font-size-xs);padding:2px var(--spacing-sm);text-decoration:underline;transition:color var(--transition-fast)}.chat-message__redo-btn:hover:not(:disabled){color:var(--color-text-primary)}.chat-message__redo-btn:disabled{cursor:not-allowed;opacity:.5}.chat-input{background-color:var(--color-surface);border-top:1px solid var(--color-border-subtle);padding:var(--spacing-md)}.chat-input__suggestions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.chat-input__suggestion{background-color:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);transition:all var(--transition-fast)}.chat-input__suggestion:hover:not(:disabled){background-color:var(--color-border)}.chat-input__suggestion:disabled{cursor:not-allowed;opacity:.5}.chat-input__form{align-items:flex-end;display:flex;gap:var(--spacing-sm)}.chat-input__textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);flex:1 1;font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:1.5;max-height:120px;min-height:40px;padding:var(--spacing-sm) var(--spacing-md);resize:none}.chat-input__textarea:focus{border-color:var(--color-accent);outline:none}.chat-input__textarea:disabled{background-color:var(--color-background-alt);cursor:not-allowed}.chat-input__submit{background-color:var(--color-accent);border:none;border-radius:var(--radius-md);color:var(--color-surface);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);min-height:40px;padding:var(--spacing-sm) var(--spacing-lg);text-transform:uppercase;transition:background-color var(--transition-fast)}.chat-input__submit:hover:not(:disabled){background-color:var(--color-accent-hover)}.chat-input__submit:disabled{cursor:not-allowed;opacity:.5}.assessment{background-color:var(--color-surface);bottom:0;display:flex;flex-direction:column;left:0;overflow-y:scroll;position:fixed;right:0;top:0;z-index:1000}.assessment__close{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:28px;line-height:1;padding:var(--spacing-xs);position:absolute;right:var(--spacing-lg);top:var(--spacing-lg);transition:color var(--transition-fast)}.assessment__close:hover{color:var(--color-text-primary)}.assessment__progress{background-color:var(--color-border);height:2px}.assessment__progress-bar{background-color:var(--color-text-primary);height:100%;transition:width var(--transition-normal)}.assessment__content{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;margin:0 auto;max-width:600px;padding:var(--spacing-2xl);width:100%}.assessment__category{color:var(--color-text-muted);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-wide);margin-bottom:var(--spacing-md);text-transform:uppercase}.assessment__question{color:var(--color-text-primary);font-size:28px;font-weight:var(--font-weight-normal);line-height:1.3;margin:0 0 var(--spacing-xl) 0;text-align:center}.assessment__textarea{background:#0000;border:none;border-bottom:1px solid var(--color-border);font-family:var(--font-family-sans);font-size:var(--font-size-lg);line-height:1.6;padding:var(--spacing-md);resize:none;text-align:center;width:100%}.assessment__textarea:focus{border-bottom-color:var(--color-text-primary);outline:none}.assessment__textarea::placeholder{color:var(--color-text-muted);font-style:italic}.assessment__hint{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-top:var(--spacing-md)}.assessment__error{background-color:#fee;border:1px solid #fcc;border-radius:var(--radius-sm);color:#c33;font-size:var(--font-size-sm);margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);text-align:center}.assessment__nav{align-items:center;border-top:1px solid var(--color-border-subtle);display:flex;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-2xl)}.assessment__nav-btn{background:none;border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-lg);transition:all var(--transition-fast)}.assessment__nav-btn:hover:not(:disabled){border-color:var(--color-text-primary);color:var(--color-text-primary)}.assessment__nav-btn:disabled{cursor:not-allowed;opacity:.3}.assessment__nav-btn--primary{background-color:var(--color-text-primary);border-color:var(--color-text-primary);color:var(--color-surface)}.assessment__nav-btn--primary:hover:not(:disabled){background-color:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-surface)}.assessment__counter{color:var(--color-text-muted);font-size:var(--font-size-sm)}.assessment__summary{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;margin:0 auto;max-width:650px;padding:var(--spacing-2xl);width:100%}.assessment__summary-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-normal);letter-spacing:var(--letter-spacing-tight);margin:0 0 var(--spacing-xl) 0;text-align:center}.assessment__summary-content{color:var(--color-text-secondary);line-height:1.8}.assessment__summary-content p{margin:0 0 var(--spacing-lg) 0}.assessment__summary-content p:last-child{margin-bottom:0}.assessment__summary-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-xl)}.assessment__btn{cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-xl);transition:all var(--transition-fast)}.assessment__btn--secondary{background:none;border:1px solid var(--color-border);color:var(--color-text-secondary)}.assessment__btn--secondary:hover{border-color:var(--color-text-primary);color:var(--color-text-primary)}.assessment__btn--primary{background-color:var(--color-text-primary);border:1px solid var(--color-text-primary);color:var(--color-surface)}.assessment__btn--primary:hover{background-color:var(--color-accent-hover);border-color:var(--color-accent-hover)}.memory-modal-overlay{align-items:center;background-color:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.memory-modal{background-color:var(--color-surface);border-radius:var(--radius-lg);display:flex;flex-direction:column;max-height:80vh;max-width:600px;overflow:hidden;width:90%}.memory-modal__header{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg)}.memory-modal__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);letter-spacing:var(--letter-spacing-tight);margin:0}.memory-modal__close{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;display:flex;font-size:var(--font-size-xl);height:32px;justify-content:center;transition:all var(--transition-fast);width:32px}.memory-modal__close:hover{background-color:var(--color-background-alt);color:var(--color-text-primary)}.memory-modal__content{flex:1 1;overflow-y:auto;padding:var(--spacing-lg)}.memory-modal__intro{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.5;margin:0 0 var(--spacing-lg) 0}.memory-modal__section{margin-bottom:var(--spacing-xl)}.memory-modal__section:last-child{margin-bottom:0}.memory-modal__section-title{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);margin:0 0 var(--spacing-md) 0;text-transform:uppercase}.memory-modal__profile{background-color:var(--color-background-alt);border-radius:var(--radius-md);padding:var(--spacing-md)}.memory-modal__profile p{color:var(--color-text-primary);font-size:var(--font-size-sm);line-height:1.6;margin:0 0 var(--spacing-sm) 0}.memory-modal__profile p:last-child{margin-bottom:0}.memory-modal__reflections{display:flex;flex-direction:column;gap:var(--spacing-md)}.memory-modal__reflection{background-color:var(--color-background-alt);border-radius:var(--radius-md);padding:var(--spacing-md)}.memory-modal__reflection-label{color:var(--color-text-muted);display:block;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-xs)}.memory-modal__reflection p{color:var(--color-text-primary);font-size:var(--font-size-sm);line-height:1.5;margin:0}.memory-modal__date{color:var(--color-text-muted);display:block;font-size:var(--font-size-xs);margin-top:var(--spacing-sm)}.memory-modal__queries{display:flex;flex-direction:column;gap:var(--spacing-xs);max-height:200px;overflow-y:auto}.memory-modal__query{background-color:var(--color-background-alt);border-radius:var(--radius-sm);display:flex;font-size:var(--font-size-sm);gap:var(--spacing-sm);padding:var(--spacing-sm)}.memory-modal__query-source{background-color:var(--color-border);border-radius:var(--radius-xs);color:var(--color-text-secondary);flex-shrink:0;font-size:var(--font-size-xs);letter-spacing:.02em;padding:2px var(--spacing-xs);text-transform:uppercase}.memory-modal__query-text{color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.memory-modal__empty{color:var(--color-text-muted);padding:var(--spacing-xl);text-align:center}.memory-modal__empty p{line-height:1.5;margin:0}.stylist-page{background-color:var(--color-background);display:flex;flex-direction:column;height:calc(100vh - var(--header-height))}.stylist-page__header{align-items:center;background-color:var(--color-surface);border-bottom:1px solid var(--color-border-subtle);display:flex;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg)}.stylist-page__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);letter-spacing:var(--letter-spacing-tight);margin:0}.stylist-page__header-actions{display:flex;gap:var(--spacing-sm)}.stylist-page__memory-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-wide);padding:var(--spacing-xs) var(--spacing-md);text-transform:uppercase;transition:all var(--transition-fast)}.stylist-page__memory-btn:hover{border-color:var(--color-text-secondary);color:var(--color-text-primary)}.stylist-page__assessment-btn{background:none;border:1px solid var(--color-text-primary);border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-wide);padding:var(--spacing-xs) var(--spacing-md);text-transform:uppercase;transition:all var(--transition-fast)}.stylist-page__assessment-btn:hover{background-color:var(--color-text-primary);color:var(--color-surface)}.stylist-page__clear{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-wide);padding:var(--spacing-xs) var(--spacing-md);text-transform:uppercase;transition:all var(--transition-fast)}.stylist-page__clear:hover:not(:disabled){border-color:var(--color-text-secondary);color:var(--color-text-primary)}.stylist-page__clear:disabled{cursor:not-allowed;opacity:.5}.stylist-page__messages-container{display:flex;flex:1 1;flex-direction:column;overflow-y:auto}.stylist-page__messages{flex:1 1;margin:0 auto;max-width:800px;padding:var(--spacing-lg);width:100%}.stylist-page__empty{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;padding:var(--spacing-2xl);text-align:center}.stylist-page__empty-text{color:var(--color-text-secondary);font-size:var(--font-size-base);line-height:1.6;max-width:400px}.stylist-page__loading{align-items:center;color:var(--color-text-muted);display:flex;height:100%;justify-content:center}.stylist-page__typing{display:flex;gap:4px;padding:var(--spacing-md)}.stylist-page__typing-dot{animation:typing-bounce 1.4s ease-in-out infinite both;background-color:var(--color-text-muted);border-radius:50%;height:8px;width:8px}.stylist-page__typing-dot:first-child{animation-delay:-.32s}.stylist-page__typing-dot:nth-child(2){animation-delay:-.16s}@keyframes typing-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.stylist-page__error{background-color:#fee;border:1px solid #fcc;border-radius:var(--radius-md);color:#c33;font-size:var(--font-size-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-md)}.store-preferences{display:flex;flex-direction:column;gap:var(--spacing-md)}.store-preferences__title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);letter-spacing:.05em;margin:0;text-transform:uppercase}.store-preferences__add{display:flex;gap:var(--spacing-xs)}.store-preferences__input{border:1px solid var(--color-border);flex:1 1;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm)}.store-preferences__input:focus{border-color:var(--color-text-primary);outline:none}.store-preferences__add-btn{background:var(--color-text-primary);border:none;color:var(--color-background);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);transition:opacity .2s}.store-preferences__add-btn:hover:not(:disabled){opacity:.8}.store-preferences__add-btn:disabled{cursor:not-allowed;opacity:.4}.store-preferences__section{display:flex;flex-direction:column;gap:var(--spacing-xs)}.store-preferences__section-title{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);margin:0;text-transform:uppercase}.store-preferences__list{display:flex;flex-direction:column;gap:var(--spacing-xs);list-style:none;margin:0;padding:0}.store-preferences__empty{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.store-item{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;gap:var(--spacing-sm);justify-content:space-between;padding:var(--spacing-xs) 0}.store-item:last-child{border-bottom:none}.store-item__name{align-items:center;display:flex;font-size:var(--font-size-sm);gap:var(--spacing-xs)}.store-item__badge{background:var(--color-background-alt);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-xs);padding:2px 6px}.store-item__actions{align-items:center;display:flex;gap:var(--spacing-xs)}.store-item__select{background:var(--color-background);border:1px solid var(--color-border);cursor:pointer;font-family:inherit;font-size:var(--font-size-xs);padding:4px 8px}.store-item__select:focus{border-color:var(--color-text-primary);outline:none}.store-item__remove{align-items:center;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;display:flex;font-size:var(--font-size-base);height:20px;justify-content:center;line-height:1;padding:0;width:20px}.store-item__remove:hover{color:var(--color-text-primary)}.pricing-preferences{display:flex;flex-direction:column;gap:var(--spacing-md)}.pricing-preferences__title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);letter-spacing:.05em;margin:0;text-transform:uppercase}.pricing-preferences__list{display:flex;flex-direction:column;gap:var(--spacing-xs);list-style:none;margin:0;padding:0}.pricing-item{align-items:center;border-bottom:1px solid var(--color-border-subtle);display:flex;gap:var(--spacing-sm);padding:var(--spacing-xs) 0}.pricing-item:last-child{border-bottom:none}.pricing-item__type{flex:1 1;font-size:var(--font-size-sm)}.pricing-item__price{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.pricing-item__remove{align-items:center;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;display:flex;font-size:var(--font-size-base);height:20px;justify-content:center;line-height:1;padding:0;width:20px}.pricing-item__remove:hover{color:var(--color-text-primary)}.pricing-preferences__add{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.pricing-preferences__select{background:var(--color-background);border:1px solid var(--color-border);cursor:pointer;flex:1 1;font-family:inherit;font-size:var(--font-size-sm);min-width:100px;padding:var(--spacing-xs) var(--spacing-sm)}.pricing-preferences__select:focus{border-color:var(--color-text-primary);outline:none}.pricing-preferences__price-input{align-items:center;border:1px solid var(--color-border);display:flex}.pricing-preferences__currency{background:var(--color-background-alt);color:var(--color-text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-xs)}.pricing-preferences__input{border:none;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs);width:80px}.pricing-preferences__input:focus{outline:none}.pricing-preferences__input::-webkit-inner-spin-button,.pricing-preferences__input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pricing-preferences__input[type=number]{-moz-appearance:textfield}.pricing-preferences__add-btn{background:var(--color-text-primary);border:none;color:var(--color-background);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);transition:opacity var(--transition-fast)}.pricing-preferences__add-btn:hover:not(:disabled){opacity:.8}.pricing-preferences__add-btn:disabled{cursor:not-allowed;opacity:.4}.pricing-preferences__hint{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.preferences-panel{background:var(--color-background);border-right:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--spacing-lg);height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--spacing-lg)}.preferences-panel__header{font-size:var(--font-size-lg);font-weight:400;letter-spacing:.1em;margin:0;text-transform:uppercase}.preferences-panel__section{display:flex;flex-direction:column}.preferences-panel__divider{background:var(--color-border);height:1px;margin:var(--spacing-sm) 0}.preferences-panel__loading{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.compatible-pieces{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.compatible-pieces__label{color:var(--color-text-secondary);font-size:var(--font-size-xs);letter-spacing:.05em;text-transform:uppercase}.compatible-pieces__list{display:flex;gap:var(--spacing-xs)}.compatible-pieces__item{background:var(--color-background-alt);border-radius:var(--radius-sm);height:36px;overflow:hidden;width:36px}.compatible-pieces__image{height:100%;object-fit:cover;width:100%}.compatible-pieces__placeholder{font-size:var(--font-size-sm);height:100%;width:100%}.compatible-pieces__more,.compatible-pieces__placeholder{align-items:center;background:var(--color-background-alt);color:var(--color-text-secondary);display:flex;justify-content:center}.compatible-pieces__more{border-radius:var(--radius-sm);font-size:var(--font-size-xs);height:36px;width:36px}.suggestion-card{background:var(--color-background);border:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg);transition:border-color .2s,opacity .2s}.suggestion-card--approved{border-color:var(--color-text-primary)}.suggestion-card--rejected{opacity:.5}.suggestion-card__header{display:flex;flex-direction:column}.suggestion-card__title{align-items:center;display:flex;flex-wrap:wrap;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);gap:var(--spacing-sm);margin:0}.suggestion-card__refined-badge{background:var(--color-background-alt);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);letter-spacing:.05em;padding:2px 8px;text-transform:uppercase}.suggestion-card__edit{display:flex;flex-direction:column;gap:var(--spacing-sm)}.suggestion-card__textarea{border:1px solid var(--color-border);font-family:inherit;font-size:var(--font-size-base);min-height:60px;padding:var(--spacing-sm);resize:vertical;width:100%}.suggestion-card__textarea:focus{border-color:var(--color-text-primary);outline:none}.suggestion-card__edit-actions{display:flex;gap:var(--spacing-xs)}.suggestion-card__edit-btn{background:var(--color-text-primary);border:none;color:var(--color-background);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm)}.suggestion-card__edit-btn--cancel{background:#0000;border:1px solid var(--color-border);color:var(--color-text-secondary)}.suggestion-card__edit-btn:hover{opacity:.8}.suggestion-card__rationale{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.5;margin:0}.suggestion-card__actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.suggestion-card__btn{cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md);transition:opacity .2s,background .2s}.suggestion-card__btn:disabled{cursor:not-allowed;opacity:.5}.suggestion-card__btn--approve{background:var(--color-text-primary);border:none;color:var(--color-background)}.suggestion-card__btn--approve:hover:not(:disabled){opacity:.8}.suggestion-card__btn--search{background:var(--color-text-primary);border:none;color:var(--color-background)}.suggestion-card__btn--search:hover:not(:disabled){opacity:.8}.suggestion-card__btn--edit{background:#0000;border:1px solid var(--color-border);color:var(--color-text-primary)}.suggestion-card__btn--edit:hover:not(:disabled){border-color:var(--color-text-primary)}.suggestion-card__btn--reject{background:#0000;border:1px solid var(--color-border);color:var(--color-text-secondary)}.suggestion-card__btn--reject:hover{border-color:var(--color-text-primary);color:var(--color-text-primary)}.product-card{background:var(--color-background);border:1px solid var(--color-border);color:inherit;display:flex;flex-direction:column;text-decoration:none;transition:border-color .2s,transform .2s}.product-card:hover{border-color:var(--color-text-primary);transform:translateY(-2px)}.product-card__image-container{aspect-ratio:1;background:var(--color-background-alt);overflow:hidden;position:relative;width:100%}.product-card__image{height:100%;object-fit:cover;width:100%}.product-card__placeholder{align-items:center;background:var(--color-background-alt);color:var(--color-text-secondary);display:flex;font-size:var(--font-size-sm);inset:0;justify-content:center;position:absolute}.product-card__placeholder--hidden{display:none}.product-card__content{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md)}.product-card__header{align-items:center;display:flex;justify-content:space-between}.product-card__retailer{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--font-size-xs);gap:var(--spacing-xs);letter-spacing:.05em;text-transform:uppercase}.product-card__preferred{color:var(--color-text-primary);font-size:var(--font-size-sm)}.product-card__price{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.product-card__name{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);line-height:1.4;margin:0;overflow:hidden}.product-card__sizes{color:var(--color-text-secondary);display:flex;font-size:var(--font-size-xs);gap:var(--spacing-xs)}.product-card__sizes-label{flex-shrink:0}.product-card__sizes-list{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-card__link{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin-top:var(--spacing-xs)}.product-card:hover .product-card__link{color:var(--color-text-primary)}.recommendation-panel{display:flex;flex-direction:column;gap:var(--spacing-xl);padding:var(--spacing-lg)}.recommendation-panel__header{align-items:center;display:flex;justify-content:space-between}.recommendation-panel__title{font-size:var(--font-size-xl);font-weight:400;letter-spacing:.1em;margin:0;text-transform:uppercase}.recommendation-panel__reset-btn{background:#0000;border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md);transition:border-color .2s,color .2s}.recommendation-panel__reset-btn:hover{border-color:var(--color-text-primary);color:var(--color-text-primary)}.recommendation-panel__empty{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:var(--spacing-2xl);text-align:center}.recommendation-panel__empty-title{font-size:var(--font-size-xl);font-weight:400;letter-spacing:.05em;margin:0 0 var(--spacing-2xl)}.recommendation-panel__option{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-sm);max-width:400px}.recommendation-panel__option-title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);letter-spacing:.02em;margin:0}.recommendation-panel__option-text{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.6;margin:0 0 var(--spacing-sm)}.recommendation-panel__divider{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--font-size-sm);gap:var(--spacing-md);letter-spacing:.1em;margin:var(--spacing-2xl) 0;max-width:300px;text-transform:uppercase;width:100%}.recommendation-panel__divider:after,.recommendation-panel__divider:before{background:var(--color-border);content:"";flex:1 1;height:1px}.recommendation-panel__search-form{display:flex;gap:var(--spacing-sm);width:100%}.recommendation-panel__search-input{background:var(--color-background);border:1px solid var(--color-border);flex:1 1;font-family:inherit;font-size:var(--font-size-base);padding:var(--spacing-sm) var(--spacing-md);transition:border-color .2s}.recommendation-panel__search-input:focus{border-color:var(--color-text-primary);outline:none}.recommendation-panel__search-input::placeholder{color:var(--color-text-secondary)}.recommendation-panel__search-input:disabled{cursor:not-allowed;opacity:.5}.recommendation-panel__search-btn{background:var(--color-text-primary);border:none;color:var(--color-background);cursor:pointer;font-family:inherit;font-size:var(--font-size-base);letter-spacing:.02em;padding:var(--spacing-sm) var(--spacing-lg);transition:opacity var(--transition-fast);white-space:nowrap}.recommendation-panel__search-btn:hover:not(:disabled){opacity:.8}.recommendation-panel__search-btn:disabled{cursor:not-allowed;opacity:.5}.recommendation-panel__empty-text{color:var(--color-text-secondary);font-size:var(--font-size-base);line-height:1.6;margin:0 0 var(--spacing-lg);max-width:400px}.recommendation-panel__generate-btn{background:var(--color-text-primary);border:none;color:var(--color-background);cursor:pointer;font-family:inherit;font-size:var(--font-size-base);letter-spacing:.05em;padding:var(--spacing-sm) var(--spacing-xl);transition:opacity var(--transition-fast)}.recommendation-panel__generate-btn:hover:not(:disabled){opacity:.8}.recommendation-panel__generate-btn:disabled{cursor:not-allowed;opacity:.5}.recommendation-panel__section{display:flex;flex-direction:column;gap:var(--spacing-md)}.recommendation-panel__section-title{align-items:center;display:flex;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);gap:var(--spacing-sm);letter-spacing:.05em;margin:0;text-transform:uppercase}.recommendation-panel__section-count{background:var(--color-background-alt);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);padding:2px 8px}.recommendation-panel__section-hint{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.recommendation-panel__results-group,.recommendation-panel__suggestions{display:flex;flex-direction:column;gap:var(--spacing-md)}.recommendation-panel__results-group{border-top:1px solid var(--color-border);padding:var(--spacing-lg) 0}.recommendation-panel__results-group:first-child{border-top:none;padding-top:0}.recommendation-panel__results-title{font-size:var(--font-size-base);font-weight:var(--font-weight-normal);margin:0}.recommendation-panel__products-grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.recommendation-panel__no-results{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.recommendation-panel__loading{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--font-size-sm);gap:var(--spacing-sm);padding:var(--spacing-md)}.recommendation-panel__loading-spinner{animation:spin .8s linear infinite;border:2px solid var(--color-border);border-radius:50%;border-top-color:var(--color-text-primary);height:16px;width:16px}@keyframes spin{to{transform:rotate(1turn)}}.recommendation-panel__error{background:#fee;border:1px solid #fcc;color:#c00;font-size:var(--font-size-sm);margin:0;padding:var(--spacing-sm)}.recommended-page{display:flex;flex-direction:column;height:calc(100vh - var(--header-height))}.recommended-page__content{display:grid;flex:1 1;grid-template-columns:300px 1fr;min-height:0;overflow:hidden}.recommended-page__main{background:var(--color-background-alt);height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain}.recommended-page__loading{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--font-size-base);height:100%;justify-content:center}@media (max-width:768px){.recommended-page__content{grid-template-columns:1fr;grid-template-rows:auto 1fr}}
/*# sourceMappingURL=main.e0bd0484.css.map*/