| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- .wrapper {
- display: flex;
- flex-direction: column;
- gap: 16px;
- }
- /* 模式切换 */
- .tabs {
- display: flex;
- border: 1px solid var(--color-border);
- border-radius: 8px;
- overflow: hidden;
- }
- .tab {
- flex: 1;
- padding: 8px 0;
- border: none;
- background: white;
- font-size: 13px;
- font-weight: 500;
- color: var(--color-text-secondary);
- cursor: pointer;
- transition: all 0.2s;
- }
- .tab:first-child {
- border-right: 1px solid var(--color-border);
- }
- .tabActive {
- background: var(--color-primary);
- color: white;
- }
- /* URL 输入行 */
- .urlRow {
- display: flex;
- gap: 8px;
- }
- .urlInput {
- flex: 1;
- padding: 10px 14px;
- border: 1px solid var(--color-border);
- border-radius: 8px;
- font-size: 13px;
- outline: none;
- font-family: monospace;
- }
- .urlInput:focus {
- border-color: var(--color-primary);
- }
- .urlBtn {
- padding: 10px 20px;
- border: none;
- border-radius: 8px;
- background: var(--color-primary);
- color: white;
- font-size: 13px;
- font-weight: 500;
- white-space: nowrap;
- }
- .urlBtn:disabled {
- opacity: 0.5;
- cursor: not-allowed;
- }
- .dropZone {
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- gap: 6px;
- padding: 28px;
- border: 2px dashed var(--color-border);
- border-radius: var(--radius);
- cursor: pointer;
- transition: border-color 0.2s, background 0.2s;
- }
- .dropZone:hover {
- border-color: var(--color-primary);
- background: rgba(0, 113, 227, 0.03);
- }
- .fileInput {
- display: none;
- }
- .dropIcon {
- font-size: 32px;
- }
- .dropText {
- font-size: 14px;
- font-weight: 500;
- }
- .dropHint {
- font-size: 12px;
- color: var(--color-text-secondary);
- }
- .fileList {
- background: #fafafa;
- border-radius: 8px;
- padding: 12px;
- }
- .fileListHeader {
- display: flex;
- justify-content: space-between;
- align-items: center;
- font-size: 13px;
- font-weight: 500;
- margin-bottom: 8px;
- padding-bottom: 8px;
- border-bottom: 1px solid var(--color-border);
- }
- .clearBtn {
- background: none;
- border: none;
- color: var(--color-error);
- font-size: 12px;
- }
- .fileItem {
- display: flex;
- align-items: center;
- gap: 8px;
- padding: 4px 0;
- font-size: 13px;
- }
- .thumb {
- width: 36px;
- height: 36px;
- object-fit: cover;
- border-radius: 4px;
- border: 1px solid var(--color-border);
- flex-shrink: 0;
- }
- .fileOk { color: var(--color-success); }
- .fileMissing { color: var(--color-text-secondary); }
- .fileName {
- font-family: monospace;
- font-size: 12px;
- background: #eee;
- padding: 1px 6px;
- border-radius: 3px;
- }
- .fileLabel {
- flex: 1;
- color: var(--color-text-secondary);
- font-size: 12px;
- }
- .fileSize {
- font-size: 12px;
- color: var(--color-text-secondary);
- }
- .warnings {
- background: #fff3cd;
- border: 1px solid #ffc107;
- border-radius: 6px;
- padding: 8px 12px;
- font-size: 13px;
- color: #856404;
- }
- .warnings p {
- margin: 2px 0;
- }
- .error {
- color: var(--color-error);
- font-size: 13px;
- }
- .hint {
- color: var(--color-warning);
- font-size: 13px;
- }
|