/* ===== 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; } }