html,body{height:100%}body{font-family:Inter,sans-serif;background:#121212;color:#e0e0e0;padding:12px;display:flex;flex-direction:column;align-items:center;margin:0;box-sizing:border-box;overflow:hidden}img,canvas{max-width:100%}.app-container{display:grid;grid-template-columns:350px minmax(0,1fr);gap:16px;width:100%;height:100%;min-height:0;min-width:0}.sidebar{background:#1e1e1e;padding:16px;border-radius:12px;height:100%;min-height:0;min-width:0;box-sizing:border-box;overflow:hidden;box-shadow:0 4px 6px #0000004d;display:flex;flex-direction:column;gap:14px;position:relative}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:14px;margin-right:-8px;padding-right:8px;scrollbar-width:thin;scrollbar-color:#444 transparent}.sidebar-scroll::-webkit-scrollbar{width:6px}.sidebar-scroll::-webkit-scrollbar-thumb{background:#444;border-radius:3px}.sidebar-scroll::-webkit-scrollbar-track{background:transparent}.app-brand{display:flex;align-items:center;gap:8px;margin-bottom:4px}.app-brand-name{font-size:20px;font-weight:600;color:#fff;letter-spacing:.5px}.app-version{font-size:12px;color:#888}.header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.header-row-actions{display:flex;align-items:center;gap:6px}.header-project-actions{display:flex;align-items:center;gap:6px;margin:-6px 0 10px;flex-wrap:wrap}.header-project-actions .settings-btn{flex:1;text-align:center}.settings-btn{background:transparent;border:1px solid #444;color:#aaa;cursor:pointer;padding:5px 10px;border-radius:4px;font-size:12px;transition:all .2s}.settings-btn:hover{border-color:#fff;color:#fff}.control-section{border-bottom:1px solid #333;padding-bottom:14px;flex-shrink:0}.control-section:last-child{border-bottom:none;padding-bottom:0}h3{margin:0 0 15px;font-size:14px;color:#fff;text-transform:uppercase;letter-spacing:.5px}.upload-grid{display:flex;flex-direction:column;gap:10px}.upload-card{background:#2d2d2d;padding:12px;min-width:0;border-radius:8px;border:1px solid #333;transition:border-color .2s;position:relative}.upload-card:hover{border-color:#555}.clear-btn-x{position:absolute;top:5px;right:5px;background:#f44;color:#fff;border:none;border-radius:50%;width:20px;height:20px;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10}.clear-btn-x:hover{background:#c00}.upload-label{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px;color:#fff;margin-bottom:8px}.upload-icon{width:16px;height:16px;display:inline-block;border-radius:50%}.upload-icon.color{background:linear-gradient(135deg,red,#ff7f00,#ff0,#0f0,#00f,indigo,#9400d3)}.upload-icon.bw{background:linear-gradient(90deg,#000 50%,#fff 50%);border:1px solid #555}input[type=file]{width:100%;font-size:11px;color:#aaa}.file-pick-row{display:flex;align-items:center;gap:6px;min-height:26px}.file-pick-row input[type=file]{flex:1;min-width:0;width:auto;height:26px}.ai-feature{display:none}.ai-btn-row{display:flex;gap:5px;margin-top:10px}.ai-btn{background:linear-gradient(135deg,#6a11cb,#2575fc);border:none;color:#fff;padding:8px 12px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;flex:1;transition:transform .1s}.ai-btn:hover{transform:scale(1.02);box-shadow:0 4px 10px #6a11cb66}.ai-btn-icon{flex:0 0 26px;width:26px;height:26px;padding:0;font-size:13px;line-height:1;align-items:center;justify-content:center;aspect-ratio:1}.ai-btn-icon:hover{transform:scale(1.06)}.dl-btn{background:#444;border:none;color:#fff;padding:8px;border-radius:4px;cursor:pointer;display:none}.file-pick-row .dl-btn{flex-shrink:0;padding:4px 6px;height:26px;box-sizing:border-box}.dl-btn:hover{background:#555}.ai-btn-small{background:linear-gradient(135deg,#6a11cb,#2575fc);border:none;color:#fff;padding:4px 8px;border-radius:4px;font-size:10px;cursor:pointer;margin-left:auto}.strip-scroller{display:flex;align-items:center;gap:4px;margin-top:10px}.strip-arrow{flex-shrink:0;width:22px;height:40px;padding:0;border:1px solid #444;border-radius:4px;background:#2a2a2a;color:#ddd;font-size:18px;line-height:1;cursor:pointer}.strip-arrow:hover:not(:disabled){border-color:#fff;color:#fff}.strip-arrow:disabled{opacity:.28;cursor:default}.history-strip{display:flex;gap:5px;overflow-x:auto;margin-top:0;padding-bottom:0;flex-wrap:nowrap;flex:1;min-width:0;scrollbar-width:none}.history-strip::-webkit-scrollbar{display:none}.preset-strip-label{font-size:11px;color:#888;margin:10px 0 0}.strip-scroller+.ai-feature,.preset-strip-label+.strip-scroller{margin-top:6px}.strip-scroller+.file-pick-row{margin-top:8px}.mask-preset-strip{margin-top:0}.history-thumb-wrap{position:relative;flex-shrink:0;width:40px;height:40px}.history-thumb{width:40px;height:40px;border-radius:4px;border:1px solid #444;cursor:pointer;object-fit:cover;display:block;flex-shrink:0}.history-thumb:hover{border-color:#fff}.history-thumb-del{position:absolute;top:-4px;right:-4px;width:14px;height:14px;border-radius:50%;border:none;background:#f44;color:#fff;font-size:11px;line-height:1;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1}.history-thumb-del:hover{background:#c00}.layer-select{display:flex;gap:10px}.layer-btn{flex:1;padding:12px;background:#2d2d2d;border:2px solid #333;color:#888;border-radius:6px;cursor:pointer;text-align:center;font-weight:600;font-size:13px;transition:all .2s}.layer-btn:hover{background:#3a3a3a;color:#fff}.layer-btn.active{border-color:#00d26a;background:#00d26a1a;color:#00d26a}.layer-btn.disabled{opacity:.5;cursor:not-allowed;background:#222;border-color:#333;color:#555}.instructions{font-size:11px;color:#666;margin-top:10px;line-height:1.5;padding:10px;background:#262626;border-radius:6px}.dim-row{display:flex;gap:10px;align-items:center;background:#2d2d2d;padding:8px 10px;border-radius:6px}.dim-group{flex:1;min-width:0}.dim-label{font-size:10px;color:#888;display:block;margin-bottom:4px}.dim-input{background:#1e1e1e;border:1px solid #444;color:#fff;padding:8px;border-radius:4px;width:100%;text-align:right;font-family:Inter,monospace;box-sizing:border-box}.dim-x{color:#555;font-weight:700;padding-top:12px}.unit-toggle{background:#1e1e1e;border:1px solid #444;color:#fff;padding:8px;border-radius:4px;cursor:pointer;margin-top:14px}.settings-box{background:#262626;padding:8px 10px;border-radius:8px;margin-bottom:15px}.setting-row{display:flex;justify-content:space-between;font-size:12px;color:#aaa;margin-bottom:8px;border-bottom:1px solid #333;padding-bottom:4px}.setting-row:last-child{margin-bottom:0;border:none}.setting-val{color:#fff;font-weight:700}.input-group{margin-bottom:15px;position:relative}.input-group label{display:block;font-size:11px;color:#888;margin-bottom:5px}.text-input{width:100%;padding:10px;background:#2d2d2d;border:1px solid #444;color:#fff;border-radius:4px;box-sizing:border-box}select.text-input{cursor:pointer;min-height:40px;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.settings-models-row{margin-bottom:12px}.settings-models-refresh{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:#262626;border:1px solid #444;border-radius:4px}.settings-models-count{font-size:11px;color:#888;flex:1}.settings-refresh-models-btn{font-size:11px;padding:8px 12px;background:#3d2d4d;color:#c9a8e8;border:1px solid #5a4a6a;border-radius:4px;cursor:pointer;white-space:nowrap}.settings-refresh-models-btn:hover:not(:disabled){background:#4a3a5a}.settings-refresh-models-btn:disabled{opacity:.5;cursor:not-allowed}.right-panel{display:flex;flex-direction:column;gap:16px;height:100%;min-height:0;min-width:0}.canvas-area{position:relative;display:flex;justify-content:center;align-items:center;background:#1e1e1e;border-radius:12px;padding:12px;overflow:hidden;flex:1;min-height:0;box-sizing:border-box;box-shadow:inset 0 0 40px #00000080}canvas#editorCanvas{background-image:radial-gradient(#333 1px,transparent 1px);background-size:20px 20px;background-color:#262626;box-shadow:0 20px 50px #00000080;cursor:default;display:block;width:auto;height:auto;max-width:100%;max-height:100%;aspect-ratio:4 / 3;touch-action:none}button.process-btn{background:#00d26a;color:#000;width:100%;padding:15px;font-weight:700;font-size:16px;border:none;border-radius:8px;cursor:pointer;transition:.2s;text-transform:uppercase;letter-spacing:.5px}button.process-btn:hover{background:#00ff80;transform:translateY(-2px);box-shadow:0 4px 12px #00d26a4d}button:disabled{background:#444!important;color:#888!important;cursor:not-allowed;transform:none!important;box-shadow:none!important}.export-row{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-top:0;padding-top:12px;border-top:1px solid #333;flex-shrink:0}.export-row .process-btn{padding:12px;font-size:14px}.export-row .input-group,.export-row .text-input,.export-row .process-btn{width:100%;box-sizing:border-box}.export-format-select{flex:0 0 auto;padding:10px 12px;background:#2d2d2d;border:1px solid #444;color:#fff;border-radius:4px;font-size:14px;cursor:pointer}.output-section{background:#1e1e1e;padding:12px;border-radius:12px;box-shadow:0 4px 6px #0000004d;flex-shrink:0;min-width:0}.preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:0}.channel-card{background:#262626;padding:10px;border-radius:8px;min-width:0}.channel-card canvas{display:block;width:100%;height:clamp(140px,24vh,300px);object-fit:contain;border:1px solid #333;border-radius:4px;background-image:linear-gradient(45deg,#333 25%,transparent 25%),linear-gradient(-45deg,#333 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#333 75%),linear-gradient(-45deg,transparent 75%,#333 75%);background-size:14px 14px;image-rendering:auto}.channel-card h4{font-size:13px;text-align:center;color:#ccc;margin:0 0 8px}#progressOverlay,#aiPromptOverlay,#settingsOverlay,#paletteOverlay,#libraryOverlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;z-index:1000;justify-content:center;align-items:center;flex-direction:column}.progress-box,.prompt-box{width:min(400px,92vw);max-height:90vh;overflow-y:auto;box-sizing:border-box;background:#2d2d2d;padding:30px;border-radius:12px;text-align:center;box-shadow:0 10px 30px #00000080}.progress-bar-bg{width:100%;height:10px;background:#444;border-radius:5px;margin:15px 0;overflow:hidden}.progress-bar-fill{height:100%;background:#00d26a;width:0%;transition:width .1s linear}#progressText{color:#fff;font-weight:600;margin-bottom:5px}#progressSub{color:#888;font-size:12px}textarea{width:100%;height:80px;background:#1e1e1e;border:1px solid #444;color:#eee;padding:10px;border-radius:4px;box-sizing:border-box;margin-bottom:15px;font-family:sans-serif}.modal-btns{display:flex;gap:10px;justify-content:flex-end}.ai-extend-section{margin-top:16px;padding-top:14px;border-top:1px solid #444;text-align:left}.ai-extend-help{font-size:12px;color:#aaa;margin:0 0 12px;line-height:1.45}.ai-outpaint-prompt-label{display:block;font-size:12px;color:#ccc;font-weight:600;margin:0 0 6px}textarea.ai-outpaint-prompt{height:auto;min-height:120px;margin-bottom:8px;resize:vertical;font-size:12px;line-height:1.4}.ai-outpaint-prompt-actions{display:flex;justify-content:flex-end;margin-bottom:12px}.ai-outpaint-reset{background:none;border:none;color:#8ab4a0;font-size:12px;cursor:pointer;padding:0}.ai-outpaint-reset:hover{color:#00d26a;text-decoration:underline}.ai-extend-btns{justify-content:flex-start}.ai-mask-type-section{margin:0 0 14px;text-align:left}.ai-mask-type-label{font-size:12px;color:#ccc;margin:0 0 8px;font-weight:600}.ai-mask-kind-row{display:flex;gap:8px;margin-bottom:10px}.ai-seg{flex:1;cursor:pointer}.ai-seg input{position:absolute;opacity:0;pointer-events:none}.ai-seg span{display:block;text-align:center;padding:8px 10px;border:1px solid #444;border-radius:6px;font-size:12px;color:#ddd;background:#1e1e1e}.ai-seg input:checked+span{border-color:#00d26a;color:#fff;background:#1a3326}.ai-mask-gradient{display:flex;align-items:center;gap:8px;font-size:13px;color:#ddd;margin-bottom:8px;cursor:pointer}.ai-mask-gradient input{width:16px;height:16px;accent-color:#00d26a}.ai-extend-btns .ai-btn,.ai-extend-btns .cancel-btn{flex:1}.ai-extend-btns .ai-btn:disabled,.ai-extend-btns .cancel-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.cancel-btn{background:#444;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer}.save-btn{background:#00d26a;color:#000;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:700}.settings-link{color:#00d26a;text-decoration:none;font-size:12px;display:block;margin-top:10px}.settings-link:hover{text-decoration:underline}.settings-modal-footer{margin-top:20px;text-align:center;font-size:11px;color:#888}.settings-modal-footer .litholab-credit{margin:0 0 8px;font-size:11px;color:#888}.settings-footer-author-line{margin:0;font-size:12px}.settings-footer-author-sep{color:#888}.settings-footer-author-link{color:#00d26a;text-decoration:none;font-size:12px;display:inline-block}.settings-footer-author-link:hover{text-decoration:underline}.litholab-credit a{color:#00d26a;text-decoration:none}.litholab-credit a:hover{text-decoration:underline}.palette-actions{display:flex;gap:6px;margin-top:10px}.palette-action-btn{background:#00d26a;color:#000;border:none;padding:7px 12px;border-radius:4px;cursor:pointer;font-weight:600;font-size:12px;transition:filter .15s}.palette-action-btn:hover{filter:brightness(1.1)}.palette-action-btn.subtle{background:#3a3a3a;color:#ddd;font-weight:500}.palette-action-btn.subtle:hover{background:#4a4a4a}.palette-action-btn.primary{background:#00d26a;color:#000}.palette-box{width:520px;max-width:94vw;max-height:90vh;box-sizing:border-box;background:#2d2d2d;padding:24px;border-radius:12px;box-shadow:0 10px 30px #00000080;display:flex;flex-direction:column;overflow:hidden}.palette-view{display:flex;flex-direction:column;flex:1;min-height:0}.palette-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.palette-title{flex:1;margin:0;color:#fff;font-size:16px;letter-spacing:1px}.palette-close,.palette-back{background:transparent;border:none;color:#aaa;cursor:pointer;font-size:20px;line-height:1;padding:4px 8px;border-radius:4px;transition:color .15s,background .15s}.palette-close:hover,.palette-back:hover{color:#fff;background:#3a3a3a}.palette-help{color:#aaa;font-size:12px;margin:0 0 14px}.material-tiles-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;overflow-y:auto;padding-right:4px}.material-tile{position:relative;aspect-ratio:1 / 1;border-radius:10px;border:1px solid #444;box-shadow:0 2px 6px #0006;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#000;-webkit-user-select:none;user-select:none;overflow:hidden}.material-tile.dark-text{color:#000}.material-tile.light-text{color:#fff}.material-tile .tile-base-label{pointer-events:none;letter-spacing:1px}.material-tile .tile-name{position:absolute;bottom:4px;left:4px;right:4px;font-size:10px;font-weight:500;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.material-tile .tile-x{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background:#000000b3;color:#fff;border:none;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s}.material-tile:hover .tile-x{opacity:1}.material-tile .tile-x:hover{background:#e53935}.material-tile.add{background:transparent;border:2px dashed #555;color:#777;font-size:28px;font-weight:300;cursor:pointer;box-shadow:none;transition:border-color .15s,color .15s}.material-tile.add:hover{border-color:#00d26a;color:#00d26a}.palette-footer-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid #3a3a3a;padding-top:14px}.palette-available-list{flex:1;overflow-y:auto;margin-bottom:14px;border:1px solid #3a3a3a;border-radius:6px;background:#232323;max-height:50vh}.palette-available-row{display:flex;align-items:center;gap:12px;padding:8px 12px;cursor:pointer;border-bottom:1px solid #2c2c2c;transition:background .15s}.palette-available-row:last-child{border-bottom:none}.palette-available-row:hover{background:#2f2f2f}.palette-available-row .row-swatch{width:28px;height:28px;border-radius:6px;border:1px solid #444;flex-shrink:0}.palette-available-row .row-info{flex:1;min-width:0}.palette-available-row .row-name{color:#eee;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-available-row .row-meta{color:#888;font-size:11px;font-family:monospace}.palette-available-empty{padding:20px;text-align:center;color:#888;font-size:12px}.palette-custom-form{display:flex;flex-direction:column;gap:10px;margin-bottom:14px;overflow-y:auto}.palette-custom-preview{display:flex;align-items:center;gap:12px}.palette-custom-swatch{width:56px;height:56px;border-radius:8px;border:1px solid #555;background:#fff;flex-shrink:0}.palette-custom-hexlabel{font-family:monospace;color:#ddd;font-size:14px}.palette-custom-error{color:#e57373;font-size:12px;min-height:16px}.library-box{width:720px;max-width:94vw;max-height:90vh;box-sizing:border-box;background:#2d2d2d;padding:24px;border-radius:12px;box-shadow:0 10px 30px #00000080;display:flex;flex-direction:column;overflow:hidden}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;overflow-y:auto;min-height:0;flex:1;padding:4px 2px 8px}.library-card{position:relative;background:#232323;border:1px solid #3a3a3a;border-radius:8px;padding:8px;cursor:pointer;transition:border-color .15s,background .15s}.library-card:hover{border-color:#00d26a;background:#2a2a2a}.library-card img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:4px;background:linear-gradient(45deg,#333 25%,transparent 25%),linear-gradient(-45deg,#333 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#333 75%),linear-gradient(-45deg,transparent 75%,#333 75%);background-size:12px 12px;background-color:#1a1a1a;display:block}.library-card-name{margin:8px 0 2px;font-size:12px;color:#eee;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-card-date{margin:0;font-size:10px;color:#888}.library-card-del{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;border:none;background:#f44;color:#fff;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.library-card-del:hover{background:#c00}.library-empty{display:none;text-align:center;color:#888;font-size:13px;padding:40px 10px;margin:0}.library-empty.visible{display:block}.library-grid:empty{display:none}@media (max-width: 1023px) and (min-width: 768px){.app-container{grid-template-columns:300px minmax(0,1fr);gap:12px}.sidebar{padding:12px}.dim-row{flex-wrap:wrap}.dim-group{min-width:90px}.header-project-actions .settings-btn{padding:5px 6px}}@media (max-width: 767px){html,body{height:auto}body{overflow:auto;overflow-x:hidden;padding:0;display:block}.app-container{display:flex;flex-direction:column;height:auto;min-height:100dvh;gap:8px}.right-panel{order:1;height:auto;gap:8px}.sidebar{order:2}.canvas-area{flex:none;padding:8px;border-radius:0}canvas#editorCanvas{width:100%;height:auto;max-height:none}.output-section{padding:8px;border-radius:0}.preview-grid{gap:8px}.channel-card{padding:6px}.channel-card h4{font-size:11px;margin-bottom:4px}.channel-card canvas{height:40vw}.sidebar{height:auto;overflow:visible;border-radius:0;padding:12px 12px 0;gap:12px;box-shadow:none}.sidebar-scroll{overflow:visible;margin-right:0;padding-right:0;gap:12px}.app-brand{margin-bottom:0}.header-row{margin-bottom:4px}.header-project-actions{margin:0;flex-wrap:nowrap}.header-project-actions .settings-btn{flex:1;padding:8px 6px;font-size:13px}.dim-input,.text-input,select,.unit-toggle{font-size:16px}.dim-row{flex-wrap:wrap}.dim-group{min-width:105px}.dim-x{display:none}.unit-toggle{margin-top:14px}input[type=file]{min-width:0;max-width:100%}.file-pick-row{flex-wrap:nowrap}.upload-card>*{max-width:100%}.layer-btn{padding:14px 8px}.export-row{position:sticky;bottom:0;z-index:20;background:#1e1e1e;margin:0 -12px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #333;box-shadow:0 -4px 12px #0006;display:grid;grid-template-columns:1fr 1fr;gap:8px}.export-row .input-group{grid-column:1 / -1}.export-row .text-input{padding:8px 10px}.export-row .process-btn{padding:12px 6px;font-size:12px;letter-spacing:0;width:100%}.prompt-box,.progress-box{padding:20px}.palette-box,.library-box{padding:16px;max-height:92dvh}.material-tiles-grid{grid-template-columns:repeat(3,1fr)}.library-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.palette-footer-actions .palette-action-btn{flex:1}}
