:root{--color-bg: #ffffff;--color-bg-soft: #f7f5fa;--color-fg: #111111;--color-fg-muted: #555;--color-border: #e2e2e8;--color-accent: #7b4397;--color-accent-hover: #5e3275;--color-error: #b91c1c;--color-error-bg: #fee2e2;--color-success: #166534;--color-success-bg: #dcfce7;--radius: 8px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .05), 0 4px 12px rgba(0, 0, 0, .04);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;-webkit-text-size-adjust:100%}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--color-bg);color:var(--color-fg);min-height:100dvh}button{font-family:inherit;font-size:1rem;cursor:pointer}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}.loading{padding:2rem 1rem;text-align:center;color:var(--color-fg-muted)}.shell{min-height:100dvh;display:flex;flex-direction:column}.shell-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--color-border);background:var(--color-bg);position:sticky;top:0;z-index:10;flex-wrap:wrap}.shell-nav{display:flex;gap:.75rem;font-size:.95rem;flex:1;justify-content:center;order:3;width:100%;border-top:1px solid var(--color-border);padding-top:.5rem;margin-top:.5rem}@media(min-width:640px){.shell-nav{order:2;width:auto;border-top:none;padding-top:0;margin-top:0;justify-content:flex-start}}.shell-nav-link{color:var(--color-fg-muted);text-decoration:none;padding:.3rem .5rem;border-radius:var(--radius)}.shell-nav-link:hover{background:var(--color-bg-soft);color:var(--color-fg)}.shell-brand{font-weight:700;font-size:1.1rem;color:var(--color-accent)}.shell-user{display:flex;align-items:center;gap:.75rem;font-size:.9rem}.shell-user-email{color:var(--color-fg-muted);display:none}@media(min-width:480px){.shell-user-email{display:inline}}.shell-signout{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius);padding:.4rem .75rem;color:var(--color-fg)}.shell-signout:hover{background:var(--color-bg-soft)}.shell-main{flex:1;width:100%;max-width:56rem;margin:0 auto;padding:1rem}.page h1{margin:0 0 1rem;font-size:1.5rem}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--color-bg-soft)}.login-card{width:100%;max-width:24rem;background:var(--color-bg);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:1.5rem}.login-card h1{color:var(--color-accent);margin:0 0 1rem;font-size:1.4rem}.login-form{display:flex;flex-direction:column;gap:.5rem}.login-label{font-size:.875rem;color:var(--color-fg-muted)}.login-input{font-size:1rem;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-fg);font-size:16px}.login-input:focus{outline:2px solid var(--color-accent);outline-offset:1px}.login-submit{margin-top:.5rem;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius);padding:.85rem 1rem;font-weight:600}.login-submit:hover:not(:disabled){background:var(--color-accent-hover)}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-hint{margin:.75rem 0 0;font-size:.85rem;color:var(--color-fg-muted)}.login-sent{display:flex;flex-direction:column;gap:1rem}.login-resend{align-self:flex-start;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius);padding:.4rem .75rem}.login-banner{border-radius:var(--radius);padding:.6rem .75rem;font-size:.9rem}.login-banner-error{background:var(--color-error-bg);color:var(--color-error)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.page-header h1{margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius);padding:.55rem .9rem;background:var(--color-bg);color:var(--color-fg);font-weight:500;text-decoration:none;font-size:.95rem;white-space:nowrap;cursor:pointer}.btn:hover{background:var(--color-bg-soft);text-decoration:none}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.error-banner{background:var(--color-error-bg);color:var(--color-error);border-radius:var(--radius);padding:.75rem;margin:1rem 0}.filters{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}@media(min-width:600px){.filters{flex-direction:row}.filter-search{flex:1}}.filter-search,.filter-brand{font-size:16px;padding:.6rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-fg)}.filter-search:focus,.filter-brand:focus{outline:2px solid var(--color-accent);outline-offset:1px}.result-count{font-size:.85rem;color:var(--color-fg-muted);margin-bottom:.5rem}.product-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.product-row{display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);transition:background .12s,border-color .12s}.product-row:hover{background:var(--color-bg-soft);border-color:var(--color-accent)}.product-row-link{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;color:inherit}.product-row-link:hover{text-decoration:none}.product-thumb{width:56px;height:56px;flex-shrink:0;border-radius:var(--radius);overflow:hidden;background:var(--color-bg-soft);display:flex;align-items:center;justify-content:center}.product-thumb img{width:100%;height:100%;object-fit:cover}.product-thumb-placeholder{color:var(--color-border);font-size:1.5rem}.product-row-main{min-width:0;flex:1}.product-row-brand{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-fg-muted)}.product-row-name{font-weight:500;margin:.1rem 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-row-meta{font-size:.85rem;color:var(--color-fg-muted)}.product-row-meta .separator{margin:0 .4rem}.visible-toggle{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--color-fg-muted);flex-shrink:0;-webkit-user-select:none;user-select:none}.visible-toggle input{width:1.1rem;height:1.1rem}.empty-state{border:1px dashed var(--color-border);border-radius:var(--radius);padding:1.5rem;text-align:center;color:var(--color-fg-muted)}.empty-state code{background:var(--color-bg-soft);padding:.1rem .3rem;border-radius:4px;font-size:.85em}.product-form{display:flex;flex-direction:column;gap:1rem}.field-group{border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;margin:0;background:var(--color-bg)}.field-group-title{font-weight:600;font-size:.95rem;padding:0 .4rem;color:var(--color-fg)}.field-group-body{display:flex;flex-direction:column;gap:.75rem;padding-top:.5rem}.field{display:flex;flex-direction:column;gap:.3rem}.field-label{font-size:.85rem;color:var(--color-fg-muted);font-weight:500}.field-required{color:var(--color-error);margin-left:.2rem}.field input[type=text],.field input[type=number],.field input[type=email],.field input[type=search],.field textarea{font-family:inherit;font-size:16px;padding:.6rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-fg);width:100%}.field textarea{resize:vertical;min-height:4rem}.field input:focus,.field textarea:focus{outline:2px solid var(--color-accent);outline-offset:1px}.field-error input,.field-error textarea{border-color:var(--color-error)}.field-hint{font-size:.8rem;color:var(--color-fg-muted)}.field-error-msg{font-size:.85rem;color:var(--color-error)}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.checkbox-row{display:flex;align-items:center;gap:.5rem;font-size:.95rem;-webkit-user-select:none;user-select:none;cursor:pointer}.checkbox-row input{width:1.1rem;height:1.1rem}.slug-input-row{display:flex;gap:.5rem}.slug-input-row input{flex:1;min-width:0}.muted{color:var(--color-fg-muted);font-size:.9rem;margin:0}.form-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.form-actions .btn{align-self:flex-start}.image-upload{display:flex;flex-direction:column;gap:.75rem}.upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius);padding:1.25rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;background:var(--color-bg-soft);transition:background .12s,border-color .12s}.upload-zone-over{border-color:var(--color-accent);background:#f1ebf6}.upload-zone-text{margin:0;text-align:center;color:var(--color-fg-muted);font-size:.9rem}.upload-buttons{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.upload-busy{font-size:.9rem;color:var(--color-fg-muted);text-align:center}.image-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem}.image-card{border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;background:var(--color-bg);display:flex;flex-direction:column}.image-card-thumb{aspect-ratio:1 / 1;background:var(--color-bg-soft);overflow:hidden}.image-card-thumb img{width:100%;height:100%;object-fit:cover;display:block}.image-alt{font-family:inherit;font-size:14px;border:none;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:.5rem .6rem;width:100%;background:var(--color-bg);color:var(--color-fg)}.image-alt:focus{outline:2px solid var(--color-accent);outline-offset:-2px}.image-card-actions{display:flex;gap:.25rem;padding:.4rem}.image-card-actions .btn{flex:1;padding:.35rem .4rem;font-size:.85rem}.btn-danger{background:var(--color-error-bg);color:var(--color-error);border-color:transparent}.btn-danger:hover{background:#fbcaca}.install-banner{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;border:1px solid var(--color-border);background:var(--color-bg-soft);border-radius:var(--radius);padding:.75rem;margin-bottom:1rem}.install-banner-text{display:flex;flex-direction:column;gap:.15rem;font-size:.9rem;flex:1;min-width:0}.install-banner-text span{color:var(--color-fg-muted);font-size:.85rem}.install-banner-actions{display:flex;gap:.4rem;flex-wrap:wrap}.install-banner-close{background:transparent}.install-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#11111180;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100}.install-modal-content{background:var(--color-bg);border-radius:var(--radius);padding:1.25rem;max-width:22rem;width:100%}.install-modal-content h2{margin:0 0 .75rem;color:var(--color-accent);font-size:1.15rem}.install-modal-content ol{margin:0 0 1rem;padding-left:1.25rem;font-size:.95rem;line-height:1.6}.ai-suggest-btn{align-self:flex-start;margin-top:.4rem;font-size:.85rem;padding:.35rem .7rem;background:#f1ebf6;border-color:#d8c7e6;color:var(--color-accent)}.ai-suggest-btn:hover{background:#e6d8f0}.ai-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#1111118c;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:200}.ai-modal-content{background:var(--color-bg);border-radius:var(--radius);width:100%;max-width:36rem;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.ai-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .5rem}.ai-modal-header h2{margin:0;color:var(--color-accent);font-size:1.1rem}.ai-modal-close{background:transparent;border:none;font-size:1.5rem;line-height:1;color:var(--color-fg-muted);cursor:pointer;padding:.25rem .5rem}.ai-modal-loading{padding:2rem 1.25rem;text-align:center;color:var(--color-fg-muted)}.ai-modal-error{padding:1rem 1.25rem;background:var(--color-error-bg);color:var(--color-error);border-radius:var(--radius);margin:0 1.25rem 1rem}.ai-diff{display:flex;flex-direction:column;gap:.75rem;padding:.5rem 1.25rem}@media(min-width:600px){.ai-diff{flex-direction:row}.ai-diff-block{flex:1}}.ai-diff-block{border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem;background:var(--color-bg)}.ai-diff-block h3{margin:0 0 .4rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-fg-muted)}.ai-diff-block p{margin:0;white-space:pre-wrap;font-size:.95rem;line-height:1.5}.ai-diff-block-suggestion{background:#f1ebf6;border-color:#d8c7e6}.ai-diff-empty{color:var(--color-fg-muted);font-style:italic}.ai-modal-meta{padding:.5rem 1.25rem;font-size:.85rem;color:var(--color-fg-muted);line-height:1.5}.ai-modal-actions{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1.25rem 1.25rem}.settings-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem}.settings-card h2{margin:0 0 .5rem;font-size:1.1rem}.connect-state{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem}.connect-state-pill{align-self:flex-start;padding:.2rem .65rem;border-radius:999px;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.connect-state-pill-pending{background:#fef3c7;color:#92400e}.connect-state-pill-ok{background:#dcfce7;color:#166534}.connect-state .btn{align-self:flex-start}.connect-requirements{background:var(--color-bg-soft);border-radius:var(--radius);padding:.5rem .75rem;font-size:.9rem}.connect-requirements summary{cursor:pointer;color:var(--color-fg-muted)}.connect-requirements ul{margin:.5rem 0 0;padding-left:1rem}.connect-requirements code{font-size:.85em;background:var(--color-bg);padding:.05rem .3rem;border-radius:4px}
