/* 사이트 공통 테마 — 네이비그레이(EMR 톤). 짙은 네이비 헤더, 회색 패널, 각진 버튼, 촘촘한 표.
   다른 스타일시트보다 나중에 로드되어 전체 색상/모양을 덮어씀. 새 버튼·카드·탭을 추가할 때는
   아래 규칙을 그대로 따르거나, 새 클래스를 이 파일에 추가해서 맞출 것 (개별 파일에서 색을 새로 정의하지 말 것).

   디자인 토큰:
     주 배경(헤더/주버튼) #2e3e55 → hover #3a4e6a, 강조(빨강) #c0392b
     보조 버튼: 흰~회색 그라데이션(#fff→#eef1f4) + 테두리 #aeb7c3, hover 시 테두리/글자 #34597f
     패널 테두리 #cdd3db, 라운드 4~6px(각진 스타일 유지, 12px 이상 금지)
     포인트색(링크/포커스) #34597f, 표 헤더 회색 그라데이션(#eef1f4→#dfe4ea) */
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css");
:root {
  --ink:#1f2a37; --muted:#5f6b7a; --line:#cdd3db; --soft:#f1f3f6; --paper:#fff;
  --navy:#243247; --teal:#34597f; --teal-soft:#e6edf5; --amber:#b5651d; --amber-soft:#fbf1e4;
  --shadow:0 1px 2px rgba(20,30,45,.08);
  font-family:"Pretendard Variable",Pretendard,"Noto Sans KR",system-ui,sans-serif;
}
body { background:#e4e8ec; letter-spacing:-.01em; }

/* 헤더: 네이비 그라데이션 + 회색 탭 바 느낌 */
header { background:linear-gradient(180deg,#2e3e55 0%,#1f2b3c 100%); border-bottom:3px solid #4d5b6d; padding-top:14px; padding-bottom:14px; }
.site-title { color:#fff; font-size:1.02rem; }
.site-title .heart { color:#9fb3cc; }
.app-tabs { gap:0; background:#4d5b6d; border-radius:4px; width:max-content; }
.app-tabs > .app-tab:first-child, .app-tabs > .tool-nav:first-child > .app-tab { border-top-left-radius:4px; border-bottom-left-radius:4px; }
.app-tabs > .app-tab:last-child, .app-tabs > .tool-nav:last-child > .app-tab { border-top-right-radius:4px; border-bottom-right-radius:4px; }
.app-tab { min-height:38px; border:0; border-right:1px solid #3d4959; border-radius:0; padding:0 18px; background:transparent; color:#e3e8ee; font-weight:700; }
.app-tab:hover { background:#5d6b7e; }
.app-tab.active { background:#fff; color:#1f2b3c; box-shadow:inset 0 -3px 0 #c0392b; }
.manager-toggle, .auth-button { border:1px solid #6b7a8e !important; background:#3a4a60 !important; color:#fff !important; border-radius:4px !important; }
.auth-state { color:#b9c4d2 !important; }

/* 패널(카드): 각진 모서리 + 회색 제목 바 */
.card { border:1px solid var(--line); border-radius:6px; box-shadow:var(--shadow); }
.card-head { padding:11px 16px; background:linear-gradient(180deg,#f3f5f8,#e3e7ec); border-bottom:1px solid var(--line); }
.card-head h2 { font-size:.98rem; font-weight:800; color:#243247; display:flex; align-items:center; gap:8px; }
.card-head h2::before { content:""; width:0; height:0; border-left:6px solid #c0392b; border-top:5px solid transparent; border-bottom:5px solid transparent; }
.card-body { padding:16px 18px 20px; }
.tag { background:#3a4a60; color:#fff; border-radius:3px; font-weight:700; }
.group-label { border:1px solid var(--line); border-radius:6px; background:linear-gradient(180deg,#f3f5f8,#e3e7ec); color:#243247; }

/* 입력칸: 흰 바탕, 얇은 회색 테두리, 작은 라운드 */
input[type="text"], input[type="number"], input[type="date"], textarea, select,
.date-input-row .date-time-input, .fb-search input, .fb-search select {
  background:#fff !important; border:1px solid #b9c1cc !important; border-radius:4px !important;
}
input:focus, textarea:focus, select:focus { outline:none; border-color:#34597f !important; box-shadow:0 0 0 3px rgba(52,89,127,.15); }
[data-save="patientId"] { background:#fdf3f2 !important; }
.field > span, .field-title { color:#3d4959; font-weight:700; }
input[type="checkbox"], input[type="radio"] { accent-color:#34597f; }

/* 버튼: 네이비 주버튼, 회색 보조버튼 */
.save, .server-drafts button.primary, .home-google-card button, .home-task-head>button {
  background:#2e3e55 !important; border:1px solid #1f2b3c !important; border-radius:4px !important; color:#fff !important; box-shadow:none;
}
.save:hover, .server-drafts button.primary:hover { background:#3a4e6a !important; }
.server-drafts button, .add-retest, .review-toggle, .ua-jump, .actionbar-nav, .manager-history-button, .manager-edit-controls button, .mini-button {
  border:1px solid #aeb7c3 !important; background:linear-gradient(180deg,#fff,#eef1f4) !important; color:#243247 !important; border-radius:4px !important; font-weight:700;
}
.server-drafts button:hover, .add-retest:hover, .review-toggle:hover, .actionbar-nav:hover { border-color:#34597f !important; color:#34597f !important; }
.server-drafts { background:#f6f7f9; border-color:var(--line); border-radius:6px; }

/* 체크 칩 */
.lab-check, .consult-quick, .choice, .sex-choice label { border:1px solid #c8cfd8; border-radius:4px; background:#fff; }
.lab-check:hover, .consult-quick:hover, .choice:hover { border-color:#8797ab; }
.consult-quick:has(input:checked), .choice:has(input:checked), .sex-choice label:has(input:checked) { border-color:#34597f; background:#e6edf5; color:#243247; }
.result-pill { background:#f1f3f6; border:1px solid #dde2e8; border-radius:4px; }

/* 표: 회색 헤더, 줄무늬 */
.ua-table th { background:linear-gradient(180deg,#eef1f4,#dfe4ea); color:#243247; border-bottom:1px solid #c3cad3; }
.ua-table tbody tr:nth-child(even) td { background:#f7f8fa; }

.actionbar { border:1px solid #aeb7c3; border-radius:6px; background:rgba(243,245,248,.96); }

/* 게시판: 네이비 제목 바 + 목록형 느낌 카드 */
.fb-head { background:linear-gradient(180deg,#2e3e55,#1f2b3c) !important; color:#fff !important; border-radius:6px 6px 0 0; border-bottom:3px solid #4d5b6d; }
.fb-head h1 { color:#fff !important; }
.fb-head p { color:#b9c4d2 !important; }
.fb-head select { background:#fff !important; border:1px solid #6b7a8e !important; border-radius:4px !important; color:var(--ink) !important; }
.fb-head button { background:#c0392b !important; color:#fff !important; border:0 !important; border-radius:4px !important; }
.fb-search button { background:linear-gradient(180deg,#fff,#eef1f4) !important; border:1px solid #aeb7c3 !important; border-radius:4px !important; }
.fb-card { border:1px solid var(--line) !important; border-radius:6px !important; box-shadow:var(--shadow) !important; }
.fb-card:hover { border-color:#8797ab !important; }
.fb-cover-empty { background:linear-gradient(180deg,#e9edf2,#dde3ea) !important; color:#9aa8ba !important; }
.fb-category { border-radius:3px !important; }

/* 홈 */
.home-hero { background:linear-gradient(180deg,#f3f5f8,#e3e7ec) !important; border:1px solid var(--line) !important; border-radius:6px !important; }
.home-kicker { color:#34597f !important; }
.home-google-card { border:1px solid var(--line) !important; border-radius:6px !important; }
.home-notice, .home-tasks { border:1px solid var(--line) !important; border-radius:6px !important; }

/* 일정 연동(캘린더) 버튼 — 새로고침, Google Calendar 연결 등 */
.calendar-button { background:#2e3e55 !important; border:1px solid #1f2b3c !important; border-radius:4px !important; color:#fff !important; font-weight:700; }
.calendar-button:hover:not(:disabled) { background:#3a4e6a !important; }
.calendar-button.secondary { background:linear-gradient(180deg,#fff,#eef1f4) !important; border:1px solid #aeb7c3 !important; color:#243247 !important; }
.calendar-button.danger { background:#fff1f2 !important; border:1px solid #fecaca !important; color:#b91c1c !important; }

/* 게시글 작성/수정(자유게시판 에디터), 관리자 색상 버튼 */
.post-button { background:#2e3e55 !important; border:1px solid #1f2b3c !important; border-radius:4px !important; color:#fff !important; font-weight:700; }
.post-button:hover { background:#3a4e6a !important; }
.post-button.secondary { background:linear-gradient(180deg,#fff,#eef1f4) !important; border:1px solid #aeb7c3 !important; color:#243247 !important; }
.post-button.danger { background:#fff1f2 !important; border:1px solid #fecaca !important; color:#b91c1c !important; }
.post-field input, .post-field textarea { border:1px solid #b9c1cc !important; border-radius:4px !important; }

/* Tool(각도기 등) 버튼 */
.pt-actions button, .pt-file-button { border:1px solid #aeb7c3 !important; background:linear-gradient(180deg,#fff,#eef1f4) !important; color:#243247 !important; border-radius:4px !important; }
.pt-actions button:hover:not(:disabled), .pt-file-button:hover { border-color:#34597f !important; color:#34597f !important; background:#e6edf5 !important; }
.pt-mode { border-color:#aeb7c3 !important; background:#eef1f4 !important; }
.pt-mode button.selected { background:#2e3e55 !important; color:#fff !important; }
