.pg-page { margin: 0; min-height: 100vh; background: #f4f6f8; color: #182230; }
.pg-page > .pg-main,
.pg-page > .pg-modal,
.pg-page > .pgv-modal { font-family: Arial, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif; }
.pg-main { margin-left: 240px; min-height: calc(100vh + 420px); padding: 34px 34px 420px; max-width: 1500px; }
.pg-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 24px; }
.pg-header-actions { display: flex; flex: 0 0 auto; flex-wrap: nowrap; align-items: center; justify-content: flex-end; gap: 8px; }
.pg-header-actions .pg-button { flex: 0 0 auto; white-space: nowrap; }
.pg-header h1 { margin: 5px 0 8px; font-size: 30px; }
.pg-header p, .pg-section-title p { margin: 0; color: #667085; }
.pg-eyebrow, .pg-section-title span { color: #147d69; font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.pg-panel { background: #fff; border: 1px solid #e5e9ee; border-radius: 16px; padding: 26px; margin-bottom: 20px; box-shadow: 0 4px 18px rgba(16,24,40,.04); }
.pg-section-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding-bottom: 18px; border-bottom: 1px solid #edf0f3; margin-bottom: 20px; }
.pg-section-title h2 { margin: 4px 0 0; font-size: 20px; }
.pg-status-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.pg-status-card { padding: 16px; border-radius: 12px; background: #f7faf9; border: 1px solid #dcebe7; }
.pg-status-card strong { display: block; margin-bottom: 8px; }
.pg-status-card span { color: #147d69; font-weight: 700; }
.pg-status-card small { display: block; margin-top: 5px; color: #667085; }
.pg-status-card .pg-status-source { margin-top: 10px; padding-top: 9px; border-top: 1px solid #dcebe7; color: #475467; font-size: 12px; font-weight: 700; }
.pg-loading { color: #667085; }
.pg-date-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 20px; row-gap: 16px; }
.pg-selection-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 18px; }
.pg-selection-card { padding: 18px; background: #f9fafb; border: 1px solid #e3e7ec; border-radius: 13px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.pg-card-heading { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; }
.pg-card-heading > span { padding: 4px 8px; border-radius: 999px; background: #dff4ed; color: #147d69; font-size: 12px; }
.pg-optional-card .pg-card-heading > span { background: #e7f0ff; color: #175cd3; }
.pg-date-grid label, .pg-selection-card > label { display: flex; flex-direction: column; gap: 7px; font-size: 13px; font-weight: 700; }
.pg-date-grid label { min-width: 0; }
.pg-date-grid input, .pg-selection-card select { width: 100%; border: 1px solid #cfd6df; border-radius: 9px; background: #fff; color: #182230; }
.pg-date-grid input { box-sizing: border-box; height: 38px; min-height: 38px; padding: 5px 9px; font-size: 13px; }
.pg-selection-card select { min-height: 44px; padding: 10px 12px; }
.pg-selection-card select:disabled { background: #eef1f4; color: #98a2b3; }
.pg-action-row { display: flex; align-items: center; justify-content: flex-end; gap: 18px; margin-top: 20px; }
.pg-message { margin: 0 auto 0 0; color: #c4320a; }
.pg-button { border: 0; border-radius: 9px; min-height: 44px; padding: 0 20px; font-size: 14px; font-weight: 800; cursor: pointer; }
.pg-button:disabled { opacity: .55; cursor: wait; }
.pg-button-primary { background: #147d69; color: #fff; }
.pg-button-secondary { background: #e6f4f1; color: #116856; }
.pg-button-update { background: #e7f0ff; color: #175cd3; }
.pg-button-settings { background: #eef4ff; color: #315ea8; }
.pg-adopted { padding: 18px 20px; border-radius: 12px; background: linear-gradient(135deg, #147d69, #0e6656); color: #fff; margin-bottom: 16px; }
.pg-adopted strong { font-size: 19px; }
.pg-adopted span { float: right; font-size: 21px; font-weight: 800; }
.pg-result-block { margin-top: 18px; }
.pg-result-block h3 { margin: 0 0 10px; font-size: 16px; }
.pg-result-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.pg-result-table th, .pg-result-table td { padding: 11px 12px; border: 1px solid #e5e9ee; text-align: right; }
.pg-result-table th:first-child, .pg-result-table td:first-child { text-align: left; }
.pg-result-table th { background: #f7f8fa; color: #475467; }
.pg-modal { position: fixed; z-index: 1000; inset: 0; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(16,24,40,.48); }
.pg-modal[hidden] { display: none; }
.pg-modal-card { width: min(560px, 100%); padding: 24px; border-radius: 15px; background: #fff; box-shadow: 0 24px 64px rgba(16,24,40,.3); }
.pg-modal-header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 15px; border-bottom: 1px solid #e5e9ee; }
.pg-modal-header h2 { margin: 0; font-size: 20px; }
.pg-modal-header button { border: 0; background: none; color: #667085; font-size: 28px; cursor: pointer; }
.pg-settings-list { margin: 14px 0; }
.pg-settings-list > div { display: grid; grid-template-columns: 130px 1fr; gap: 14px; padding: 11px 0; border-bottom: 1px solid #eef1f4; }
.pg-settings-list dt { color: #667085; font-weight: 700; }
.pg-settings-list dd { margin: 0; color: #182230; }
.pg-settings-range { display: flex; align-items: flex-end; gap: 8px; }
.pg-settings-range label { display: grid; gap: 5px; color: #667085; font-size: 12px; }
.pg-settings-range input { min-height: 38px; padding: 7px 9px; border: 1px solid #cfd6df; border-radius: 7px; color: #182230; }
.pg-settings-note { margin: 14px 0 0; padding: 12px; border-radius: 8px; background: #f7f8fa; color: #667085; font-size: 13px; line-height: 1.5; }
.pg-modal-actions { display: flex; justify-content: flex-end; margin-top: 16px; }
@media (max-width: 1050px) { .pg-main { margin-left: 0; padding: 20px 20px 420px; } .pg-status-grid, .pg-date-grid { grid-template-columns: repeat(2, 1fr); } .pg-selection-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .pg-header, .pg-section-title { align-items: flex-start; flex-direction: column; } .pg-status-grid, .pg-date-grid { grid-template-columns: 1fr; } .pg-selection-card { grid-template-columns: 1fr; } }
