/* ═══ WING Design System ═══ */
/* 프로젝트 전체에서 공유하는 공통 컴포넌트 클래스 */

@layer components {
  /* ── Layout ── */
  .wing-panel {
    @apply flex flex-col h-full overflow-hidden;
  }

  .wing-panel-scroll {
    @apply flex-1 overflow-y-auto;
    scrollbar-width: thin;
    scrollbar-color: var(--stroke-light) transparent;
  }

  .wing-header-bar {
    @apply flex items-center justify-between shrink-0 px-5 border-b border-stroke;
    padding-top: 14px;
    padding-bottom: 14px;
  }

  .wing-sidebar {
    @apply flex flex-col border-r border-stroke;
    background: var(--bg-surface);
  }

  /* ── Card / Section ── */
  .wing-card {
    @apply rounded-md p-4 border border-stroke;
    background: var(--bg-card);
  }

  .wing-card-sm {
    @apply rounded-sm p-3 border border-stroke;
    background: var(--bg-card);
  }

  .wing-section {
    @apply rounded-md p-4 mb-3 border border-stroke;
    background: var(--bg-card);
  }

  .wing-section-header {
    @apply text-title-4 font-bold font-korean mb-2;
  }

  .wing-section-desc {
    @apply text-caption font-korean leading-relaxed;
    color: var(--fg-disabled);
  }

  /* ── Typography ── */
  .wing-title {
    @apply text-subtitle font-bold font-korean;
  }

  .wing-subtitle {
    @apply text-caption font-korean mt-0.5;
    color: var(--fg-disabled);
  }

  .wing-label {
    @apply text-label-2 font-semibold font-korean;
  }

  .wing-value {
    @apply text-label-2 font-mono font-semibold;
  }

  .wing-meta {
    @apply text-caption font-korean;
    color: var(--fg-disabled);
  }

  /* ── Icon Badge ── */
  .wing-icon-badge {
    @apply w-10 h-10 rounded-md flex items-center justify-center text-lg;
  }

  .wing-icon-badge-sm {
    @apply w-[38px] h-[38px] rounded-[9px] flex items-center justify-center;
  }

  /* ── Badge ── */
  .wing-badge {
    @apply inline-flex items-center px-2 py-0.5 rounded text-caption font-bold font-korean;
  }

  /* ── Button ── */
  .wing-btn {
    @apply px-3 py-1.5 rounded-sm text-label-2 font-semibold cursor-pointer font-korean border-none;
    transition: all 0.15s;
  }

  .wing-btn-primary {
    background: linear-gradient(135deg, var(--color-accent), var(--color-info));
    color: #fff;
  }

  .wing-btn-primary:hover {
    box-shadow: 0 0 16px rgba(6, 182, 212, 0.3);
  }

  .wing-btn-secondary {
    @apply border border-stroke;
    background: var(--bg-card);
    color: var(--fg-sub);
  }

  .wing-btn-secondary:hover {
    background: var(--bg-surface-hover);
  }

  .wing-btn-outline {
    @apply bg-transparent border border-stroke;
    color: var(--fg-sub);
  }

  .wing-btn-outline:hover {
    background: var(--bg-surface-hover);
  }

  .wing-btn-pdf {
    border: 1px solid rgba(59, 130, 246, 0.3);
    background: rgba(59, 130, 246, 0.08);
    color: var(--color-info);
  }

  .wing-btn-danger {
    border: 1px solid rgba(239, 68, 68, 0.3);
    background: rgba(239, 68, 68, 0.1);
    color: var(--color-danger);
  }

  /* ── Input ── */
  .wing-input {
    @apply w-full rounded-sm text-label-2 font-korean outline-none;
    padding: 6px 10px;
    background: var(--bg-base);
    border: 1px solid var(--stroke-default);
    color: var(--fg-default);
  }

  .wing-input:focus {
    border-color: var(--color-accent);
  }

  .wing-input::placeholder {
    color: var(--fg-disabled);
  }

  /* ── Table ── */
  .wing-table {
    @apply w-full text-caption font-korean;
    border-collapse: collapse;
  }

  .wing-th {
    @apply text-left font-semibold;
    padding: 8px 10px;
    color: var(--fg-disabled);
    background: var(--bg-elevated);
    border-bottom: 1px solid var(--stroke-default);
  }

  .wing-td {
    padding: 8px 10px;
    color: var(--fg-sub);
    border-bottom: 1px solid var(--stroke-default);
  }

  .wing-tr-hover:hover {
    background: var(--bg-surface-hover);
    cursor: pointer;
  }

  /* ── Tab Bar ── */
  .wing-tab-bar {
    @apply flex gap-0.5 rounded-lg p-1 border border-stroke;
    background: var(--bg-card);
  }

  .wing-tab {
    @apply flex-1 py-2 px-1 text-caption font-semibold rounded-md text-center cursor-pointer font-korean;
    transition: all 0.15s;
    color: var(--fg-disabled);
    background: transparent;
    border: 1px solid transparent;
  }

  .wing-tab:hover {
    color: var(--fg-sub);
  }

  .wing-tab.active {
    border-color: rgba(6, 182, 212, 0.3);
    background: rgba(6, 182, 212, 0.08);
    color: var(--color-accent);
  }

  /* ── Modal ── */
  .wing-overlay {
    @apply fixed inset-0 flex items-center justify-center;
    z-index: 10000;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(4px);
  }

  .wing-modal {
    @apply rounded-xl overflow-hidden;
    background: var(--bg-surface);
    border: 1px solid var(--stroke-default);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
  }

  .wing-modal-header {
    @apply flex items-center justify-between px-5 border-b border-stroke;
    padding-top: 14px;
    padding-bottom: 14px;
  }

  /* ── Utility ── */
  .wing-divider {
    @apply w-full;
    height: 1px;
    background: var(--stroke-default);
  }

  .wing-kv-row {
    @apply flex items-center justify-between;
    padding: 6px 0;
  }

  .wing-kv-label {
    @apply text-caption font-korean;
    color: var(--fg-disabled);
  }

  .wing-kv-value {
    @apply text-label-2 font-semibold font-mono;
  }
}
