*{box-sizing:border-box}body{margin:0;font-family:Arial,Microsoft YaHei,sans-serif;background:#f4f6f8;color:#172033}button,input,select,textarea{font:inherit}button:disabled{opacity:.55}main{min-height:100vh}aside,main{display:flex}aside{width:245px;background:#111827;color:#fff;padding:28px 20px;flex-direction:column}h1{font-size:21px;margin:0 0 4px}aside>small{color:#94a3b8;font-size:10px;letter-spacing:1px}nav{display:flex;flex-direction:column;gap:7px;margin-top:40px}nav b,nav span{padding:12px;border-radius:8px;font-size:14px}nav b{background:#2563eb}.safe{margin-top:auto;padding:14px;background:#172337;border-radius:9px;color:#86efac;font-size:12px}.safe small{display:block;color:#94a3b8;margin-top:5px}section{flex:1 1;padding:30px 36px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}h2{margin:0;font-size:24px}header p{margin:6px 0;color:#6b7280;font-size:13px}.role{background:#fff;border:1px solid #d7dce3;padding:10px 15px}.notice,.role{border-radius:8px}.notice{background:#eff6ff;color:#1d4ed8;padding:10px 14px;font-size:12px;margin-bottom:16px}.grid{display:grid;grid-template-columns:1.05fr .95fr;grid-gap:22px;gap:22px}article{background:#fff;border:1px solid #e1e5ea;border-radius:12px;padding:22px}h3{font-size:14px;margin:4px 0 13px}.products{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;margin-bottom:25px}.products button{border:1px solid #dce1e7;background:#fff;border-radius:8px;padding:13px 6px;font-size:12px}.products .on{border:2px solid #2563eb;background:#eff6ff;color:#1d4ed8}.fields{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.fields label{border:1px solid #dce1e7;padding:9px 11px;border-radius:8px;font-size:10px;color:#64748b;position:relative}.fields input,.fields select{display:block;border:0;outline:0;font-weight:700;font-size:14px;width:75%;margin-top:3px;background:#fff}.fields i{position:absolute;right:10px;bottom:11px;font-style:normal;font-size:11px}.pixels{margin:10px 0 25px;padding:9px;background:#f8fafc;border-radius:6px;font-size:11px;color:#64748b}.upload{min-height:110px;border:1.5px dashed #b8c1cc;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#2563eb;margin-bottom:24px;cursor:pointer;padding:12px;text-align:center}.upload strong{font-size:13px;margin:5px}.upload small{color:#64748b;max-width:100%;overflow-wrap:anywhere}textarea{width:100%;height:85px;border:1px solid #dce1e7;border-radius:8px;padding:12px;resize:none}.go{width:100%;margin-top:14px;background:#2563eb;color:#fff;border:0;padding:14px;border-radius:8px;font-weight:700}.hint{display:block;color:#b45309;background:#fffbeb;padding:8px;margin-top:8px;border-radius:6px}.preview{display:flex;flex-direction:column}.previewhead{display:flex;justify-content:space-between}.previewhead span{font-size:11px;background:#f1f5f9;padding:5px 9px;border-radius:20px}.canvas{min-height:300px;background:#f5f7fa;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#64748b;text-align:center;padding:20px}.canvas.active{background:linear-gradient(145deg,#0f172a,#1e3a5f);color:#fff}.canvas div{width:65px;height:65px;background:#dbeafe;color:#2563eb;border-radius:15px;display:grid;place-items:center;font-size:24px;font-weight:700;margin-bottom:14px}.canvas strong{font-size:22px}.canvas small{margin-top:7px}.canvas p{font-size:12px;line-height:1.8;letter-spacing:2px}.checks{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:14px}.checks span{background:#f0fdf4;color:#15803d;padding:9px;border-radius:6px;font-size:11px}.pipeline{display:grid;grid-gap:6px;gap:6px;margin-top:12px}.pipeline span{font-size:11px;padding:8px;border-radius:6px;background:#f8fafc}.pipeline .done{color:#15803d}.pipeline .processing{color:#1d4ed8;background:#eff6ff}.exports{display:flex;gap:7px;margin:12px 0}.exports button{flex:1 1;border:1px solid #dce1e7;background:#fff;padding:9px;border-radius:6px;font-size:10px}.jobs{display:grid;grid-gap:7px;gap:7px}.jobs>div{display:grid;grid-template-columns:1fr auto auto;align-items:center;grid-gap:8px;gap:8px;border:1px solid #e5e7eb;border-radius:7px;padding:8px}.jobs span small{display:block;color:#64748b;font-size:9px;margin-top:3px}.jobs em{font-style:normal;font-size:10px}.jobs button{border:1px solid #dce1e7;background:#fff;border-radius:5px;font-size:10px;padding:5px 7px}@media(max-width:900px){aside{width:165px;padding:20px 12px}.grid{grid-template-columns:1fr}section{padding:18px}.canvas{min-height:260px}.products{grid-template-columns:1fr 1fr}}