*,:after,:before{margin:0;padding:0;box-sizing:border-box}:root{--bg-1:#0f0c29;--bg-2:#302b63;--bg-3:#24243e;--accent-1:#667eea;--accent-2:#764ba2;--accent-3:#f093fb;--text:#e6e6ec;--muted:#8a8a94;--danger:#ff6b6b;--card-bg:rgba(255,255,255,0.05);--card-border:rgba(255,255,255,0.1);--field-bg:rgba(0,0,0,0.3);--field-border:rgba(255,255,255,0.15)}body,html{min-height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,PingFang SC,Microsoft YaHei,sans-serif;background:linear-gradient(135deg,var(--bg-1),var(--bg-2),var(--bg-3));color:var(--text);min-height:100vh;line-height:1.5}.wrap{max-width:760px;margin:0 auto;padding:40px 20px}h1{font-size:2em;text-align:center;margin-bottom:8px;background:linear-gradient(90deg,var(--accent-1),var(--accent-2),var(--accent-3));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.tagline{text-align:center;color:var(--muted);margin-bottom:36px;font-size:.95em}.panel{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:28px;margin-bottom:24px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}label{display:block;font-size:.85em;color:#aaa;margin-bottom:6px;font-weight:500}input,select,textarea{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--field-border);background:var(--field-bg);color:var(--text);font-size:.95em;font-family:inherit;margin-bottom:18px;transition:border-color .2s}input:focus,textarea:focus{outline:none;border-color:var(--accent-1)}textarea{resize:vertical;min-height:84px}.grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.size-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.size-chip{padding:8px 16px;border:1px solid var(--field-border);border-radius:8px;background:rgba(0,0,0,.2);color:#ccc;cursor:pointer;font-size:.85em;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.size-chip.is-active,.size-chip:hover{border-color:var(--accent-1);color:#fff}.size-chip.is-active{background:rgba(102,126,234,.2)}.btn-primary{width:100%;padding:14px;border:none;border-radius:12px;font-size:1.05em;font-weight:600;cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--accent-1),var(--accent-2));transition:transform .15s,box-shadow .2s,opacity .2s;margin-top:4px}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 24px rgba(102,126,234,.4)}.btn-primary:active{transform:translateY(0)}.btn-primary[disabled]{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.stage{min-height:120px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.stage img{max-width:100%;max-height:520px;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.4);cursor:zoom-in;transition:transform .2s}.stage img:hover{transform:scale(1.01)}.stage-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;justify-content:center}.btn-ghost{padding:10px 28px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:rgba(255,255,255,.08);color:var(--text);cursor:pointer;font-size:.9em;transition:background .2s}.btn-ghost:hover{background:rgba(255,255,255,.15)}.spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.1);border-top:4px solid var(--accent-1);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.loading-hint{margin-top:16px;color:#aaa;font-size:.9em}.icon-large{font-size:3em;margin-bottom:12px;opacity:.3}.icon-hint{color:#555;font-size:.9em}.alert{color:var(--danger);background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.2);border-radius:10px;padding:14px;margin-top:12px;font-size:.9em;text-align:left;word-break:break-word}.stage-caption{margin-top:10px;color:#888;font-size:.8em;max-width:500px;text-align:center}.history-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.history-bar h2{font-size:1.1em;color:#aaa;font-weight:600}.history-badge{font-size:.8em;color:#666;background:rgba(255,255,255,.05);padding:4px 12px;border-radius:20px;margin-left:6px}.btn-danger{padding:6px 16px;border:1px solid rgba(255,100,100,.3);border-radius:8px;background:rgba(255,100,100,.08);color:#ff8888;cursor:pointer;font-size:.8em;transition:all .2s}.btn-danger:hover{background:rgba(255,100,100,.15);border-color:rgba(255,100,100,.5)}.history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:12px;gap:12px}.tile{position:relative;border-radius:12px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:all .2s;aspect-ratio:1;background:rgba(0,0,0,.3)}.tile:hover{border-color:var(--accent-1);transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.4)}.tile.is-active{border-color:var(--accent-3);box-shadow:0 0 0 2px rgba(240,147,251,.3)}.tile img{width:100%;height:100%;object-fit:cover;display:block}.tile-no{top:6px;left:6px;background:rgba(0,0,0,.6);color:#aaa;padding:2px 8px;border-radius:10px}.tile-foot,.tile-no{position:absolute;font-size:.7em}.tile-foot{left:0;right:0;bottom:0;padding:6px 8px;background:linear-gradient(transparent,rgba(0,0,0,.8));color:#ccc;display:flex;justify-content:space-between;align-items:center}.tile-del{background:none;border:none;color:var(--danger);cursor:pointer;font-size:1em;padding:0 4px;opacity:0;transition:opacity .2s}.tile:hover .tile-del{opacity:1}.empty{text-align:center;padding:40px 20px;color:#555;grid-column:1/-1}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;z-index:1000;cursor:zoom-out}.lightbox img{max-width:95vw;max-height:92vh;border-radius:8px;box-shadow:0 12px 48px rgba(0,0,0,.6)}.lightbox-x{position:fixed;top:20px;right:24px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.1);color:#fff;font-size:1.2em;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.lightbox-x:hover{background:rgba(255,255,255,.2)}footer{text-align:center;color:#444;font-size:.8em;margin-top:40px}@media (max-width:520px){.grid-2{grid-template-columns:1fr}}