.b03-file { min-height: calc(100vh - var(--app-header-height, 0px)); background: linear-gradient(180deg, var(--color-canvas, #ffffff) 0%, var(--color-mist-violet, #edecff) 100%); padding: 0 var(--spacing-24) var(--spacing-48) var(--spacing-24); /* 상단 여백은 main-layout 마진으로 조정하므로 padding-top은 0 */ } .b03-file__main-layout { max-width: var(--page-max-width, 1200px); margin: var(--spacing-40) auto 0 auto; /* 상단 구분선(헤더)과의 간격을 확실하게 40px 벌림 */ display: flex; flex-direction: column; gap: var(--spacing-32); } .b03-file__control-panel { display: flex; flex-direction: column; gap: var(--spacing-20); background: var(--color-canvas, #ffffff); padding: var(--spacing-32); border-radius: var(--radius-large, 24px); /* Wiza 24px 대형 둥글기 */ border: 1px solid var(--color-mist, #e6e2e3); box-shadow: var(--shadow-lg); } .b03-file__cards-container-panel { margin-top: 0; /* 단일 layout gap에 의해 제어되도록 설정 */ } .b03-file__subtitle { font-size: var(--text-body-sm, 14px); color: var(--color-slate, #615e6e); margin: 0 0 var(--spacing-8) 0; } .b03-file__native-input, .b03-file__slot-input { display: none; } /* Wiza 스타일 가이드의 Lavender Glow 그라데이션 및 soft purple border hover */ .b03-file__dropzone { min-height: 160px; padding: var(--spacing-32) var(--spacing-24); border: 2px dashed var(--color-mist, #e6e2e3); border-radius: var(--radius-large, 24px); background: var(--color-paper, #f6f7fa); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--spacing-8); cursor: pointer; text-align: center; transition: background var(--transition-base, 0.2s), border-color var(--transition-base, 0.2s), box-shadow var(--transition-base, 0.2s); } .b03-file__dropzone:hover { background: var(--color-mist-violet, #edecff); border-color: var(--color-royal-amethyst, #3e0079); } .b03-file__dropzone:focus-visible, .b03-file__dropzone.is-dragging { outline: none; background: var(--color-mist-violet, #edecff); border-color: var(--color-royal-amethyst, #3e0079); box-shadow: 0 0 0 4px rgba(62, 0, 121, 0.15); } .b03-file__dropzone strong { color: var(--color-deep-iris, #26114a); font-size: var(--text-body, 16px); font-weight: var(--font-weight-medium, 500); } .b03-file__dropzone span { font-size: var(--text-body-sm, 14px); color: var(--color-slate, #615e6e); } .b03-file__error { min-height: var(--spacing-16); color: var(--color-danger, #dc2626); font-size: var(--text-body-sm, 14px); margin: var(--spacing-8) 0; } .b03-file__resume { display: none; align-items: center; gap: var(--spacing-8); flex-wrap: wrap; padding: var(--spacing-12) var(--spacing-16); border: 1px solid var(--color-mist, #e6e2e3); border-radius: var(--radius-cards, 8px); background: var(--color-paper, #f6f7fa); color: var(--color-deep-iris, #26114a); font-size: var(--text-body-sm, 14px); margin-top: var(--spacing-8); } .b03-file__resume.is-visible { display: flex; } .b03-file__cards-grid { display: grid; grid-template-columns: 1fr; gap: var(--spacing-32); } .b03-file__group { display: flex; flex-direction: column; gap: var(--spacing-20); } .b03-file__group-title { font-size: var(--text-subheading, 24px); color: var(--color-deep-iris, #26114a); font-family: var(--font-britti-sans, inherit); margin: 0 0 var(--spacing-8) 0; } .b03-file__group-content { display: grid; grid-template-columns: repeat(2, 1fr); /* 2행 2열 구조 */ gap: var(--spacing-24); } /* Wiza 8px radius 카드 */ .b03-file__card { min-height: 220px; padding: var(--spacing-24); /* 내부 전체 패딩 확대 */ border: 1px solid var(--color-mist, #e6e2e3); border-radius: var(--radius-cards, 8px); background: var(--color-canvas, #ffffff); box-shadow: var(--shadow-sm); display: flex; flex-direction: column; gap: var(--spacing-20); transition: transform var(--transition-base, 0.2s), border-color var(--transition-base, 0.2s), box-shadow var(--transition-base, 0.2s); } .b03-file__card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); border-color: var(--color-royal-amethyst, #3e0079); } .b03-file__card--selected { border-color: var(--color-royal-amethyst, #3e0079); background: var(--color-paper, #f6f7fa); } .b03-file__card--uploading { border-color: var(--color-royal-amethyst, #3e0079); box-shadow: var(--shadow-lg-2); } .b03-file__card--completed { border-color: #10b981; /* Success Green */ } .b03-file__card--error { border-color: var(--color-danger, #dc2626); } .b03-file__card-header { display: grid; grid-template-columns: auto 1fr auto auto; /* 아이콘 및 닫기 버튼 주변 확보 */ gap: var(--spacing-12); align-items: center; } .b03-file__card-icon { width: 28px; height: 28px; border-radius: var(--radius-icons, 8px); display: inline-flex; align-items: center; justify-content: center; color: var(--color-royal-amethyst, #3e0079); background: var(--color-mist-violet, #edecff); font-size: var(--text-body-sm, 14px); margin-right: var(--spacing-8); /* 아이콘 우측 마진 추가 (아이콘 좌측 여유 확대 효과) */ } .b03-file__card-heading { min-width: 0; display: flex; flex-direction: column; gap: 2px; margin-top: 2px; /* 제목 상단 여유 추가 */ } .b03-file__card-label { color: var(--color-deep-iris, #26114a); font-size: var(--text-body-sm, 14px); font-weight: var(--font-weight-medium, 500); } .b03-file__card-ext, .b03-file__file-size, .b03-file__progress-info { color: var(--color-slate, #615e6e); font-size: var(--text-caption, 12px); } .b03-file__card-badge-container { display: flex; align-items: center; margin-right: var(--spacing-4); } .b03-file__card-remove { width: 24px; height: 24px; border: 1px solid var(--color-mist, #e6e2e3); border-radius: var(--radius-buttons, 8px); color: var(--color-slate, #615e6e); background: var(--color-canvas, #ffffff); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: var(--text-body-sm, 14px); line-height: 1; padding: 0; margin-left: var(--spacing-8); /* 취소 버튼 좌측 여유 추가 (취소 버튼 우측 여유 확보) */ transition: all var(--transition-base, 0.2s); } .b03-file__card-remove:hover { color: var(--color-danger, #dc2626); border-color: var(--color-danger, #dc2626); background: #fef2f2; } .b03-file__card-content { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; gap: var(--spacing-16); /* 버튼 하단 및 내부 간격 확대 */ padding-bottom: var(--spacing-8); /* 파일 선택 버튼 하단 패딩 확보 */ } .b03-file__card-select { width: 100%; min-height: 40px; /* 버튼 높이 증가 */ border: 1px solid var(--color-mist, #e6e2e3); border-radius: var(--radius-buttons, 8px); color: var(--color-deep-iris, #26114a); background: var(--color-canvas, #ffffff); font-weight: var(--font-weight-medium, 500); font-size: var(--text-body-sm, 14px); cursor: pointer; margin-bottom: var(--spacing-8); /* 파일 선택 버튼 하단 마진 추가 */ transition: background var(--transition-base, 0.2s), border-color var(--transition-base, 0.2s); } .b03-file__file-info { display: flex; flex-direction: column; gap: 4px; min-width: 0; } .b03-file__file-name { color: var(--color-deep-iris, #26114a); font-size: var(--text-body-sm, 14px); font-weight: var(--font-weight-medium, 500); overflow-wrap: anywhere; } .b03-file__progress-section { display: flex; flex-direction: column; gap: var(--spacing-8); } .b03-file__progress-bar-container { width: 100%; height: 6px; overflow: hidden; border-radius: var(--radius-pills, 1440px); background: var(--color-mist, #e6e2e3); } .b03-file__progress-bar { width: 0; height: 100%; border-radius: var(--radius-pills, 1440px); background: var(--color-royal-amethyst, #3e0079); transition: width var(--transition-base, 0.2s); } .b03-file__progress-info { display: flex; flex-direction: column; gap: 2px; } .b03-file__error-message { display: none; padding: var(--spacing-8) var(--spacing-12); border-radius: var(--radius-cards, 8px); color: var(--color-danger, #dc2626); background: #fef2f2; font-size: var(--text-caption, 12px); border: 1px solid rgba(220, 38, 38, 0.15); } .b03-file__card--empty .b03-file__file-info, .b03-file__card--empty .b03-file__progress-section, .b03-file__card--empty .b03-file__error-message { display: none; } .b03-file__card--selected .b03-file__progress-section { display: none; } .b03-file__card--uploading .b03-file__card-select, .b03-file__card--completed .b03-file__card-select { display: none; } .b03-file__card--error .b03-file__error-message { display: block; } .b03-file__card--error .b03-file__progress-section { display: none; } .b03-file__results { margin: var(--spacing-8) 0 0 0; padding: 0; list-style: none; border: 1px solid var(--color-mist, #e6e2e3); border-radius: var(--radius-cards, 8px); overflow: hidden; background: var(--color-canvas, #ffffff); } .b03-file__results:empty { display: none; } .b03-file__results li { padding: var(--spacing-12) var(--spacing-16); display: flex; flex-direction: column; gap: 2px; border-bottom: 1px solid var(--color-mist, #e6e2e3); color: var(--color-deep-iris, #26114a); font-size: var(--text-body-sm, 14px); } .b03-file__results li:last-child { border-bottom: 0; } @media (max-width: 720px) { .b03-file { padding: var(--spacing-16) var(--spacing-12); } .b03-file__group-content { grid-template-columns: 1fr; /* 모바일에서는 1행 1열 구조 */ } }