:root{color:#16201b;background:#f5f7f4;font-family:Inter,Microsoft YaHei,PingFang SC,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}.appShell{min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr)}.sidebar{background:#16201b;color:#f8fbf6;padding:24px 18px;display:flex;flex-direction:column;gap:28px}.brand{display:flex;align-items:center;gap:12px}.brandMark{width:42px;height:42px;display:grid;place-items:center;background:#63c18b;color:#0f1813;border-radius:8px;font-weight:800}.brand strong,.brand span{display:block}.brand span{color:#b8c9bf;font-size:13px;margin-top:2px}nav{display:grid;gap:8px}nav button{height:42px;border:0;border-radius:8px;display:flex;align-items:center;gap:10px;background:transparent;color:#dfe9e2;padding:0 12px;text-align:left}nav button.active,nav button:hover{background:#284135;color:#fff}.workspace{padding:28px;overflow:auto}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.topbar h1,.portalHeader h1{margin:4px 0 0;font-size:30px;line-height:1.2}.eyebrow{color:#5e7166;font-size:13px;margin:0}.primaryBtn,.ghostBtn,.completeBox button{min-height:42px;border-radius:8px;border:0;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700}.primaryBtn,.completeBox button{background:#1f7a4d;color:#fff}.ghostBtn{background:#fff;color:#21382b;border:1px solid #dbe5dc}.statGrid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:14px;margin-bottom:18px}.stat,.panel,.qrCard,.publishTask,.emptyState{background:#fff;border:1px solid #dfe8e1;border-radius:8px}.stat{padding:18px}.stat svg{color:#1f7a4d}.stat span{display:block;color:#6a7b70;margin-top:16px}.stat strong{display:block;font-size:28px;margin-top:4px}.panel{padding:20px}.panelTitle{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}h2{font-size:18px;margin:0 0 14px}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid #edf1ed;padding:12px 8px;text-align:left;font-size:14px}th{color:#66766c;font-weight:700}.okTag,.waitTag{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;padding:0 10px;font-size:12px;font-weight:700}.okTag{background:#e5f6ec;color:#17673f}.waitTag{background:#fff4dc;color:#8a5a00}.miniBtn{min-height:30px;border:1px solid #bdd4c5;border-radius:7px;background:#eef8f2;color:#17673f;padding:0 10px;font-weight:700}.mutedText{color:#8a998f}.twoCol{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:18px}.formPanel{display:grid;gap:12px;align-content:start}input,textarea,select{width:100%;border:1px solid #d9e2db;background:#fbfdfb;border-radius:8px;padding:11px 12px;outline:none}textarea{min-height:104px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:#1f7a4d;box-shadow:0 0 0 3px #1f7a4d1f}.listPanel{display:grid;gap:12px;align-content:start}.listItem,.videoItem{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid #edf1ed;border-radius:8px;padding:12px}.listItem span,.videoItem span{display:block;color:#728177;font-size:13px;margin-top:3px}.videoItem{grid-template-columns:140px minmax(0,1fr)}.videoItem video{width:140px;aspect-ratio:16 / 9;border-radius:6px;object-fit:cover;background:#101814}.fileDrop{min-height:112px;border:1px dashed #9ab8a4;border-radius:8px;display:grid;place-items:center;gap:6px;color:#42614e;background:#f7fbf8;text-align:center}.fileDrop input{display:none}.assignPanel{display:grid;gap:18px}.storePicker{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.storePicker button{min-height:52px;border-radius:8px;border:1px solid #dfe8e1;background:#fff;display:flex;align-items:center;gap:8px;padding:0 12px}.storePicker button.picked{border-color:#1f7a4d;background:#eaf7ef;color:#145c38}.qrGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.domainPanel{display:grid;grid-template-columns:minmax(240px,1fr) minmax(280px,520px) auto;align-items:end;gap:12px;margin-bottom:16px}.domainPanel h2{margin-bottom:6px}.domainPanel p{margin:0;color:#66766c;font-size:14px}.dangerLine{display:block;margin-top:8px;color:#b42318;font-size:14px}.qrCard{padding:18px}.qrCard img{width:100%;max-width:320px;display:block;margin:8px auto 12px;border:1px solid #edf1ed}.qrCard p,.qrCard a{display:flex;align-items:center;gap:6px;margin:8px 0;color:#5f7066;text-decoration:none;font-size:14px}.qrUrl{display:block;margin-top:10px;color:#6b7a70;font-size:12px;line-height:1.45;word-break:break-all}.portal{min-height:100vh;padding:22px;background:#f4f7f5}.portalHeader{max-width:980px;margin:0 auto 18px;display:flex;justify-content:space-between;align-items:center;gap:14px}.portalHeader p{margin:4px 0 0;color:#5f7066}.countPill{min-width:92px;min-height:38px;border-radius:999px;background:#1f7a4d;color:#fff;display:grid;place-items:center;font-weight:800}.taskList{max-width:980px;margin:0 auto;display:grid;gap:16px}.publishTask{overflow:hidden;display:grid;grid-template-columns:330px minmax(0,1fr)}.publishTask>video{width:100%;height:100%;min-height:280px;background:#101814;object-fit:contain}.taskBody{padding:18px;display:grid;gap:14px}.taskTop{display:flex;justify-content:space-between;gap:12px}.taskTop span{color:#738278;font-size:13px;white-space:nowrap}.captionBox{background:#f6faf7;border:1px solid #e2ece5;border-radius:8px;padding:12px}.captionBox p{margin:0 0 8px;white-space:pre-wrap}.captionBox strong{color:#17673f}.note{margin:0;color:#596b60}.portalActions,.completeBox{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portalActions{grid-template-columns:1.2fr 1fr 1fr}.completeBox{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.statusHint{margin:-4px 0 0;color:#8a5a00;background:#fff7e8;border:1px solid #f0d7a7;border-radius:8px;padding:10px 12px;font-size:14px}.loading,.emptyState{min-height:260px;display:grid;place-items:center;text-align:center;padding:28px;color:#52665a}@media(max-width:860px){.appShell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:2;padding:14px}.brand{display:none}nav{grid-template-columns:repeat(5,1fr)}nav button{justify-content:center;padding:0;font-size:13px}.workspace{padding:18px}.topbar,.portalHeader{align-items:flex-start}.statGrid,.twoCol,.domainPanel,.publishTask,.portalActions,.completeBox{grid-template-columns:1fr}}
