:root{--color-primary:#ff7b72;--color-primary-hover:#ff6b62;--color-primary-light:#fff0ed;--color-bg:#faf9f7;--color-surface:#fff;--color-text:#1a1a1a;--color-text-secondary:#6b6b6b;--color-text-muted:#888;--color-text-placeholder:#bbb;--color-border:#e8e8e8;--color-border-focus:#ff7b72;--color-success:#2e9e6a;--color-danger:#e05252;--radius-md:12px;--radius-lg:24px;--font-sans:"Plus Jakarta Sans", "PingFang SC", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100%}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:14px}a{color:var(--color-primary)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.brand-panel{background:#1a1a1a;flex:0 0 760px;align-self:stretch;width:760px;max-width:52%;height:100%;min-height:0;position:relative;overflow:hidden}.brand-bg{object-fit:cover;object-position:center;width:100%;height:100%;display:block;position:absolute;inset:0}.brand-overlay{pointer-events:none;background:linear-gradient(#0000 0%,#0006 55%,#0009 100%);position:absolute;inset:0}.brand-content{z-index:1;box-sizing:border-box;flex-direction:column;justify-content:space-between;gap:24px;height:100%;min-height:0;padding:40px 40px 36px;display:flex;position:relative}.brand-top{flex-shrink:0;align-items:center;gap:10px;display:flex}.logo-mark{border-radius:10px;flex-shrink:0;width:36px;height:36px;display:block}.logo-text{color:#fff;letter-spacing:-.02em;text-transform:lowercase;font-size:22px;font-weight:700}.brand-card{box-sizing:border-box;background:#ff7b72;border-radius:24px;flex-direction:column;flex-shrink:0;gap:10px;width:100%;max-width:380px;padding:24px 28px;display:flex}.brand-tag{color:#fffc;margin:0;font-size:13px;font-weight:500}.brand-title{color:#fff;letter-spacing:-.03em;margin:0;font-size:clamp(22px,2.2vw,28px);font-weight:700;line-height:1.25}.brand-desc{color:#ffffffdb;margin:0;font-size:14px;line-height:1.5}@media (height<=760px){.brand-content{padding:28px 28px 24px}.brand-card{border-radius:20px;padding:20px 22px}.brand-title{font-size:22px}}@media (width<=900px){.brand-panel{display:none}}.auth-page{background:#faf9f7;height:100dvh;max-height:100dvh;display:flex;overflow:hidden}.auth-form-panel{-webkit-overflow-scrolling:touch;background:#faf9f7;flex-direction:column;flex:1;justify-content:safe center;align-items:center;min-width:0;min-height:0;padding:40px 24px;display:flex;overflow:hidden auto}.auth-form{flex-direction:column;flex-shrink:0;gap:18px;width:100%;max-width:400px;display:flex}.auth-form--wide{max-width:440px}.auth-back-link{color:#ff7b72;align-items:center;gap:6px;width:fit-content;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.auth-back-link:hover{color:#ff6b62;text-decoration:none}.auth-form-title{letter-spacing:-.03em;color:#1a1a1a;margin:0;font-size:32px;font-weight:700;line-height:1.2}.auth-form-subtitle{color:#888;margin:-6px 0 0;font-size:15px;line-height:1.5}.auth-assist-row{justify-content:flex-end;margin-top:-6px;display:flex}.auth-forgot-link{color:#ff7b72;font-size:13px;text-decoration:none}.auth-forgot-link:hover{text-decoration:underline}.auth-submit-btn.ant-btn,button.auth-submit-btn{cursor:pointer;justify-content:center;align-items:center;color:#fff!important;width:100%!important;height:52px!important;min-height:52px!important;box-shadow:none!important;opacity:1!important;visibility:visible!important;background:#ff7b72!important;border:none!important;border-radius:24px!important;padding:0 24px!important;font-size:16px!important;font-weight:600!important;line-height:1!important;display:inline-flex!important}.auth-submit-btn.ant-btn:hover:not(:disabled),.auth-submit-btn.ant-btn:focus:not(:disabled),button.auth-submit-btn:hover:not(:disabled),button.auth-submit-btn:focus:not(:disabled){color:#fff!important;background:#ff6b62!important}.auth-submit-btn.ant-btn:disabled,button.auth-submit-btn:disabled{opacity:.55!important;color:#fff!important;background:#ff7b72!important}.auth-code-btn.ant-btn{white-space:nowrap;border-radius:12px;flex-shrink:0;height:48px;padding:0 16px;font-weight:600;color:#ff7b72!important;box-shadow:none!important;background:#fff!important;border:1px solid #ff7b72!important}.auth-code-btn.ant-btn:hover:not(:disabled){color:#ff6b62!important;background:#fff!important;border-color:#ff6b62!important}.auth-form .ant-form-item{margin-bottom:0}.auth-form .ant-form-item-row{flex-wrap:nowrap}.auth-form .ant-form-item-label{padding-bottom:8px!important}.auth-form .ant-form-item-label>label{height:auto;font-size:14px;font-weight:500;color:#1a1a1a!important}.auth-form .ant-input-affix-wrapper,.auth-form .ant-input{box-shadow:none!important;color:#1a1a1a!important;background:#fff!important;border:1px solid #cfcfcf!important;border-radius:12px!important}.auth-form .ant-input-affix-wrapper-lg,.auth-form .ant-input-lg,.auth-form .ant-input-affix-wrapper.ant-input-affix-wrapper-lg{height:48px;min-height:48px;padding:0 16px;font-size:16px}.auth-form .ant-input-affix-wrapper>input.ant-input{height:100%;box-shadow:none!important;background:0 0!important;border:none!important}.auth-form .ant-input-affix-wrapper:hover,.auth-form .ant-input:hover{box-shadow:none!important;border-color:#b8b8b8!important}.auth-form .ant-input-affix-wrapper-focused,.auth-form .ant-input-affix-wrapper:focus,.auth-form .ant-input-focused,.auth-form .ant-input:focus{border-color:#ff7b72!important;outline:none!important;box-shadow:0 0 0 3px #ff7b7226!important}.auth-form .ant-input::placeholder,.auth-form .ant-input-affix-wrapper input::placeholder{color:#bbb}.auth-form .ant-form-item-extra{color:#888;min-height:auto;margin-top:4px;font-size:12px}.auth-code-row{gap:12px;width:100%;display:flex}.auth-code-row .ant-input,.auth-code-row .ant-form-item{flex:1;min-width:0}.auth-links{text-align:center;color:#ff7b72;font-size:14px;font-weight:600}.auth-links a{color:#ff7b72;text-decoration:none}.auth-links a:hover{text-decoration:underline}.auth-legal{color:#64748b;text-align:center;margin:0;font-size:12px;line-height:1.6}.auth-legal a{color:#64748b;text-decoration:none}.auth-legal a:hover{color:#ff7b72}.auth-tip{color:#888;text-align:center;margin:0;font-size:14px}.auth-hint-bar{color:#ff7b72;background:#fff0ed;border-radius:12px;align-items:flex-start;gap:8px;padding:12px;font-size:13px;line-height:1.5;display:flex}.auth-stepper{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.auth-step{color:#888;align-items:center;gap:8px;font-size:14px;display:flex}.auth-step.is-active{color:#ff7b72;font-weight:600}.auth-step-dot{color:#888;background:#e8e8e8;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:inline-flex}.auth-step.is-active .auth-step-dot{color:#fff;background:#ff7b72}.auth-step-line{background:#e8e8e8;flex-shrink:0;width:40px;height:2px}@media (height<=760px){.auth-form-panel{justify-content:flex-start;padding-top:28px;padding-bottom:28px}.auth-form{gap:14px}.auth-form-title{font-size:28px}.auth-submit-btn.ant-btn,button.auth-submit-btn{height:48px!important;min-height:48px!important}}@media (width<=900px){.auth-page{height:auto;min-height:100dvh;max-height:none;overflow:visible}.auth-form-panel{justify-content:flex-start;padding:24px 16px;overflow:visible}.auth-form,.auth-form--wide{max-width:100%}.auth-form-title{font-size:28px}}.design-page{height:100dvh;min-height:100dvh;font-family:var(--font-sans);background:#faf9f7;flex-direction:column;display:flex;overflow:hidden}.design-header{background:#fff;border-bottom:1px solid #e8e8e8;flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 24px;display:flex}.design-content{flex:1;min-height:0;display:flex;overflow:hidden}.left-panel{background:#fff;border-right:1px solid #e8e8e8;flex-direction:column;flex-shrink:0;gap:12px;width:240px;padding:12px;display:flex;overflow-y:auto}.section-card{background:#fff;border:1px solid #e8e8e8;border-radius:12px;padding:12px}.section-card--import{background:#fff8f6;border-color:#ff7b7230}.section-title{color:#1a1a1a;margin:0 0 8px;font-size:14px;font-weight:700}.platform-tabs{gap:6px;margin-bottom:8px;display:flex}.platform-tab{cursor:pointer;color:#888;background:#f5f5f5;border:none;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600}.platform-tab.active{color:#fff;background:#ff7b72}.import-row{gap:8px;display:flex}.import-row .ant-input{border-color:#e8e8e8;border-radius:8px;flex:1;height:36px}.import-btn{font-weight:600;background:#ff7b72!important;border-color:#ff7b72!important;border-radius:8px!important;height:36px!important}.order-source{color:#16a34a;margin-top:8px;font-size:11px}.info-line{color:#666;margin:0 0 6px;font-size:13px;line-height:1.4}.info-line strong{color:#1a1a1a;font-weight:600}.corrected-badge{color:#fff;background:#f57c00;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.correct-btn{width:100%;margin-top:8px;font-weight:600;color:#333!important;background:#fff!important;border:1px solid #e8e8e8!important;border-radius:8px!important;height:34px!important}.correct-btn:hover{color:#ff7b72!important;border-color:#ff7b72!important}.order-item-list{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow:auto}.order-item-row{text-align:left;cursor:pointer;background:#fff;border:1px solid #e8e8e8;border-radius:8px;width:100%;padding:10px;transition:border-color .15s,background .15s}.order-item-row.active{background:#fff5f4;border-color:#ff7b72}.order-item-row.submitted{cursor:not-allowed;opacity:.85;background:#f6f6f6}.item-title{color:#1a1a1a;margin-bottom:4px;font-size:12px;font-weight:700}.order-item-row.active .item-title{color:#ff7b72}.item-detail{color:#666;justify-content:space-between;gap:8px;font-size:11px;display:flex}.item-status{color:#16a34a;font-weight:600}.canvas-area{background:#f0f0f0;flex-direction:column;flex:1;align-items:center;gap:12px;min-width:0;min-height:0;padding:16px;display:flex;overflow:auto}.side-tabs{background:#e0e0e0;border-radius:20px;padding:3px;display:flex}.side-tab{color:#666;cursor:pointer;background:0 0;border:none;border-radius:999px;height:34px;padding:0 24px;font-size:14px}.side-tab.active{color:#1a1a1a;background:#fff;font-weight:600}.canvas-card{background:#f0efed;border:1px solid #e8e8e8;border-radius:16px;flex-shrink:0;width:min(100%,560px);max-height:calc(100% - 80px);position:relative;overflow:hidden}.canvas-card--live{aspect-ratio:auto;justify-content:center;align-items:stretch;display:flex}.canvas-with-template{width:100%;position:relative}.design-canvas{-webkit-user-select:none;user-select:none;cursor:crosshair;touch-action:none;background:#f0efed;border-radius:12px;width:100%;max-width:560px;margin:0 auto;position:relative;overflow:hidden}.design-canvas .template-img{pointer-events:none;width:100%;display:block}.template-placeholder{color:#999;background:#f5f5f5;justify-content:center;align-items:center;min-height:420px;display:flex}.pattern-layer{cursor:move;transform-origin:50%;box-sizing:border-box;border:1px dashed #0000;position:absolute}.pattern-layer.active{z-index:2;border-color:#ff7b72}.pattern-layer img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.resize-handle{z-index:3;background:#fff;border:2px solid #ff7b72;border-radius:2px;width:12px;height:12px;position:absolute}.resize-handle--tl{cursor:nwse-resize;top:-6px;left:-6px}.resize-handle--bl{cursor:nesw-resize;bottom:-6px;left:-6px}.resize-handle--br{cursor:nwse-resize;bottom:-6px;right:-6px}.pattern-layer .rotate-handle{color:#fff;cursor:grab;z-index:3;background:#ff7b72;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;display:flex;position:absolute;top:-28px;left:50%;transform:translate(-50%)}.canvas-empty-state{text-align:center;color:#666;z-index:2;background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:420px;padding:24px;display:flex;position:absolute;inset:0}.canvas-empty-overlay{text-align:center;color:#666;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:2;background:#ffffffb8;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:absolute;inset:0}.empty-action-btn{background:#ff7b72!important;border-color:#ff7b72!important}.empty-icon{background:#fff5f4;border-radius:999px;justify-content:center;align-items:center;width:64px;height:64px;font-size:28px;display:flex}.canvas-empty-state h3,.canvas-empty-overlay h3{color:#1a1a1a;margin:0;font-size:20px}.canvas-empty-state p,.canvas-empty-overlay p{max-width:360px;margin:0;font-size:14px;line-height:1.6}.pattern-item{cursor:move;mix-blend-mode:multiply;box-sizing:border-box;background-position:50%;background-repeat:no-repeat;background-size:contain;border:2px solid #ff7b72;border-radius:8px;position:absolute}.pattern-item:not(.active){opacity:.7;border-width:1px}.pattern-handle{cursor:pointer;z-index:2;border-radius:50%;width:18px;height:18px;position:absolute}.rotate-handle{background:#ff7b72;top:-9px;right:-9px}.scale-handle{background:#fff;border:2px solid #ff7b72;width:14px;height:14px;bottom:-7px;right:-7px}.canvas-hint{color:#888;text-align:center;margin:0;font-size:12px}.template-mock-hint{color:#ff7b72;background:#fff0ed;border:1px solid #ffd2cc;border-radius:999px;margin:0;padding:4px 10px;font-size:12px}.right-panel{background:#fff;border-left:1px solid #e8e8e8;flex-direction:column;flex-shrink:0;gap:12px;width:300px;padding:14px;display:flex;overflow-y:auto}.right-panel .section-title{font-size:15px}.upload-btn{width:100%;font-weight:600;color:#1a1a1a!important;background:#fff!important;border:1px solid #e8e8e8!important;border-radius:8px!important;height:36px!important}.upload-btn:hover:not(:disabled){color:#ff7b72!important;border-color:#ff7b72!important}.sub-text{color:#888;margin:6px 0 0;font-size:12px;line-height:1.5}.upload-list{flex-direction:column;gap:8px;max-height:200px;margin-top:4px;display:flex;overflow:auto}.upload-item{text-align:left;cursor:pointer;background:#fff;border:1px solid #e8e8e8;border-radius:8px;grid-template-columns:40px 1fr auto auto;align-items:center;gap:8px;width:100%;padding:8px;display:grid}.upload-item.active{background:#fff8f6;border-color:#ff7b72}.upload-item img,.upload-thumb,.upload-thumb-img{object-fit:cover;background:#f3f3f3;border-radius:6px;width:40px;height:40px}.upload-name{color:#333;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.upload-tag{color:#ff7b72;font-size:11px;font-weight:600}.upload-delete{color:#999;font-size:11px}.upload-delete:hover{color:#ff4d4f}.upload-hint{color:#16a34a!important}.upload-hint.warn{color:#e65100!important}.pill-row{gap:8px;display:flex}.pill{color:#888;background:#f3f3f3;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.pill.active{color:#ff7b72;background:#fff0ed}.metrics-box{background:#fff0ed;border-radius:12px;padding:12px}.metrics-box h3{color:#1a1a1a;margin:0 0 8px;font-size:14px}.metric-row{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px;display:flex}.metric-row:last-child{margin-bottom:0}.metric-row span{color:#555}.metric-row strong{color:#1a1a1a;font-weight:700}.metrics-empty{color:#888;text-align:center;padding:8px 0;font-size:12px}.readonly-field label{color:#1a1a1a;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.readonly-field input{color:#666;box-sizing:border-box;background:#fafafa;border:1px solid #e8e8e8;border-radius:10px;width:100%;height:42px;padding:0 12px;font-size:14px}.submit-btn{cursor:pointer;width:100%;margin-top:auto;color:#fff!important;background:#ff7b72!important;border:none!important;border-radius:24px!important;height:48px!important;font-size:16px!important;font-weight:600!important}.submit-btn:disabled{opacity:.45;cursor:not-allowed}.submit-btn:hover:not(:disabled){background:#ff6b62!important}@media (width<=1100px){.left-panel{width:220px}.right-panel{width:260px}}@media (width<=900px){.design-content{flex-direction:column;overflow:auto}.left-panel,.right-panel{border:none;border-bottom:1px solid #e8e8e8;width:100%;max-height:none}.canvas-card{min-height:420px;max-height:none}}.submit-success-page{height:100dvh;min-height:100dvh;font-family:var(--font-sans);background:#faf9f7;flex-direction:column;display:flex;overflow:hidden}.submit-header{background:#fff;border-bottom:1px solid #e8e8e8;flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 24px;display:flex}.header-left,.header-right{align-items:center;gap:10px;display:flex}.brand-logo{border-radius:8px;width:32px;height:32px;display:block}.brand-name{color:#1a1a1a;letter-spacing:-.02em;text-transform:lowercase;font-size:18px;font-weight:700}.user-avatar{color:#fff;background:#ff7b72;border-radius:999px;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:inline-flex}.user-name{color:#1a1a1a;font-size:14px;font-weight:500}.logout-btn{color:#888;cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:14px}.logout-btn:hover{color:#ff7b72}.submit-content{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;justify-content:safe center;align-items:center;min-height:0;padding:32px 24px 48px;display:flex;overflow:hidden auto}.success-container{flex-direction:column;flex-shrink:0;align-items:center;gap:20px;width:100%;max-width:560px;display:flex}.success-icon{color:#fff;background:#16a34a;border-radius:32px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;font-size:28px;font-weight:700;line-height:1;display:flex}.success-title{color:#1a1a1a;text-align:center;letter-spacing:-.03em;margin:0;font-size:32px;font-weight:700}.success-subtitle{color:#888;text-align:center;margin:0;font-size:15px;line-height:1.6}.summary-card{box-sizing:border-box;background:#fff;border:1px solid #e8e8e8;border-radius:12px;flex-direction:column;gap:14px;width:100%;padding:24px;display:flex}.card-title{color:#1a1a1a;margin:0;font-size:18px;font-weight:600}.summary-row{justify-content:space-between;align-items:flex-start;gap:16px;font-size:14px;display:flex}.summary-row span{color:#666;flex-shrink:0}.summary-row strong{color:#1a1a1a;text-align:right;font-weight:600}.order-progress{background:#fff8f6;border-radius:8px;padding:12px}.progress-title{color:#ff7b72;margin-bottom:6px;font-size:13px;font-weight:700}.progress-hint{color:#666;font-size:12px;line-height:1.5}.success-cta{color:#fff;cursor:pointer;background:#ff7b72;border:none;border-radius:24px;width:100%;max-width:560px;height:52px;font-size:16px;font-weight:600}.success-cta:hover{background:#ff6b62}.success-cta--secondary{color:#ff7b72;background:#fff;border:1px solid #ff7b72}.success-cta--secondary:hover{background:#fff8f6}.all-done{text-align:center;width:100%}.all-done p{color:#888;margin:0 0 16px;font-size:15px}@media (height<=760px){.submit-content{justify-content:flex-start;padding-top:24px}.success-title{font-size:28px}}.admin-layout{background:#faf9f7;height:100dvh;display:flex;overflow:hidden}.admin-sidebar{background:#fff;border-right:1px solid #e8e8e8;flex-direction:column;width:220px;padding:16px 12px;display:flex}.admin-brand{align-items:center;gap:10px;height:56px;padding:0 0 8px;display:flex}.brand-logo{object-fit:cover;background:#ff7b72;border-radius:8px;flex-shrink:0;width:32px;height:32px;display:block}.brand-text{color:#1a1a1a;text-transform:lowercase;font-family:Plus Jakarta Sans,sans-serif;font-size:16px;font-weight:700}.admin-nav{flex-direction:column;gap:4px;display:flex}.nav-item{color:#666;border-radius:8px;align-items:center;height:44px;padding:0 12px;font-family:Plus Jakarta Sans,sans-serif;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-item:hover{background:#f8f8f8}.nav-item.active{color:#ff7b72;background:#fff5f4;font-weight:600}.admin-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.admin-header{background:#fff;border-bottom:1px solid #e8e8e8;justify-content:flex-end;align-items:center;height:56px;padding:0 24px;display:flex}.header-right{align-items:center;gap:16px;display:flex}.user-info{align-items:center;gap:10px;display:flex}.user-name{color:#1a1a1a;font-family:Plus Jakarta Sans,sans-serif;font-size:14px;font-weight:500}.user-avatar{color:#fff;background:#ff7b72;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-family:Plus Jakarta Sans,sans-serif;font-size:14px;font-weight:600;display:flex}.btn-logout{color:#666;cursor:pointer;background:#fff;border:1px solid #e8e8e8;border-radius:6px;padding:6px 16px;font-family:Plus Jakarta Sans,sans-serif;font-size:14px;font-weight:500;transition:all .2s}.btn-logout:hover{background:#f8f8f8;border-color:#d4d2cf}.admin-content{flex:1;padding:24px;overflow-y:auto}.content-header{margin-bottom:16px}.content-title{color:#1a1a1a;margin-bottom:8px;font-family:Plus Jakarta Sans,sans-serif;font-size:20px;font-weight:700}.admin-tabs{gap:8px;margin-bottom:16px;display:flex}.admin-tab{color:#666;cursor:pointer;background:#fff;border:1px solid #e8e8e8;border-radius:24px;padding:8px 16px;font-family:Plus Jakarta Sans,sans-serif;font-size:14px;font-weight:500;transition:all .2s}.admin-tab:hover{background:#fafafa;border-color:#d4d2cf}.admin-tab.active{color:#fff;background:#ff7b72;border-color:#ff7b72;font-weight:600}.admin-table-wrap{background:#fff;border:1px solid #e8e8e8;border-radius:12px;overflow:hidden}.admin-table{border-collapse:collapse;width:100%}.admin-table thead th{text-align:left;color:#666;background:#f8f8f8;border-bottom:1px solid #e8e8e8;padding:12px 16px;font-family:Plus Jakarta Sans,sans-serif;font-size:13px;font-weight:600}.admin-table tbody td{color:#1a1a1a;border-bottom:1px solid #e8e8e8;padding:12px 16px;font-family:Plus Jakarta Sans,sans-serif;font-size:13px}.admin-table tbody tr{min-height:68px}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:#fafafa}.table-cell-main{color:#1a1a1a;font-weight:500}.table-cell-sub{color:#888;margin-top:2px;font-size:12px}.status-badge{border-radius:12px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-block}.status-badge.new{color:#1976d2;background:#e3f2fd}.status-badge.shipped_print{color:#e65100;background:#fff3e0}.status-badge.delivered{color:#2e7d32;background:#e8f5e9}.status-badge.anomaly{color:#c62828;background:#ffebee}.table-actions{align-items:center;gap:12px;display:flex}.action-btn{color:#ff7b72;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-family:Plus Jakarta Sans,sans-serif;font-size:13px;font-weight:500;transition:opacity .2s}.action-btn:hover{opacity:.8}.action-btn.danger{color:#c62828}.action-btn.secondary{color:#666}.empty-state{text-align:center;color:#888;padding:60px 20px;font-family:Plus Jakarta Sans,sans-serif;font-size:14px}.toolbar{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.toolbar-left{gap:8px;display:flex}.toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn-secondary{color:#1a1a1a;cursor:pointer;background:#fff;border:1px solid #d4d2cf;border-radius:8px;padding:8px 16px;font-family:Plus Jakarta Sans,sans-serif;font-size:14px;font-weight:600;transition:all .2s}.btn-secondary:hover:not(:disabled){color:#ff7b72;border-color:#ff7b72}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.import-result{color:#666;margin:0 0 12px;padding:0 24px;font-size:13px}.search-input{color:#1a1a1a;background:#fff;border:1px solid #e8e8e8;border-radius:8px;outline:none;width:280px;height:36px;padding:0 12px;font-family:Plus Jakarta Sans,sans-serif;font-size:14px;transition:all .2s}.search-input:hover{border-color:#d4d2cf}.search-input:focus{border-color:#ff7b72}.btn-primary{color:#fff;cursor:pointer;background:#ff7b72;border:none;border-radius:8px;padding:8px 16px;font-family:Plus Jakarta Sans,sans-serif;font-size:14px;font-weight:600;transition:opacity .2s}.btn-primary:hover{opacity:.9}.placeholder-container{flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:400px;display:flex}.placeholder-icon{background:#fff5f4;border-radius:40px;justify-content:center;align-items:center;width:80px;height:80px;display:flex}.placeholder-emoji{font-size:40px}.placeholder-title{color:#1a1a1a;font-family:Plus Jakarta Sans,sans-serif;font-size:24px;font-weight:700}.placeholder-desc{color:#888;font-family:Plus Jakarta Sans,sans-serif;font-size:14px}.variant-tab{color:#666;cursor:pointer;background:#fff;border:1px solid #0000;border-radius:6px;align-items:center;gap:4px;height:32px;padding:8px 12px;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.variant-tab.active{color:#ff7b72;background:#fff5f4;border:2px solid #ff7b72;font-weight:600}.variant-tab.add-tab{border:1px dashed #d4d2cf}.unconfigured-badge{color:#e65100;background:#fff3e0;border-radius:3px;padding:2px 4px;font-size:9px;font-weight:600;display:inline-block}.image-upload-row{align-items:center;gap:12px;display:flex}.template-image-slot{cursor:pointer;background:#fafafa;border:1px solid #e8e8e8;border-radius:8px;flex-shrink:0;width:120px;height:72px;margin:0;padding:0;display:block;position:relative;overflow:hidden}.template-image-slot.is-empty{border-style:dashed;border-color:#d4d4d4}.template-preview-img{object-fit:cover;width:100%;height:100%;display:block}.template-empty-text{color:#999;pointer-events:none;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;inset:0}.template-hover-mask{color:#fff;opacity:0;pointer-events:none;background:#1a1a1a8c;justify-content:center;align-items:center;font-size:13px;font-weight:600;transition:opacity .15s;display:flex;position:absolute;inset:0}.template-image-slot:hover .template-hover-mask,.template-image-slot:focus-visible .template-hover-mask{opacity:1}.template-image-slot:focus-visible{outline-offset:2px;outline:2px solid #ff7b72}.template-preview{object-fit:cover;background:#fafafa;border:1px solid #e8e8e8;border-radius:8px;width:120px;height:72px}.template-placeholder{color:#999;background:#fafafa;border:1px dashed #d4d4d4;border-radius:8px;justify-content:center;align-items:center;width:120px;height:72px;font-size:12px;display:flex}.upload-image-btn{display:none}.upload-hint{color:#999;margin:8px 0 0;font-size:12px}.btn-primary:disabled{opacity:.45;cursor:not-allowed}
