:root{font-family:"PingFang SC","Microsoft YaHei",sans-serif;color:#3e392f;background:#f6f2ea;font-size:14px;--paper:#fffdfa;--ink:#3e392f;--gold:#947348;--muted:#8b8275;--line:#e8dfd1;--green:#395e4d}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:11px 16px;color:inherit;min-height:42px;transition:background .15s,border-color .15s}button:hover{background:#f0e9dd}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b8a07788;outline-offset:3px}button:disabled{opacity:.48;cursor:not-allowed}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button.primary:hover{background:#2c4b3d}.quiet{border-color:transparent;background:transparent;color:var(--muted)}[hidden]{display:none!important}aside{width:232px;position:fixed;inset:0 auto 0 0;padding:42px 22px;background:#eee6d8;border-right:1px solid #ded1bc;z-index:10}.brand{font-family:"Songti SC","SimSun",serif;font-size:24px;letter-spacing:2px;color:#5d4c33;padding:0 8px}.brand small{display:block;font:10px sans-serif;letter-spacing:3px;margin-top:12px;color:#9a8565}nav{margin-top:46px}nav button{display:flex;align-items:center;gap:13px;width:100%;text-align:left;border:0;background:transparent;color:#83765f;margin:6px 0;padding:14px 16px;border-radius:9px;white-space:nowrap}.nav-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;flex:none}.nav-icon svg{width:20px;height:20px}nav button.active{background:var(--paper);color:#3f5d48;box-shadow:0 2px 10px #6c583809}nav button.active:before{content:"";position:absolute;left:22px;width:3px;height:22px;background:#aa8a58;border-radius:2px}.aside-note{position:absolute;bottom:30px;font-size:11px;letter-spacing:2px;color:#9b8a70;padding-left:8px}main{margin-left:232px;padding:37px 40px;max-width:1750px;min-width:0}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.page-heading small,.eyebrow{letter-spacing:2px;color:#a28b67;font-size:10px}.page-heading h1{font-size:27px;font-weight:500;letter-spacing:2px;margin:10px 0 0;font-family:"Songti SC","SimSun",serif}.header-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.badge,.pill{display:inline-block;padding:6px 11px;background:#edf1e9;color:#5d7253;border-radius:18px;font-size:11px;white-space:nowrap}.pill.off{background:#f1ebe2;color:#8d7963}.backup-menu{position:relative}.backup-menu summary{list-style:none;font-size:12px;color:#8b7a61;padding:11px 9px}.backup-menu summary::-webkit-details-marker{display:none}.backup-menu summary:after{content:"⌄";padding-left:8px}.backup-options{position:absolute;right:0;top:42px;min-width:190px;background:var(--paper);padding:8px;border:1px solid var(--line);box-shadow:0 12px 35px #5c48251c;border-radius:10px;z-index:30;display:grid;gap:5px}.backup-options button{text-align:left;font-size:12px;border:0}.notice{display:flex;gap:9px;align-items:flex-start;line-height:1.7;color:#7b775f;background:#eeeede;border:1px solid #e4e5d0;padding:12px 16px;border-radius:9px;margin-bottom:24px;font-size:12px;overflow-wrap:anywhere}.notice:before{content:"✓";color:#657451;font-weight:bold}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:24px;margin-bottom:22px;min-width:0;box-shadow:0 3px 12px #6f562c03}.stat-label{color:#8c806b;font-size:12px}.stat-value{font:36px Georgia,serif;color:#5a4c39;margin:16px 0 10px}.stat-caption{display:flex;align-items:center;gap:6px}.stat-caption:before{content:"";width:5px;height:5px;background:#a3ae8d;border-radius:50%}.muted{color:var(--muted);font-size:12px;line-height:1.7;overflow-wrap:anywhere}.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap}.toolbar h2{margin-bottom:12px}.search-field{position:relative;flex:1;max-width:360px}input,select,textarea{border:1px solid #e1d7c7;padding:11px 12px;border-radius:8px;background:var(--paper);color:var(--ink);max-width:100%;min-width:0}input[type=search]{width:100%;max-width:320px;background:#faf7f1}input::placeholder,textarea::placeholder{color:#b2a794}table{border-collapse:collapse;width:100%;text-align:left;line-height:1.6}th{font-size:11px;font-weight:400;color:#97896f;background:#faf7f0;white-space:nowrap}th,td{padding:15px 12px;border-bottom:1px solid #eee7dc;vertical-align:middle}td{font-size:12px;overflow-wrap:anywhere}td button{padding:7px 12px;margin:3px 5px 3px 0;min-height:34px;font-size:12px}td:first-child{color:#95856d}.table-wrap{overflow:auto;max-width:100%;-webkit-overflow-scrolling:touch}.grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px}h2{font-size:17px;font-weight:500;margin:0 0 20px;color:#5c4b34}.row{display:flex;justify-content:space-between;gap:15px;padding:16px 0;border-bottom:1px solid #eee7dc;overflow-wrap:anywhere}.row>span{flex-shrink:0}.row>div{min-width:0}label{display:block;margin-bottom:19px;color:#796b55;font-size:12px}label input,label textarea,label select{display:block;width:100%;margin-top:8px;font-size:14px}label .muted{display:block;margin-top:7px}textarea{min-height:100px;resize:vertical;line-height:1.7}.actions{display:flex;justify-content:flex-end;gap:10px}.field-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 15px}dialog{width:540px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);border:1px solid var(--line);border-radius:15px;padding:0;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px #3e312233;overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#28201780;backdrop-filter:blur(3px)}#edit-form{padding:27px 28px 0}.dialog-heading h2{margin:9px 0 24px;font-size:22px;font-family:"Songti SC","SimSun",serif}.dialog-actions{position:sticky;bottom:0;padding:16px 0 20px;background:var(--paper);border-top:1px solid var(--line);margin-top:22px;z-index:2}.dialog-actions button{min-width:92px}.empty{text-align:center;padding:44px 20px;color:#9d907a}.category-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.category-tabs button{padding:10px 14px;font-size:12px}.category-tabs small{margin-left:8px;opacity:.65}.material-filters{display:flex;gap:10px;flex-wrap:wrap}.material-filters input{flex:1;min-width:150px}.material-filters select{max-width:160px}.material-image-row,.product-name{display:flex;align-items:center;gap:12px}.material-image-row{flex-wrap:wrap}.material-thumb,.product-thumb{width:58px;height:58px;object-fit:contain;border-radius:10px;background:#f4efe6;flex:none}.product-thumb{width:54px;height:54px;object-fit:cover}.product-name>div{min-width:0}.product-name strong{font-size:13px;font-weight:500;color:#4c463a}.product-id{font-size:10px;letter-spacing:.3px}.placeholder{display:grid;place-items:center;font-size:10px;color:#a0937d}.upload-preview{width:112px;height:112px;object-fit:contain;display:block;border:1px solid var(--line);border-radius:11px;background:#f3efe7;margin-top:12px}.image-field{border:1px dashed #cbbb9e;background:#faf7f1;border-radius:10px;padding:15px}.image-field input{padding:9px;background:white}.upload-hint{margin:8px 0 0;font-size:11px;color:#9c8c73;line-height:1.7}.upload-status{font-size:11px;color:#75816b;display:block;margin-top:7px}.showcase-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px}.showcase-preview{background:#f1ede2;border:8px solid #d6ccb5;border-radius:180px 180px 12px 12px;overflow:hidden;aspect-ratio:3/4;display:grid;place-items:center;max-width:350px;width:100%;margin:auto}.showcase-preview img{width:100%;height:100%;object-fit:cover}.preview-panel{text-align:center}.preview-panel h2{font-size:13px;color:#9a8769}#toast{position:fixed;bottom:calc(30px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#3b5144;color:white;padding:13px 20px;border-radius:9px;display:none;z-index:1000;max-width:calc(100vw - 36px);width:max-content;line-height:1.6;font-size:13px;box-shadow:0 8px 30px #0002}footer{font-size:10px;letter-spacing:1px;color:#b3a68d;text-align:center;padding:15px 0 5px}footer span{margin:0 9px}.login-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:30px 20px;background:radial-gradient(ellipse at 30% 25%,#e8dcc7aa,transparent 60%),#f6f2ea}.login-card{width:410px;max-width:100%;padding:38px 36px;background:#fffdf8;border:1px solid #dfd2bb;border-radius:150px 150px 16px 16px;box-shadow:0 20px 70px #8e6a3520;text-align:center}.roman-mark{height:74px;width:72px;border:2px solid #b69a6b;border-bottom:3px solid #b69a6b;border-radius:38px 38px 0 0;margin:12px auto 25px;display:flex;justify-content:space-evenly;align-items:flex-end;padding:16px 9px 0}.roman-mark i{display:block;width:5px;height:37px;border-left:1px solid #b69a6b;border-right:1px solid #b69a6b}.roman-mark i:nth-child(2){height:44px}.login-card h1{font-family:"Songti SC","SimSun",serif;font-size:27px;letter-spacing:3px;font-weight:500;color:#665134;margin:17px 0}.login-intro{font-size:12px;color:#a18f73;line-height:1.9;margin:0 0 26px}.login-card form{text-align:left}.login-card label{margin-bottom:16px}.login-card button{width:100%;margin-top:3px}.form-error{color:#a4503f;line-height:1.7;min-height:18px;font-size:12px;margin:2px 0 10px}.login-note{font-size:10px;color:#b2a082;letter-spacing:2px;margin:25px 0 0}pre{font-size:12px;overflow-wrap:anywhere;max-width:100%}.auth-mode{background:#f6f2ea}
@media(min-width:1600px){main{padding-left:52px;padding-right:52px}}
@media(max-width:1100px){aside{width:195px;padding-left:16px;padding-right:16px}.brand{font-size:21px}nav button{padding-left:12px;gap:9px}nav button.active:before{left:16px}main{margin-left:195px;padding:30px 25px}.stats{gap:12px}.stats .card{padding:20px 18px}.grid{grid-template-columns:1fr}.showcase-layout{gap:25px}}
@media(max-width:760px){aside{position:sticky;inset:auto;top:0;width:100%;padding:17px 18px 0;background:#eee6d8f5;backdrop-filter:blur(12px);border-right:0;border-bottom:1px solid #ded1bc}.brand{font-size:20px;display:flex;justify-content:space-between;align-items:center;padding:0;letter-spacing:2px}.brand small{margin:0;font-size:8px;letter-spacing:1.5px}nav{margin-top:14px;display:flex;gap:5px;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:8px;scrollbar-width:none}nav::-webkit-scrollbar{display:none}nav button{width:auto;flex:none;gap:6px;margin:0;padding:10px 12px;font-size:12px;border-radius:8px;min-height:40px}.nav-icon,.nav-icon svg{width:17px;height:17px}nav button.active:before{display:none}.aside-note{display:none}main{margin:0;padding:23px 18px 20px}header{gap:10px;align-items:flex-start;margin-bottom:18px}.page-heading h1{font-size:25px;margin-top:8px}.page-heading small{font-size:9px;letter-spacing:1px}.header-controls{max-width:58%;gap:2px 8px}.badge{font-size:10px;padding:5px 8px}.header-controls .quiet{font-size:11px;padding:7px;min-height:32px}.backup-menu summary{font-size:11px;padding:8px 5px}.backup-options{top:35px}.notice{padding:10px 12px;font-size:11px;margin-bottom:18px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card{padding:20px 17px;margin-bottom:17px;border-radius:11px}.stats .card{margin-bottom:0;padding:19px 17px}.stats{margin-bottom:17px}.stat-value{font-size:33px;margin:13px 0 7px}.stat-label,.stat-caption{font-size:11px}.grid{gap:0}.toolbar{gap:12px;margin-bottom:16px}.toolbar input[type=search]{max-width:100%;width:100%;flex:1;min-width:0}.toolbar>.primary{padding:10px 12px;flex:none;font-size:12px}.category-tabs{gap:7px;margin-bottom:20px}.category-tabs button{padding:9px 11px;font-size:11px;min-height:38px}.category-tabs small{margin-left:5px}.material-filters{gap:8px}.material-filters input{min-width:100px}.material-filters select{max-width:116px;font-size:12px}.showcase-layout{grid-template-columns:minmax(0,1fr);gap:28px}.showcase-preview{max-width:280px}.showcase-layout .preview-panel{order:-1}.showcase-layout .preview-panel h2{margin-bottom:13px}.showcase-layout .preview-panel .muted{max-width:290px;margin:12px auto}.table-wrap{overflow:visible}.table-wrap table,.table-wrap tbody{display:block;width:100%}.table-wrap thead{display:none}.table-wrap tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;padding:17px 0;border-bottom:1px solid var(--line)}.table-wrap tr:first-child{padding-top:0}.table-wrap tr:last-child{border-bottom:0;padding-bottom:0}.table-wrap td{display:block;border:0;padding:0;min-width:0;color:var(--ink)}.table-wrap td:before{content:attr(data-label);display:block;font-size:10px;color:#aa987b;margin-bottom:5px}.table-wrap td:first-child,.table-wrap td:last-child{grid-column:1/-1}.table-wrap td.empty{padding:25px 0}.table-wrap td.empty:before{display:none}.table-wrap td.product-summary{grid-column:1/-1}.table-wrap td.product-summary:before{display:none}.table-wrap td.actions-cell{display:flex;align-items:center;justify-content:flex-end;gap:7px;padding-top:3px}.table-wrap td.actions-cell:before{display:none}.table-wrap td button{min-height:40px;margin:0;padding:9px 17px}.table-wrap td .product-id{font-size:10px}.material-image-row{justify-content:space-between;flex-wrap:nowrap}.material-thumb{width:64px;height:64px}.table-wrap td[data-label="商品编号"]{font-size:10px;color:#a39376;display:none}.product-thumb{width:62px;height:62px}.product-name strong{font-size:14px}input,select,textarea,label input,label select,label textarea{font-size:16px}input[type=file]{font-size:12px}dialog{max-width:calc(100vw - 22px);max-height:calc(100dvh - 28px);width:520px;border-radius:13px}#edit-form{padding:22px 19px 0}.dialog-heading h2{font-size:23px}.dialog-actions{padding:13px 0 calc(13px + env(safe-area-inset-bottom));margin-top:18px}.dialog-actions button{flex:1}.field-grid{gap:0 12px}label{font-size:12px}.row{font-size:12px}.upload-preview{width:100px;height:100px}#toast{bottom:calc(22px + env(safe-area-inset-bottom))}footer{font-size:9px;letter-spacing:.4px;padding-top:8px}}
@media(max-width:370px){main{padding:20px 13px}aside{padding-left:13px;padding-right:13px}.brand small{font-size:7px}.header-controls{max-width:57%;column-gap:3px}.page-heading h1{font-size:23px}.card{padding:18px 14px}.stats .card{padding:17px 14px}.stat-caption{font-size:10px}.field-grid{grid-template-columns:1fr}.login-card{padding:32px 25px}}

/* Product category management */
.toolbar-actions { display:flex; gap:10px; flex-wrap:wrap; }
.product-management h2 { margin:0 0 7px; }
.product-management .toolbar p { margin:0; }
.product-category-tabs { flex-wrap:nowrap; overflow-x:auto; padding-bottom:9px; max-width:100%; -webkit-overflow-scrolling:touch; }
.product-category-tabs button { flex:none; white-space:nowrap; }
.category-editor-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; border-bottom:1px solid var(--line); padding:12px 0; }
.category-editor-name { margin:0; }
.category-editor-name input { min-width:0; }
.category-editor-count { justify-self:end; padding-top:17px; text-align:center; white-space:nowrap; }
.category-editor-enabled { display:flex; align-items:center; gap:6px; grid-column:1; font-size:11px; white-space:nowrap; margin:12px 0 0; }
.category-editor-enabled input { width:16px; height:16px; margin:0; accent-color:var(--green); }
.category-editor-order { display:flex; grid-column:2; gap:6px; }
.category-editor-order button { min-width:0; padding:9px 10px; font-size:12px; white-space:nowrap; }
.category-editor-list { margin-bottom:20px; }
#checkout-fees { scroll-margin-top:30px; }
@media(max-width:560px) {
  .toolbar-actions { width:100%; }
  .toolbar-actions button { flex:1; }
  .category-editor-row { gap:8px; }
  .category-editor-order button { padding:9px 7px; }
  .product-management .actions-cell { flex-wrap:wrap; }
}

/* The merchant uses the same first-screen geometry and artwork as the home page. */
.showcase-management .showcase-layout { grid-template-columns:minmax(270px,.9fr) minmax(0,1.1fr); gap:44px; align-items:start; }
.showcase-management .preview-panel { min-width:0; }
.showcase-management .preview-panel h2 { margin:0 0 8px; font-size:16px; color:#5c4b34; }
.showcase-preview-caption { margin:0 auto 20px; max-width:370px; }
.showcase-management .showcase-preview { position:relative; display:block; width:100%; max-width:430px; aspect-ratio:375/812; border:0; border-radius:18px; overflow:hidden; background:#eee2d4; box-shadow:0 8px 30px #6b54342b,0 0 0 1px #d8c8ae; }
.showcase-preview .showcase-preview-garden { position:absolute; left:0; top:0; width:100%; height:100%; object-fit:cover; }
.showcase-preview-scene { position:absolute; top:0; left:0; right:0; height:var(--showcase-height); overflow:hidden; }
.showcase-preview-window { position:absolute; z-index:1; left:19.1%; top:calc(var(--preview-unit) * 75); bottom:calc(var(--preview-unit) * 13); width:63.4%; overflow:hidden; border-radius:50% 50% 0 0 / calc(var(--preview-unit) * 255) calc(var(--preview-unit) * 255) 0 0; }
.showcase-preview .showcase-preview-photo { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.showcase-preview.is-disabled .showcase-preview-window { visibility:hidden; }
.showcase-preview-window #showcase-empty { position:absolute; inset:0; display:grid; place-items:center; padding:20px; background:#e8decdcc; }
.showcase-preview-frame-head { position:absolute; z-index:2; top:0; left:0; width:100%; height:var(--frame-head-height); overflow:hidden; pointer-events:none; }
.showcase-preview .showcase-preview-frame-head img { display:block; width:100%; height:auto; object-fit:fill; }
.showcase-preview-frame-columns { position:absolute; z-index:2; top:var(--frame-head-height); left:0; right:0; bottom:calc(var(--preview-unit) * 15); overflow:hidden; pointer-events:none; }
.showcase-preview .showcase-preview-frame-columns img { position:absolute; left:0; bottom:-5.714286%; width:100%; height:258.095238%; object-fit:fill; }
.showcase-preview-frame-foot { position:absolute; z-index:2; left:0; right:0; bottom:0; height:calc(var(--preview-unit) * 15); overflow:hidden; pointer-events:none; }
.showcase-preview .showcase-preview-frame-foot img { position:absolute; left:0; bottom:0; width:100%; height:auto; object-fit:fill; }
.showcase-preview-brand { position:absolute; z-index:3; top:var(--brand-top); left:0; right:0; text-align:center; color:#755a3b; text-shadow:0 1px 6px #fff9ed80; font-family:"Songti SC","STSong","SimSun",serif; }
.showcase-preview-brand-title { font-size:calc(var(--preview-unit) * 44); font-weight:700; line-height:1.15; letter-spacing:calc(var(--preview-unit) * 6); }
.showcase-preview-brand-rule { display:flex; align-items:center; justify-content:center; gap:calc(var(--preview-unit) * 15); margin:calc(var(--preview-unit) * 9) auto calc(var(--preview-unit) * 8); color:#ac8e61; font-size:calc(var(--preview-unit) * 18); }
.showcase-preview-brand-rule::before,.showcase-preview-brand-rule::after { content:''; width:calc(var(--preview-unit) * 104); height:1px; background:linear-gradient(90deg,transparent,#ac8e61); }
.showcase-preview-brand-rule::after { transform:scaleX(-1); }
.showcase-preview-brand-sub { font-size:calc(var(--preview-unit) * 23); letter-spacing:calc(var(--preview-unit) * 4); color:#8a7356; }
.showcase-preview-diy { position:absolute; z-index:4; top:var(--showcase-spacer); left:0; right:0; height:var(--diy-height); overflow:hidden; }
.showcase-preview .showcase-preview-diy img { width:100%; height:auto; object-fit:fill; }
.showcase-preview-diy-copy { position:absolute; top:calc(var(--preview-unit) * 94); left:24%; right:24%; color:#765a3b; font-family:"Songti SC","STSong","SimSun",serif; text-align:center; }
.showcase-preview-diy-copy > div { font-size:calc(var(--preview-unit) * 44); line-height:1.2; letter-spacing:calc(var(--preview-unit) * 4); font-weight:700; }
.showcase-preview-diy-copy > div + div { margin-top:calc(var(--preview-unit) * 4); }
.showcase-preview-diy-copy small { display:block; margin:calc(var(--preview-unit) * 10) 0 calc(var(--preview-unit) * 4); font-size:calc(var(--preview-unit) * 23); line-height:1.25; letter-spacing:calc(var(--preview-unit) * 3); white-space:nowrap; }
.showcase-preview-diy-copy > span { display:flex; justify-content:center; align-items:center; height:calc(var(--preview-unit) * 61); font-size:calc(var(--preview-unit) * 31); white-space:nowrap; }
.showcase-preview-nav { position:absolute; z-index:5; left:0; right:0; bottom:0; height:var(--nav-height); padding:calc(var(--preview-unit) * 4) calc(var(--preview-unit) * 14) var(--safe-bottom); display:flex; border:1px solid #cdbb9d; border-radius:calc(var(--preview-unit) * 32) calc(var(--preview-unit) * 32) 0 0; background:linear-gradient(130deg,#faf4e9,#e6dbc9); }
.showcase-preview-nav > span { flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:calc(var(--preview-unit) * 4); color:#8e7655; font-size:calc(var(--preview-unit) * 23); font-family:"Songti SC","STSong","SimSun",serif; white-space:nowrap; }
.showcase-preview-nav b { font-size:calc(var(--preview-unit) * 40); font-weight:400; line-height:1; }
.showcase-preview-nav .is-active { color:#745025; border:1px solid #c2aa83; border-radius:28px 28px 7px 7px; background:#fffaf08c; }
.showcase-preview-note { max-width:360px; margin:18px auto 0; }
@media(max-width:1100px) { .showcase-management .showcase-layout { grid-template-columns:minmax(0,1fr); gap:32px; } .showcase-management .preview-panel { order:-1; } }
@media(max-width:760px) { .showcase-management .showcase-preview { max-width:375px; border-radius:12px; } .showcase-preview-caption { max-width:290px; } }

/* Bind the home showcase by searching the current product catalog. */
/* Posters share one editor; the rail scrolls independently of the page. */
.showcase-heading h2 { margin:0 0 9px; }
.showcase-heading p { margin:0; max-width:610px; }
.showcase-slide-list { display:flex; gap:12px; overflow-x:auto; overscroll-behavior-x:contain; padding:4px 3px 12px; scroll-snap-type:x proximity; }
.showcase-slide-card { width:132px; min-width:132px; flex:none; padding:7px; border-radius:11px; text-align:left; scroll-snap-align:start; }
.showcase-slide-card.is-selected { border-color:var(--green); background:#edf2eb; box-shadow:0 0 0 2px #395e4d24; }
.showcase-slide-art { display:grid; place-items:center; position:relative; height:126px; overflow:hidden; border-radius:7px; background:#eee6d8; color:#968568; font-size:11px; }
.showcase-slide-art img { width:100%; height:100%; object-fit:cover; }
.showcase-slide-art b { position:absolute; top:6px; left:6px; display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:#fff9eee6; color:#69573b; font-weight:500; }
.showcase-slide-card strong { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:12px; font-weight:500; margin:9px 2px 4px; }
.showcase-slide-card small { display:block; color:var(--muted); font-size:10px; margin:0 2px 3px; }
.showcase-rail-note { margin:0 0 26px; }
.showcase-edit-controls { min-width:0; border:0; padding:0; margin:0; }
.showcase-slide-heading { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:20px; }
.showcase-slide-heading h2 { flex:1; margin:0; font-size:15px; white-space:nowrap; }
.showcase-order-actions { display:flex; flex-wrap:wrap; gap:6px; }
.showcase-order-actions button { font-size:11px; padding:8px 10px; min-height:36px; }
#showcase-remove { color:#9b6046; }
.showcase-preview-track { display:flex; width:100%; height:100%; transition:transform .55s ease; touch-action:pan-y; }
.showcase-preview-slide { position:relative; flex:0 0 100%; width:100%; height:100%; overflow:hidden; }
.showcase-preview-empty { position:absolute; inset:0; display:grid; place-items:center; padding:20px; background:#e8decdcc; }
.showcase-preview-dots { position:absolute; z-index:1; left:0; right:0; bottom:18px; display:flex; align-items:center; justify-content:center; gap:4px; }
.showcase-preview-dots button { min-height:24px; width:24px; padding:0; border:0; background:transparent; border-radius:50%; }
.showcase-preview-dots button::after { content:''; display:block; margin:auto; width:6px; height:6px; border-radius:50%; background:#fff8e6a6; box-shadow:0 0 2px #69573b; }
.showcase-preview-dots button[aria-pressed=true]::after { background:#947348; width:16px; border-radius:4px; }
.showcase-preview-controls { display:flex; align-items:center; justify-content:center; gap:14px; margin-top:16px; }
.showcase-preview-controls button { min-height:36px; padding:8px 13px; font-size:11px; }
@media(max-width:760px) { .showcase-slide-card { width:116px; min-width:116px; } .showcase-slide-art { height:113px; } .showcase-order-actions { width:100%; } .showcase-heading .toolbar-actions { width:100%; } .showcase-heading .toolbar-actions button { flex:1; } }
.showcase-editor { min-width:0; }
.showcase-product-picker { min-width:0; margin:0 0 22px; padding:15px; border:1px solid var(--line); border-radius:11px; }
.showcase-product-picker legend { padding:0 5px; font-size:12px; color:#76654e; }
.showcase-product-picker label { margin-bottom:9px; }
.showcase-product-picker input[type=search] { min-width:0; }
.showcase-product-results { max-height:300px; overflow-y:auto; overscroll-behavior:contain; border:1px solid var(--line); border-radius:8px; background:#fffefa; }
.showcase-product-option { width:100%; display:flex; align-items:center; gap:11px; min-height:77px; padding:10px; text-align:left; border:0; border-radius:0; border-bottom:1px solid var(--line); background:transparent; }
.showcase-product-option:last-child { border-bottom:0; }
.showcase-product-option.is-selected { background:#eaf0e9; box-shadow:inset 3px 0 #6d8970; }
.showcase-product-option:disabled { opacity:.55; cursor:default; }
.showcase-product-thumb { display:grid; place-items:center; flex:none; width:54px; height:54px; overflow:hidden; border:1px solid var(--line); border-radius:7px; background:#f1ece2; color:#9c8e77; font-size:10px; }
.showcase-product-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.showcase-product-copy { min-width:0; flex:1; display:flex; flex-direction:column; gap:5px; }
.showcase-product-copy strong { overflow-wrap:anywhere; font-size:13px; line-height:1.45; font-weight:500; }
.showcase-product-copy > span { font-size:11px; color:var(--muted); line-height:1.5; overflow-wrap:anywhere; }
.showcase-product-action { flex:none; max-width:5em; color:#6c785d; font-size:11px; line-height:1.6; text-align:right; }
.showcase-selected-product { display:flex; align-items:center; flex-wrap:wrap; gap:11px; padding:12px; margin-bottom:15px; border:1px solid #b5c3ac; border-radius:8px; background:#f2f5ec; }
.showcase-selected-product > button { flex:none; min-height:36px; padding:7px 9px; font-size:11px; }
.showcase-selected-product.is-unavailable { background:#fbf2e6; border-color:#d7ba91; }
.showcase-product-warning,.showcase-product-selected-note { flex-basis:100%; margin:0; font-size:11px; line-height:1.7; }
.showcase-product-warning { color:#9c6341; }
.showcase-product-selected-note { color:#738363; }
.showcase-no-binding { margin:0 0 13px; }
.showcase-product-empty { margin:0; padding:18px 12px; text-align:center; }
.showcase-binding-hint { margin:11px 0 0; }
.showcase-legacy-link { margin:0 0 22px; }
.showcase-legacy-link summary { color:#8b795c; font-size:12px; cursor:pointer; }
.showcase-legacy-link label { margin-top:13px; }
@media(max-width:370px) { .showcase-product-picker { padding:11px; } .showcase-product-option { gap:8px; padding:8px; } .showcase-product-thumb { width:44px; height:44px; } .showcase-selected-product > button { margin-left:auto; } }

/* DIY material kinds and their independently managed color groups. */
.material-management h2 { margin:0 0 7px; }
.material-management .toolbar p { margin:0; }
.material-management .material-kind-tabs,.material-color-tabs { display:flex; flex-wrap:nowrap; gap:8px; max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; padding:0 0 10px; }
.material-management .material-kind-tabs button,.material-color-tabs button { flex:none; white-space:nowrap; }
.material-color-tabs { margin:5px 0 15px; }
.material-color-tabs button { display:flex; align-items:center; gap:7px; padding:11px 14px; min-height:43px; }
.material-color-tabs small { font-size:10px; opacity:.7; }
.material-color-dot { width:12px; height:12px; flex:none; border:1px solid #0002; border-radius:50%; }
.material-color-editor-row { display:grid; grid-template-columns:minmax(0,1fr) 70px; align-items:center; gap:10px 12px; padding:13px 0; border-bottom:1px solid var(--line); }
.material-color-editor-name,.material-color-editor-swatch { margin:0; }
.material-color-editor-swatch input { width:100%; height:44px; padding:5px; cursor:pointer; }
.material-color-editor-count { grid-column:1/-1; font-size:11px; }
.material-color-editor-enabled { display:flex; align-items:center; gap:7px; font-size:12px; margin:0; }
.material-color-editor-enabled input { width:16px; height:16px; margin:0; accent-color:var(--green); }
.material-color-editor-order { display:flex; gap:7px; justify-self:end; }
.material-color-editor-order button { padding:8px 12px; min-height:37px; font-size:12px; }
.material-color-editor-list { margin-bottom:20px; }
@media(max-width:560px) { .material-management .toolbar-actions { width:100%; } .material-management .toolbar-actions button { flex:1; } .material-color-tabs button { padding:10px 12px; } .material-color-editor-row { grid-template-columns:minmax(0,1fr) 60px; } .material-color-editor-order { grid-column:1/-1; } }

/* Customer contact details in shop settings. */
.service-settings #checkout-fees { margin-top:28px; }
.service-settings .service-qr-field { margin-bottom:26px; }
.service-settings .service-qr-field > label { margin:0 0 8px; }
.service-settings .service-qr-field input { width:100%; }
.service-settings .service-qr-preview { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:14px; }
.service-settings .service-qr-preview .upload-preview { width:160px; height:160px; margin:0; padding:8px; background:#fff; }
.service-settings .service-qr-preview button { min-height:44px; }

/* Hand bangle stock is counted separately for every ring size. */
.bangle-inventory { min-width:0; margin:4px 0 24px; padding:15px; border:1px solid var(--line); border-radius:10px; }
.bangle-inventory[hidden] { display:none; }
.bangle-inventory legend { padding:0 6px; font-size:13px; color:var(--green); }
.bangle-inventory > p { margin:0 0 14px; }
.bangle-inventory-head,.bangle-inventory-row { display:grid; grid-template-columns:42px minmax(0,1fr) 62px 43px; align-items:center; gap:8px; }
.bangle-inventory-head { color:var(--muted); font-size:11px; margin-bottom:6px; }
.bangle-inventory-row { padding:8px 0; border-bottom:1px solid var(--line); }
.bangle-inventory-row strong { font-size:14px; font-weight:500; overflow-wrap:anywhere; }
.bangle-inventory-row label { margin:0; }
.bangle-inventory-row input[type=number] { margin:0; min-width:0; }
.bangle-stock-status { display:flex; align-items:center; gap:6px; white-space:nowrap; font-size:12px; }
.bangle-stock-status input[type=checkbox] { width:17px; height:17px; margin:0; accent-color:var(--green); }
.bangle-inventory-row.is-out-of-stock .bangle-stock-status { color:#9b6046; }
.bangle-inventory #bangle-stock-summary { margin:14px 0 0; }
.bangle-inventory #bangle-stock-error:empty { display:none; }
.bangle-inventory-row [data-bangle-remove] { min-width:0; min-height:36px; padding:8px 5px; font-size:11px; color:#9b6046; }
.bangle-size-add { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:10px; margin-bottom:18px; }
.bangle-size-add label { margin:0; }
.bangle-size-add input { min-width:0; }
.bangle-size-add button { min-height:44px; padding:10px; white-space:nowrap; font-size:12px; }
.bangle-stock-label .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
input[name=stock][readonly] { background:#f1eee7; color:var(--muted); }
@media(max-width:370px) { .bangle-inventory { padding:11px; } .bangle-inventory-head,.bangle-inventory-row { grid-template-columns:33px minmax(0,1fr) 55px 38px; gap:6px; } .bangle-inventory-row [data-bangle-remove] { padding:8px 2px; } }
