/* 鼎养诚后台设计系统：不依赖第三方框架，供所有后台页面复用 */
:root{
  --dyc-primary:#23633a;--dyc-primary-strong:#194d2c;--dyc-primary-soft:#eaf4ed;
  --dyc-gold:#b88716;--dyc-bg:#f5f7f6;--dyc-surface:#fff;--dyc-surface-muted:#f8faf8;
  --dyc-text:#17221b;--dyc-text-secondary:#5f6b63;--dyc-text-muted:#89928c;
  --dyc-border:#e2e8e4;--dyc-border-strong:#ccd8cf;--dyc-success:#238636;--dyc-warning:#b76e00;
  --dyc-danger:#c93636;--dyc-danger-soft:#fff1f1;--dyc-info:#2563a8;--dyc-info-soft:#eff6ff;
  --dyc-radius-sm:8px;--dyc-radius-md:12px;--dyc-radius-lg:16px;
  --dyc-shadow-xs:0 1px 2px rgba(23,34,27,.05);--dyc-shadow-sm:0 6px 18px rgba(23,34,27,.06);--dyc-shadow-lg:0 20px 50px rgba(23,34,27,.16);
  --dyc-transition:180ms cubic-bezier(.2,.8,.2,1);--dyc-sidebar:240px;
}
*{box-sizing:border-box}html{background:var(--dyc-bg)}body{margin:0;min-width:320px;background:var(--dyc-bg);color:var(--dyc-text);font-family:"Microsoft YaHei","PingFang SC","Noto Sans SC",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.5}
button,input,select,textarea{font:inherit}button{touch-action:manipulation}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip-link{position:fixed;z-index:4000;left:16px;top:-56px;padding:10px 14px;border-radius:var(--dyc-radius-sm);background:var(--dyc-text);color:#fff;text-decoration:none;transition:top var(--dyc-transition)}.skip-link:focus{top:16px}
:focus-visible{outline:3px solid rgba(35,99,58,.35);outline-offset:2px}.lp{min-height:100vh;padding:24px;background:radial-gradient(circle at 15% 15%,rgba(184,135,22,.22),transparent 32%),radial-gradient(circle at 85% 85%,rgba(94,177,112,.2),transparent 36%),linear-gradient(135deg,#123521,#23633a)}.lb{width:min(100%,420px);padding:36px!important;border:1px solid rgba(255,255,255,.45)!important;border-radius:20px!important;box-shadow:0 28px 70px rgba(0,0,0,.2)!important}.lb h1{font-size:28px!important;letter-spacing:.08em;color:var(--dyc-text)!important}.lb .sub{margin:6px 0 28px!important;color:var(--dyc-text-secondary)!important}.lb input{height:44px;margin:0 0 14px!important;padding:0 14px!important;border:1px solid var(--dyc-border)!important;border-radius:var(--dyc-radius-sm)!important;background:#fff;color:var(--dyc-text);transition:border-color var(--dyc-transition),box-shadow var(--dyc-transition)}.lb input:focus{border-color:var(--dyc-primary)!important;box-shadow:0 0 0 3px rgba(35,99,58,.12);outline:none}.lb .btn{min-height:44px;border-radius:var(--dyc-radius-sm)!important;background:var(--dyc-primary)!important;transition:background var(--dyc-transition),transform var(--dyc-transition)}.lb .btn:hover{background:var(--dyc-primary-strong)!important}.lb .btn:active{transform:translateY(1px)}.lb .err{min-height:20px;margin:0 0 10px;color:var(--dyc-danger)!important;font-size:13px;text-align:left!important}.password-wrap{position:relative}.password-wrap input{padding-right:52px!important}.password-toggle{position:absolute;right:6px;top:5px;min-width:36px;height:34px;border:0;border-radius:6px;background:transparent;color:var(--dyc-text-secondary);cursor:pointer}.password-toggle:hover{background:var(--dyc-primary-soft);color:var(--dyc-primary)}
.ap{background:var(--dyc-bg)}.sb{width:var(--dyc-sidebar)!important;padding:16px 12px!important;background:linear-gradient(180deg,#183d27 0%,#112d1d 100%)!important;box-shadow:8px 0 32px rgba(11,35,21,.09)}.sb .l{height:58px;display:flex;align-items:center;padding:0 12px 18px!important;font-size:20px!important;letter-spacing:.06em;border-bottom:1px solid rgba(255,255,255,.1)!important}.sb .l span{color:#e6bd54!important}.sb .n{width:100%;min-height:44px;display:flex;align-items:center;gap:12px;margin:4px 0;padding:0 12px!important;border:0;border-radius:8px;background:transparent;color:rgba(255,255,255,.72)!important;font-weight:500;text-align:left;cursor:pointer;transition:background var(--dyc-transition),color var(--dyc-transition),transform var(--dyc-transition)}.sb .n:hover{background:rgba(255,255,255,.09)!important;color:#fff!important}.sb .n.a{background:rgba(234,244,237,.16)!important;color:#fff!important;box-shadow:inset 3px 0 0 #d8bd6b}.nav-icon{width:20px;height:20px;flex:0 0 20px;stroke:currentColor}.nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main{margin-left:var(--dyc-sidebar)!important;min-height:100vh}.tb{min-height:64px;align-items:center!important;padding:0 28px!important;border-bottom:1px solid var(--dyc-border)!important;background:rgba(255,255,255,.92)!important;box-shadow:var(--dyc-shadow-xs);backdrop-filter:blur(12px)}.tb .t,#pt{font-size:17px!important;font-weight:700;color:var(--dyc-text)}.tb-left,.tb-right{display:flex;align-items:center;gap:12px}.tb-right{margin-left:auto}.lo{min-height:36px;display:inline-flex;align-items:center;padding:0 10px;border-radius:7px;color:var(--dyc-danger)!important;font-weight:600;cursor:pointer}.lo:hover{background:var(--dyc-danger-soft)}.mobile-menu{display:none;width:40px;height:40px;border:1px solid var(--dyc-border);border-radius:8px;background:#fff;color:var(--dyc-text);cursor:pointer}.connection-status{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:var(--dyc-surface-muted);color:var(--dyc-text-muted);font-size:12px}.connection-status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--dyc-text-muted)}.connection-status.online{background:var(--dyc-primary-soft);color:var(--dyc-primary)}.connection-status.online::before{background:var(--dyc-success)}.ct{padding:28px!important;max-width:1680px;margin:0 auto}.cd,.dash-card{border:1px solid var(--dyc-border)!important;border-radius:var(--dyc-radius-md)!important;background:var(--dyc-surface)!important;box-shadow:var(--dyc-shadow-xs)!important}.cd{padding:22px!important;margin-bottom:18px!important}.cd h3,.dash-card h3{font-size:16px!important;color:var(--dyc-text);letter-spacing:.01em}.sc{gap:14px!important}.sc>div{border:1px solid var(--dyc-border);border-radius:var(--dyc-radius-md)!important;box-shadow:var(--dyc-shadow-xs)!important;transition:transform var(--dyc-transition),box-shadow var(--dyc-transition)}.sc>div:hover{transform:translateY(-2px);box-shadow:var(--dyc-shadow-sm)}.sc .nm{font-variant-numeric:tabular-nums}.btn{min-height:36px;padding:7px 14px!important;border:1px solid transparent!important;border-radius:var(--dyc-radius-sm)!important;font-weight:600;line-height:1.35;transition:background var(--dyc-transition),border-color var(--dyc-transition),box-shadow var(--dyc-transition),transform var(--dyc-transition)}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--dyc-shadow-xs)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{cursor:not-allowed;opacity:.58;box-shadow:none}.btn-p{background:var(--dyc-primary)!important;color:#fff!important}.btn-p:hover:not(:disabled){background:var(--dyc-primary-strong)!important}.btn-d{background:var(--dyc-danger)!important;color:#fff!important}.btn-o{border-color:var(--dyc-border-strong)!important;background:#fff!important;color:var(--dyc-text-secondary)!important}.btn-o:hover:not(:disabled){border-color:var(--dyc-primary)!important;background:var(--dyc-primary-soft)!important;color:var(--dyc-primary)!important}.btn-s{min-height:32px;padding:5px 10px!important;font-size:12px!important}.srch{align-items:center;gap:10px!important}.srch input,.srch select,.modal-i input,.modal-i select,.modal-i textarea,.dash-picker input{min-height:40px!important;border:1px solid var(--dyc-border-strong)!important;border-radius:var(--dyc-radius-sm)!important;background:#fff;color:var(--dyc-text);transition:border-color var(--dyc-transition),box-shadow var(--dyc-transition)}.srch input{max-width:360px!important}.srch input:focus,.srch select:focus,.modal-i input:focus,.modal-i select:focus,.modal-i textarea:focus,.dash-picker input:focus{border-color:var(--dyc-primary)!important;box-shadow:0 0 0 3px rgba(35,99,58,.12);outline:0}.st{gap:4px!important;overflow-x:auto;border-bottom-color:var(--dyc-border)!important;scrollbar-width:thin}.st div,.sts div{min-height:42px;display:inline-flex;align-items:center;white-space:nowrap;border-radius:8px 8px 0 0;transition:color var(--dyc-transition),background var(--dyc-transition)}.st div:hover,.sts div:hover{background:var(--dyc-primary-soft);color:var(--dyc-primary)}.st div.a,.sts div.a{color:var(--dyc-primary)!important;border-bottom-color:var(--dyc-primary)!important}.pg{align-items:center;gap:8px!important}.pg span{min-height:34px;display:inline-flex;align-items:center;border-color:var(--dyc-border-strong)!important;color:var(--dyc-text-secondary)}.pg span:hover{border-color:var(--dyc-primary)!important;color:var(--dyc-primary)}.pg span.on{background:var(--dyc-primary)!important;border-color:var(--dyc-primary)!important}table{border-collapse:separate!important;border-spacing:0;overflow:hidden}th{padding:12px 14px!important;background:var(--dyc-surface-muted)!important;color:var(--dyc-text-secondary)!important;border-bottom:1px solid var(--dyc-border)!important;font-weight:700}td{padding:13px 14px!important;border-bottom:1px solid #edf1ee!important;color:var(--dyc-text)}tbody tr{transition:background var(--dyc-transition)}tbody tr:hover{background:#f8fbf8}.emp{padding:52px 20px!important;color:var(--dyc-text-muted)!important}.modal{padding:20px;background:rgba(12,27,17,.48)!important;backdrop-filter:blur(2px)}.modal-i{width:min(640px,100%)!important;max-height:calc(100vh - 40px)!important;padding:24px!important;border:1px solid rgba(255,255,255,.8)!important;border-radius:var(--dyc-radius-lg)!important;box-shadow:var(--dyc-shadow-lg)!important}.modal-i h3{font-size:18px;color:var(--dyc-text)}.modal-i label{font-weight:600;color:var(--dyc-text-secondary)!important}.modal-i input,.modal-i select{margin-bottom:10px!important}.dash-toolbar{padding:2px 0 4px}.dash-range button{min-height:36px!important;border-color:var(--dyc-border-strong)!important;border-radius:8px!important}.dash-range button.a{background:var(--dyc-primary)!important;border-color:var(--dyc-primary)!important}.dash-card{padding:20px!important}.dash-empty{color:var(--dyc-text-muted)!important;border-color:var(--dyc-border)!important;background:var(--dyc-surface-muted)!important}.dash-todo{border-color:var(--dyc-border)!important;background:var(--dyc-surface-muted)!important}.dash-todo:hover{border-color:var(--dyc-primary)!important;background:var(--dyc-primary-soft)!important}.ntf{display:none!important}.dyc-toast{position:fixed;z-index:2200;right:20px;top:20px;display:flex;align-items:flex-start;gap:10px;max-width:min(420px,calc(100vw - 32px));padding:12px 14px;border:1px solid var(--dyc-border);border-radius:12px;background:#fff;color:var(--dyc-text);box-shadow:var(--dyc-shadow-lg);animation:dyc-toast-in 220ms cubic-bezier(.2,.8,.2,1)}.dyc-toast.ok{border-color:#b8dfc1;background:#f3fbf4}.dyc-toast.er{border-color:#f1bbbb;background:#fff6f6}.dyc-toast.info{border-color:#c5d9f4;background:#f5f9ff}.dyc-toast-icon{width:20px;height:20px;flex:0 0 20px}.dyc-toast-message{font-size:14px;line-height:20px}.dyc-dialog-layer{position:fixed;z-index:2300;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(12,27,17,.5)}.dyc-dialog{width:min(420px,100%);padding:24px;border-radius:16px;background:#fff;box-shadow:var(--dyc-shadow-lg)}.dyc-dialog h3{margin:0 0 8px;font-size:18px}.dyc-dialog p{margin:0 0 20px;color:var(--dyc-text-secondary);line-height:1.65}.dyc-dialog-actions{display:flex;justify-content:flex-end;gap:10px}.dyc-state{display:flex;min-height:180px;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:28px;text-align:center;color:var(--dyc-text-muted)}.dyc-state-icon{width:40px;height:40px;color:var(--dyc-primary)}.dyc-state-title{font-weight:700;color:var(--dyc-text)}.dyc-state-desc{max-width:360px;font-size:13px}.table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.data-wide{min-width:680px}.sidebar-mask{display:none}
@keyframes dyc-toast-in{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media(max-width:1199px){:root{--dyc-sidebar:208px}.ct{padding:20px!important}.sc{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dash-grid,.dash-grid.eq{grid-template-columns:1fr!important}}
@media(max-width:767px){body{font-size:14px}.lp{padding:18px}.lb{padding:28px 22px!important}.sb{width:min(288px,82vw)!important;transform:translateX(-105%);transition:transform var(--dyc-transition);z-index:1100!important}.sb.open{transform:translateX(0)}.sidebar-mask{position:fixed;z-index:1050;inset:0;background:rgba(12,27,17,.45)}.sidebar-mask.show{display:block}.main{margin-left:0!important}.tb{min-height:56px;padding:0 14px!important}.mobile-menu{display:inline-flex;align-items:center;justify-content:center}.connection-status{display:none}.ct{padding:14px!important}.cd{padding:16px!important;border-radius:10px!important}.sc{grid-template-columns:1fr 1fr!important;gap:10px!important}.sc>div{padding:16px!important}.sc .nm{font-size:23px!important}.srch{align-items:stretch;flex-direction:column}.srch input,.srch select{width:100%;max-width:none!important}.st{margin-left:-2px;margin-right:-2px}.st div{padding:10px 14px!important}.modal{align-items:flex-end;padding:0}.modal-i{width:100%!important;max-height:90vh!important;border-radius:18px 18px 0 0!important;padding:20px 16px calc(20px + env(safe-area-inset-bottom))!important}.fr{flex-direction:column}.dash-toolbar-right{align-items:stretch;width:100%;justify-content:flex-start}.dash-range{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.dash-range button{width:100%}.dash-picker{width:100%}.dash-picker input{flex:1;min-width:0}.dash-todos{grid-template-columns:1fr 1fr}.dash-card{min-height:240px;padding:16px!important}.dash-svg{height:210px}.dyc-toast{right:12px;top:12px}.btn{min-height:40px}.btn-s{min-height:36px}.pg{flex-wrap:wrap}.pg span{min-height:36px}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll table{min-width:680px}.data-card-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.data-card-table,.data-card-table tbody,.data-card-table tr,.data-card-table td{display:block;width:100%}.data-card-table tr{position:relative;margin:0 0 12px;padding:8px 12px;border:1px solid var(--dyc-border);border-radius:12px;background:#fff;box-shadow:var(--dyc-shadow-xs)}.data-card-table td{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;padding:9px 0!important;border:0!important;text-align:right}.data-card-table td::before{content:attr(data-label);flex:0 0 86px;color:var(--dyc-text-muted);font-size:12px;font-weight:600;text-align:left}.data-card-table td:empty{display:none}.data-card-table td[data-label="操作"]{justify-content:flex-end;padding-top:12px!important;border-top:1px solid var(--dyc-border)!important}.data-card-table td[data-label="操作"]::before{display:none}}

/* Phase 2: dashboard information hierarchy and state feedback. */
.dash-title{margin:0;color:var(--dyc-text);font-size:20px;line-height:1.35;letter-spacing:.01em}.dash-toolbar-desc{max-width:680px;margin-top:5px;line-height:1.65}.dash-refresh{white-space:nowrap}.dash-summary{align-items:stretch}.dash-summary>div{position:relative;overflow:hidden}.dash-summary>div::after{content:"";position:absolute;right:0;top:0;width:42px;height:3px;background:var(--dyc-primary);border-radius:0 0 0 4px;opacity:.85}.dash-todo{appearance:none;width:100%;min-height:116px;text-align:left;font:inherit}.dash-todo .v,.dash-todo .k,.dash-todo-link{display:block}.dash-todo-link{margin-top:10px;color:var(--dyc-primary);font-size:12px;font-weight:700}.dash-todo:hover .dash-todo-link{color:var(--dyc-primary-strong)}.dash-todo:focus-visible{outline-offset:1px}.dash-card .dyc-state{min-height:240px}.connection-status.online::before{background:var(--dyc-success)}
@media(max-width:767px){.dash-title{font-size:18px}.dash-toolbar-desc{font-size:12px}.dash-toolbar-right{gap:8px}.dash-refresh{width:100%}.dash-summary>div::after{width:30px}.dash-todo{min-height:112px}.dash-todo-link{margin-top:7px}}


/* Phase 3: product page group. */
.st.product-tabs,.st.product-editor-tabs{gap:6px;border-bottom:1px solid var(--dyc-border)}.st.product-tabs button,.st.product-editor-tabs button{min-height:40px;padding:9px 14px;border:0;border-bottom:2px solid transparent;margin:0 0 -1px;background:transparent;color:var(--dyc-text-secondary);font:inherit;cursor:pointer}.st.product-tabs button:hover,.st.product-editor-tabs button:hover{color:var(--dyc-primary);background:var(--dyc-primary-soft)}.st.product-tabs button.a,.st.product-editor-tabs button.a{border-bottom-color:var(--dyc-primary);color:var(--dyc-primary);font-weight:700}.page-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.page-card-head h2{margin:0;font-size:18px;color:var(--dyc-text)}.page-card-head p{margin:4px 0 0;color:var(--dyc-text-secondary);font-size:13px}.product-filters{padding:14px;border:1px solid var(--dyc-border);border-radius:var(--dyc-radius-md);background:var(--dyc-surface-muted)}.table-area{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.product-thumb{display:block;width:48px;height:48px;object-fit:cover;border-radius:10px;background:var(--dyc-surface-muted)}.product-thumb-placeholder{display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;border-radius:10px;background:var(--dyc-primary-soft);color:var(--dyc-primary);font-size:12px;font-weight:700}.product-title-cell{min-width:160px;font-weight:600;color:var(--dyc-text)}.status-pill{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700}.status-pill.is-success{background:#eaf7ed;color:#177331}.status-pill.is-muted{background:#f0f2f1;color:#657069}.table-actions{white-space:nowrap}.dyc-table-loading{padding:36px 12px;text-align:center;color:var(--dyc-text-muted)}.dyc-table-empty{display:flex;min-height:150px;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;text-align:center;color:var(--dyc-text-secondary)}.dyc-table-empty strong{color:var(--dyc-text)}.dyc-table-empty.is-error strong{color:var(--dyc-danger)}.product-editor{width:min(860px,94vw)!important;max-width:94vw!important;padding:0!important;overflow:hidden}.product-editor-head{display:flex;justify-content:space-between;gap:16px;padding:22px 24px 16px;border-bottom:1px solid var(--dyc-border)}.product-editor-head h2{margin:0;font-size:20px}.product-editor-head p{margin:5px 0 0;color:var(--dyc-text-secondary);font-size:13px}.modal-close{width:36px;height:36px;flex:0 0 36px;border:0;border-radius:50%;background:var(--dyc-surface-muted);color:var(--dyc-text-secondary);font-size:24px;line-height:1;cursor:pointer}.modal-close:hover{background:var(--dyc-danger-soft);color:var(--dyc-danger)}.product-editor-tabs{padding:0 24px}.product-editor #petC{padding:20px 24px;max-height:min(56vh,560px);overflow:auto}.product-editor-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--dyc-border);background:var(--dyc-surface)}.form-message{min-height:0;margin:0 24px;color:var(--dyc-danger);font-size:13px}.product-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.product-form-section{padding:16px;border:1px solid var(--dyc-border);border-radius:var(--dyc-radius-md);background:var(--dyc-surface-muted)}.product-form-section-wide{grid-column:1/-1}.product-form-section h3,.section-intro h3{margin:0 0 14px;font-size:15px;color:var(--dyc-text)}.product-form-section label{margin-top:12px!important}.product-form-section label:first-of-type{margin-top:0!important}.required-mark{color:var(--dyc-danger)}.field-help{display:block;margin-top:-2px;color:var(--dyc-text-muted);font-size:12px}.field-error{min-height:18px;margin:3px 0 0!important;color:var(--dyc-danger);font-size:12px}.product-editor input.is-invalid{border-color:var(--dyc-danger)!important;box-shadow:0 0 0 3px rgba(201,54,54,.12)}.product-gallery-section,.product-spec-section{display:flex;flex-direction:column;gap:16px}.section-intro p{margin:0;color:var(--dyc-text-secondary);font-size:13px}.product-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.product-gallery-item{position:relative;display:flex;min-height:156px;flex-direction:column;margin:0;overflow:hidden;border:1px solid var(--dyc-border);border-radius:12px;background:var(--dyc-surface)}.product-gallery-item img{width:100%;height:112px;object-fit:cover;background:var(--dyc-surface-muted)}.product-gallery-item figcaption{padding:6px 8px;color:var(--dyc-text-secondary);font-size:12px}.product-gallery-item .btn{margin:0 8px 8px}.product-upload-card{display:flex;min-height:156px;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1.5px dashed var(--dyc-border-strong);border-radius:12px;background:var(--dyc-surface-muted);color:var(--dyc-text-secondary);cursor:pointer;text-align:center}.product-upload-card:hover{border-color:var(--dyc-primary);background:var(--dyc-primary-soft);color:var(--dyc-primary)}.product-upload-card span:last-child{font-size:11px;color:var(--dyc-text-muted)}.product-upload-plus{font-size:30px;line-height:1;color:var(--dyc-primary)}.product-spec-table input{width:100%;min-width:84px;margin:0!important}.product-spec-table td:last-child{white-space:nowrap}
@media(max-width:767px){.page-card-head{flex-direction:column}.page-card-head .btn{width:100%}.product-editor{max-width:100vw!important}.product-editor-head{padding:18px 16px 14px}.product-editor-tabs{padding:0 10px;overflow-x:auto}.st.product-editor-tabs button{flex:0 0 auto;padding:9px 10px;font-size:13px}.product-editor #petC{padding:16px;max-height:58vh}.product-editor-footer{padding:14px 16px calc(14px + env(safe-area-inset-bottom))}.product-editor-footer .btn{flex:1}.form-message{margin:0 16px}.product-form-grid{grid-template-columns:1fr;gap:12px}.product-form-section-wide{grid-column:auto}.product-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.product-gallery-item,.product-upload-card{min-height:142px}.product-gallery-item img{height:98px}.product-spec-table{min-width:520px}.data-card-table .product-title-cell{min-width:0}.data-card-table .product-thumb{margin-left:auto}.data-card-table .table-actions{justify-content:flex-end;gap:8px;flex-wrap:wrap}.data-card-table .table-actions .btn{margin:0!important}}


/* Phase 4: order operations and form dialog. */
.order-no{min-width:150px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.status-pill.is-warning{background:#fff7e7;color:#9a6100}.dyc-form-dialog{width:min(460px,100%)}.dyc-form-fields{display:grid;gap:10px;margin:18px 0}.dyc-form-fields label{margin:0;color:var(--dyc-text);font-size:13px;font-weight:700}.dyc-form-fields label span{color:var(--dyc-danger)}.dyc-form-fields input,.dyc-form-fields select{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--dyc-border-strong);border-radius:8px;background:#fff;color:var(--dyc-text)}.dyc-form-fields input:focus,.dyc-form-fields select:focus{border-color:var(--dyc-primary);outline:none;box-shadow:0 0 0 3px rgba(35,99,58,.12)}.dyc-form-error{min-height:16px;color:var(--dyc-danger);font-size:12px}.dyc-form-fields [aria-invalid=true]{border-color:var(--dyc-danger)!important;box-shadow:0 0 0 3px rgba(201,54,54,.12)!important}


/* Phase 3 continuation: categories, brands, and review states. */
.category-actions{display:flex;gap:8px;margin:-2px 0 14px}.category-name,.brand-name{font-weight:700;color:var(--dyc-text)}.category-children{color:var(--dyc-text-secondary)}.text-muted{color:var(--dyc-text-muted)}.brand-logo,.brand-logo-placeholder{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:10px;background:var(--dyc-primary-soft);object-fit:cover;color:var(--dyc-primary);font-size:11px;font-weight:700}.review-tabs{margin-bottom:18px}.review-tabs button{min-height:38px;padding:8px 14px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--dyc-text-secondary);font:inherit;cursor:pointer}.review-tabs button.a{border-bottom-color:var(--dyc-primary);color:var(--dyc-primary);font-weight:700}.review-empty{min-height:230px;border:1px dashed var(--dyc-border);border-radius:var(--dyc-radius-md);background:var(--dyc-surface-muted)}
@media(max-width:767px){.category-actions{flex-wrap:wrap}.category-actions .btn{flex:1}.data-card-table .category-name,.data-card-table .brand-name{min-width:0}.data-card-table .brand-logo{margin-left:auto}}


/* Phase 4 continuation: user, promoter, group, and withdrawal lists. */
.user-name,.group-name{font-weight:700;color:var(--dyc-text)}.group-members{min-width:150px;color:var(--dyc-text-secondary);font-size:12px}.invite-code{display:inline-flex;padding:3px 8px;border-radius:6px;background:var(--dyc-surface-muted);color:var(--dyc-primary-strong);font:600 12px ui-monospace,SFMono-Regular,Consolas,monospace}.data-card-table input[type=checkbox]{width:18px;height:18px;accent-color:var(--dyc-primary)}
@media(max-width:767px){.data-card-table .group-members{min-width:0;overflow-wrap:anywhere}.data-card-table .invite-code{margin-left:auto}.data-card-table td:first-child:has(input[type=checkbox]){align-items:center}.data-card-table td:first-child:has(input[type=checkbox])::before{color:var(--dyc-text-muted)}}

/* Phase 5: finance and rebate operations. */
.finance-page,.rebate-page{display:block}.finance-head{align-items:flex-start}.finance-export{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.finance-export select,.finance-export input{min-height:40px;padding:8px 10px;border:1px solid var(--dyc-border-strong);border-radius:var(--dyc-radius-sm);background:#fff;color:var(--dyc-text);font:inherit}.finance-export select:focus,.finance-export input:focus{border-color:var(--dyc-primary);outline:0;box-shadow:0 0 0 3px rgba(35,99,58,.12)}.finance-note{margin:0 0 14px;color:var(--dyc-text-muted);font-size:12px}.finance-metrics{margin-bottom:18px}.finance-income{color:var(--dyc-primary)!important}.finance-expense{color:var(--dyc-danger)!important}.finance-layout{display:grid;gap:18px}.finance-layout .cd{margin:0!important}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.section-head h3{margin:0}.section-head p{margin:5px 0 0;color:var(--dyc-text-muted);font-size:12px;line-height:1.55}.finance-expense-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.finance-expense-item{min-height:104px;display:flex;flex-direction:column;justify-content:center;gap:7px;padding:16px;border:1px solid var(--dyc-border);border-radius:12px;background:var(--dyc-surface-muted)}.finance-expense-item strong{font-size:21px;font-variant-numeric:tabular-nums}.finance-expense-item span{color:var(--dyc-text-secondary);font-size:13px;font-weight:600}.finance-expense-item.commission{background:#fff8e8}.finance-expense-item.commission strong{color:#9a6100}.finance-expense-item.rebate{background:#edf8f0}.finance-expense-item.rebate strong{color:var(--dyc-primary)}.finance-expense-item.withdrawal{background:var(--dyc-danger-soft)}.finance-expense-item.withdrawal strong{color:var(--dyc-danger)}.finance-filters,.rebate-filters{margin-bottom:14px}.finance-amount{font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}.finance-amount.is-income{color:var(--dyc-primary)}.finance-amount.is-expense{color:var(--dyc-danger)}.time-cell{min-width:142px;color:var(--dyc-text-secondary);font-size:12px;white-space:nowrap}.finance-note-cell{min-width:170px;color:var(--dyc-text-secondary)}.rebate-tabs{margin:0 0 18px!important}.rebate-tabs button{min-height:40px;padding:8px 14px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--dyc-text-secondary);font:inherit;font-weight:600;cursor:pointer}.rebate-tabs button.a{border-bottom-color:var(--dyc-primary);color:var(--dyc-primary)}.rebate-list-card{margin:0!important}.rebate-product{min-width:150px;max-width:240px;color:var(--dyc-text-secondary)}.rebate-table th:nth-child(1),.rebate-table td:nth-child(1){width:70px}
@media(max-width:767px){.finance-head{flex-direction:column}.finance-export{width:100%;display:grid;grid-template-columns:1fr 1fr}.finance-export .btn{grid-column:1/-1;width:100%}.finance-metrics{grid-template-columns:1fr 1fr!important}.finance-expense-grid{grid-template-columns:1fr}.finance-expense-item{min-height:88px}.section-head{display:block}.finance-filters,.rebate-filters{display:grid!important;grid-template-columns:1fr 1fr}.finance-filters input,.rebate-filters input{grid-column:1/-1;max-width:none!important}.finance-filters .btn,.rebate-filters .btn{width:100%}.finance-table,.rebate-table{min-width:760px}.finance-flow-card .table-area,.rebate-list-card .table-area{overflow-x:auto}.finance-note-cell{min-width:190px}.rebate-tabs{overflow-x:auto}.rebate-tabs button{flex:0 0 auto}.rebate-page{padding-bottom:4px}}

/* Keep wide finance tables inside their own scroll containers on small screens. */
.finance-layout{grid-template-columns:minmax(0,1fr)}.finance-layout>*{min-width:0}.finance-flow-card .table-area,.finance-flow-card .table-scroll{max-width:100%;min-width:0}

