:root{font-family:"Noto Sans SC",system-ui,sans-serif;color:#292119;background:#f6f6f5}*{box-sizing:border-box}body{margin:0}header{background:#ffd108;padding:16px max(20px,calc((100vw - 1160px)/2));display:flex;justify-content:space-between;align-items:center}.brand{font-size:24px;font-weight:800}.brand span{font-size:14px;font-weight:500;margin-left:10px}main{max-width:1160px;margin:28px auto;padding:0 20px}.card{background:white;border-radius:16px;padding:24px;margin:18px 0;box-shadow:0 2px 16px #2921190a}.narrow{max-width:440px;margin:8vh auto}.top{display:flex;align-items:end;justify-content:space-between;gap:20px}h1{margin:0 0 8px}h2{margin-top:0}h3{grid-column:1/-1;margin:18px 0 0}.muted{color:#7a7a78;margin:6px 0 18px}nav{display:flex;gap:8px;overflow:auto;padding:4px 0}button{border:0;background:#ffd108;color:#292119;font-weight:700;padding:12px 18px;border-radius:10px;cursor:pointer;min-height:44px}nav button{background:#fff;white-space:nowrap}nav button.active{background:#ffd108}button:hover{filter:brightness(.96)}label{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:600}input,select{font:inherit;border:1px solid #d9d7d3;border-radius:9px;padding:10px;min-height:44px;background:#fff;min-width:0}form{display:grid;gap:16px}form button{justify-self:start}.grid{grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #eee;margin-top:22px;padding-top:8px}.grid button{align-self:end}.scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:620px}th,td{text-align:left;padding:13px;border-bottom:1px solid #eee}th{background:#fff7d1}#message{min-height:28px;margin-top:12px;color:#3b854a}#message.error{color:#e32e24}pre{white-space:pre-wrap;background:#fff7d1;border-radius:8px;padding:12px}#identity{font-size:14px}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}.metrics div{background:#fff7d1;border-radius:10px;padding:16px}.metrics strong{display:block;font-size:22px;margin-top:8px}@media(max-width:700px){header{padding:14px 16px}.brand{font-size:20px}.brand span{display:none}main{padding:0 12px;margin:18px auto}.card{padding:18px}.top{align-items:start;flex-direction:column}.grid,.metrics{grid-template-columns:1fr 1fr}.grid h3{grid-column:1/-1}}@media(max-width:460px){.grid,.metrics{grid-template-columns:1fr}nav{position:sticky;top:0;background:#f6f6f5;z-index:2}}
.table-photo{width:54px;height:54px;object-fit:cover;border-radius:8px}.selected-row{background:#fff9d8}.image-preview{width:120px;height:120px;object-fit:cover;border-radius:12px;background:#eee}.upload-controls{grid-column:1/-1;display:flex;align-items:end;gap:12px;flex-wrap:wrap}.decoration-preview{grid-column:1/-1;max-width:420px;background:#f6f6f6;border-radius:20px;padding:14px}.preview-hero{position:relative;height:210px;background:#fff;border-radius:12px;overflow:hidden}.preview-hero>img:first-child{width:100%;height:100%;object-fit:contain}.preview-brand{position:absolute;left:10px;top:10px;width:80px;height:50px;object-fit:contain}.preview-cards{display:flex;gap:8px;margin-top:10px}.preview-cards>div{flex:1;background:#fff;border-radius:12px;padding:12px;min-width:0}.preview-cards strong,.preview-cards small,.preview-campaign strong,.preview-campaign small{display:block}.preview-cards small,.preview-campaign small{font-size:12px;color:#777}.preview-cards img{width:100%;height:65px;object-fit:contain}.preview-campaign{position:relative;background:#444;color:#ffd700;border-radius:12px;padding:12px;margin-top:10px;overflow:hidden}.preview-campaign img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.2}.preview-campaign strong,.preview-campaign small{position:relative}.preview-campaign small{color:#ddd}[hidden]{display:none!important}

/* Mini program decoration editor */
#decoration{min-width:0}#decoration .decoration-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}#decoration .decoration-heading h2{margin:0 0 6px}#decoration .decoration-heading .muted{margin-bottom:20px}#decoration .decoration-state{white-space:nowrap;border-radius:20px;padding:6px 12px;background:#f2f4ed;color:#426a4c;font-size:13px;font-weight:700}#decoration .decoration-state[data-state=unsaved]{background:#fff3ce;color:#865e00}#decoration .decoration-state[data-state=saving]{background:#e9f1ff;color:#255c91}#decoration .decoration-state[data-state=failed]{background:#ffe9e6;color:#a5382b}#decoration .decoration-layout{display:grid;grid-template-columns:minmax(0,1fr) 375px;gap:28px;align-items:start}#decoration .decoration-editor,#decoration .decoration-phone-column{min-width:0}#decoration .decoration-groups{position:sticky;top:0;z-index:3;background:#fff;display:flex;gap:6px;padding:8px 0 12px;overflow-x:auto}#decoration .decoration-groups button{background:#f5f4ef;white-space:nowrap;font-size:13px;padding:8px 11px}#decoration .decoration-groups button:hover{background:#ffedaa}#decoration #decorationForm{display:block}#decoration .decoration-group{border:1px solid #e9e5dc;border-radius:14px;margin:0 0 12px;background:#fff;overflow:hidden;scroll-margin-top:65px}#decoration .decoration-group>summary{cursor:pointer;list-style:none;padding:18px 20px;font-size:16px;font-weight:800;min-height:60px}#decoration .decoration-group>summary::-webkit-details-marker{display:none}#decoration .decoration-group>summary:after{content:'⌄';float:right;color:#8b877e}#decoration .decoration-group[open]>summary:after{content:'⌃'}#decoration .decoration-group>summary small{display:block;color:#85827c;font-size:12px;font-weight:400;margin-top:4px}#decoration .decoration-fields{padding:0 20px 20px;display:grid;gap:16px}#decoration .decoration-fields label{min-width:0}#decoration .decoration-fields input,#decoration .decoration-fields select{width:100%}#decoration .decoration-image-field{border:1px solid #ece9e2;border-radius:12px;padding:12px;display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px 12px;align-items:center;min-width:0}#decoration .decoration-image-field>strong{grid-column:1/-1;font-size:14px}#decoration .decoration-image-field>img{width:72px;height:72px;object-fit:cover;background:#f8f7f4;border-radius:8px}#decoration .decoration-image-actions{display:flex;gap:8px;flex-wrap:wrap}#decoration .decoration-image-actions button{font-size:12px;padding:7px 10px;background:#fff4c7}#decoration .decoration-image-actions button+button{background:#f3f2ef}#decoration .decoration-image-field details{grid-column:1/-1;min-width:0}#decoration .decoration-image-field details summary{font-size:12px;color:#777;cursor:pointer;padding:6px 0;min-height:32px}#decoration .decoration-image-field details label{font-size:12px;margin-top:6px}#decoration .decoration-reset{background:#f3f2ef;margin-top:10px}#decoration .decoration-phone-column{position:sticky;top:18px}#decoration .decoration-preview-label{display:flex;justify-content:space-between;align-items:center;font-size:14px;margin-bottom:10px}#decoration .decoration-preview-label span{font-size:12px;color:#777}#decoration .decoration-phone{width:375px;max-width:100%;height:min(720px,calc(100vh - 125px));min-height:480px;border:7px solid #272a2b;border-radius:32px;overflow:hidden;background:#f7f7f5;box-shadow:0 18px 44px #30281825;display:flex;flex-direction:column}#decoration .decoration-phone-status{height:29px;flex:none;background:#fff;font-size:11px;font-weight:800;padding:8px 19px 0}#decoration .decoration-phone-status span{float:right}#decoration .decoration-preview{max-width:none;flex:1;overflow-y:auto;overflow-x:hidden;border-radius:0;padding:0;background:#f6f7f5;scrollbar-width:thin}#decoration .decoration-preview button{font:inherit;color:inherit;text-align:left;min-height:0;cursor:pointer}#decoration .preview-hero{display:block;width:100%;height:220px;border-radius:0;padding:0;background:#fff}#decoration .preview-hero>img:first-child{object-fit:cover}#decoration .preview-brand{width:68px;height:44px}#decoration .preview-hero-name{position:absolute;left:16px;bottom:16px;background:#ffdb33;border-radius:20px;padding:5px 12px;font-size:15px;font-weight:800}#decoration .preview-cards{margin:10px 10px 0;gap:8px}#decoration .preview-cards button{flex:1;width:50%;background:#fff;border-radius:12px;padding:11px;min-width:0}#decoration .preview-cards strong,#decoration .preview-cards small,#decoration .preview-campaign strong,#decoration .preview-campaign small{display:block}#decoration .preview-cards strong{font-size:16px}#decoration .preview-cards small{font-size:11px;color:#777;min-height:30px}#decoration .preview-cards img{width:100%;height:78px;object-fit:contain}#decoration .preview-member,#decoration .preview-store,#decoration .preview-order-code{display:block;width:calc(100% - 20px);margin:10px 10px 0;background:#fff;border-radius:12px;padding:14px}#decoration .preview-member{display:flex;align-items:center;gap:8px;background:#fff6d0}#decoration .preview-member strong{font-size:15px}#decoration .preview-member span{font-size:11px;color:#776c49;flex:1}#decoration .preview-member b,#decoration .preview-order-code b{float:right}#decoration .preview-campaign{display:block;width:calc(100% - 20px);min-height:84px;margin:10px 10px 0}#decoration .preview-campaign strong{font-size:16px}#decoration .preview-store strong,#decoration .preview-store span,#decoration .preview-store small{display:block}#decoration .preview-store span{margin:5px 0;font-size:12px}#decoration .preview-store small{font-size:11px;color:#777}#decoration .preview-order-code{font-size:13px;color:#544834!important}#decoration .preview-tabs{position:sticky;bottom:-56px;display:flex;justify-content:space-around;background:#fff;border-top:1px solid #eee;padding:9px 0 12px;margin-top:12px}#decoration .preview-tabs span{text-align:center;font-size:20px;color:#8b8b8b}#decoration .preview-tabs span:first-child{color:#d69b00}#decoration .preview-tabs small{display:block;font-size:10px}#decoration .decoration-bottom-bar{display:flex;justify-content:flex-end;align-items:center;gap:14px;border-top:1px solid #eee;padding-top:18px;margin-top:18px}#decoration .decoration-mobile-toggle{display:none}#decoration .decoration-bottom-state{font-size:13px;color:#777}
@media(max-width:999px){#decoration .decoration-layout{grid-template-columns:minmax(0,1fr)}#decoration .decoration-phone-column{position:static;max-width:375px;margin:auto}}
@media(max-width:700px){#decoration{padding-bottom:95px}#decoration .decoration-heading{display:block}#decoration .decoration-heading .muted{margin-bottom:10px}#decoration .decoration-state{display:inline-block;margin-bottom:14px}#decoration .decoration-groups{position:static}#decoration .decoration-layout{display:block}#decoration .decoration-phone-column{max-width:none}#decoration:not(.mobile-preview) .decoration-phone-column{display:none}#decoration.mobile-preview .decoration-editor{display:none}#decoration .decoration-phone{width:100%;height:calc(100dvh - 270px);min-height:410px;max-width:430px;margin:auto}#decoration .decoration-bottom-bar{position:fixed;z-index:20;bottom:0;left:0;right:0;margin:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -4px 18px #0002;gap:8px}#decoration .decoration-mobile-toggle{display:flex;gap:4px;flex:1;background:#f3f2ef;border-radius:10px;padding:3px}#decoration .decoration-mobile-toggle button{flex:1;background:transparent;padding:8px;font-size:13px}#decoration .decoration-mobile-toggle button.active{background:#ffd108}#decoration .decoration-bottom-state{display:none}#decoration #decorationSave{padding:10px 14px;white-space:nowrap}#decoration .decoration-group>summary{min-height:60px}#decoration .decoration-preview-label{max-width:430px;margin:0 auto 10px}}
#decoration .preview-hero>img:first-child{object-fit:contain}#decoration .preview-cards{margin:11px 14px 0;gap:9px}#decoration .preview-cards button{border-radius:10px;padding:13px;min-height:128px}#decoration .preview-cards small{min-height:0;margin:5px 0;color:#999}#decoration .preview-cards img{height:50px}#decoration .preview-member{display:flex;margin:10px 14px 0;width:calc(100% - 28px);padding:12px;background:#fff}#decoration .preview-member button{flex:1;background:none;text-align:center;font-size:12px;padding:0;border-radius:0}#decoration .preview-member button+button{border-left:1px solid #eee}#decoration .preview-member img{display:block;width:28px;height:28px;object-fit:contain;margin:0 auto 4px}#decoration .preview-campaign{margin:10px 14px 0;width:calc(100% - 28px)}#decoration .preview-store-head{font-size:15px;font-weight:800;margin:15px 14px 8px}#decoration .preview-store{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin:0 14px;width:calc(100% - 28px);padding:15px;font-size:13px}#decoration .preview-store>div{min-width:0;flex:1}#decoration .preview-store strong{font-size:13px}#decoration .preview-store span{font-size:11px;color:#999;white-space:nowrap}#decoration .preview-store small{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#decoration .preview-store .preview-announcement{color:#c33}#decoration .preview-order-code{margin:10px 14px 0;width:calc(100% - 28px);font-weight:700!important;font-size:13px}#decoration .preview-tabs{bottom:0;padding:7px 0 9px}#decoration .preview-tabs span{font-size:11px}#decoration .preview-tabs img{display:block;width:23px;height:23px;object-fit:contain;margin:0 auto 4px}#decoration .preview-tabs small{font-size:10px}

/* Management shell */
main{max-width:none;margin:0;padding:0}#login{margin:8vh auto}#workspace{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100dvh}#workspace .sidebar{position:sticky;top:0;height:100dvh;overflow-y:auto;background:#fff;box-shadow:1px 0 0 #e9e5db;padding:22px 12px;z-index:31}#workspace .sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:0 12px 22px;border-bottom:1px solid #eee7d6;margin-bottom:10px}#workspace .sidebar-brand{font-size:21px;font-weight:900;white-space:nowrap}#workspace .sidebar-brand small{display:block;font-size:12px;font-weight:500;color:#8a806d;margin:3px 0 0 29px}#workspace #closeMenu{display:none}#mainNav{display:block;position:static;overflow:visible;padding:0;background:none}#mainNav .menu-group{margin:0 0 12px}#mainNav .menu-group-title{padding:11px 12px 5px;font-size:11px;font-weight:800;color:#958d7c;letter-spacing:.08em}#mainNav button[data-view]{display:block;width:100%;min-height:42px;background:transparent;border-radius:9px;text-align:left;padding:10px 12px;margin:2px 0;font-size:14px;font-weight:600;white-space:normal}#mainNav button[data-view]:hover{background:#fff6d7}#mainNav button[data-view].active{background:#ffe681;color:#2b2100;font-weight:800}#mainNav button[data-view][aria-current=page]{box-shadow:inset 3px 0 #e2ae00}#workspace .workspace-content{min-width:0;padding:0 28px 32px}#workspace .top{display:flex;align-items:center;gap:18px;min-height:82px;border-bottom:1px solid #e7e2d7}#workspace .page-heading{flex:1;min-width:0}#workspace .page-heading h1{font-size:23px;line-height:1.2;margin:0}#workspace .store-picker{min-width:185px;font-size:12px;color:#817967;gap:3px}#workspace .store-picker select{width:100%;max-width:240px}#workspace #identity{display:flex;align-items:center;gap:10px;white-space:nowrap}#workspace #identity button{background:#fff;border:1px solid #e4dfd4;padding:8px 12px}#workspace #menuToggle,#workspace .menu-overlay,#workspace .mobile-identity{display:none}#workspace .mobile-help{font-size:11px;color:#766d5b;margin:5px 0 0;white-space:nowrap}#workspace .view{min-width:0}#workspace .scroll{max-width:100%;overflow-x:auto}#workspace .grid>*{min-width:0}#workspace .grid{min-width:0}#workspace .card{max-width:100%}
@media(max-width:999px){#workspace{display:block}#workspace .workspace-content{padding:0 18px 28px}#workspace .sidebar{position:fixed;top:0;bottom:0;left:0;width:min(280px,82vw);height:100dvh;transform:translateX(-105%);transition:transform .2s ease;box-shadow:4px 0 22px #0002}#workspace.menu-open .sidebar{transform:translateX(0)}#workspace .menu-overlay:not([hidden]){display:block;position:fixed;inset:0;width:100%;height:100%;z-index:30;border:0;border-radius:0;background:#0008;padding:0}#workspace #closeMenu{display:block;background:#f2f0e9;padding:8px 12px}#workspace #menuToggle{display:block;background:#fff;border:1px solid #e1dccf;padding:8px 11px;white-space:nowrap}#workspace .mobile-identity{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #eee7d6;margin-top:12px;padding:18px 12px 10px;font-size:12px}#workspace .mobile-identity button{background:#f3f1ea;padding:8px 12px}#workspace .top{position:sticky;top:0;z-index:12;background:#f6f6f5;padding:9px 0;min-height:66px}#workspace #identity{display:none}#decoration .decoration-phone-column{scroll-margin-top:78px}}
@media(max-width:700px){#workspace .workspace-content{padding:0 12px 24px}#workspace .top{gap:8px}#workspace #menuToggle{font-size:20px;width:46px;height:46px;padding:5px}#workspace #menuToggle span{display:none}#workspace .page-heading h1{font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#workspace .store-picker{min-width:0;width:120px;flex:none}#workspace .store-picker>span{display:none}#workspace .store-picker select{width:100%;height:44px;font-size:12px}#workspace .view.card{padding:16px;margin:12px 0}#decoration .decoration-heading h2{display:none}#decoration .decoration-heading .muted{font-size:12px;margin:0 0 7px}#decoration .decoration-state{margin-bottom:9px}#workspace .grid{grid-template-columns:1fr}#workspace .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}#workspace .metrics div{min-width:0}#workspace .metrics strong{overflow-wrap:anywhere}}
@media(max-width:700px){#workspace #decoration{padding-bottom:95px}#workspace pre{overflow-wrap:anywhere}#workspace .view{overflow-wrap:anywhere}}
#workspace .remote-preview-notice{display:flex;align-items:center;gap:10px;background:#fff1cb;color:#5e4200;border:1px solid #edcf76;border-radius:10px;padding:11px 14px;margin:16px 0 8px;font-size:13px}#workspace .remote-preview-notice strong{white-space:nowrap}#workspace.remote-preview .view button:disabled{opacity:.5;cursor:not-allowed;filter:none}@media(max-width:700px){#workspace .remote-preview-notice{align-items:flex-start;flex-direction:column;gap:3px;font-size:12px;padding:10px 12px;margin:10px 0 4px}}
