Spaces:
Running
Running
| /* ===== Director Tools Page ===== */ | |
| .dt-layout { | |
| display: flex; | |
| width: 100%; | |
| height: 100%; | |
| overflow: hidden; | |
| } | |
| .dt-left, .dt-right { | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| overflow: hidden; | |
| min-width: 0; | |
| } | |
| .dt-left { | |
| border-right: 1px solid var(--border); | |
| } | |
| .dt-panel-header { | |
| padding: 8px 16px; | |
| font-size: 0.8rem; | |
| font-weight: 600; | |
| color: var(--text-muted); | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| border-bottom: 1px solid var(--border); | |
| background: var(--bg-secondary); | |
| flex-shrink: 0; | |
| } | |
| .dt-panel-body { | |
| flex: 1; | |
| overflow-y: auto; | |
| overflow-x: hidden; | |
| padding: 12px 16px; | |
| } | |
| /* Preview */ | |
| .dt-preview-container { | |
| position: relative; | |
| width: 100%; | |
| border-radius: var(--radius); | |
| overflow: hidden; | |
| border: 1px solid var(--border); | |
| background: #000; | |
| margin-bottom: 8px; | |
| } | |
| .dt-preview-img { | |
| display: block; | |
| width: 100%; | |
| height: auto; | |
| object-fit: contain; | |
| } | |
| /* Input buttons row */ | |
| .dt-btn-row { | |
| display: flex; | |
| gap: 6px; | |
| margin-bottom: 10px; | |
| flex-wrap: wrap; | |
| } | |
| .dt-btn-row .btn-mask { | |
| flex: 1; | |
| min-width: 0; | |
| font-size: 0.78rem; | |
| padding: 5px 6px; | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| /* Output gallery */ | |
| .dt-output-placeholder { | |
| color: var(--text-muted); | |
| text-align: center; | |
| padding: 60px 20px; | |
| font-size: 0.9rem; | |
| } | |
| .dt-output-single, .dt-output-multi { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| padding: 8px; | |
| } | |
| .dt-output-img-large { | |
| max-width: 100%; | |
| max-height: 50vh; | |
| object-fit: contain; | |
| border-radius: var(--radius); | |
| box-shadow: 0 4px 20px var(--shadow); | |
| } | |
| .dt-output-grid { | |
| display: flex; | |
| gap: 8px; | |
| padding: 8px; | |
| justify-content: center; | |
| flex-wrap: wrap; | |
| } | |
| .dt-output-grid-item { | |
| width: 100px; | |
| height: 100px; | |
| border-radius: 6px; | |
| overflow: hidden; | |
| border: 2px solid var(--border); | |
| cursor: pointer; | |
| transition: border-color var(--transition); | |
| } | |
| .dt-output-grid-item.selected { | |
| border-color: var(--accent); | |
| box-shadow: 0 0 8px var(--accent-glow); | |
| } | |
| .dt-output-grid-item img { | |
| width: 100%; | |
| height: 100%; | |
| object-fit: cover; | |
| } | |
| /* Send buttons */ | |
| .dt-send-row { | |
| display: flex; | |
| gap: 6px; | |
| padding: 8px 16px; | |
| border-top: 1px solid var(--border); | |
| background: var(--bg-secondary); | |
| flex-shrink: 0; | |
| } | |
| .dt-send-row .btn-mask { | |
| flex: 1; | |
| font-size: 0.78rem; | |
| padding: 5px 6px; | |
| } | |
| /* ===== Controls Section ===== */ | |
| .dt-controls { | |
| border-top: 1px solid var(--border); | |
| background: var(--bg-secondary); | |
| padding: 12px 16px; | |
| flex-shrink: 0; | |
| overflow-y: auto; | |
| max-height: 40vh; | |
| } | |
| /* Req type radio row */ | |
| .dt-req-type-row { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 4px; | |
| margin-bottom: 12px; | |
| } | |
| .dt-req-type-option { | |
| cursor: pointer; | |
| } | |
| .dt-req-type-option input[type="radio"] { | |
| position: absolute; | |
| opacity: 0; | |
| width: 0; | |
| height: 0; | |
| } | |
| .dt-req-type-label { | |
| display: block; | |
| padding: 6px 12px; | |
| font-size: 0.82rem; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius); | |
| color: var(--text-secondary); | |
| background: var(--bg-input); | |
| transition: all var(--transition); | |
| user-select: none; | |
| } | |
| .dt-req-type-option input:checked + .dt-req-type-label { | |
| background: var(--accent); | |
| color: #fff; | |
| border-color: var(--accent); | |
| } | |
| .dt-req-type-option:hover .dt-req-type-label { | |
| border-color: var(--accent); | |
| } | |
| /* Size tabs */ | |
| .dt-size-tabs { | |
| display: flex; | |
| gap: 0; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius); | |
| overflow: hidden; | |
| margin-bottom: 10px; | |
| } | |
| .dt-size-tab { | |
| flex: 1; | |
| padding: 6px 12px; | |
| text-align: center; | |
| font-size: 0.82rem; | |
| cursor: pointer; | |
| background: var(--bg-input); | |
| color: var(--text-secondary); | |
| transition: all var(--transition); | |
| border: none; | |
| user-select: none; | |
| } | |
| .dt-size-tab.active { | |
| background: var(--accent); | |
| color: #fff; | |
| } | |
| /* Size inputs */ | |
| .dt-size-row { | |
| display: flex; | |
| gap: 8px; | |
| align-items: flex-end; | |
| margin-bottom: 8px; | |
| } | |
| .dt-size-row .form-group { | |
| flex: 1; | |
| margin-bottom: 0; | |
| } | |
| .dt-size-row .form-input { | |
| text-align: center; | |
| } | |
| .dt-scale-hint { | |
| font-size: 0.78rem; | |
| color: var(--text-muted); | |
| margin-bottom: 6px; | |
| min-height: 1.2em; | |
| } | |
| /* Extra params (colorize / emotion) */ | |
| #dt-extra-params { | |
| margin-top: 8px; | |
| } | |
| .dt-radio-row { | |
| display: flex; | |
| gap: 4px; | |
| flex-wrap: wrap; | |
| } | |
| .dt-radio-option { | |
| cursor: pointer; | |
| } | |
| .dt-radio-option input[type="radio"] { | |
| position: absolute; | |
| opacity: 0; | |
| width: 0; | |
| height: 0; | |
| } | |
| .dt-radio-option span { | |
| display: block; | |
| width: 32px; | |
| height: 32px; | |
| line-height: 32px; | |
| text-align: center; | |
| font-size: 0.85rem; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius); | |
| color: var(--text-secondary); | |
| background: var(--bg-input); | |
| transition: all var(--transition); | |
| } | |
| .dt-radio-option input:checked + span { | |
| background: var(--accent); | |
| color: #fff; | |
| border-color: var(--accent); | |
| } | |
| /* Generate bar */ | |
| .dt-generate-bar { | |
| display: flex; | |
| gap: 8px; | |
| align-items: center; | |
| padding: 10px 16px; | |
| border-top: 1px solid var(--border); | |
| background: var(--bg-secondary); | |
| flex-shrink: 0; | |
| } | |
| .dt-generate-bar .btn-generate { | |
| flex: 1; | |
| margin: 0; | |
| } | |
| @media (max-width: 900px) { | |
| .dt-layout { | |
| flex-direction: column; | |
| } | |
| .dt-left { | |
| border-right: none; | |
| border-bottom: 1px solid var(--border); | |
| max-height: 45vh; | |
| } | |
| } |