*,:before,:after{box-sizing:border-box}:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{box-sizing:border-box;flex-direction:column;width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.app{box-sizing:border-box;text-align:left;flex-direction:column;gap:16px;width:100%;margin:0;padding:16px;display:flex}.preset-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.preset-label{color:var(--text-h);font-size:13px;font-weight:600}.preset-seg{border:1px solid var(--border);background:var(--bg);border-radius:8px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.preset-btn{font:inherit;min-width:36px;color:var(--text);cursor:pointer;background:0 0;border:none;padding:6px 12px;font-size:13px}.preset-btn:not(:last-child){border-right:1px solid var(--border)}.preset-btn.active{background:var(--accent-bg);color:var(--accent);font-weight:600}.preset-btn.preset-add{color:var(--accent);font-weight:600}.preset-delete{font:inherit;border:1px solid var(--border);color:#d6555a;cursor:pointer;background:0 0;border-radius:8px;margin-left:auto;padding:6px 12px;font-size:13px}.preset-delete:active{background:#d6555a1a;border-color:#d6555a}.settings-bar{flex-wrap:wrap;gap:10px;display:flex}.settings-btn{font:inherit;border:1.5px solid var(--accent-border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:10px;flex:200px;padding:12px 16px;font-size:15px;font-weight:500;transition:background .15s,border-color .15s}.settings-btn:active{background:var(--accent-bg);border-color:var(--accent)}.options-content{flex-direction:column;gap:16px;display:flex}.seg.compact .seg-btn{padding:5px 10px;font-size:12px}.opt-group{border:1px solid var(--border);background:var(--bg);border-radius:8px;flex-direction:column;gap:12px;min-width:0;margin:0;padding:6px 14px 14px;display:flex}.opt-group>legend{color:var(--text-h);padding:0 6px;font-size:13px;font-weight:600}.opt-row-pair{flex-wrap:wrap;align-items:end;gap:12px 16px;min-width:0;display:flex}.opt-row-pair>.opt-row{flex:160px;min-width:0}.opt-row-pair>.opt-row.full{flex:100%}.opt-row-pair>.opt-row.two-thirds{flex:2 1 0;min-width:0}.opt-row-pair>.opt-row.one-third{flex:1 1 0;min-width:0}.opt-row{color:var(--text-h);flex-direction:column;gap:6px;min-width:0;font-size:14px;display:flex}.opt-row.narrow input[type=number],.opt-row.narrow input[type=text]{width:110px;max-width:100%}.opt-row.checkbox{flex-direction:row;align-items:center;gap:8px;padding-bottom:6px}.opt-row.disabled{opacity:.5}.opt-row>input[type=color],.opt-row>.seg,.opt-row>.percent-input{align-self:flex-start}.opt-row>span{font-weight:500}.opt-row input[type=number],.opt-row input[type=text],.opt-row select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);box-sizing:border-box;border-radius:6px;width:100%;padding:6px 10px}.opt-row input[type=color]{border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:6px;width:56px;height:36px;padding:0}.percent-input{align-items:center;gap:6px;min-width:0;display:flex}.percent-input input[type=number]{flex:0 0 110px;min-width:0;max-width:100%}.percent-input .percent-suffix{color:var(--text);font-size:13px}.padding-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}@media (width<=380px){.padding-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.pad-input{color:var(--text);flex-direction:column;gap:4px;font-size:12px;display:flex}.pad-input input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);box-sizing:border-box;border-radius:6px;width:100%;padding:4px 8px}.seg{border:1px solid var(--border);background:var(--bg);border-radius:8px;display:inline-flex;overflow:hidden}.seg-btn{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;padding:6px 12px;font-size:13px}.seg-btn:not(:last-child){border-right:1px solid var(--border)}.seg-btn.active{background:var(--accent-bg);color:var(--accent);font-weight:600}.annotation-zones{border-top:1px dashed var(--border);grid-template-columns:minmax(0,1fr);gap:14px;margin-top:14px;padding-top:14px;display:grid}.zone{flex-direction:column;gap:8px;display:flex}.zone-title{color:var(--text-h);flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13px;font-weight:600;display:flex}.zone-hint{color:var(--text);font-size:12px;font-weight:400}.zone-subtitle{color:var(--text);margin-top:4px;font-size:12px}.chip-grid{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.drop-zone{border:2px dashed var(--border);background:var(--bg);border-radius:10px;min-height:60px;padding:10px;transition:border-color .15s,background .15s}.chip-grid.drop-zone{flex-wrap:wrap}.chip-grid.drop-zone>.chip{flex-shrink:0}.drop-zone.over{border-color:var(--accent);background:var(--accent-bg)}.drop-zone.empty{justify-content:center;align-items:center}.target-line-seg{margin-left:auto}.target-line-seg .seg-btn{padding:4px 10px;font-size:12px}.drop-hint{color:var(--text);text-align:center;width:100%;padding:8px;font-size:13px}.chip{border:1.5px solid var(--text);background:var(--bg);color:var(--text-h);font:inherit;-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:999px;align-items:stretch;gap:0;padding:0;font-size:13px;transition:border-color .12s,background .12s,transform .12s,box-shadow .12s;display:inline-flex;overflow:hidden}.palette-chip{cursor:pointer;border-color:var(--accent-border);box-shadow:0 1px #0000000a}.active-zone .chip{cursor:grab}.active-zone .chip.dragging{cursor:grabbing}.chip.ghost{box-shadow:var(--shadow);cursor:grabbing}.chip>.chip-text{font:inherit;color:inherit;cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;padding:7px 14px;font-size:13px}button.chip{font:inherit;text-align:left;white-space:nowrap;color:inherit;padding:7px 14px;font-size:13px}.chip-add,.chip-remove{font:inherit;border:none;border-left:1px solid var(--border);width:28px;height:100%;min-height:32px;color:var(--text);cursor:pointer;background:0 0;place-items:center;font-size:14px;display:grid}.chip-add:hover:not(:disabled),.chip-remove:hover{background:var(--accent-bg);color:var(--accent)}.chip-add:disabled{opacity:.3;cursor:not-allowed}.chip.custom{border-color:var(--accent-border)}.chip.custom>.chip-text{color:var(--accent);font-weight:600}.chip.custom.empty>.chip-text{color:var(--text);opacity:.7;font-style:italic;font-weight:400}.slot-modal{width:min(92vw,480px)}.slot-modal-body{background:var(--bg);padding:20px}.slot-modal-body input{width:100%;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);box-sizing:border-box;border-radius:8px;padding:10px 12px;font-size:16px}.slot-modal-footer{justify-content:flex-end;gap:8px;display:flex}.slot-modal-footer button{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:8px;padding:8px 16px;font-size:14px}.slot-modal-footer button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.slot-modal-footer button:hover{filter:brightness(1.05)}.dropzone{border:2px dashed var(--border);background:var(--bg);cursor:pointer;text-align:center;border-radius:12px;width:100%;padding:28px 20px;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.drag-over{border-color:var(--accent);background:var(--accent-bg)}.dropzone-inner{flex-direction:column;align-items:center;gap:6px;display:flex}.dropzone-inner strong{color:var(--text-h);font-size:18px}.dropzone-inner span{color:var(--text);font-size:14px}.export-bar{justify-content:stretch;display:flex}.export-btn{width:100%;font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:10px;padding:14px 18px;font-size:16px;font-weight:600;transition:filter .15s}.export-btn:hover:not(:disabled){filter:brightness(1.08)}.export-btn:disabled{opacity:.45;cursor:not-allowed}.grid{grid-template-columns:repeat(auto-fill, minmax(var(--cell-size,360px), 1fr));gap:16px;width:100%;display:grid}@media (width<=540px){.grid{grid-template-columns:repeat(auto-fill, minmax(calc(var(--cell-size,360px) / 2), 1fr));gap:10px}}.grid-item{flex-direction:column;gap:6px;padding-bottom:12px;display:flex}.thumb{aspect-ratio:1;border:1px solid var(--border);background:var(--code-bg);cursor:pointer;border-radius:10px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.thumb img{object-fit:contain;width:100%;height:100%;display:block}.thumb-caption{color:#fff;white-space:nowrap;text-overflow:ellipsis;text-align:left;pointer-events:none;background:#0000008c;padding:6px 8px;font-size:12px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.grid-actions{gap:6px;display:flex}.grid-action-btn{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:8px;flex:1;padding:9px 0;font-size:16px;line-height:1;transition:background .12s,border-color .12s}.grid-action-btn:hover:not(:disabled),.grid-action-btn:focus-visible{background:var(--code-bg);border-color:var(--text)}.grid-action-btn:disabled{opacity:.5;cursor:not-allowed}.grid-action-btn.danger{color:#d6555a}.grid-action-btn.danger:hover:not(:disabled){background:#d6555a1a;border-color:#d6555a}.modal-backdrop{z-index:1000;background:#000000b3;place-items:center;padding:0;display:grid;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--border);max-width:min(96vw,1400px);max-height:92vh;box-shadow:var(--shadow);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.modal-title{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.modal-close{font:inherit;border:1px solid var(--border);background:var(--bg);width:32px;height:32px;color:var(--text-h);cursor:pointer;border-radius:6px}.modal-body{background:var(--code-bg);flex:1;place-items:center;min-height:0;padding:16px;display:grid;overflow:auto}.preview-canvas{background:0 0;width:auto;max-width:100%;height:auto;max-height:calc(92vh - 140px);display:block}.modal-footer{border-top:1px solid var(--border);color:var(--text);text-align:right;padding:10px 16px;font-size:13px}.settings-modal{width:min(100vw,720px);max-width:100vw}.settings-modal-body{background:var(--bg);padding:16px;display:block;overflow:hidden auto}.clear-bar{justify-content:center;margin-top:4px;display:flex}.clear-btn{font:inherit;border:1px solid var(--border);color:#d6555a;cursor:pointer;background:0 0;border-radius:8px;padding:10px 20px;font-size:14px;transition:background .15s,border-color .15s}.clear-btn:active{background:#d6555a1a;border-color:#d6555a}
