:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;--bg: #f7f8fb;--panel: #ffffff;--panel-soft: #fbfcfd;--text: #18202b;--muted: #5d6978;--line: #dfe5ec;--line-strong: #c5d0da;--accent: #0f766e;--accent-strong: #155e75;--accent-soft: #e7f5f2;--blue-soft: #edf4ff;--warning-soft: #fff7e6;--danger-soft: #fff1f0;--success: #0f7a43;--warning: #b54708;--danger: #b42318;--radius: 8px;--shadow: 0 18px 50px rgba(22, 35, 52, .08);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);color:var(--text)}button,input{font:inherit}button{border:0}.app-shell{display:grid;grid-template-rows:auto minmax(0,1fr);gap:18px;width:min(1180px,100%);height:100vh;min-height:100vh;margin:0 auto;padding:24px}.topbar,.sidebar,.workspace{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:82px;padding:18px 20px}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{display:grid;place-items:center;width:36px;height:36px;flex:0 0 auto;border-radius:7px;background:var(--text);color:#fff;font-weight:760}.eyebrow{margin:0 0 6px;color:var(--accent-strong);font-size:13px;font-weight:720;letter-spacing:0}h1,h2,p{margin:0}h1{font-size:clamp(24px,3vw,34px);line-height:1.12;letter-spacing:0}h2{font-size:20px;line-height:1.28;letter-spacing:0}.brand p:not(.eyebrow),.selection-info span,.hint-row,.statusbar,.thumb-meta,.empty-list p,.empty-stage p,.panel-head span{color:var(--muted)}.brand p:not(.eyebrow){margin-top:6px;font-size:14px;line-height:1.6}.summary-strip{display:grid;grid-template-columns:repeat(3,minmax(78px,1fr));gap:8px;min-width:min(360px,100%)}.summary-strip span{min-height:54px;padding:9px 12px;border:1px solid var(--line);border-radius:7px;background:var(--panel-soft);color:var(--muted);font-size:12px}.summary-strip strong{display:block;color:var(--text);font-size:20px;line-height:1.1}.tool-layout{display:grid;grid-template-columns:minmax(286px,330px) minmax(0,1fr);gap:18px;min-height:0}.sidebar,.workspace{min-width:0;overflow:hidden}.sidebar{display:flex;flex-direction:column}.panel-head,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.panel-head{min-height:76px;padding:16px 18px}.panel-head span{font-size:13px}.import-zone{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:8px;padding:14px 14px 16px;border-bottom:1px solid var(--line)}.primary-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;gap:8px;border-radius:7px;cursor:pointer;font-weight:700;transition:background-color .14s ease,border-color .14s ease,color .14s ease,transform .14s ease}.primary-button{padding:0 15px;border:1px solid var(--accent);background:var(--accent);color:#fff}.primary-button:hover:not(:disabled){border-color:var(--accent-strong);background:var(--accent-strong)}.ghost-button{padding:0 13px;border:1px solid var(--line);background:var(--panel);color:var(--text)}.ghost-button:hover:not(:disabled){border-color:var(--accent-strong);background:var(--accent-soft)}.primary-button:active:not(:disabled),.ghost-button:active:not(:disabled){transform:translateY(1px)}.primary-button:disabled,.ghost-button:disabled{cursor:not-allowed;opacity:.48}.primary-button:focus-visible,.ghost-button:focus-visible,.thumb-item:focus-visible,.thumb-remove:focus-visible,canvas:focus-visible{outline:3px solid rgba(15,118,110,.22);outline-offset:2px}.icon-button{width:40px;padding:0}.thumb-list{display:grid;align-content:start;gap:10px;min-height:0;overflow:auto;padding:14px}.thumb-item{position:relative;display:grid;grid-template-columns:82px minmax(0,1fr);grid-template-rows:auto auto;gap:5px 10px;width:100%;min-height:82px;padding:8px;text-align:left;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}.thumb-item:hover,.thumb-item.selected{background:var(--panel);border-color:#0f766e6b}.thumb-item.selected{box-shadow:0 0 0 3px #0f766e1f}.thumb-item img{grid-row:1 / 3;width:82px;height:64px;object-fit:cover;border:1px solid var(--line);border-radius:6px;background:linear-gradient(45deg,rgba(24,32,43,.055) 25%,transparent 25%),linear-gradient(-45deg,rgba(24,32,43,.055) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(24,32,43,.055) 75%),linear-gradient(-45deg,transparent 75%,rgba(24,32,43,.055) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px}.thumb-title{align-self:end;overflow:hidden;color:var(--text);font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.thumb-meta{align-self:start;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.thumb-remove{position:absolute;top:6px;right:6px;display:grid;width:24px;height:24px;place-items:center;color:var(--text);background:#ffffffeb;border:1px solid var(--line);border-radius:999px;cursor:pointer}.thumb-remove:hover{border-color:var(--danger);color:var(--danger)}.state-pill,.toolbar-pill{display:inline-flex;align-items:center;gap:5px;width:max-content;color:var(--success);background:#0f7a431a;border:1px solid rgba(15,122,67,.16);border-radius:999px;font-size:11px;font-weight:700}.state-pill{position:absolute;left:14px;bottom:16px;padding:3px 7px}.state-pill.dirty,.toolbar-pill.dirty{color:var(--warning);background:var(--warning-soft);border-color:#b5470833}.workspace{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0}.toolbar{min-height:76px;padding:14px 18px}.selection-info{display:flex;flex-wrap:wrap;align-items:center;min-width:0;gap:8px 12px}.selection-info strong{overflow:hidden;max-width:min(520px,46vw);text-overflow:ellipsis;white-space:nowrap}.selection-info span{font-size:13px}.toolbar-pill{padding:5px 9px}.toolbar-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.stage{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:10px;min-height:0;padding:14px 18px 10px}.canvas-frame{display:grid;min-width:0;min-height:360px;height:100%;place-items:center;overflow:auto;padding:18px;background:linear-gradient(45deg,rgba(24,32,43,.04) 25%,transparent 25%),linear-gradient(-45deg,rgba(24,32,43,.04) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(24,32,43,.04) 75%),linear-gradient(-45deg,transparent 75%,rgba(24,32,43,.04) 75%),var(--panel-soft);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;border:1px solid var(--line);border-radius:var(--radius)}canvas{display:block;max-width:100%;max-height:100%;border:1px solid rgba(24,32,43,.12);border-radius:6px;background:#fff;box-shadow:0 10px 26px #1623341f;cursor:crosshair;touch-action:none}.hint-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;min-height:24px;font-size:12px}.empty-stage,.empty-list{display:grid;place-items:center;text-align:center}.empty-stage{align-self:stretch;gap:14px;padding:26px;border:1px dashed #b6c3cf;border-radius:var(--radius);background:var(--panel-soft)}.empty-stage h2{font-size:22px}.empty-stage p,.empty-list p{max-width:360px;line-height:1.7}.empty-visual{position:relative;width:168px;height:118px}.empty-visual div{position:absolute;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 14px 28px #16233414}.empty-visual div:nth-child(1){inset:26px 42px 0 0}.empty-visual div:nth-child(2){inset:10px 20px 16px 26px;background:var(--accent-soft)}.empty-visual div:nth-child(3){inset:0 0 34px 62px}.empty-list{min-height:220px;gap:10px;padding:20px;border:1px dashed #b6c3cf;border-radius:var(--radius);background:var(--panel-soft)}.statusbar{display:flex;justify-content:space-between;gap:16px;min-height:44px;padding:12px 18px;border-top:1px solid var(--line);background:var(--panel-soft);font-size:12px}.statusbar span:first-child{min-width:0}.statusbar span:last-child{flex:0 0 auto;color:var(--accent-strong);font-weight:700}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:940px){.app-shell{height:auto}.tool-layout{grid-template-columns:1fr;min-height:0}.sidebar{max-height:338px}.thumb-list{display:flex;overflow-x:auto;padding-bottom:14px}.thumb-item{min-width:254px}.workspace{min-height:560px}.toolbar{align-items:flex-start;flex-direction:column}.toolbar-actions{width:100%;justify-content:stretch}.toolbar-actions>button{flex:1}}@media(max-width:640px){.app-shell{padding:12px}.topbar{align-items:flex-start;flex-direction:column;padding:16px}.brand{align-items:flex-start}.summary-strip{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}.panel-head,.toolbar,.statusbar{padding-right:14px;padding-left:14px}.statusbar{flex-direction:column;gap:6px}.stage{padding-right:14px;padding-left:14px}.toolbar-actions{display:grid;grid-template-columns:1fr}.toolbar-actions>button,.import-zone .primary-button{width:100%}.selection-info strong{max-width:100%}.canvas-frame{min-height:320px;padding:12px}}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg: #101820;--panel: #17212b;--panel-soft: #1d2935;--text: #edf5f7;--muted: #a7b4c0;--line: #30404d;--line-strong: #3e5060;--accent: #2dd4bf;--accent-strong: #67e8f9;--accent-soft: #123b38;--blue-soft: #172c3f;--warning-soft: #332a18;--danger-soft: #3a1f1d;--success: #5ee0a0;--warning: #fbbf24;--danger: #ff9b8e;--shadow: 0 18px 50px rgba(0, 0, 0, .34)}.brand-mark{background:#edf5f7;color:#101820}.thumb-remove{background:#17212beb}.thumb-item img,.canvas-frame{background:linear-gradient(45deg,rgba(255,255,255,.045) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.045) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(255,255,255,.045) 75%),linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.045) 75%),var(--panel-soft)}canvas{border-color:#edf5f724;background:#fff;box-shadow:0 12px 30px #00000052}}
