.admin-login-shell { color-scheme: dark; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #e5e5e5; background: #1a1a1a; }
.admin-login-shell *, .admin-page * { box-sizing: border-box; }
.admin-login-shell { margin: 0; }
.admin-login-shell a { color: inherit; }
.admin-header { padding: 20px 28px; background: #2d2d2d; border-bottom: 1px solid #404040; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.admin-brand { font-size: 20px; font-weight: 700; text-decoration: none; }
.admin-main { max-width: 1600px; margin: 0 auto; padding: 32px 28px; }
.admin-page { min-width: 0; }
.admin-page h2 { font-size: 28px; margin: 0 0 12px; }
.admin-eyebrow { color: #93c5fd; font-size: 13px; margin: 0 0 10px; }
.admin-muted, .admin-field small, .admin-table small { color: #b5bac4; font-size: 13px; line-height: 1.6; }
.admin-heading, .admin-results-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.admin-heading { margin-bottom: 24px; }
.admin-filter-panel, .admin-login { border: 1px solid #404040; border-radius: 12px; background: #252525; padding: 24px; }
.admin-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)); gap: 18px; }
.admin-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.admin-address { grid-column: span 2; }
.admin-page label { font-size: 14px; font-weight: 600; }
.admin-page input, .admin-page select { width: 100%; min-width: 0; padding: 11px 12px; color: #f3f4f6; background: #191919; border: 1px solid #626262; border-radius: 6px; font: inherit; font-size: 14px; }
.admin-page input::placeholder { color: #a5a5a5; }
.admin-button { display: inline-flex; justify-content: center; align-items: center; min-height: 42px; padding: 10px 16px; border: 1px solid #626262; border-radius: 6px; background: #303030; color: #f3f4f6; font: inherit; font-size: 14px; text-decoration: none; cursor: pointer; }
.admin-button:hover { background: #424242; }
.admin-primary { background: #2563eb; border-color: #4b82f4; }
.admin-primary:hover { background: #1d4ed8; }
.admin-login-shell :focus-visible, .admin-page :focus-visible { outline: 3px solid #93c5fd; outline-offset: 3px; }
.admin-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.admin-error { padding: 14px 16px; background: #411f25; color: #fecdd3; border: 1px solid #8d4653; border-radius: 6px; line-height: 1.6; margin: 16px 0; }
.admin-error[hidden] { display: none; }
.admin-results-heading { margin: 26px 0 14px; }
.admin-table-scroll { max-width: 100%; overflow: auto; border: 1px solid #404040; border-radius: 8px; }
.admin-table { width: 100%; min-width: 1080px; border-collapse: collapse; font-size: 13px; }
.admin-table th { text-align: left; background: #303030; color: #e5e7eb; font-weight: 600; white-space: nowrap; }
.admin-table td, .admin-table th { padding: 16px; border-bottom: 1px solid #404040; vertical-align: top; }
.admin-table td { line-height: 1.6; }
.admin-table tr:last-child td { border-bottom: 0; }
.admin-table tbody tr:hover { background: #252525; }
.admin-server { min-width: 240px; max-width: 360px; overflow-wrap: anywhere; }
.admin-diagnostics { min-width: 180px; max-width: 300px; overflow-wrap: anywhere; }
.admin-status { display: inline-block; white-space: nowrap; padding: 3px 9px; border-radius: 20px; font-weight: 600; }
.admin-open { color: #fecdd3; background: #4c252c; }
.admin-resolved { color: #a7f3d0; background: #164435; }
.admin-empty { text-align: center; padding: 50px 20px; border: 1px dashed #626262; border-radius: 8px; color: #c3c7d0; }
.admin-pagination { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 24px; font-size: 14px; }
.admin-pagination-items { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 4px; list-style: none; padding: 0; margin: 0; max-width: 100%; }
.admin-page-link { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 8px; border: 1px solid transparent; border-radius: 6px; text-decoration: none; color: #e5e5e5; font-variant-numeric: tabular-nums; }
.admin-page-link[href]:hover { background: #1e293b; color: #fff; }
.admin-page-link.is-current { border-color: #e2e8f0; background: #e2e8f0; color: #0f172a; font-weight: 600; }
.admin-page-link.is-disabled { color: #475569; cursor: not-allowed; }
.admin-page-link.is-current { cursor: default; }
.admin-login { max-width: 460px; margin: 40px auto; }
.admin-login-form { display: flex; flex-direction: column; gap: 10px; margin: 26px 0; }
.admin-login-form input { margin-bottom: 10px; }
.admin-link { color: #93c5fd; text-underline-offset: 4px; font-size: 14px; }
.admin-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 640px) {
    .admin-main { padding: 24px 16px; }
    .admin-header { padding: 18px 16px; }
    .admin-page h2 { font-size: 24px; }
    .admin-fields { grid-template-columns: 1fr; }
    .admin-address { grid-column: auto; }
    .admin-filter-panel, .admin-login { padding: 18px; }
    .admin-login { margin: 12px auto; }
}

/* 폼·오류문구의 긴 값은 바깥 문서 폭을 늘리지 않는다. 표는 내부에서 스크롤한다. */
.admin-page, .admin-error, .admin-empty, .admin-muted { overflow-wrap: anywhere; }
.admin-field input, .admin-field select { max-width: 100%; }
@media (max-width: 639px) {
    .admin-page input, .admin-page select { font-size: 16px; }
    .admin-actions > * { flex: 1 1 auto; }
    .admin-pagination { max-width: 100%; }
}
