html,body,#root{color:#444;background:#f7f7f7;width:100%;height:100%;margin:0;font-family:system-ui,-apple-system,sans-serif;overflow:hidden}html{touch-action:pan-x pan-y}.layout{width:100%;height:100%;display:flex}.main{flex-direction:column;flex:1;min-width:0;display:flex}.viewport{flex:1;min-height:0;position:relative;overflow:hidden}.capture-frame{pointer-events:none;outline:1px solid #ffffff80;position:absolute;box-shadow:0 0 0 100vmax #0000004d}.capture-label{color:#fff;text-shadow:0 0 1px #000c,0 1px 2px #0009,0 0 6px #0006;flex-direction:column;gap:2px;font-size:12px;font-weight:500;display:flex;position:absolute;top:8px;left:10px;right:10px}.capture-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.rotation-tooltip{color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;background:#1e1e1ed9;border-radius:5px;padding:3px 7px;font-size:12px;position:absolute}.rendering{place-items:center;font-size:18px;display:grid;position:absolute;inset:0}.render-progress{justify-items:center;gap:10px;display:grid}.render-progress .bar{background:#0000001f;border-radius:2px;width:200px;height:4px;overflow:hidden}.render-progress .bar>div{background:#0000008c;width:0;height:100%}.dropzone{pointer-events:none;background:#ffffff80;border:2px dashed #aaa;border-radius:16px;place-items:center;font-size:18px;display:grid;position:absolute;inset:16px}.toolbar,.panel-header{box-sizing:border-box;background:#fff;border-bottom:1px solid #e6e6e6;flex-shrink:0;align-items:center;height:49px;display:flex}.toolbar{gap:20px;min-width:0;padding:0 12px 0 20px;font-size:13px}.toolbar .brand{flex-shrink:0;align-items:baseline;gap:8px;margin-right:auto;display:flex}.toolbar .wordmark{letter-spacing:-.02em;color:#222;font-size:20px;font-weight:700}.toolbar .version{color:#aaa;font-size:12px}.toolbar-group{flex-shrink:0;align-items:center;gap:4px;display:flex}.toolbar-group.model{flex-shrink:1;gap:10px;min-width:0}.toolbar-label{color:#666;margin-right:4px}.toolbar .file-error{text-overflow:ellipsis;white-space:nowrap;color:#c0392b;max-width:280px;overflow:hidden}.toolbar button{font:inherit;color:#333;cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;height:32px;padding:0 12px}.toolbar button:hover{background:#f4f4f4}.toolbar button.axis{width:32px;padding:0}.panel-header{gap:4px;padding:0 12px 0 20px}.panel-header h2{color:#222;flex:1;margin:0;font-size:13px;font-weight:600}.panel-header button.icon{color:#666;background:0 0;border-color:#0000;place-items:center;width:32px;height:32px;padding:0;display:grid}.panel-header button.icon:hover{color:#222;background:#ededed}.panel{box-sizing:border-box;background:#fff;border-left:1px solid #e6e6e6;flex-direction:column;flex-shrink:0;width:420px;min-height:0;font-size:13px;display:flex}.panel-body{flex-direction:column;flex:1;gap:12px;min-height:0;padding:20px;display:flex;overflow-y:auto}.panel-footer{border-top:1px solid #e6e6e6;flex-direction:column;gap:12px;padding:16px 20px 20px;display:flex;box-shadow:0 -4px 12px #0000000a}.panel-footer button.primary{margin-top:12px}.panel button.primary,.toolbar button.primary{color:#fff;background:#222;border-color:#222;font-weight:600}.panel button.primary{padding:10px}.panel button.primary:hover,.toolbar button.primary:hover{background:#000;border-color:#000}.panel button.primary:disabled{color:#ddd;background:#666;border-color:#666}.panel details.section{background:#ededed;border-radius:8px;margin:0 -14px;padding:12px 14px}.panel details.section[open]{padding-bottom:16px}.panel .section-body{flex-direction:column;gap:16px;margin-top:22px;display:flex}.panel .group{flex-direction:column;gap:14px;display:flex}.panel .group+.group{border-top:1px solid #d4d4d4;margin-top:6px;padding-top:18px}.panel h3{color:#555;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:600;display:flex}.panel h3 .swatch{border-radius:2px;width:9px;height:9px}.panel summary{cursor:pointer;-webkit-user-select:none;user-select:none;letter-spacing:.06em;text-transform:uppercase;color:#777;align-items:center;gap:6px;font-size:11px;font-weight:600;list-style:none;display:flex}.panel summary::-webkit-details-marker{display:none}.panel summary:hover{color:#333}.panel summary:before{content:"";border-bottom:1.5px solid;border-right:1.5px solid;width:5px;height:5px;transition:transform .15s;transform:rotate(-45deg)}.panel details[open]>summary:before{transform:rotate(45deg)}.panel .row{grid-template-columns:80px 1fr auto;align-items:center;gap:8px;display:grid}.panel .row>span{color:#666}.panel output{text-align:right;font-variant-numeric:tabular-nums;color:#888;min-width:52px}.panel input[type=range]{accent-color:#444;width:100%}.panel input[type=color]{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;width:100%;height:26px;padding:0 2px}.panel button{font:inherit;color:#333;cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;padding:5px 10px}.panel button:hover{background:#f4f4f4}.panel button.wide{width:100%}.panel button:disabled{color:#999;cursor:default;background:#fff}.panel button.subtle{color:#888;background:0 0;border-color:#0000}.panel button.subtle:hover{background:#0000000a}.panel .buttons{grid-column:span 2;gap:4px;display:flex}.panel .buttons button{flex:1}.panel .segmented{background:#dcdcdc;border-radius:7px;grid-column:span 2;padding:2px;display:flex}.panel .segmented label{cursor:pointer;flex:1;position:relative}.panel .segmented input{opacity:0;cursor:inherit;margin:0;position:absolute;inset:0}.panel .segmented span{text-align:center;white-space:nowrap;color:#777;border-radius:5px;padding:4px 6px;display:block}.panel .segmented label:hover span{color:#333}.panel .segmented input:checked+span{color:#222;background:#fff;font-weight:500;box-shadow:0 1px 2px #0000001f,0 0 0 .5px #0000000f}.panel .segmented input:focus-visible+span{outline-offset:-2px;outline:2px solid #4a90e2}.panel .segmented input:disabled+span{opacity:.5}.panel .segmented label:has(input:disabled){cursor:default}.panel .hint{color:gray;margin:0;font-size:12px;line-height:1.4}.panel .check{cursor:pointer;align-items:center;gap:8px;display:flex}.panel .check input{accent-color:#333;cursor:pointer;width:16px;height:16px;margin:0}.render-preview{z-index:10;box-sizing:border-box;background:#141414eb;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.render-preview-frame{border-radius:6px;position:relative;overflow:hidden;box-shadow:0 8px 40px #00000080}.render-preview-frame img{max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);display:block}.render-preview-bar{color:#eee;text-shadow:0 1px 2px #00000080;background:linear-gradient(#0000,#000000a6);align-items:center;gap:8px;padding:32px 16px 14px;font-size:13px;display:flex;position:absolute;bottom:0;left:0;right:0}.render-preview-bar span{text-overflow:ellipsis;white-space:nowrap;margin-right:auto;overflow:hidden}.render-preview-bar button{font:inherit;color:#eee;cursor:pointer;background:#00000040;border:1px solid #fff9;border-radius:6px;padding:6px 16px}.render-preview-bar button:hover{background:#ffffff14}.render-preview-bar button.primary{color:#222;background:#fff;border-color:#fff;min-width:120px;font-weight:600}.render-preview-bar button.primary:hover{background:#e6e6e6}.preset-dialog{z-index:10;box-sizing:border-box;background:#14141499;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.preset-dialog-box{box-sizing:border-box;background:#fff;border-radius:8px;flex-direction:column;gap:10px;width:min(560px,100%);max-height:calc(100vh - 48px);padding:20px;font-size:13px;display:flex;box-shadow:0 8px 40px #00000059}.preset-dialog-box h2{margin:0;font-size:15px}.preset-dialog-box .hint{color:#888;margin:0}.preset-dialog-box textarea{resize:vertical;color:#333;border:1px solid #ddd;border-radius:6px;flex:1;min-height:320px;padding:10px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}.preset-message{color:#2f7a3e;margin:0}.preset-message.error{color:#c0392b}.preset-dialog-buttons{justify-content:flex-end;gap:8px;display:flex}.preset-dialog-buttons button{font:inherit;color:#333;cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;padding:6px 16px}.preset-dialog-buttons button:hover{background:#f4f4f4}.preset-dialog-buttons button.primary{color:#fff;background:#333;border-color:#333;min-width:100px}.preset-dialog-buttons button.primary:hover{background:#111}.preset-dialog-buttons button:disabled{opacity:.4;cursor:default}
