:root{color:#27272a;background:#f5f5f7;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:1100px;min-height:100vh;background:#f5f5f7}button,input,select,textarea{font:inherit}button{cursor:pointer;transition:color .18s,background .18s,border-color .18s,box-shadow .18s,transform .18s}button:active:not(:disabled){transform:translateY(1px)}.login-page{display:grid;min-height:100vh;place-items:center;background:radial-gradient(circle at 72% 22%,rgba(244,114,182,.18),transparent 28%),#18181b}.login-card{width:430px;padding:46px;border:1px solid rgba(255,255,255,.08);border-radius:28px;background:#fff;box-shadow:0 32px 100px #00000059}.login-brand,.sidebar-brand>span{display:grid;width:54px;height:54px;place-items:center;border-radius:17px;color:#fff;font-size:25px;font-weight:900;background:linear-gradient(145deg,#f43f8f,#db2777);box-shadow:0 10px 24px #ec489947}.eyebrow{margin:22px 0 6px;color:#ec4899;font-size:11px;font-weight:800;letter-spacing:2.4px}h1,h2,p{margin-top:0}.login-card h1{margin-bottom:8px;font-size:32px;letter-spacing:-.8px}.login-copy{color:#a1a1aa;font-size:14px}.login-form{display:grid;gap:18px;margin-top:32px}label{display:grid;gap:8px;color:#52525b;font-size:13px;font-weight:700}input,select,textarea{width:100%;border:1px solid #e4e4e7;border-radius:11px;outline:none;color:#27272a;background:#fff;transition:border-color .15s,box-shadow .15s}input,select{height:42px;padding:0 13px}textarea{min-height:105px;padding:12px 13px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#f472b6;box-shadow:0 0 0 3px #f472b61f}.primary-button,.secondary-button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;border:0;border-radius:11px;color:#fff;font-weight:800;background:#ec4899;box-shadow:0 8px 20px #ec489933}.primary-button:hover{background:#db2777}.primary-button:disabled{cursor:wait;opacity:.6}.primary-button.compact,.secondary-button{min-height:38px;padding:0 18px;font-size:13px}.secondary-button{border:1px solid #e4e4e7;color:#52525b;background:#fff;box-shadow:none}.form-error,.error-banner{color:#dc2626;font-size:13px}.admin-shell{display:grid;min-height:100vh;grid-template-columns:238px 1fr;background:#f5f5f7}.sidebar{position:sticky;top:0;display:flex;height:100vh;padding:28px 18px;flex-direction:column;color:#e4e4e7;overflow:hidden;border-right:1px solid rgba(255,255,255,.05);background:linear-gradient(180deg,#19191d,#141416);box-shadow:18px 0 50px #18181b14}.sidebar:before{position:absolute;top:-120px;left:-80px;width:280px;height:280px;border-radius:50%;background:#ec489914;filter:blur(8px);content:"";pointer-events:none}.sidebar-brand{display:flex;padding:0 10px 30px;align-items:center;gap:13px}.sidebar-brand>span{width:42px;height:42px;border-radius:13px;font-size:19px}.sidebar-brand strong,.sidebar-brand small{display:block}.sidebar-brand strong{color:#fff;font-size:16px}.sidebar-brand small{margin-top:3px;color:#71717a;font-size:9px;letter-spacing:1.4px}.sidebar nav{display:grid;gap:6px}.sidebar nav button,.logout{position:relative;display:flex;width:100%;height:46px;padding:0 14px;align-items:center;gap:12px;border:0;border-radius:12px;color:#a1a1aa;font-size:14px;font-weight:700;background:transparent}.sidebar nav button:hover{color:#fff;background:#27272a}.sidebar nav button.active{color:#fff;background:linear-gradient(100deg,#ec4899,#db2777);box-shadow:0 10px 26px #db277738}.nav-icon{display:grid;width:22px;place-items:center;font-size:19px}.logout{margin-top:auto;border:1px solid #3f3f46;justify-content:center;background:#ffffff04}.logout:hover{color:#fff;border-color:#71717a}.content{position:relative;min-width:0;padding:34px 42px 70px;background:radial-gradient(circle at 88% 2%,rgba(244,114,182,.09),transparent 22%),#f5f5f7}.topbar{display:flex;margin-bottom:24px;padding-bottom:22px;align-items:center;justify-content:space-between;border-bottom:1px solid #e8e8ec}.topbar .eyebrow{margin-top:0}.topbar h1{margin-bottom:0;font-size:28px;letter-spacing:-.5px}.page-subtitle{margin:7px 0 0;color:#8b8b95;font-size:13px}.admin-user{display:flex;padding:8px 12px 8px 8px;align-items:center;gap:10px;border:1px solid #e8e8ec;border-radius:14px;background:#ffffffd1;box-shadow:0 8px 24px #18181b0a}.admin-user>span{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;color:#fff;font-weight:900;background:#27272a}.admin-user strong,.admin-user small{display:block}.admin-user strong{font-size:13px}.admin-user small{margin-top:2px;color:#a1a1aa;font-size:11px}.error-banner{margin-bottom:20px;padding:12px 15px;border:1px solid #fecaca;border-radius:10px;background:#fef2f2}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.stat-grid article{min-height:148px;padding:24px;border:1px solid #ececef;border-radius:18px;background:#fff;box-shadow:0 8px 30px #18181b0a}.stat-grid span,.stat-grid small{display:block;color:#a1a1aa;font-size:12px}.stat-grid strong{display:block;margin:17px 0 8px;font-size:30px;letter-spacing:-1px}.stat-grid .revenue{color:#fff;border-color:#27272a;background:#27272a}.stat-grid .revenue span,.stat-grid .revenue small{color:#a1a1aa}.welcome-panel{display:flex;margin-top:22px;padding:36px;align-items:center;justify-content:space-between;border-radius:20px;color:#fff;background:linear-gradient(115deg,#831843,#ec4899 62%,#fb7185)}.welcome-panel .eyebrow{margin-top:0;color:#fbcfe8}.welcome-panel h2{margin-bottom:8px;font-size:27px}.welcome-panel p:last-child{margin-bottom:0;color:#fce7f3;font-size:14px}.welcome-panel .primary-button{color:#be185d;background:#fff;box-shadow:none}.category-summary{display:grid;margin-bottom:18px;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.category-summary article{position:relative;min-height:118px;padding:20px 22px;overflow:hidden;border:1px solid #e8e8ec;border-radius:18px;background:#ffffffe6;box-shadow:0 10px 30px #18181b0b}.category-summary article:after{position:absolute;top:0;right:0;width:70px;height:4px;border-radius:0 0 0 8px;background:#f9a8d4;content:""}.category-summary span,.category-summary small{display:block;color:#92929d;font-size:12px}.category-summary strong{display:block;margin:10px 0 5px;color:#27272a;font-size:28px;line-height:1;letter-spacing:-1px}.category-summary .category-summary-primary{border-color:#27272a;color:#fff;background:linear-gradient(135deg,#27272a,#18181b)}.category-summary .category-summary-primary:after{width:110px;background:linear-gradient(90deg,#ec4899,#fb7185)}.category-summary .category-summary-primary strong{color:#fff}.category-summary .category-summary-primary span,.category-summary .category-summary-primary small{color:#a1a1aa}.category-summary .category-summary-enabled{border-color:#fbcfe8;background:linear-gradient(135deg,#fff,#fdf2f8)}.toolbar{display:flex;margin-bottom:16px;align-items:center;gap:12px}.toolbar-search{display:flex;width:430px;margin-right:auto;align-items:center;gap:10px}.toolbar-search input{min-width:0;flex:1;background:#fff}.search-submit{height:42px;padding:0 19px;border:1px solid #f9a8d4;border-radius:11px;color:#be185d;font-size:13px;font-weight:800;background:#fdf2f8}.search-submit:hover{border-color:#ec4899;color:#fff;background:#ec4899;box-shadow:0 7px 18px #ec48992e}.category-toolbar{margin-bottom:12px;padding:14px;border:1px solid #e8e8ec;border-radius:16px;background:#ffffffd1;box-shadow:0 8px 24px #18181b09}.category-toolbar input{border-color:transparent;background:#f4f4f6}.category-toolbar input:focus{border-color:#f472b6;background:#fff}.category-level-bar{display:flex;margin-bottom:12px;padding:13px 15px;align-items:center;justify-content:space-between;border:1px solid #e8e8ec;border-radius:16px;background:#fff}.category-level-bar>div:first-child strong,.category-level-bar>div:first-child small{display:block}.category-level-bar>div:first-child strong{color:#27272a;font-size:13px}.category-level-bar>div:first-child small{margin-top:4px;color:#a1a1aa;font-size:11px}.category-tabs{display:inline-flex;padding:4px;gap:4px;border:1px solid #e4e4e7;border-radius:11px;background:#f7f7f8}.category-tabs button{min-width:92px;height:34px;padding:0 16px;border:0;border-radius:8px;color:#71717a;font-size:13px;font-weight:700;background:transparent}.category-tabs button.active{color:#fff;background:#ec4899;box-shadow:0 5px 14px #ec48992e}.table-card{position:relative;min-height:180px;overflow:hidden;border:1px solid #e8e8ec;border-radius:17px;background:#fff;box-shadow:0 12px 34px #18181b0d}.category-table-card{border-top:3px solid #ec4899}table{width:100%;border-collapse:collapse}th{padding:15px 18px;color:#8f8f9a;font-size:11px;font-weight:800;letter-spacing:.6px;text-align:left;background:linear-gradient(180deg,#fcfcfd,#f8f8fa)}td{padding:18px;border-top:1px solid #f0f0f2;color:#52525b;font-size:13px;vertical-align:middle}tbody tr{transition:background .18s,box-shadow .18s}tbody tr:hover{background:#fff8fb;box-shadow:inset 3px 0 #ec4899}td strong,td small{display:block;max-width:330px}td strong{color:#27272a;font-size:13px}td strong.category-child{color:#52525b;font-weight:700}td small{margin-top:5px;overflow:hidden;color:#a1a1aa;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.tag,.status{display:inline-flex;padding:5px 10px;border:1px solid #fbcfe8;border-radius:999px;color:#be185d;font-size:11px;font-weight:800;background:#fdf2f8}.status.success{border-color:#a7f3d0;color:#047857;background:#d1fae5}.status.muted{border-color:#e4e4e7;color:#71717a;background:#f4f4f5}.price{color:#e11d48;font-weight:900}.actions{white-space:nowrap}.actions button{padding:7px 10px;border:0;border-radius:8px;color:#2563eb;font-size:12px;background:transparent}.actions button:hover{background:#eff6ff}.actions .danger{color:#dc2626}.actions .danger:hover{background:#fef2f2}.cell-input{width:120px;height:34px}td select{width:105px;height:34px}.player-name{display:flex;align-items:center;gap:9px}.player-name span{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:#fce7f3}.user-name{display:flex;align-items:center;gap:10px}.user-name span{display:grid;width:36px;height:36px;flex-shrink:0;place-items:center;border-radius:11px;color:#fff;font-weight:900;background:linear-gradient(145deg,#ec4899,#be185d)}.product-admin-name{display:flex;align-items:center;gap:12px}.product-admin-name>img{width:48px;height:48px;flex-shrink:0;border:1px solid #f4f4f5;border-radius:12px;object-fit:cover;background:#fafafa}.product-admin-name>div{min-width:0}.loading,.empty{display:grid;min-height:180px;place-items:center;color:#a1a1aa;font-size:13px}.pagination{display:flex;width:fit-content;margin:14px 0 0 auto;padding:8px 10px 8px 14px;align-items:center;justify-content:flex-end;gap:10px;border:1px solid #e8e8ec;border-radius:13px;color:#92929d;font-size:12px;background:#ffffffdb;box-shadow:0 7px 20px #18181b09}.pagination button{min-width:64px;height:32px;padding:0 10px;border:1px solid #e4e4e7;border-radius:9px;color:#52525b;background:#fff}.pagination button:disabled{cursor:not-allowed;color:#d4d4d8;background:#fafafa}.pagination strong{min-width:48px;color:#52525b;text-align:center}.modal-mask{position:fixed;z-index:50;inset:0;display:grid;padding:30px;place-items:center;background:#18181b8f;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal{width:min(680px,100%);max-height:calc(100vh - 60px);overflow-y:auto;padding:28px;border-radius:20px;background:#fff;box-shadow:0 28px 90px #0000004d}.modal-head{display:flex;align-items:flex-start;justify-content:space-between}.modal-head .eyebrow{margin-top:0}.modal-head h2{margin-bottom:0}.modal-head>button{width:34px;height:34px;border:0;border-radius:50%;color:#71717a;font-size:23px;background:#f4f4f5}.form-grid{display:grid;margin-top:26px;grid-template-columns:1fr 1fr;gap:17px}.form-grid .wide{grid-column:1 / -1}.switch{display:flex;align-items:center;gap:9px}.switch input{width:17px;height:17px}.product-image-field{display:grid;gap:8px}.field-label{color:#52525b;font-size:13px;font-weight:700}.image-upload-box{display:flex;align-items:center;gap:16px}.image-upload-tile{display:grid;width:112px;height:112px;flex-shrink:0;overflow:hidden;place-items:center;align-content:center;gap:4px;border:1px dashed #f472b6;border-radius:14px;color:#ec4899;cursor:pointer;background:#fff8fb;transition:border-color .18s,background .18s,box-shadow .18s}.image-upload-tile:hover{border-color:#db2777;background:#fdf2f8;box-shadow:0 8px 22px #ec48991f}.image-upload-tile.uploading{cursor:wait;opacity:.65}.image-upload-tile img{width:100%;height:100%;object-fit:cover}.image-upload-input{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.upload-plus{font-size:34px;font-weight:300;line-height:1}.image-upload-tile small{color:#be185d;font-size:11px;font-weight:700}.image-upload-controls{display:grid;min-width:0;flex:1;gap:7px}.image-upload-controls strong{color:#27272a;font-size:13px}.image-upload-controls small{color:#a1a1aa;font-size:11px}.remove-image{width:fit-content;padding:4px 0;border:0;color:#dc2626;font-size:12px;background:transparent}.modal-actions{display:flex;margin-top:28px;justify-content:flex-end;gap:10px}.modal-description{margin:9px 0 0;color:#a1a1aa;font-size:13px}.confirm-mask{position:fixed;z-index:60;inset:0;display:grid;padding:24px;place-items:center;background:#18181b7a;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.confirm-dialog{display:grid;width:min(430px,100%);grid-template-columns:48px 1fr;gap:16px;padding:28px;border:1px solid rgba(255,255,255,.72);border-radius:20px;background:#fffffff7;box-shadow:0 28px 80px #18181b3d,0 0 0 1px #ec48990f;animation:confirm-in .2s ease-out both}.confirm-icon{display:grid;width:44px;height:44px;place-items:center;border:1px solid #f9a8d4;border-radius:14px;color:#be185d;font-size:24px;font-weight:900;background:#fdf2f8}.confirm-copy .eyebrow{margin:1px 0 7px;font-size:10px;letter-spacing:1.8px}.confirm-copy h2{margin-bottom:8px;color:#27272a;font-size:20px;letter-spacing:-.3px}.confirm-copy p:not(.eyebrow){margin-bottom:9px;color:#71717a;font-size:13px;line-height:1.65}.confirm-copy strong{display:block;overflow:hidden;color:#27272a;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.confirm-actions{display:flex;grid-column:1 / -1;justify-content:flex-end;gap:10px;padding-top:7px}.confirm-actions .secondary-button,.confirm-danger{min-height:40px;padding:0 17px;border-radius:10px;font-size:13px;font-weight:800}.confirm-danger{border:1px solid #e11d48;color:#fff;background:#e11d48;box-shadow:0 8px 18px #e11d482e}.confirm-danger:hover{border-color:#be123c;background:#be123c}@keyframes confirm-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1250px){.stat-grid{grid-template-columns:repeat(2,1fr)}.content{padding-right:26px;padding-left:26px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
