:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#08080a;--bg-soft:#0d0d10;--panel:#121214;--panel-2:#17171b;--line:#26262b;--line-strong:#3a3a43;--text:#f0f1f3;--muted:#9aa0aa;--accent:#7c9cff;--accent-weak:#7c9cff24;--danger:#ff6b6b;--ok:#3ddc97;--warn:#f0b429;--radius:10px;--shadow:0 1px 2px #0009, 0 8px 28px #00000073}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Noto Sans JP,Meiryo,sans-serif;font-size:14px;line-height:1.6;display:flex}.topbar{background:var(--bg-soft);border-bottom:1px solid var(--line);z-index:5;flex:0 0 54px;align-items:center;gap:10px;padding:0 16px;display:flex}.brand{color:var(--text);letter-spacing:.08em;text-transform:lowercase;align-items:center;gap:8px;font-size:18px;font-weight:800;text-decoration:none;display:inline-flex}.brand img{display:block}.badge{color:var(--accent);background:var(--accent-weak);border:1px solid #7c9cff52;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.spacer{flex:1}.link{appearance:none;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 8px;text-decoration:none}.link:hover{color:var(--text);background:#ffffff12}.link.small{font-size:12px}.layout{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:268px minmax(0,1fr) 330px;gap:12px;min-height:0;padding:12px;display:grid;overflow:hidden}.sidebar,.rightbar{flex-direction:column;gap:12px;min-height:0;display:flex}.rightbar{overflow:auto}.dropzone{background:var(--panel);border:1.5px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);text-align:center;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:20px 12px;transition:border-color .15s,background .15s,color .15s;display:flex}.dropzone:hover,.dropzone.is-over{border-color:var(--accent);background:var(--accent-weak);color:var(--accent)}.dropzone strong{color:var(--text);font-size:14px}.dropzone span{font-size:11.5px}.dropzone .formats{opacity:.7;margin-top:2px;font-size:10.5px}.dropzone.is-over strong{color:var(--accent)}.list-head{color:var(--muted);justify-content:space-between;align-items:center;padding:0 4px;font-size:12px;display:flex}.photo-list{flex-direction:column;flex:1;gap:6px;min-height:0;margin:0;padding:0 0 8px;list-style:none;display:flex;overflow:auto}.photo-item{background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:9px;align-items:center;gap:9px;padding:7px;display:flex}.photo-item:hover{border-color:var(--line-strong)}.photo-item.is-active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-weak)}.photo-item .thumb{object-fit:cover;background:var(--panel-2);border-radius:6px;flex:none;width:46px;height:46px}.photo-item .meta{flex-direction:column;flex:1;min-width:0;display:flex}.photo-item .name{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.photo-item .sub{color:var(--muted);align-items:center;gap:5px;font-size:11px;display:flex}.dot{background:var(--line-strong);border-radius:50%;flex:none;width:7px;height:7px}.dot.ready{background:var(--accent)}.dot.detecting{background:var(--warn);animation:1s infinite pulse}.dot.error{background:var(--danger)}.dot.verified{background:var(--ok)}@keyframes pulse{50%{opacity:.35}}.editor{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;min-height:0;box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.toolbar{border-bottom:1px solid var(--line);background:var(--bg-soft);flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:8px 10px;display:flex}.tool-group{background:#1b1b20;border-radius:8px;padding:2px;display:inline-flex}.tool{appearance:none;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 10px;font-size:12.5px}.tool:hover{background:#ffffff12}.tool.is-active{color:var(--accent);background:#2b2b34;font-weight:600;box-shadow:0 1px 2px #00000080}.tool.danger{color:var(--danger)}.field{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.field.inline{flex-direction:row;align-items:center;gap:6px}.field>span{font-weight:600}select,input[type=text],input[type=password]{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line-strong);border-radius:7px;min-width:0;padding:6px 8px;font-size:13px}select{cursor:pointer}select option{background:var(--panel-2);color:var(--text)}input:focus,select:focus{outline:2px solid var(--accent-weak);border-color:var(--accent)}.check{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;font-size:12.5px;display:inline-flex}.check input{accent-color:var(--accent)}.canvas-wrap{background-color:#17171a;background-image:linear-gradient(45deg,#1d1d21 25%,#0000 25%),linear-gradient(-45deg,#1d1d21 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#1d1d21 75%),linear-gradient(-45deg,#0000 75%,#1d1d21 75%);background-position:0 0,0 9px,9px -9px,-9px 0;background-size:18px 18px;flex:1;min-height:0;position:relative;overflow:hidden}.canvas-host{position:absolute;inset:0}.empty-state{text-align:center;color:var(--muted);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:20px;display:flex;position:absolute;inset:0}.empty-state p{margin:0}.empty-state.hidden{display:none}.statusbar{border-top:1px solid var(--line);color:var(--muted);background:var(--bg-soft);flex:none;align-items:center;gap:12px;padding:7px 12px;font-size:12px;display:flex}.statusbar .progress{background:#24242a;border-radius:99px;flex:1;height:4px;overflow:hidden}.statusbar .progress i{background:var(--accent);width:0;height:100%;transition:width .15s;display:block}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:9px;padding:12px;display:flex}.panel h2{letter-spacing:.02em;color:var(--text);margin:0;font-size:13px}.row{gap:8px;display:flex}.row>*{flex:1}button.primary,button.secondary{appearance:none;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:700}button.primary{background:var(--accent);color:#0a0a0c}button.primary:hover{filter:brightness(1.08)}button.primary:disabled{color:var(--muted);cursor:not-allowed;background:#2b2b33}button.secondary{background:var(--panel-2);color:var(--accent);border-color:#7c9cff59}button.secondary:hover{background:var(--accent-weak)}button.secondary:disabled{color:var(--muted);border-color:var(--line);cursor:not-allowed}button.wide{width:100%}.note{color:var(--muted);margin:0;font-size:11.5px}.note.error{color:var(--danger)}.note.ok{color:var(--ok)}.tips ul{color:var(--muted);flex-direction:column;gap:3px;margin:0;padding-left:16px;font-size:12px;display:flex}code{background:#1e1e24;border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}.dialog{border:1px solid var(--line);background:var(--panel);width:min(560px,100vw - 32px);color:var(--text);border-radius:14px;padding:0;box-shadow:0 20px 60px #0009}.dialog::backdrop{background:#0000009e}.dialog form,.dialog-body{padding:20px 22px}.dialog h2{margin:0 0 10px;font-size:17px}.dialog h3{margin:16px 0 6px;font-size:13px}.dialog ol,.dialog ul{margin:0;padding-left:20px;font-size:13px}.dialog li{margin:3px 0}.confirm-message{white-space:pre-line;color:var(--text);margin:0;font-size:13.5px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}button.primary.danger{background:var(--danger);color:#14090a}.footer{color:var(--muted);flex-wrap:wrap;flex:none;justify-content:center;gap:10px;padding:6px 12px 10px;font-size:11px;display:flex}.muted{color:var(--muted)}.canvas-host canvas{touch-action:none}@media (max-width:1180px){.layout{grid-template-columns:230px minmax(0,1fr) 300px}}
