:root{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:#17231a;background:#edf0e9}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#f8f5ea 0,#edf0e9 42%,#dfe7dc 100%);min-height:100vh}
.shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:36px 0 64px}.topbar{display:flex;justify-content:space-between;gap:28px;align-items:flex-start;margin-bottom:24px}.eyebrow{margin:0 0 8px;color:#df5c1f;font-size:.72rem;font-weight:900;letter-spacing:.18em}.topbar h1{margin:0;font-size:clamp(2rem,5vw,3.6rem);line-height:1}.topbar p{color:#677267}
.workspace-back{display:inline-flex;align-items:center;padding:11px 16px;border:1px solid #cbd5c9;border-radius:13px;background:rgba(255,255,255,.76);color:#315d3b;text-decoration:none;font-size:.84rem;font-weight:900}.workspace-back:hover{border-color:#91a793;background:#fff}
.panel{margin-top:18px;padding:24px;border:1px solid #d4dbd0;border-radius:24px;background:rgba(255,255,252,.9);box-shadow:0 18px 45px rgba(38,61,43,.08)}.section-heading{display:flex;gap:13px;align-items:flex-start;margin-bottom:22px}.section-heading>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e95e1c;color:white;font-weight:900}.section-heading h2{margin:0 0 4px}.section-heading p{margin:0;color:#768078;font-size:.84rem}
form{display:grid;gap:20px}.type-switch{display:flex;gap:18px;margin:0;padding:0;border:0}.type-switch legend{margin-bottom:9px;font-size:.76rem;font-weight:900;color:#637066}.type-switch label{font-weight:800}
.upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.upload-card{display:grid;place-items:center;min-height:220px;padding:18px;border:2px dashed #b9c6b8;border-radius:18px;background:#f1f4ed;cursor:pointer;text-align:center}.upload-card:hover{border-color:#2b6840}.upload-card input{display:none}.upload-card span{align-self:start;justify-self:start;color:#667267;font-size:.75rem;font-weight:900}.upload-card img{width:100%;height:180px;object-fit:contain;border-radius:12px}.upload-card strong{color:#315b3b}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{display:grid;gap:7px;color:#59665c;font-size:.78rem;font-weight:900}.form-grid .wide{grid-column:1/-1}.form-grid input,.form-grid select{width:100%;padding:13px 14px;border:1px solid #cbd4c8;border-radius:12px;background:white;color:#17231a;font:inherit;font-size:.95rem;font-weight:600}.form-grid input:focus,.form-grid select:focus{outline:3px solid rgba(38,101,58,.15);border-color:#28623b}
.fixed-note{display:flex;gap:12px;padding:13px 15px;border-radius:14px;background:#fff3e8;color:#77401f;font-size:.83rem}.fixed-note strong{flex:none;color:#d9561d}button{justify-self:start;padding:13px 24px;border:0;border-radius:13px;background:#255f39;color:white;font-size:.95rem;font-weight:900;cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.status{margin:0;color:#6c776e;font-size:.82rem}.empty-state{display:grid;place-items:center;min-height:190px;border:1px dashed #cbd4c8;border-radius:16px;background:#f4f5f0;color:#7b847c}
@media(max-width:720px){.topbar{display:block}.workspace-back{margin-top:20px}.upload-grid,.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.panel{padding:18px}.fixed-note{display:grid}}
.poster-output { display: grid; gap: 14px; justify-items: center; }
.poster-output img { width: min(100%, 560px); border-radius: 16px; box-shadow: 0 18px 50px rgba(28,39,30,.18); }
.poster-output a { display: inline-flex; padding: 11px 18px; border-radius: 999px; background: #285f38; color: #fff; text-decoration: none; font-weight: 700; }
.poster-history-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.poster-history-card { overflow: hidden; border: 1px solid #dde1d9; border-radius: 14px; background: #fff; cursor: pointer; }
.poster-history-card img { display: block; width: 100%; aspect-ratio: 297 / 420; object-fit: cover; background: #183f2b; }
.poster-history-card div { display: grid; gap: 3px; padding: 10px; }
.poster-history-card span { color: #6d756e; font-size: .78rem; }

.upload-slot { display: grid; align-content: start; gap: 10px; }
.upload-actions { display: flex; justify-content: flex-end; gap: 8px; }
.upload-actions button { justify-self: auto; padding: 8px 13px; border: 1px solid #bfcabd; border-radius: 10px; background: #fff; color: #315b3b; font-size: .78rem; font-weight: 800; }
.upload-actions button[data-action="remove"] { border-color: #e7c5bb; color: #a74428; }

