:root{--bg: #f7f6f3;--panel: #ffffff;--side: #f0eee9;--line: #e6e3dd;--text: #1d1d1f;--muted: #6b6b70;--red: #b42318;--red-bg: #fdecea;--amber: #8a5300;--amber-bg: #fff4e0;--green: #1a7f37;--green-bg: #e8f5ec;--blue: #1f4fd1;--blue-bg: #eaf0ff;--grey-bg: #f0efec}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Microsoft YaHei,sans-serif;font-size:14px}.center-screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:360px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:28px 28px 32px}.login-card h1{font-size:20px;font-weight:600;margin:0 0 20px}.form-error{color:var(--red);margin:-4px 0 12px}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.nowrap{white-space:nowrap}.small{font-size:12px}.shell{display:grid;grid-template-columns:168px minmax(0,1fr);min-height:100%}.side{background:var(--side);border-right:1px solid var(--line);padding:18px 10px 12px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{font-size:16px;font-weight:600;padding:0 10px 18px}.nav{display:flex;flex-direction:column;gap:2px;flex:1}.nav a{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-radius:7px;color:var(--muted);text-decoration:none}.nav a:hover{background:#0000000a;color:var(--text)}.nav a.active{background:var(--panel);color:var(--text);font-weight:600;box-shadow:0 0 0 1px var(--line)}.nav-sep{font-size:12px;color:var(--muted);padding:16px 10px 4px}.me{display:flex;justify-content:space-between;align-items:center;width:100%;padding:8px 10px;border:0;background:none;border-radius:7px;cursor:pointer;color:var(--text);font:inherit;text-align:left}.me:hover{background:#0000000a}.me small{display:block;color:var(--muted);font-size:12px}.main{padding:22px 28px 60px;min-width:0;max-width:1480px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.page-head h2{margin:0;font-size:20px;font-weight:600}.page-head .right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;flex-wrap:wrap}.panel-head h3{margin:0;font-size:15px;font-weight:600}.panel-head .hint{color:var(--muted);font-size:12px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.two-col{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:18px;align-items:start}@media(max-width:1180px){.two-col{grid-template-columns:1fr}}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.tile{border-radius:10px;padding:14px 16px;background:var(--panel);border:1px solid var(--line);cursor:pointer;text-align:left;font:inherit;color:inherit}.tile:hover{border-color:#c9c5bd}.tile .n{font-size:28px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2}.tile .l{color:var(--muted);font-size:13px}.tile.red{background:var(--red-bg);border-color:transparent}.tile.red .n{color:var(--red)}.tile.amber{background:var(--amber-bg);border-color:transparent}.tile.amber .n{color:var(--amber)}.tile.ok .n{color:var(--green)}.pill{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;line-height:20px;white-space:nowrap;background:var(--grey-bg);color:var(--muted)}.pill.red{background:var(--red-bg);color:var(--red)}.pill.yellow{background:#fff2c6;color:#7a5a00}.pill.solid{background:#d92d20;color:#fff}.pill.purple{background:#efe7fb;color:#6b3fb8}.tags{display:inline-flex;gap:4px;margin-left:6px;vertical-align:1px}.tags .pill{line-height:18px;padding:0 7px}.pill.amber{background:var(--amber-bg);color:var(--amber)}.pill.green{background:var(--green-bg);color:var(--green)}.pill.blue{background:var(--blue-bg);color:var(--blue)}.brand-tag{display:inline-block;font-size:11px;line-height:16px;padding:0 5px;border-radius:4px;margin-right:6px;vertical-align:1px;font-weight:500;white-space:nowrap}.brand-tag.hx{background:#1d1d1f;color:#fff}.brand-tag.xx{background:#f7dce6;color:#9c2457}.brand-col-head{display:flex;align-items:center;gap:10px;margin:0 0 12px}.brand-col-head h3{margin:0;font-size:18px;font-weight:600}.brand-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}@media(max-width:1180px){.brand-cols{grid-template-columns:1fr}}.vocab-chip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:6px;padding:0 0 0 10px;background:#fff}.vocab-chip .ant-btn-link{padding:0 6px}.readonly-note{color:var(--muted);font-size:12px;background:var(--grey-bg);border-radius:6px;padding:6px 10px;margin-bottom:14px}.t-red{color:var(--red)}.t-amber{color:var(--amber)}.t-green{color:var(--green)}.t-muted{color:var(--muted)}.strong{font-weight:600}details.group{border-bottom:1px solid var(--line)}details.group:last-child{border-bottom:0}details.group>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:9px 4px;-webkit-user-select:none;user-select:none}details.group>summary::-webkit-details-marker{display:none}details.group>summary:before{content:"▸";color:var(--muted);transition:transform .15s;display:inline-block;width:10px}details.group[open]>summary:before{transform:rotate(90deg)}details.group>summary .g-title{font-weight:600}details.group>summary .g-meta{color:var(--muted);font-size:12px;margin-left:auto;display:flex;gap:6px;align-items:center}details.group>.g-body{padding:0 0 10px 18px}details.group.sub>summary{padding:7px 4px}details.group.sub>summary .g-title{font-weight:500}@media(prefers-reduced-motion:reduce){details.group>summary:before{transition:none}}.items{list-style:none;margin:0;padding:0}.items li{display:flex;justify-content:space-between;gap:12px;padding:5px 4px;border-radius:6px;cursor:pointer;align-items:center}.items li:hover{background:#faf9f6}.items li .r{white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}.ant-table-wrapper .ant-table-tbody>tr.clickable{cursor:pointer}.ant-table-wrapper .ant-table-tbody>tr.row-muted td{color:var(--muted)}.ant-table-wrapper .ant-table-thead>tr>th{font-weight:500;color:var(--muted);background:#fbfaf8}.kv{display:grid;grid-template-columns:110px minmax(0,1fr);gap:6px 12px;margin-bottom:16px}.kv .k{color:var(--muted)}.timeline{list-style:none;margin:0;padding:0}.timeline li{padding:8px 0;border-bottom:1px dashed var(--line)}.timeline li:last-child{border-bottom:0}.timeline .meta{color:var(--muted);font-size:12px}.timeline li.auto .text{color:var(--muted)}.sec-title{font-weight:600;margin:18px 0 8px}.check-box{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fcfbf9}.empty{color:var(--muted);padding:10px 4px}.pending-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line);flex-wrap:wrap}.pending-row:last-child{border-bottom:0}.store-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.store-editor-head{display:flex;gap:14px;align-items:flex-end;margin-bottom:12px;flex-wrap:wrap}.store-editor-head label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted, #888)}.store-editor-tools{display:flex;gap:16px;align-items:center;margin-bottom:8px;flex-wrap:wrap;font-size:13px}.store-qty{display:inline-flex;align-items:center;gap:6px}.store-stats{display:flex;gap:28px;align-items:baseline;margin-bottom:12px;flex-wrap:wrap}.store-stats>div>span{color:var(--muted, #888);font-size:12px;margin-right:6px}.store-stats b{font-size:20px}.store-month-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:12px}.store-month-cards .panel{display:flex;flex-direction:column;gap:4px;margin:0;padding:12px 14px}.store-month-cards .panel>span{color:var(--muted, #888);font-size:12px}.store-month-cards .panel b{font-size:20px}.store-month-cards .panel small{color:var(--muted, #888)}
