/* =========================================================================
   법무그룹 현일 — 공통 디자인 시스템 (theme.css) v1.0
   -------------------------------------------------------------------------
   브랜드 톤: 로고의 딥네이비(#082545) + 골드 그라데이션을 기준으로 한
   "밝은" 테마. 기존 페이지들이 쓰던 다크 테마(#0f0f13, #1a1d24 등)를
   전면 교체할 때 이 파일 하나만 <link>로 걸면 됩니다.

   사용법:
   <link rel="stylesheet" href="/theme.css">
   그 다음 <body>는 아래 페이지 셸 클래스 중 하나를 사용하세요.
     - 사이드바가 있는 화면(관리자 화면 대부분): <body class="hi-shell">
       그리고 콘텐츠 영역은 <div class="hi-content">...</div> 로 감싸면
       사이드바 유무·모바일 폭에 따라 자동으로 여백이 조정됩니다.
     - 사이드바가 없는 단독 화면(로그인, 랜딩 등): 이 파일만 링크하고
       기존처럼 자유롭게 작성하되 아래 변수/컴포넌트 클래스를 활용하세요.

   admin_sidebar.js 는 이 파일이 정의하는 CSS 변수를 그대로 재사용합니다.
   ========================================================================= */

:root {
    /* --- 브랜드 컬러 (로고 기준: 네이비 + 골드) --- */
    --hi-navy-950: #051629;
    --hi-navy-900: #082545;   /* 메인 브랜드 네이비 (기존 이메일 템플릿과 동일) */
    --hi-navy-800: #0f3364;
    --hi-navy-700: #16447f;
    --hi-navy-600: #1f5aa3;

    --hi-gold-700: #a9781f;
    --hi-gold-600: #c79a3a;
    --hi-gold-500: #d9b054;   /* 로고 포인트 골드 */
    --hi-gold-400: #e8c877;
    --hi-gold-100: #faf3e0;

    /* --- 배경 / 표면 (다크 → 라이트 전환의 핵심) --- */
    --hi-bg: #f4f6fb;
    --hi-bg-alt: #eaeef6;
    --hi-surface: #ffffff;
    --hi-surface-alt: #f7f9fd;
    --hi-border: #e1e6f0;
    --hi-border-strong: #c7cfe0;

    /* --- 텍스트 --- */
    --hi-text: #16233d;
    --hi-text-secondary: #4b5b76;
    --hi-text-muted: #8593ab;
    --hi-text-on-navy: #f4f7ff;
    --hi-text-on-gold: #2a1e05;

    /* --- 상태 컬러 --- */
    --hi-success: #1a9c63;
    --hi-success-bg: #e6f7ee;
    --hi-danger: #e0393e;
    --hi-danger-bg: #fdeced;
    --hi-warning: #d9822b;
    --hi-warning-bg: #fdf3e6;
    --hi-info: #2c5bf2;
    --hi-info-bg: #eaf0ff;
    --hi-gray: #8593ab;
    --hi-gray-bg: #eef1f6;

    /* --- 레이아웃 --- */
    --hi-sidebar-width: 260px;
    --hi-header-height: 64px;
    --hi-radius-sm: 6px;
    --hi-radius: 12px;
    --hi-radius-lg: 20px;
    --hi-shadow-sm: 0 1px 3px rgba(8, 37, 69, 0.08);
    --hi-shadow: 0 4px 16px rgba(8, 37, 69, 0.08);
    --hi-shadow-lg: 0 10px 30px rgba(8, 37, 69, 0.12);

    /* --- 반응형 브레이크포인트 참고용 (미디어쿼리에는 직접 px 사용) ---
       모바일: ~640px / 태블릿: ~1024px / 데스크탑: 1024px~ */
}

* { box-sizing: border-box; }

body.hi-theme, body.hi-shell {
    font-family: "Pretendard Variable", "Pretendard", -apple-system, sans-serif;
    background: var(--hi-bg);
    color: var(--hi-text);
    margin: 0;
}

a { color: inherit; }

/* =========================================================================
   페이지 셸 — 사이드바 폭에 맞춰 콘텐츠 여백을 자동으로 잡아줍니다.
   admin_sidebar.js가 만드는 <nav class="sidebar">와 함께 사용합니다.
   ========================================================================= */
.hi-content {
    margin-left: var(--hi-sidebar-width);
    min-height: 100vh;
    transition: margin-left 0.2s ease;
    width: calc(100% - var(--hi-sidebar-width));
}

@media (max-width: 1024px) {
    .hi-content {
        margin-left: 0;
        width: 100%;
        padding-top: var(--hi-header-height);
    }
}

/* 모바일 상단 고정 헤더 (햄버거 버튼 자리) — admin_sidebar.js가 삽입 */
.hi-mobile-topbar {
    display: none;
}
@media (max-width: 1024px) {
    .hi-mobile-topbar {
        display: flex;
        align-items: center;
        gap: 12px;
        position: fixed;
        top: 0; left: 0; right: 0;
        height: var(--hi-header-height);
        background: var(--hi-navy-900);
        color: var(--hi-text-on-navy);
        padding: 0 16px;
        z-index: 10000;
        box-shadow: var(--hi-shadow);
    }
}

/* =========================================================================
   타이포그래피 / 기본 요소
   ========================================================================= */
.hi-page-title {
    font-size: 22px;
    font-weight: 800;
    color: var(--hi-navy-900);
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
}
.hi-page-subtitle {
    font-size: 14px;
    font-weight: 400;
    color: var(--hi-text-muted);
}

/* =========================================================================
   버튼
   ========================================================================= */
.hi-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    padding: 10px 18px;
    border-radius: var(--hi-radius-sm);
    border: 1px solid transparent;
    cursor: pointer;
    transition: 0.18s ease;
    white-space: nowrap;
}
.hi-btn-primary { background: var(--hi-navy-900); color: var(--hi-text-on-navy); }
.hi-btn-primary:hover { background: var(--hi-navy-800); }
.hi-btn-gold { background: linear-gradient(135deg, var(--hi-gold-500), var(--hi-gold-600)); color: var(--hi-text-on-gold); }
.hi-btn-gold:hover { filter: brightness(1.05); }
.hi-btn-outline { background: var(--hi-surface); color: var(--hi-navy-900); border-color: var(--hi-border-strong); }
.hi-btn-outline:hover { background: var(--hi-surface-alt); border-color: var(--hi-navy-700); }
.hi-btn-danger { background: var(--hi-danger); color: #fff; }
.hi-btn-danger:hover { background: #c62f34; }
.hi-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* =========================================================================
   카드
   ========================================================================= */
.hi-card {
    background: var(--hi-surface);
    border: 1px solid var(--hi-border);
    border-radius: var(--hi-radius);
    box-shadow: var(--hi-shadow-sm);
    padding: 20px;
}
.hi-card:hover { box-shadow: var(--hi-shadow); }

/* =========================================================================
   뱃지 (상태 표시 — dashboard.html 등의 D-Day 배지 대체용)
   ========================================================================= */
.hi-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}
.hi-badge-danger  { background: var(--hi-danger-bg);  color: var(--hi-danger); }
.hi-badge-success { background: var(--hi-success-bg); color: var(--hi-success); }
.hi-badge-warning { background: var(--hi-warning-bg); color: var(--hi-warning); }
.hi-badge-info    { background: var(--hi-info-bg);    color: var(--hi-info); }
.hi-badge-gray    { background: var(--hi-gray-bg);    color: var(--hi-gray); }

/* =========================================================================
   폼 요소
   ========================================================================= */
.hi-input, .hi-select, .hi-textarea {
    width: 100%;
    background: var(--hi-surface);
    border: 1px solid var(--hi-border-strong);
    color: var(--hi-text);
    padding: 10px 14px;
    border-radius: var(--hi-radius-sm);
    font-size: 14px;
    font-family: inherit;
}
.hi-input:focus, .hi-select:focus, .hi-textarea:focus {
    outline: none;
    border-color: var(--hi-navy-700);
    box-shadow: 0 0 0 3px rgba(8, 37, 69, 0.1);
}

/* =========================================================================
   모달
   ========================================================================= */
.hi-modal-overlay {
    display: none;
    position: fixed; inset: 0;
    background: rgba(8, 20, 40, 0.55);
    z-index: 9998;
    justify-content: center;
    align-items: center;
    padding: 16px;
}
.hi-modal-overlay.show { display: flex; }
.hi-modal {
    background: var(--hi-surface);
    border-radius: var(--hi-radius);
    box-shadow: var(--hi-shadow-lg);
    width: 100%;
    max-width: 560px;
    max-height: 90vh;
    overflow-y: auto;
}
.hi-modal-header {
    display: flex; justify-content: space-between; align-items: center;
    padding: 18px 22px;
    border-bottom: 1px solid var(--hi-border);
    font-weight: 800;
    color: var(--hi-navy-900);
}

/* =========================================================================
   반응형 그리드 유틸리티
   ========================================================================= */
.hi-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.hi-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.hi-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
@media (max-width: 900px) {
    .hi-grid-3, .hi-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .hi-grid-2, .hi-grid-3, .hi-grid-4 { grid-template-columns: 1fr; }
}

/* 모바일에서 컨트롤 패널류(검색창+버튼 나열)가 세로로 쌓이도록 */
.hi-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
@media (max-width: 640px) {
    .hi-toolbar { flex-direction: column; align-items: stretch; }
    .hi-toolbar > * { width: 100%; }
}

/* 페이지 전반 컨테이너 여백을 모바일에서 줄여줍니다 */
.hi-page-pad { padding: 40px; }
@media (max-width: 640px) {
    .hi-page-pad { padding: 16px; }
}
