﻿/* 3DMapper Trial Page Design Tokens
   기준: 전역 토큰은 반복/시스템 값만, 화면·컴포넌트 고유 값은 .trial-page alias로 제한
*/

:root {
  /* Font family */
  --font-family-sans:
    "Noto Sans KR", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
    sans-serif;

  /* Font weights */
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Typography scale */
  --font-size-12: 0.75rem; /* 12px */
  --font-size-14: 0.875rem; /* 14px */
  --font-size-16: 1rem; /* 16px */
  --font-size-18: 1.125rem; /* 18px */
  --font-size-20: 1.25rem; /* 20px */
  --font-size-24: 1.5rem; /* 24px */
  --font-size-28: 1.75rem; /* 28px */
  --font-size-36: 2.25rem; /* 36px */

  /* Hero-only sizes are intentionally not globalized:
     32px, 64px, 96px appeared as single hero values in the provided files. */

  --line-height-100: 1;
  --line-height-140: 1.4;
  --line-height-160: 1.6;
  --letter-spacing-tight: 0;

  /* Text styles */
  --text-caption: var(--font-weight-regular) var(--font-size-12) /
    var(--line-height-100) var(--font-family-sans);
  --text-body-sm: var(--font-weight-regular) var(--font-size-14) /
    var(--line-height-160) var(--font-family-sans);
  --text-body-md: var(--font-weight-regular) var(--font-size-16) /
    var(--line-height-160) var(--font-family-sans);
  --text-label-md: var(--font-weight-medium) var(--font-size-16) /
    var(--line-height-100) var(--font-family-sans);
  --text-button-md: var(--font-weight-medium) var(--font-size-16) /
    var(--line-height-100) var(--font-family-sans);
  --text-button-lg: var(--font-weight-medium) var(--font-size-18) /
    var(--line-height-100) var(--font-family-sans);
  --text-title-sm: var(--font-weight-semibold) var(--font-size-20) /
    var(--line-height-100) var(--font-family-sans);
  --text-title-md: var(--font-weight-semibold) var(--font-size-24) /
    var(--line-height-100) var(--font-family-sans);
  --text-title-lg: var(--font-weight-semibold) var(--font-size-28) /
    var(--line-height-100) var(--font-family-sans);
  --text-heading-section: var(--font-weight-medium) var(--font-size-36) /
    var(--line-height-100) var(--font-family-sans);

  /* Space scale: 4px 기반, Figma 6px/10px은 ±2px 규칙에 따라 8px로 정규화 권장 */
  --space-0: 0;
  --space-1: 0.25rem; /* 4px */
  --space-2: 0.5rem; /* 8px */
  --space-3: 0.75rem; /* 12px */
  --space-4: 1rem; /* 16px */
  --space-5: 1.25rem; /* 20px */
  --space-6: 1.5rem; /* 24px */
  --space-8: 2rem; /* 32px */
  --space-10: 2.5rem; /* 40px */
  --space-12: 3rem; /* 48px */
  --space-15: 3.75rem; /* 60px */
  --space-16: 4rem; /* 64px */
  --space-20: 5rem; /* 80px */

  /* Radius */
  --radius-xs: 0.125rem; /* 2px */
  --radius-sm: 0.25rem; /* 4px */
  --radius-md: 0.375rem; /* 6px */
  --radius-lg: 0.5rem; /* 8px */
  --radius-pill: 1.25rem; /* 20px */
  --radius-card: 0.5rem; /* 8px */

  /* Layout */
  --layout-page-desktop: 120rem; /* 1920px */
  --layout-content-desktop: 110rem; /* 1760px */
  --layout-form-control: 90rem; /* 1440px */

  /* Component sizes */
  --size-control-height-md: 2.5rem; /* 40px */
  --size-icon-sm: 1.5rem; /* 24px */
  --size-icon-md: 1.875rem; /* 30px */
  --size-icon-lg: 2.5rem; /* 40px */
  --size-icon-xl: 3.125rem; /* 50px */
  --size-page-dot: 0.625rem; /* 10px */

  --z-modal: 1000;

  /* Primitive colors */
  --color-white: #ffffff;
  --color-black: #000000;

  --color-violet-900: #0c08ff;
  --color-violet-800: #2521ff;
  --color-violet-700: #524fff;
  --color-violet-600: #5d57ff;
  --color-violet-500: #817edc;
  --color-violet-400: #a5a4e9;
  --color-violet-300: #ccc9ff;
  --color-violet-200: #b5b4dc;
  --color-violet-100: #ccc9ff;

  --color-gray-900: #2a2d36;
  --color-gray-800: #373a44;
  --color-gray-700: #666876;
  --color-gray-600: #707070;
  --color-gray-500: #8c8c8c;
  --color-gray-450: #8c8fa0;
  --color-gray-400: #9d9d9d;
  --color-gray-350: #aaaaaa;
  --color-gray-300: #b7b7b7;
  --color-gray-200: #e0e0e0;
  --color-gray-150: #e9eaf2;
  --color-gray-100: #f8f9fd;
  --color-gray-50: #f5f5f5;

  /* Semantic colors */
  --color-bg-canvas: var(--color-white);
  --color-bg-section-muted: var(--color-gray-50);
  --color-bg-subtle: var(--color-gray-100);
  --color-bg-inverse: var(--color-gray-900);

  --color-text-primary: var(--color-gray-900);
  --color-text-secondary: var(--color-gray-800);
  --color-text-tertiary: var(--color-gray-700);
  --color-text-placeholder: var(--color-gray-300);
  --color-text-on-brand: var(--color-white);
  --color-text-on-image: var(--color-white);

  --color-border-default: var(--color-gray-150);
  --color-border-muted: var(--color-gray-200);
  --color-border-brand-muted: var(--color-violet-200);
  --color-border-inverse-muted: rgba(255, 255, 255, 0.5);

  --color-action-primary: var(--color-violet-600);
  --color-action-secondary: var(--color-gray-450);
  --color-icon-brand: var(--color-violet-600);
  --color-icon-accent: var(--color-violet-500);
  --color-pagination-default: var(--color-gray-200);
  --color-pagination-active: var(--color-gray-600);
  --color-pagination-inverse-default: rgba(255, 255, 255, 0.2);
  --color-pagination-inverse-active: var(--color-white);

  /* Shadow */
  --shadow-hero-title:
    0 0.25rem 0.25rem rgba(0, 0, 0, 0.25), 0 0 0.5rem rgba(0, 0, 0, 0.35);
}

.trial-page {
  /* Page aliases */
  --trial-page-width: var(--layout-page-desktop);
  --trial-content-width: var(--layout-form-control);
  --trial-section-padding-x: var(--space-20);
  --trial-section-padding-y-md: var(--space-15);
  --trial-section-padding-y-lg: var(--space-20);
  --trial-grid-gap: var(--space-6);
  --trial-card-padding: var(--space-12);
  --trial-card-radius: var(--radius-card);

  /* Component aliases */
  --trial-button-height: var(--size-control-height-md);
  --trial-button-radius: var(--radius-pill);
  --trial-button-gap: var(--space-2);
  --trial-button-padding-x: var(--space-5);

  --trial-form-field-gap: var(--space-5);
  --trial-form-row-padding-y: var(--space-4);
  --trial-input-height: var(--size-control-height-md);
  --trial-input-padding-x: var(--space-4);
  --trial-input-padding-y: var(--space-2);
  --trial-input-radius: var(--radius-lg);

  /* Component-local variant colors: single section variants, not promoted to global palette */
  --trial-feature-media-bg: #ffe6e0;
  --trial-feature-media-icon: #d37d69;
  --trial-feature-view-bg: #fcfac4;
  --trial-feature-view-icon: #cac642;
  --trial-feature-report-bg: #d1eeff;
  --trial-feature-report-icon: #70b7e0;
}
