:root{--tg-bg:var(--tg-theme-bg-color,#fff);--tg-text:var(--tg-theme-text-color,#000);--tg-hint:var(--tg-theme-hint-color,#999);--tg-link:var(--tg-theme-link-color,#2481cc);--tg-button-bg:var(--tg-theme-button-color,#2481cc);--tg-button-text:var(--tg-theme-button-text-color,#fff)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--tg-bg);color:var(--tg-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px}.app{flex-direction:column;height:100%;display:flex}.content{padding:16px;padding-bottom:calc(80px + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.tabbar{height:64px;padding-bottom:env(safe-area-inset-bottom);background:var(--tg-bg);border-top:1px solid #0000001a;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{min-height:44px;color:var(--tg-hint);justify-content:center;align-items:center;font-size:22px;text-decoration:none;display:flex}.tabbar a.active{color:var(--tg-link)}button{min-height:44px}.page h1{margin-bottom:12px;font-size:22px}.empty{color:var(--tg-hint)}.error{color:#d62929}.modal-backdrop{z-index:50;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--tg-bg);border-radius:12px;flex-direction:column;width:100%;max-width:420px;max-height:85vh;display:flex;overflow:hidden}.modal-head{border-bottom:1px solid #00000014;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal-close{cursor:pointer;background:0 0;border:0;font-size:24px}.modal-body{padding:16px;overflow-y:auto}.conflict-banner{color:#663;background:#fff4e5;border-left:4px solid #cc8a00;margin:12px 0;padding:12px}.conflict-banner button{margin-right:8px}.project-list{gap:12px;display:grid}.project-card{color:inherit;background:#0000000a;border-radius:12px;padding:16px;text-decoration:none;display:block}.project-card h3{margin:0 0 4px}.project-card .meta{color:var(--tg-hint);font-size:13px}.workspace-head{border-bottom:1px solid #00000014;padding:12px 0}.workspace-tabs{border-bottom:1px solid #00000014;grid-template-columns:repeat(4,1fr);margin-bottom:16px;display:grid}.workspace-tabs a{text-align:center;color:var(--tg-hint);border-bottom:2px solid #0000;padding:12px 8px;text-decoration:none}.workspace-tabs a.active{color:var(--tg-text);border-bottom-color:var(--tg-button-bg)}.scene-list{gap:8px;display:grid}.scene-row{cursor:pointer;background:#0000000a;border-radius:8px;align-items:center;padding:12px;display:flex}.scene-row.dragging{opacity:.4}.scene-row .order{text-align:center;width:32px;color:var(--tg-hint)}.scene-row .prompt{flex:1}.scene-row .badges{gap:4px;display:flex}.scene-row .badge{background:#0000000f;border-radius:4px;padding:2px 6px;font-size:11px}.drawer-backdrop{z-index:60;background:#00000080;position:fixed;inset:0}.drawer{background:var(--tg-bg);z-index:61;width:100%;max-width:420px;padding:16px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.field{margin-bottom:12px;display:block}.field label{color:var(--tg-hint);margin-bottom:4px;font-size:13px;display:block}.field input,.field select,.field textarea{background:var(--tg-bg);width:100%;color:var(--tg-text);font:inherit;border:1px solid #00000026;border-radius:6px;padding:8px}.field textarea{min-height:80px}button.primary{background:var(--tg-button-bg);color:var(--tg-button-text);cursor:pointer;font:inherit;border:0;border-radius:8px;padding:10px 16px}button.danger{color:#c00;cursor:pointer;background:0 0;border:0;padding:8px}.send-box{flex-direction:column;gap:8px;padding:8px 0;display:flex}.send-box .autocomplete-refs{flex:1}.send-box-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.asset-picker-button{cursor:pointer;background:#0000000f;border:0;border-radius:8px;padding:6px 10px;font-size:18px}.chat-back{cursor:pointer;background:0 0;border:0;padding:4px 8px;font-size:20px}.autocomplete-refs{width:100%;position:relative}.autocomplete-refs textarea{background:var(--tg-bg);width:100%;color:var(--tg-text);font:inherit;border:1px solid #00000026;border-radius:6px;min-height:60px;padding:8px}.autocomplete-dropdown{z-index:90;background:var(--tg-bg);border:1px solid #0000001f;border-radius:8px;max-height:240px;margin-bottom:4px;padding:4px;list-style:none;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 16px #0000001f}.autocomplete-item{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:14px;display:flex}.autocomplete-item.active{background:#2481cc1f}.autocomplete-item .ac-icon{text-align:center;width:20px}.autocomplete-item .ac-name{font-weight:600}.autocomplete-item .ac-display{color:var(--tg-hint);font-size:12px}.ref-chip{color:var(--tg-link);background:#2481cc1f;border-radius:4px;margin:0 1px;padding:1px 6px;font-size:.9em;font-weight:500;display:inline-block}.ref-chip.chip-character{color:#2c7a3e;background:#48a05626}.ref-chip.chip-location{color:#7a572c;background:#a0804826}.ref-chip.chip-style{color:#6b2c7a;background:#8c48a026}.ref-chip.chip-music{color:#7a2c5b;background:#a0488026}.ref-chip.chip-upload{color:#2c5b7a;background:#4880a026}.library-page{flex-direction:column;gap:12px;display:flex}.library-head,.page-head{justify-content:space-between;align-items:center;display:flex}.library-tabs{border-bottom:1px solid #00000014;gap:4px;padding-bottom:4px;display:flex;overflow-x:auto}.library-tab{cursor:pointer;color:var(--tg-hint);font:inherit;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;padding:8px 12px}.library-tab.active{color:var(--tg-text);border-bottom-color:var(--tg-button-bg)}.library-search{z-index:1;background:var(--tg-bg);padding:8px 0;position:sticky;top:0}.library-search input{background:var(--tg-bg);width:100%;color:var(--tg-text);font:inherit;border:1px solid #00000026;border-radius:8px;padding:8px 12px}.library-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;display:grid}.lib-card{text-align:left;cursor:pointer;font:inherit;color:inherit;background:#0000000a;border:0;border-radius:12px;flex-direction:column;align-items:stretch;padding:8px;display:flex;overflow:hidden}.lib-card-avatar{aspect-ratio:1;background:#0000000f;border-radius:8px;justify-content:center;align-items:center;width:100%;margin-bottom:8px;display:flex;overflow:hidden}.lib-card-avatar img{object-fit:cover;width:100%;height:100%}.lib-card-avatar .placeholder{font-size:32px}.lib-card-name{font-size:14px;font-weight:600}.lib-card-meta{color:var(--tg-hint);margin-top:2px;font-size:12px}.card-section{border-top:1px solid #0000000f;padding:12px 0}.card-section:first-child{border-top:0}.card-section h3{color:var(--tg-hint);margin-bottom:8px;font-size:14px}.refs-gallery{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.refs-gallery .ref-thumb{aspect-ratio:1;cursor:grab;background:#0000000f;border-radius:8px;position:relative;overflow:hidden}.refs-gallery .ref-thumb.dragging{opacity:.4}.refs-gallery .ref-thumb img{object-fit:cover;width:100%;height:100%}.refs-gallery .ref-thumb .remove{color:#fff;cursor:pointer;background:#0009;border:0;border-radius:50%;width:22px;height:22px;font-size:14px;line-height:1;position:absolute;top:2px;right:2px}.lora-badge{background:#00000014;border-radius:4px;padding:2px 8px;font-size:12px;display:inline-block}.lora-badge.untrained{color:#666;background:#eee}.lora-badge.training{color:#b56700;background:#fff4e5}.lora-badge.trained{color:#0a6c2e;background:#d4f5dd}.slider-row{align-items:center;gap:8px;display:flex}.slider-row input[type=range]{flex:1}.slider-row .val{text-align:right;font-variant-numeric:tabular-nums;width:40px}.traits-editor textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.toast{color:#fff;z-index:100;background:#000000d9;border-radius:8px;padding:8px 16px;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}._page_z7ugf_1{flex-direction:column;gap:16px;display:flex}._head_z7ugf_7{align-items:center;gap:8px;display:flex}._back_z7ugf_13{font:inherit;cursor:pointer;color:var(--tg-text);background:0 0;border:0;padding:0 8px;font-size:22px}._title_z7ugf_23{font-size:18px;font-weight:600}._section_z7ugf_28{flex-direction:column;gap:8px;display:flex}._sectionTitle_z7ugf_34{color:var(--tg-hint);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:600}._toast_z7ugf_42{color:#c0392b;background:#dc35451a;border-radius:6px;padding:8px 12px;font-size:13px}
