:root{--bg:#f6f6f4;--surface:#fff;--surface-2:#f0efec;--text:#1c1c1c;--muted:#62625f;--border:#dcdbd6;--accent:#c8102e;--accent-strong:#a00d25;--accent-text:#fff;--ok:#1d7a46;--ok-bg:#e5f4ea;--warn:#8a5a00;--warn-bg:#fdf3dc;--bad:#b3261e;--bad-bg:#fbe7e5;--info:#1f5f99;--info-bg:#e6f0fa;--focus:#1f5f99;--radius:10px;--shadow:0 1px 2px #0000000f, 0 2px 8px #0000000a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--bg:#141413;--surface:#1e1e1c;--surface-2:#2a2a27;--text:#ececea;--muted:#a3a39e;--border:#3a3a36;--accent:#ff4d63;--accent-strong:#ff7083;--accent-text:#1a0005;--ok:#6fd39a;--ok-bg:#173323;--warn:#f2c66d;--warn-bg:#3a2e12;--bad:#ff8a80;--bad-bg:#3d1a17;--info:#8cc2f2;--info-bg:#15283a;--focus:#8cc2f2;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-width:320px;margin:0}h1,h2{margin:0 0 .5rem;line-height:1.2}h1{font-size:1.6rem}h2{font-size:1.15rem}a{color:var(--info)}img{max-width:100%}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{background:var(--surface);z-index:10;padding:.5rem 1rem;position:absolute;top:.5rem;left:-999px}.skip-link:focus{left:.5rem}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.92em}.capitalize{text-transform:capitalize}.nowrap{white-space:nowrap}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:5;flex-wrap:wrap;align-items:center;gap:1rem;padding:.6rem 1.25rem;display:flex;position:sticky;top:0}.brand{color:var(--text);align-items:center;gap:.5rem;font-weight:700;text-decoration:none;display:flex}.brand-logo{width:auto;height:1.9rem;display:block}.brand-logo-large{height:2.6rem}.nav{flex:1;align-items:center;gap:.25rem;display:flex}.nav a{color:var(--text);border-radius:6px;padding:.4rem .7rem;text-decoration:none}.nav a:hover{background:var(--surface-2)}.nav a.active{background:var(--surface-2);font-weight:600}.nav-spacer{flex:1}.menu-toggle{min-width:4.5rem;margin-left:auto;display:none}.container{max-width:1280px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.container:focus{outline:none}@media (width<=860px){.menu-toggle{display:inline-flex}.nav{flex-direction:column;flex-basis:100%;align-items:stretch;display:none}.nav.nav-open{display:flex}.nav-spacer{display:none}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.page-header p{margin:.25rem 0 0}.page-actions{flex-wrap:wrap;gap:.5rem;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.25rem;padding:1.25rem}.two-col,.product-detail{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:1.25rem;display:grid}button,a,select,input,label{touch-action:manipulation}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:.35rem;padding:.5rem .95rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn-danger-outline{color:var(--bad);border-color:var(--bad)}.btn-small{padding:.3rem .65rem;font-size:.875rem}.btn-block{width:100%}.btn-link{color:var(--info);background:0 0;border:none;padding:.5rem .25rem}.field{flex-direction:column;gap:.3rem;min-width:0;margin-bottom:.9rem;display:flex}.field label{font-size:.9rem;font-weight:600}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;width:100%;padding:.5rem .65rem}input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accent)}input[type=file]{padding:.4rem}.field-invalid input{border-color:var(--bad)}.field-error{color:var(--bad)}.form-grid{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:0 1rem;display:grid}.checkbox{align-items:center;gap:.5rem;display:inline-flex}.id-search{flex-direction:column;gap:.35rem;margin-bottom:1rem;display:flex}.id-search label{font-weight:600}.id-search-row{gap:.6rem;display:flex}.id-search-row input{letter-spacing:.04em;flex:1;min-width:0;padding:.6rem .8rem;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:1.35rem}.filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;gap:0 1rem;margin-bottom:1.25rem;padding:1rem 1rem .1rem;display:grid}.catalog-toolbar .segmented{margin-left:auto}.segmented{display:inline-flex}.segmented .btn{border-radius:0}.segmented .btn:first-child{border-radius:8px 0 0 8px}.segmented .btn:last-child{border-radius:0 8px 8px 0}.segmented .btn+.btn{margin-left:-1px}.segmented .btn[aria-pressed=true]{background:var(--text);border-color:var(--text);color:var(--surface)}.badge-count{background:var(--text);color:var(--surface);padding:0 .45rem}@media (width<=640px){.filters{grid-template-columns:1fr}}.toolbar{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.toolbar select{width:auto}.toolbar-end{margin-left:auto}.filters .field-wide{grid-column:1/-1}[hidden]{display:none!important}.alert{border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.7rem 1rem;display:flex}.alert-info{background:var(--info-bg);color:var(--info)}.alert-success{background:var(--ok-bg);color:var(--ok)}.alert-warning{background:var(--warn-bg);color:var(--warn)}.alert-error{background:var(--bad-bg);color:var(--bad)}.loading{color:var(--muted);align-items:center;gap:.6rem;padding:2rem 0;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:1.1rem;height:1.1rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.empty{text-align:center;border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface);padding:3rem 1rem}.empty-title{margin:0 0 .25rem;font-size:1.1rem;font-weight:600}.is-refreshing{opacity:.6;transition:opacity .2s}.badge{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;padding:.12rem .55rem;font-size:.78rem;font-weight:600;display:inline-block}.badge-completed,.badge-published,.badge-active{background:var(--ok-bg);color:var(--ok)}.badge-tag{background:var(--info-bg);color:var(--info);letter-spacing:.02em}.badge-queued,.badge-processing{background:var(--warn-bg);color:var(--warn)}.badge-failed,.badge-disabled{background:var(--bad-bg);color:var(--bad)}.tags{vertical-align:middle;flex-wrap:wrap;gap:.3rem;margin-left:.5rem;display:inline-flex}.product-body .tags{margin-left:0}.table-wrap{padding:0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.93rem}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.6rem .85rem}th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:var(--surface-2);font-size:.8rem}td.actions{white-space:nowrap;text-align:right}td.actions .btn+.btn{margin-left:.35rem}caption{text-align:left;padding:.25rem 0 .5rem;font-weight:600}.pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0;display:flex}.pagination-buttons{align-items:center;gap:.75rem;display:flex}.product-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.product-grid-small{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.6rem}.product-grid-small .product-body{padding:.4rem .5rem .5rem}.product-grid-small .product-id{font-size:.85rem}.product-grid-small .product-title,.product-grid-small .product-meta,.product-grid-small .price{display:none}.product-grid-small .product-files{font-size:.7rem}.product-files li+li{margin-top:.15rem}.product-files .files-more,.product-grid-small .product-files li:nth-child(n+2){display:none}.product-grid-small .product-files li.files-more{display:block}.product-grid-small .badge-tag{white-space:normal;padding:.08rem .4rem;font-size:.62rem}.product-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.product-link{height:100%;color:inherit;flex-direction:column;text-decoration:none;display:flex}.product-link:hover .product-title{text-decoration:underline}.product-image{aspect-ratio:3/4;border-bottom:1px solid var(--border);background:#fff;place-items:center;display:grid}.product-image img{object-fit:contain;width:100%;height:100%}.product-body{flex-direction:column;gap:.15rem;padding:.7rem .8rem .85rem;display:flex}.product-id{font-size:1.05rem;font-weight:700}.product-title{font-weight:600}.product-files{color:var(--muted);overflow-wrap:anywhere;margin:.2rem 0 0;padding:0;font-size:.8rem;list-style:none}.plain-list{margin:0;padding:0;list-style:none}.product-meta{color:var(--muted);justify-content:space-between;gap:.5rem;font-size:.85rem;display:flex}.price{font-weight:700}.gallery>img{object-fit:contain;background:#fff;border-radius:6px;max-height:520px;margin:0 auto;display:block}.thumbs{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.thumb{border:2px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;width:64px;height:84px;padding:2px}.thumb img{object-fit:contain;width:100%;height:100%}.thumb-active{border-color:var(--accent)}.details{grid-template-columns:max-content 1fr;gap:.45rem 1.25rem;margin:0 0 1rem;display:grid}.details dt{color:var(--muted)}.details dd{margin:0}.details-inline{grid-template-columns:max-content 1fr max-content 1fr}@media (width<=720px){.details-inline{grid-template-columns:max-content 1fr}}.upload-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.upload-row input{flex:1;min-width:220px}.upload-queue{flex-direction:column;gap:.4rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.upload-item{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;padding:.45rem .6rem;display:flex}.upload-name{overflow-wrap:anywhere;flex:1;min-width:0}.upload-item progress{margin-top:.1rem}.upload-done .upload-name:before{content:"✓ ";color:var(--ok)}progress{width:100%;accent-color:var(--accent);margin-top:.75rem}.warnings{color:var(--warn);margin:.5rem 0;padding-left:1.25rem;font-size:.9rem}.impact{padding-left:1.25rem}.dialog{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;max-width:min(560px,100vw - 2rem);color:var(--text);padding:1.5rem}.dialog::backdrop{background:#00000073}.dialog-footer{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.login-page{place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{width:100%;max-width:380px}.login-brand{align-items:center;gap:.6rem;margin-bottom:.25rem;display:flex}.login-brand h1{margin:0;font-size:1.35rem}details summary{cursor:pointer;font-weight:600}@media (width<=640px){.hide-mobile{display:none}.topbar{min-height:3.25rem;padding:.4rem max(.75rem, env(safe-area-inset-right)) .4rem max(.75rem, env(safe-area-inset-left));gap:.5rem}.nav{padding-bottom:.4rem}.nav a,.nav .btn{align-items:center;gap:.3rem;min-height:2.9rem;display:flex}.brand{min-height:2.5rem}.nav .btn{justify-content:center}.btn{min-height:2.6rem}.btn-small{min-height:2.4rem}.btn-link{min-height:0}.brand-logo{height:1.5rem}.brand{font-size:.95rem}.container{padding:.75rem max(.75rem, env(safe-area-inset-right)) calc(2rem + env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left))}h1{font-size:1.25rem}h2{font-size:1.05rem}.page-header{align-items:center;gap:.5rem;margin-bottom:.75rem}.page-header p{margin-top:.1rem;font-size:.85rem}.page-description,.id-search small{display:none}.back-link{margin:0 0 .25rem}.back-link a{align-items:center;min-height:2.5rem;display:inline-flex}.catalog-header h1{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.catalog-header{margin-bottom:.25rem}.page-header .page-actions .btn{min-height:2.6rem}.card{margin-bottom:.75rem;padding:.85rem}.toolbar{gap:.4rem;margin-bottom:.75rem}.alert{margin-bottom:.75rem;padding:.55rem .75rem}.field{margin-bottom:.6rem}.filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .6rem;margin-bottom:.75rem;padding:.75rem .75rem .15rem}.empty{padding:1.5rem 1rem}.pagination{gap:.5rem;margin:.75rem 0;font-size:.85rem}.pagination .btn{min-width:2.75rem;min-height:2.5rem}.id-search{gap:.25rem;margin-bottom:.6rem}.id-search-row input{padding:.5rem .65rem;font-size:1.15rem}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.product-grid-small{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.segmented .btn{min-height:2.6rem}.id-search-row .btn{min-width:4.5rem}.product-body{padding:.45rem .55rem .55rem}.product-id{font-size:.95rem}.product-title,.product-meta{font-size:.82rem}.product-files{font-size:.72rem}.product-detail{grid-template-columns:minmax(0,1fr);gap:.75rem}.gallery>img{max-height:55vh}.thumbs{scroll-snap-type:x proximity;flex-wrap:nowrap;padding-bottom:.25rem;overflow-x:auto}.thumb{scroll-snap-align:start;flex:none;width:52px;height:68px}.details{gap:.3rem .75rem;font-size:.92rem}.table-wrap.card{box-shadow:none;background:0 0;border:none;padding:0}table.stack,table.stack tbody,table.stack tr,table.stack td{display:block}table.stack{box-shadow:none;border:none;font-size:.9rem}table.stack thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}table.stack tr{background:var(--surface);border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem .75rem;margin-bottom:.5rem;padding:.55rem .7rem;display:grid}table.stack td{border:none;padding:.1rem 0}table.stack td[data-label]{overflow-wrap:anywhere}table.stack td.stack-title,table.stack td.stack-wide,table.stack td.actions{grid-column:1/-1}table.stack td[data-label]:before{content:attr(data-label);color:var(--muted);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.72rem;font-weight:400;line-height:1.3;display:block}table.stack td.stack-title{overflow-wrap:anywhere;font-weight:600}table.stack td.stack-title a{padding:.4rem 0;display:inline-block}table.stack td.actions{white-space:normal;flex-wrap:wrap;justify-content:flex-start;gap:.4rem;display:flex}table.stack td.actions:empty{display:none}table.stack td.actions .btn+.btn{margin-left:0}table.stack td.actions .btn{min-height:2.5rem}.upload-row input,.upload-row .btn{flex:100%;min-width:0}.dialog{padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));border-radius:var(--radius) var(--radius) 0 0;max-width:100%;max-height:90vh;margin:auto 0 0}.dialog-footer{flex-wrap:wrap-reverse}.dialog-footer .btn{flex:auto;min-height:2.9rem}.form-grid{grid-template-columns:1fr}}
