:root{--bg: #f3f6fb;--panel: #ffffff;--panel-soft: #f8fafc;--text: #0f172a;--muted: #64748b;--line: #e2e8f0;--primary: #2563eb;--primary-600: #1d4ed8;--primary-50: #eff6ff;--primary-100: #dbeafe;--accent: #0ea5e9;--info-bg: #eef6ff;--info-fg: #1e40af;--success-bg: #e7f8ef;--success-fg: #065f46;--warn-bg: #fff4de;--warn-fg: #92400e;--danger-bg: #feeff0;--danger-fg: #b91c1c;--btn-h-sm: 34px;--btn-h-md: 40px;--btn-h-lg: 46px;--success: #059669;--danger: #dc2626;--shadow-sm: 0 2px 10px rgba(15, 23, 42, .05);--shadow-md: 0 10px 30px rgba(15, 23, 42, .08);--radius: 12px}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at top right,#eef4ff,var(--bg) 40%);color:var(--text);line-height:1.55;letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.page{width:100%;max-width:none;margin:14px 0 28px;padding:0 24px;box-sizing:border-box}.app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:14px 16px;border:1px solid #dbe6f5;border-radius:14px;background:linear-gradient(135deg,#fff,#f7faff 62%,#eef5ff);box-shadow:0 8px 20px #2563eb0f}.app-header h1{margin:0 0 6px;font-size:28px;letter-spacing:.2px}.brand-block p{margin:0;color:var(--muted);font-size:13px}.brand-badge{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:999px;border:1px solid #a8c7ff;color:var(--primary-600);font-weight:600;font-size:11px;background:linear-gradient(180deg,#f4f9ff,#eaf2ff);margin-bottom:8px}.app-actions{display:flex;gap:8px;align-items:center}.dev-toggle.is-on{border-color:#86efac;background:linear-gradient(180deg,#f0fdf4,#dcfce7);color:#166534}.card{background:var(--panel);border-radius:14px;padding:20px;margin-bottom:16px;border:1px solid #dfe8f5;box-shadow:0 4px 16px #0f172a0f}.card h4,.card h5{margin-top:0;margin-bottom:10px;letter-spacing:.01em}.workflow-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.workflow-head__title h2{margin:0 0 6px}.workflow-head__title p{margin:0;color:var(--muted);font-size:13px}.workflow-head__meta{display:flex;gap:8px;flex-wrap:wrap}.status-chip{height:28px;display:inline-flex;align-items:center;padding:0 12px;border-radius:999px;border:1px solid #a9c6ff;background:linear-gradient(180deg,#f3f8ff,#e7f0ff);color:var(--primary-600);font-size:12px;font-weight:600}.status-chip.soft{border-color:var(--line);background:var(--panel-soft);color:var(--muted)}.btn-primary,.btn-secondary,.btn-icon{border-radius:10px;border:1px solid transparent;font-size:13px;font-weight:600;line-height:1.15;cursor:pointer;transition:all .18s ease;min-height:var(--btn-h-md);letter-spacing:.01em}.btn-primary{padding:10px 15px;color:#fff;background:linear-gradient(180deg,#3f8cff,#2563eb 55%,#1d4ed8);box-shadow:0 10px 20px #2563eb47}.btn-primary:hover:not(:disabled){transform:translateY(-1px);background:linear-gradient(180deg,#60a5fa 0%,var(--primary-600) 100%)}.btn-secondary{padding:9px 13px;color:#1f2a44;background:linear-gradient(180deg,#fff,#f7faff);border-color:#c9d8ee}.btn-sm{min-height:var(--btn-h-sm);padding:0 10px;font-size:12px;font-weight:600}.btn-lg{min-height:var(--btn-h-lg);font-size:14px;padding:0 16px}.btn-secondary:hover:not(:disabled){border-color:#90b4ea;background:#f3f8ff}.btn-icon{width:var(--btn-h-sm);height:var(--btn-h-sm);min-height:var(--btn-h-sm);background:#fff;border-color:#cbd5e1;color:#334155}button:disabled{opacity:.55;cursor:not-allowed;transform:none!important}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #7ba8f8;outline-offset:1px}.quality-card{display:flex;align-items:center;gap:12px;margin-bottom:12px}.quality-card label{font-weight:600}.quality-card select{min-width:120px;padding:9px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.quality-card--highlight{border:1px solid #b9d4ff;background:linear-gradient(180deg,#f8fbff,#f2f8ff)}.section-header h2{margin:0 0 6px;font-size:22px;line-height:1.25;letter-spacing:.01em}.module-title{display:inline-flex;align-items:center;gap:10px}.module-title:before{content:"";width:10px;height:10px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#5b92ff,#3f74ec);box-shadow:0 0 0 2px #e8f1ff}.submodule-title{position:relative;padding-left:12px;margin-bottom:8px}.submodule-title:before{content:"";position:absolute;left:0;top:.25em;width:4px;height:1.1em;border-radius:4px;background:linear-gradient(180deg,#5b92ff,#3f74ec)}.section-header p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}.section-header{margin-bottom:10px}.step-indicator{display:flex;align-items:center;justify-content:center;padding:8px 8px 10px;border-bottom:1px solid var(--line);margin-bottom:10px}.step-indicator-wrap{margin-bottom:6px}.step{display:flex;flex-direction:column;align-items:center}.step-number{width:42px;height:42px;border-radius:50%;border:1px solid #cbd5e1;background:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;margin-bottom:5px}.step.active .step-number{background:linear-gradient(180deg,#3f8cff,#2563eb);border-color:#2563eb;color:#fff;box-shadow:0 10px 16px #2563eb33}.step.done .step-number{background:var(--success);border-color:var(--success);color:#fff}.step-label{font-size:13px;line-height:1.35;color:var(--muted)}.step.active .step-label{color:#3b82f6;font-weight:500}.step-line{width:88px;height:2px;background:#dbe3ef;margin:0 12px 18px}.step-content.card{min-height:220px}.step-content.card>*{animation:content-fade-in .26s ease}.page.desktop{max-width:none;margin:14px 0 28px;padding:0 24px}.page.desktop .create-plan-page{display:block}.page.desktop .step-content.card{min-height:420px}.page.desktop .field-grid,.page.desktop .persona-grid,.page.desktop .image-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.page.desktop .history-modal{max-width:min(94vw,1460px)}.page.desktop .history-panel__content{grid-template-columns:320px 1fr;gap:14px}@media (min-width: 1180px){.page.desktop .create-plan-page.has-debug{display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"step step" "content debug";gap:14px;align-items:start}.page.desktop .create-plan-page.has-debug>.step-indicator-wrap{grid-area:step}.page.desktop .create-plan-page.has-debug>.step-content{grid-area:content}.page.desktop .create-plan-page.has-debug>.debug-panel{grid-area:debug;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}}@media (min-width: 1800px){.page.desktop .field-grid,.page.desktop .image-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@keyframes content-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.filters{display:flex;gap:24px;margin:16px 0;align-items:center}.filter-group{display:flex;align-items:center;gap:8px}.filter-group--action{margin-left:auto}.chips{display:flex;gap:6px}.chip{padding:6px 12px;border:1px solid #cbd5e1;border-radius:20px;background:#fff;cursor:pointer;font-size:13px;transition:all .15s ease;min-height:34px}.chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:24px}.preset-sections{display:flex;flex-direction:column;gap:16px}.preset-section{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px}.preset-section__title{font-size:16px;font-weight:700;margin-bottom:8px}.preset-gender-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.preset-gender-block{border:1px solid #e6ebf5;border-radius:10px;background:#f9fbff;padding:10px}.preset-gender-block__title{font-size:13px;font-weight:700;color:#1e3a8a}.preset-gender-block .preset-grid{margin-top:10px}.preset-card{padding:20px;border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:all .2s ease;background:#fff}.preset-card:hover{border-color:#bfdbfe;box-shadow:var(--shadow-md);transform:translateY(-1px)}.preset-card--new{border-style:dashed;text-align:center;color:#6b7280}.preset-card__header{display:flex;justify-content:space-between;margin-bottom:8px}.preset-card__category{background:#eff6ff;color:#3b82f6;padding:2px 8px;border-radius:4px;font-size:12px}.preset-card__name{font-size:18px;font-weight:600;margin-bottom:12px}.preset-card__attrs{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-block;padding:4px 9px;border-radius:4px;font-size:12px;line-height:1.3;background:#f3f4f6}.tag.preset{background:#e8f1ff;color:#1d4ed8}.tag.modified{background:#fff1d6;color:#b45309}.tag.image{background:#edf0ff;color:#4f46e5}.tag.lock{background:#fff4de;color:#92400e;border:1px solid #f5d08a}.group-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.group-tab{padding:8px 12px;border:1px solid #d1d5db;border-radius:8px;background:#fff;cursor:pointer;font-weight:600;min-height:36px}.group-tab.active{background:linear-gradient(180deg,#f2f8ff,#e7f0ff);color:#1d4ed8;border-color:#95bdf8}.field-group{display:none}.field-group.active{display:block}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field-input{padding:18px 16px;border:1px solid var(--line);border-radius:8px;margin-bottom:12px;background:#fff}.field-input.modified{border-color:#f0b454;background:#fffaf0}.field-input.has-image{border-color:#6d74ff;background:#f6f7ff}.field-input.is-disabled{border-style:dashed;border-color:#c5cedc;background:#f8fafd}.field-input__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.field-input__header label{margin:0}.field-input__body{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start}.field-input__main{min-width:0;display:flex;flex-direction:column;gap:8px}.field-input__mode-switch{display:flex;gap:8px}.field-input__mode-switch .btn-secondary.active{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.field-input__main select,.field-input__main input,.scene-input textarea,.recognize-section textarea{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #cbd5e1;border-radius:8px;transition:border-color .15s ease,box-shadow .15s ease;font-size:14px;line-height:1.5}.field-input__main select:focus,.field-input__main input:focus,.scene-input textarea:focus,.recognize-section textarea:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 3px #3b82f624}.field-input__actions{display:flex;flex-direction:column;gap:8px}.field-input__image{margin-top:12px;display:flex;gap:12px;padding:12px;background:#fff;border-radius:8px}.field-input__image img{width:80px;height:80px;object-fit:cover;border-radius:6px}.field-input__tip{margin-top:8px;font-size:12px;color:#6b7280;line-height:1.6}.field-input__tip--locked{color:#8a5a00;background:#fff7e7;border:1px solid #f3ddb2;border-radius:6px;padding:6px 8px}.editor-actions,.generator-actions,.result-actions{display:flex;gap:12px;margin-top:20px}.garment-editor .editor-actions,.outfit-generator .generator-actions,.result-preview .result-actions{position:sticky;bottom:8px;z-index:30;padding:12px 14px;border:1px solid #dbe3ef;border-radius:12px;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 18px #0f172a1a;justify-content:flex-end}.editor-actions .btn-primary,.generator-actions .btn-primary,.result-actions .btn-primary{min-width:178px;min-height:var(--btn-h-md);font-size:14px}.editor-actions .btn-secondary,.generator-actions .btn-secondary,.result-actions .btn-secondary{min-height:var(--btn-h-md)}.result-copywriting-block{margin-top:12px;padding:12px;border:1px solid #dbe5f3;border-radius:10px;background:#f8fbff}.result-copywriting-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.result-copywriting-head h5{margin:0}.result-copywriting-actions{display:flex;gap:8px}.result-copywriting-content{display:grid;gap:8px}.copywriting-field{padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.copywriting-field label{display:block;margin-bottom:4px;color:#475569;font-size:12px;font-weight:600}.copywriting-field p{margin:0;color:#0f172a;font-size:13px;line-height:1.6}.copywriting-body{white-space:pre-wrap}.accessory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.accessory-item{display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:0 12px;border:1px solid #d6deeb;border-radius:10px;background:#fff;font-size:13px;font-weight:600;color:#334155;cursor:pointer;transition:all .16s ease}.accessory-item:hover{border-color:#93b5ea;background:#f8fbff}.accessory-item.active{border-color:#3b82f6;background:linear-gradient(180deg,#f2f8ff,#eaf2ff);color:#1e3a8a}.accessory-item input{margin:0}.accessory-item--none{border-style:dashed}.chat-box{max-height:240px;overflow:auto;border:1px solid #e2e8f0;border-radius:10px;padding:10px;background:#fff;margin-bottom:10px}.chat-item{padding:8px 10px;border-radius:10px;margin-bottom:8px;line-height:1.6;font-size:13px}.chat-item.user{background:#eff6ff}.chat-item.assistant{background:#f8fafc}.outfit-scene-selector{border:1px solid #dbe3ef;border-radius:12px;background:linear-gradient(180deg,#fbfdff,#f7faff);padding:16px}.scene-series-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.scene-series-card{border:1px solid #dfe7f4;border-radius:10px;background:#fff;padding:0;overflow:hidden}.scene-series-head{width:100%;min-height:42px;border:none;border-bottom:1px solid #eef3fb;background:#f8fbff;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;cursor:pointer}.scene-series-head.active{background:linear-gradient(180deg,#eff6ff,#e7f0ff)}.scene-series-title{font-size:13px;font-weight:700;color:#1d4ed8;margin-bottom:0}.scene-series-arrow{color:#64748b;font-size:12px}.scene-option-list{display:flex;flex-direction:column;padding:10px;gap:8px}.scene-option-list.collapsed{display:none}.scene-option{width:100%;border:1px solid #d6deeb;border-radius:9px;background:#fff;text-align:left;padding:9px 10px;cursor:pointer;transition:all .16s ease}.scene-option:hover{border-color:#9db9ea;background:#f8fbff}.scene-option.active{border-color:#3b82f6;background:linear-gradient(180deg,#f2f8ff,#eaf2ff);box-shadow:inset 0 0 0 1px #2563eb2e}.scene-option-label{display:block;font-size:13px;font-weight:700;color:#0f172a}.scene-option-desc{display:block;font-size:12px;color:#64748b;margin-top:4px;line-height:1.45}.scene-custom-wrap{margin-top:12px}.scene-custom-wrap textarea{margin-top:8px;width:100%;border:1px solid #cfd8e8;border-radius:8px;padding:10px;font-size:13px;line-height:1.55}.scene-custom-wrap textarea:focus{border-color:#7ba8f8;box-shadow:0 0 0 3px #3b82f61f}.outfit-plan-card p{margin:10px 0 14px;font-size:14px;line-height:1.72;color:#0f172a}.outfit-plan-title{font-size:18px;font-weight:700;letter-spacing:.01em}.outfit-card--compact{padding-top:14px;padding-bottom:14px}.btn-ghost{border-color:#d2dbea;background:#fff}.btn-strong{box-shadow:0 12px 24px #2563eb47}.outfit-generator .section-header p{margin:0;color:#54657d;font-size:14px;line-height:1.7}.outfit-generator label{display:block;font-size:14px;font-weight:700;margin-bottom:10px;color:#0f172a}.outfit-generator .card{margin-top:14px;margin-bottom:14px}.outfit-brief-card{border:1px solid #d8e3f5;background:linear-gradient(180deg,#fff,#f8fbff)}.outfit-brief-card h4{margin-bottom:10px}.outfit-brief-card .summary-tags+.summary-tags{margin-top:8px}.chat-composer{display:grid;grid-template-columns:1fr;gap:10px;align-items:stretch}.chat-target-switch{grid-column:1 / -1;display:inline-flex;gap:8px}.chat-target-pill{min-height:34px;padding:0 12px;border:1px solid #d6deeb;border-radius:999px;background:#fff;color:#334155;font-size:13px;font-weight:700;cursor:pointer;transition:all .16s ease}.chat-target-pill:hover{border-color:#93b5ea;background:#f8fbff}.chat-target-pill.active{border-color:#3b82f6;background:linear-gradient(180deg,#f2f8ff,#eaf2ff);color:#1e3a8a}.chat-composer textarea{min-height:68px;resize:vertical;border:1px solid #cfd8e8;border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.55;box-sizing:border-box}.chat-composer .btn-primary{justify-self:end;min-width:116px;min-height:44px}.generator-actions--sample-bottom{margin-top:18px}.markdown-content{border:1px solid #dbe5f3;border-radius:10px;background:#f8fbff;padding:10px 12px;color:#1f2937;line-height:1.7}.markdown-content p{margin:0 0 8px}.markdown-content p:last-child{margin-bottom:0}.markdown-content ul,.markdown-content ol{margin:6px 0 8px 20px}.copywriting-actions-bottom{position:sticky;bottom:8px;z-index:12;display:flex;justify-content:flex-end;padding-top:6px;margin-top:8px;margin-bottom:10px;background:linear-gradient(180deg,#fff0,#fff 32%)}.badge{margin-left:8px;padding:2px 8px;border-radius:12px;background:#eef2ff;color:#4338ca;font-size:12px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#02061785;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:#fff;border-radius:14px;border:1px solid #dbe3ef;width:90%;max-width:560px;max-height:90vh;overflow:auto;box-shadow:0 30px 70px #0206174d}.modal-header,.modal-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #e5e7eb}.modal-footer{border-bottom:none;border-top:1px solid #e5e7eb;justify-content:flex-end}.modal-body{padding:16px}.upload-zone{border:2px dashed #d1d5db;border-radius:12px;padding:32px;text-align:center;cursor:pointer}.preview-image{width:100%;max-height:260px;object-fit:contain;border-radius:8px;margin-bottom:8px}.error{color:#b91c1c;margin-top:8px}.persona-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:12px}.persona-card{padding:16px;border:2px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .2s}.persona-card.active{border-color:#3b82f6;background:#eff6ff}.persona-label{font-weight:600;margin-bottom:4px}.persona-desc{font-size:13px;color:#6b7280}.scene-input,.garment-summary,.persona-selector{margin-top:16px}.summary-tags{display:flex;flex-wrap:wrap;gap:6px}.image-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:24px 0}.image-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;box-shadow:var(--shadow-sm)}.image-label{padding:12px 16px;background:#f8fafc;font-weight:600;font-size:13px;line-height:1.35;border-bottom:1px solid var(--line)}.image-card img{width:100%;aspect-ratio:1;object-fit:cover}.image-actions{padding:12px 16px;display:flex;gap:8px;flex-wrap:wrap}.generating-state{text-align:center;padding:60px 20px;border:2px solid #93c5fd;background:linear-gradient(180deg,#eff6ff,#f8fbff);border-radius:12px;box-shadow:0 10px 24px #3b82f626}.spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 24px}.spinner-inline{width:24px;height:24px;margin:0;border-width:3px}.processing-banner{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #8bbbf8;border-left:5px solid #2563eb;border-radius:10px;background:linear-gradient(180deg,var(--info-bg) 0%,#e9f2ff 100%);margin:12px 0 16px}.processing-banner__text{display:flex;flex-direction:column;gap:2px}.processing-banner__text strong{font-size:14px;color:var(--info-fg)}.processing-banner__text span{font-size:13px;color:#1e3a8a}@keyframes spin{to{transform:rotate(360deg)}}.qa-result{padding:16px;border-radius:8px;margin-top:16px}.qa-result.passed{background:var(--success-bg);color:var(--success-fg)}.qa-result.failed{background:var(--warn-bg);color:var(--warn-fg)}.error{color:var(--danger-fg);background:var(--danger-bg);border:1px solid #fecdd3;border-radius:8px;padding:10px 12px}.image-toolbar{margin:12px 0 16px}.image-card img{cursor:zoom-in}.image-preview-modal{width:min(96vw,1080px);max-width:min(96vw,1080px);height:min(92vh,920px);max-height:min(92vh,920px);display:flex;flex-direction:column;overflow:hidden}.image-preview-modal .modal-header{flex:0 0 auto}.image-preview-modal .modal-body{flex:1 1 auto;min-height:0;overflow:hidden;padding:10px 12px;display:flex;align-items:center;justify-content:center}.image-preview-modal .modal-footer{flex:0 0 auto;position:sticky;bottom:0;z-index:2;background:#fff;border-top:1px solid #e2e8f0;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.image-preview-body{text-align:center;height:100%}.image-preview-zoom-wrap{width:100%;height:100%;max-height:none;display:flex;align-items:center;justify-content:center;overscroll-behavior:contain;overflow:hidden}.image-preview-zoom-wrap.is-zoomed{overflow:auto;justify-content:flex-start;align-items:flex-start}.image-preview-zoom-wrap.is-draggable{cursor:grab}.image-preview-zoom-wrap.is-dragging{cursor:grabbing}.image-preview-full{width:auto;max-width:100%;height:auto;max-height:100%;object-fit:contain;transform-origin:center center;transition:transform .08s ease-out;display:block;margin:0 auto}.image-preview-zoom-wrap.is-fit .image-preview-full{max-width:100%;max-height:100%}.image-preview-full.zoomable{cursor:zoom-in}.debug-panel{margin-top:20px}.debug-panel-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.debug-panel-actions{display:flex;gap:8px}.debug-panel-header h3{margin:0}.debug-panel-tip{color:#4b5563;font-size:13px;line-height:1.6}.loading{display:inline-flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid #dbe6f8;background:linear-gradient(180deg,#f6faff,#edf4ff);color:#27406d;font-size:13px;font-weight:600}.loading:before{content:"";width:14px;height:14px;border-radius:50%;border:2px solid #b8cff8;border-top-color:#3f74ec;animation:spin .8s linear infinite}.debug-call-list details{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-top:10px;background:#fcfdff}.debug-call-list summary{cursor:pointer;font-weight:600}.debug-call-list h4{margin:12px 0 6px;font-size:13px}.debug-compact-list{display:grid;grid-template-columns:1fr;gap:10px}.debug-compact-card{border:1px solid #d1d5db;border-radius:8px;background:#fff;padding:10px}.debug-compact-title{font-weight:600;margin-bottom:8px}.debug-compact-row{display:grid;grid-template-columns:180px 1fr;gap:8px;align-items:start;margin-bottom:6px}.debug-compact-label{color:#374151;font-family:Consolas,Courier New,monospace;font-size:12px}.debug-compact-value{color:#111827;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-all}.debug-json{margin:0;padding:12px;border-radius:8px;background:#0b1228;color:#dbe7ff;overflow-x:auto;font-size:12px;line-height:1.55}.json-viewer{display:flex;flex-direction:column;gap:8px}.json-viewer-toolbar{display:flex;gap:8px}.json-viewer-toolbar .btn-secondary.active{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.history-modal{max-width:1280px;width:min(96vw,1280px);max-height:92vh}.history-modal .modal-body{padding:12px}.history-modal-mobile{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0}.history-modal-mobile .modal-header{position:sticky;top:0;z-index:2;background:#fff}.history-modal-mobile .modal-body{height:calc(100vh - 64px);overflow:auto}.history-panel{background:#fff}.history-panel__header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.history-panel__actions{display:flex;gap:8px}.history-panel__tip{margin:0;color:#4b5563;font-size:13px;line-height:1.55}.history-panel__content{display:grid;grid-template-columns:280px 1fr;gap:12px}.history-list{border:1px solid #e5e7eb;border-radius:10px;background:#fafafa;padding:8px;max-height:72vh;overflow:auto}.history-list__item{width:100%;text-align:left;border:1px solid #dbe3ef;background:#fff;border-radius:8px;padding:10px;margin-bottom:8px;cursor:pointer;transition:all .16s ease}.history-list__item:hover{border-color:#bfdbfe;transform:translateY(-1px)}.history-list__item.active{border-color:#3b82f6;background:linear-gradient(180deg,#f2f8ff,#e8f1ff)}.history-drawer-overlay{z-index:1200}.history-drawer{width:min(92vw,420px);max-height:86vh;border-radius:12px;background:#fff;border:1px solid #dbe3ef;box-shadow:0 24px 50px #0f172a38;overflow:hidden}.history-list-drawer{max-height:calc(86vh - 64px);border:none;border-radius:0}.history-list__title{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-bottom:4px}.history-list__meta{font-size:12px;color:#6b7280;line-height:1.45}.history-list__meta.mono{font-family:Consolas,Courier New,monospace;margin-top:4px}.history-detail{border:1px solid #dbe3ef;border-radius:10px;background:#fff;padding:12px;max-height:72vh;overflow:auto;line-height:1.6}.history-empty{font-size:13px;color:var(--muted);padding:12px}.empty-state{border:1px dashed var(--line);border-radius:10px;padding:16px;background:var(--panel-soft)}.empty-state__title{font-weight:700;margin-bottom:6px}.empty-state__desc{color:var(--muted);font-size:13px;line-height:1.6}@media (max-width: 960px){.page{padding:0 12px}.app-header{flex-direction:column;align-items:flex-start}.workflow-head{flex-direction:column}.history-panel__content,.preset-gender-columns{grid-template-columns:1fr}.filters{flex-wrap:wrap;gap:10px 16px}.filter-group--action{margin-left:0;width:100%;justify-content:flex-end}.step-indicator{overflow-x:auto;justify-content:flex-start;padding-bottom:14px}.step-line{width:28px;margin-bottom:14px}.field-grid,.field-input__body{grid-template-columns:1fr}.field-input__actions{flex-direction:row;flex-wrap:wrap}.garment-editor .editor-actions,.outfit-generator .generator-actions,.result-preview .result-actions{justify-content:flex-end}}.page.mobile{margin:8px 0 20px;padding:0 10px;font-size:15px}.page.mobile .app-header h1{font-size:24px;line-height:1.25}.page.mobile .brand-block p{font-size:12px}.page.mobile .card{padding:14px;border-radius:12px}.page.mobile .app-actions{width:100%;justify-content:space-between}.page.mobile .app-actions .history-trigger{display:none}.history-fab{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:1200;border:1px solid #bfdbfe;background:linear-gradient(180deg,#3b82f6,#1d4ed8);color:#fff;border-radius:999px;min-height:44px;padding:0 16px;font-size:13px;font-weight:700;box-shadow:0 12px 24px #2563eb59}.page.mobile .status-chip.soft{height:24px;font-size:11px}.page.mobile .history-panel__content{grid-template-columns:1fr}.page.mobile .step-indicator-wrap{position:sticky;top:0;z-index:50;background:var(--bg);padding-top:6px;margin-bottom:8px}.page.mobile .step-indicator{overflow-x:auto;overflow-y:hidden;justify-content:flex-start;white-space:nowrap;scrollbar-width:thin;padding-bottom:12px}.page.mobile .step{min-width:56px}.page.mobile .step-label{font-size:12px;line-height:1.4}.page.mobile .module-title:before{width:8px;height:8px}.page.mobile .history-list{max-height:32vh}.page.mobile .history-list-mobile{display:none}.page.mobile .history-detail{max-height:none}.page.mobile .image-grid{grid-template-columns:1fr;gap:12px;margin:12px 0}.page.mobile .field-grid{grid-template-columns:1fr}.page.mobile .field-input{padding:12px}.page.mobile .field-input__mode-switch{flex-wrap:wrap}.page.mobile .field-input__mode-switch .btn-secondary{min-height:40px}.page.mobile .field-input__body{grid-template-columns:1fr}.page.mobile .field-input__actions{flex-direction:row;flex-wrap:wrap}.page.mobile .persona-grid,.page.mobile .scene-series-grid{grid-template-columns:1fr}.page.mobile .scene-option{padding:10px}.page.mobile .accessory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page.mobile .chat-composer{grid-template-columns:1fr}.page.mobile .chat-target-switch{width:100%}.page.mobile .chat-target-pill{flex:1 1 0;justify-content:center}.page.mobile .chat-composer .btn-primary{width:100%}.page.mobile .scene-input textarea,.page.mobile .recognize-section textarea{min-height:110px}.page.mobile p,.page.mobile .persona-desc,.page.mobile .history-panel__tip,.page.mobile .empty-state__desc{line-height:1.72}.page.mobile .summary-tags{row-gap:8px}.page.mobile .garment-editor .editor-actions,.page.mobile .outfit-generator .generator-actions,.page.mobile .result-preview .result-actions{gap:10px;padding:10px 10px calc(10px + env(safe-area-inset-bottom));justify-content:flex-start;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.page.mobile .editor-actions .btn-primary,.page.mobile .generator-actions .btn-primary,.page.mobile .result-actions .btn-primary,.page.mobile .editor-actions .btn-secondary,.page.mobile .generator-actions .btn-secondary,.page.mobile .result-actions .btn-secondary{width:100%;min-height:46px;font-size:14px;min-width:0}.page.mobile .outfit-generator .generator-actions>.btn-primary:last-child{grid-column:1 / -1}@media (min-width: 1440px){.field-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
