:root{--ink:#2b2433;--paper:#faf8f5;--card:#fff;--plum:#6d5a8e;--plum-deep:#4a3d63;--gold:#b8860b;--red:#c0392b;--green:#1e8449;--line:#e8e2da}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif}.wrap{max-width:1180px;margin:0 auto;padding:18px 16px 60px}header{border-bottom:3px solid var(--plum);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:16px;padding-bottom:12px;display:flex}h1{letter-spacing:.5px;color:var(--plum-deep);margin:0;font-size:26px}h1 span{color:var(--plum);font-weight:300}.sub{color:#7a7285;margin:4px 0 0;font-size:13px}h2{color:var(--plum-deep);margin:0 0 10px;font-size:16px}h2 em{color:#8a8295;font-size:12px;font-style:normal;font-weight:400}h3{margin:18px 0 8px;font-size:14px}.controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}select,input[type=date],.search{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:8px 10px;font-size:13px}.search{min-width:180px}.upload-btn{background:var(--plum);color:#fff;cursor:pointer;white-space:nowrap;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:600}.upload-btn:hover{background:var(--plum-deep)}button{background:var(--plum);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 14px;font-size:13px}.msg{border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.msg.ok{color:var(--green);background:#e8f5ec;border:1px solid #bfe3cb}.msg.err{color:var(--red);background:#fdecea;border:1px solid #f5c6c0}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:16px;padding:16px}.card.empty{text-align:center;color:#8a8295;padding:50px 20px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row h2{flex:1;margin:0}.custom{flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0;font-size:12px;display:flex}.tbl-scroll{overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font-size:13px}.tbl th{text-align:left;border-bottom:2px solid var(--line);text-transform:uppercase;letter-spacing:.5px;color:#8a8295;padding:8px;font-size:11px}.tbl td{border-bottom:1px solid #f2eee8;padding:8px}.tbl tbody tr{cursor:pointer}.tbl tbody tr:hover{background:#f7f4fb}.tbl .sku{text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-weight:600;overflow:hidden}.tbl .file{text-overflow:ellipsis;white-space:nowrap;color:#8a8295;max-width:260px;font-size:11px;overflow:hidden}.tbl em{color:#9a92a5;font-size:11px;font-style:normal}.tbl.small td,.tbl.small th{padding:6px 8px;font-size:12px}.red{color:var(--red)}.green{color:var(--green)}.chip{white-space:nowrap;background:#f0edf6;border-radius:999px;padding:3px 9px;font-size:11px;display:inline-block}.chip.PRICE_DROP{color:#9c6b00;background:#fdf3e0}.chip.VISIBILITY{color:#2a5d9c;background:#e9f0fa}.chip.SERIOUS{color:var(--red);background:#fdecea;font-weight:700}.chip.GOLDEN{color:#8a6d00;background:#fbf3d5;font-weight:700}.chip.GROWING{color:var(--green);background:#e8f5ec}.modal{z-index:50;background:#2b24338c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-body{background:var(--card);border-radius:14px;width:min(900px,100%);max-height:90vh;padding:18px;overflow-y:auto}.close{color:var(--ink);background:0 0;font-size:16px}@media (width<=640px){h1{font-size:21px}.tbl{font-size:12px}}.login-wrap{justify-content:center;align-items:center;min-height:80vh;display:flex}.login-card{text-align:center;width:100%;max-width:360px;padding:32px 24px}.login-card input{border:1px solid var(--line);border-radius:8px;width:100%;margin:16px 0 10px;padding:10px;font-size:14px}.login-card button{width:100%;padding:10px}.user-badge{color:#6a6275;align-items:center;gap:10px;font-size:13px;display:flex}.watermark{pointer-events:none;z-index:9999;opacity:.08;transform-origin:50%;flex-direction:column;justify-content:space-between;display:flex;position:fixed;inset:0;overflow:hidden;transform:rotate(-25deg)scale(1.35)}.watermark-row{white-space:nowrap;justify-content:space-around;display:flex}.watermark-row span{color:var(--ink);font-size:13px;font-weight:700}.hub-h{color:#8a8295;text-transform:uppercase;letter-spacing:1px;margin:20px 0 10px;font-size:14px}.tiles{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;display:grid}.tile{background:var(--card);border:1px solid var(--line);cursor:pointer;border-radius:14px;padding:18px 16px;transition:all .15s}.tile:hover{border-color:var(--plum);transform:translateY(-2px);box-shadow:0 6px 18px #6d5a8e26}.tile-icon{margin-bottom:8px;font-size:30px}.tile-name{color:var(--plum-deep);font-size:15px;font-weight:700}.tile-desc{color:#8a8295;margin-top:4px;font-size:12px}.tile.locked{opacity:.55;cursor:default}.tile.locked:hover{border-color:var(--line);box-shadow:none;transform:none}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px}.stat-n{color:var(--plum-deep);font-size:22px;font-weight:800}.stat-l{color:#8a8295;text-transform:uppercase;letter-spacing:.4px;margin-top:3px;font-size:11px}.stat.warn .stat-n{color:var(--red)}.filterbar{background:#f7f4fb;border-radius:10px;flex-wrap:wrap;align-items:center;gap:14px;margin:12px 0;padding:10px 12px;display:flex}.filterbar label{color:#6a6275;align-items:center;gap:6px;font-size:12px;display:flex}.tabs{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.tab{color:var(--plum-deep);background:#f0edf6;font-weight:600}.tab.on{background:var(--plum);color:#fff}.pager{color:#6a6275;justify-content:center;align-items:center;gap:12px;margin-top:14px;font-size:13px;display:flex}.pager button:disabled{opacity:.4;cursor:default}.formgrid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:12px;display:grid}.formgrid label{color:#6a6275;flex-direction:column;gap:5px;font-size:12px;display:flex}.formgrid input{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px}.linkrow{margin-bottom:8px}.linkrow input{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px}a.upload-btn{text-decoration:none;display:inline-block}.tbl.grid td,.tbl.grid th{text-align:right;padding:5px 8px;font-size:12px}.tbl.grid td.sku,.tbl.grid th.sticky-col,.tbl.grid td.file{text-align:left}.tbl.grid td.zero{color:#ddd}.sticky-col{background:var(--card);z-index:2;text-overflow:ellipsis;max-width:200px;position:sticky;left:0;overflow:hidden}.tbl.grid thead th{z-index:1;background:#f7f4fb;position:sticky;top:0}.tbl.grid thead th.sticky-col{z-index:3}.focus-wrap{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;display:grid}.focus-card{border:1px solid var(--line);border-radius:12px;padding:14px}.focus-card.drop{background:#fdf6f5;border-color:#f0d5d0}.focus-card.gain{background:#f2f9f4;border-color:#cfe6d5}.focus-card h3{margin:0 0 4px}.focus-card .tbl{margin-top:8px}.focus-card .tbl td,.focus-card .tbl th{padding:4px 6px;font-size:12px}@media (width<=800px){.focus-wrap{grid-template-columns:1fr}}.wf-total td{border-top:2px solid var(--plum);font-weight:700}.progress{color:#444;background:#eee;border-radius:8px;justify-content:center;align-items:center;height:26px;margin:8px 0;font-size:12px;display:flex;position:relative;overflow:hidden}.progress-bar{z-index:0;background:#cbb8e8;transition:width .2s;position:absolute;top:0;bottom:0;left:0}.progress{z-index:1}.progress>*{z-index:1;position:relative}.fd-table{border:1px solid var(--line);border-radius:10px;max-width:620px;overflow:hidden}.fd-row{border-bottom:1px solid #f0eef4;grid-template-columns:1fr auto 70px;gap:12px;padding:10px 14px;font-size:14px;display:grid}.fd-row:last-child{border-bottom:none}
