body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: #f4f6f8;
    color: #111827;
}

.login-wrap {
    max-width: 420px;
    margin: 0 auto;
    padding: 44px 18px;
}

.brand-box {
    background: #111827;
    color: white;
    padding: 24px 20px;
    border-radius: 20px;
    margin-bottom: 18px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
}

.brand-title {
    font-size: 30px;
    font-weight: 800;
    margin-bottom: 8px;
}

.brand-desc {
    font-size: 14px;
    line-height: 1.5;
    opacity: 0.85;
}

.login-card {
    background: white;
    border-radius: 20px;
    padding: 20px;
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.08);
}

.label {
    display: block;
    font-size: 14px;
    font-weight: 700;
    margin: 14px 0 7px;
}

.input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #d1d5db;
    border-radius: 12px;
    padding: 13px 12px;
    font-size: 16px;
    outline: none;
}

.input:focus {
    border-color: #111827;
}

.button {
    width: 100%;
    border: 0;
    border-radius: 14px;
    padding: 14px 12px;
    margin-top: 20px;
    background: #111827;
    color: white;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
}

.button:active {
    transform: scale(0.99);
}

.links {
    display: flex;
    justify-content: space-between;
    margin-top: 16px;
    font-size: 14px;
}

.links a {
    color: #374151;
    text-decoration: none;
}

.notice {
    margin-top: 18px;
    font-size: 13px;
    color: #6b7280;
    line-height: 1.5;
}

.alert {
    border-radius: 12px;
    padding: 12px 12px;
    margin-bottom: 14px;
    font-size: 14px;
    line-height: 1.5;
}

.alert-error {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fecaca;
}

.alert-success {
    background: #ecfdf5;
    color: #065f46;
    border: 1px solid #a7f3d0;
}

.notice-box {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 12px;
    margin-bottom: 14px;
    font-size: 14px;
    line-height: 1.7;
    color: #374151;
}

.input[name="sms_code"] {
    letter-spacing: 4px;
    font-size: 20px;
    font-weight: 800;
    text-align: center;
}

.page-wrap {
    max-width: 720px;
    margin: 0 auto;
    padding: 32px 18px;
}

.top-user-box {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    font-size: 14px;
}

.role-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.16);
    font-size: 12px;
    font-weight: 800;
}

.logout-link {
    color: white;
    text-decoration: none;
    font-weight: 800;
    white-space: nowrap;
}

.section-block {
    margin-top: 22px;
}

.section-title {
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 12px;
}

.program-card {
    background: white;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 10px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.program-title {
    font-size: 17px;
    font-weight: 800;
    margin-bottom: 6px;
}

.program-subtitle {
    font-size: 13px;
    color: #4b5563;
    margin-bottom: 6px;
}

.program-path {
    font-size: 12px;
    color: #6b7280;
    word-break: break-all;
}

.admin-menu-card {
    display: block;
    background: white;
    color: #111827;
    text-decoration: none;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 10px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.admin-user-card {
    background: white;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.admin-user-main {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.admin-action-row {
    display: flex;
    gap: 8px;
    margin-top: 14px;
    align-items: center;
    flex-wrap: wrap;
}

.admin-action-row form {
    display: flex;
    gap: 8px;
    align-items: center;
}

.small-button {
    border: 0;
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
}

.approve-button {
    background: #065f46;
    color: white;
}

.reject-button {
    background: #991b1b;
    color: white;
}

.small-input {
    border: 1px solid #d1d5db;
    border-radius: 10px;
    padding: 10px 10px;
    font-size: 14px;
    min-width: 180px;
}

.recent-user-row {
    background: white;
    border-radius: 14px;
    padding: 13px 14px;
    margin-bottom: 8px;
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.06);
}

.status-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}

.status-pending {
    background: #fef3c7;
    color: #92400e;
}

.status-approved {
    background: #d1fae5;
    color: #065f46;
}

.status-rejected {
    background: #fee2e2;
    color: #991b1b;
}

.status-disabled {
    background: #e5e7eb;
    color: #374151;
}

.bottom-links {
    display: flex;
    justify-content: space-between;
    margin-top: 18px;
    font-size: 14px;
}

.bottom-links a {
    color: #374151;
    text-decoration: none;
    font-weight: 700;
}

.program-card-link {
    display: block;
    color: #111827;
    text-decoration: none;
}

.program-card-link:hover {
    transform: translateY(-1px);
}

.file-row {
    background: white;
    border-radius: 14px;
    padding: 14px 16px;
    margin-bottom: 8px;
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.06);
}

.file-name {
    font-size: 15px;
    font-weight: 800;
    margin-bottom: 5px;
    word-break: break-all;
}

.log-card {
    background: white;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.log-title {
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 6px;
}

.log-box {
    margin: 12px 0 0;
    padding: 12px;
    border-radius: 12px;
    background: #111827;
    color: #e5e7eb;
    font-size: 12px;
    line-height: 1.5;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 420px;
    overflow-y: auto;
}

.diagnostic-card {
    background: white;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.diagnostic-title {
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 8px;
}

.diagnostic-row {
    padding: 10px 0;
    border-top: 1px solid #f3f4f6;
}

.diagnostic-row:first-of-type {
    border-top: 0;
}

.diagnostic-ok,
.diagnostic-warn,
.diagnostic-bad {
    margin-top: 7px;
    display: inline-block;
    border-radius: 999px;
    padding: 5px 9px;
    font-size: 12px;
    font-weight: 800;
}

.diagnostic-ok {
    background: #d1fae5;
    color: #065f46;
}

.diagnostic-warn {
    background: #fef3c7;
    color: #92400e;
}

.diagnostic-bad {
    background: #fee2e2;
    color: #991b1b;
}

.file-mini-row {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 0;
    border-top: 1px solid #f3f4f6;
    font-size: 13px;
}

.file-mini-row:first-of-type {
    border-top: 0;
}

.file-mini-row span {
    color: #6b7280;
    white-space: nowrap;
}

.file-row-with-action {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
}

.file-main {
    min-width: 0;
    flex: 1;
}

.download-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 82px;
    border-radius: 999px;
    padding: 9px 12px;
    background: #111827;
    color: white;
    text-decoration: none;
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
}

.download-button:active {
    transform: scale(0.98);
}

@media (max-width: 520px) {
    .file-row-with-action {
        align-items: stretch;
        flex-direction: column;
    }

    .download-button {
        width: 100%;
        box-sizing: border-box;
    }
}

.quick-action-row {
    display: flex;
    gap: 8px;
    margin: 16px 0 4px;
    flex-wrap: wrap;
}

.refresh-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 10px 14px;
    background: #111827;
    color: white;
    text-decoration: none;
    font-size: 13px;
    font-weight: 800;
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.12);
}

.secondary-refresh-button {
    background: white;
    color: #111827;
    border: 1px solid #d1d5db;
    box-shadow: none;
}

.refresh-button:active,
.mini-refresh-link:active {
    transform: scale(0.98);
}

.section-title-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin: 0 0 12px;
}

.section-title-row .section-title {
    margin: 0;
}

.mini-refresh-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 7px 10px;
    background: white;
    color: #111827;
    border: 1px solid #d1d5db;
    text-decoration: none;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

@media (max-width: 520px) {
    .quick-action-row {
        flex-direction: column;
    }

    .refresh-button {
        width: 100%;
        box-sizing: border-box;
    }
}

.run-alert {
    border-radius: 14px;
    padding: 12px 14px;
    margin: 12px 0 8px;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.5;
}

.run-alert-success {
    background: #ecfdf5;
    color: #065f46;
    border: 1px solid #a7f3d0;
}

.run-alert-warning {
    background: #fffbeb;
    color: #92400e;
    border: 1px solid #fde68a;
}

.run-alert-failed {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fecaca;
}

.run-command-card {
    background: white;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.run-command-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.run-command-button {
    border: 0;
    border-radius: 999px;
    padding: 10px 14px;
    background: #111827;
    color: white;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.run-command-button:active {
    transform: scale(0.98);
}

.run-warning-box {
    background: #fffbeb;
    color: #92400e;
    border: 1px solid #fde68a;
    border-radius: 14px;
    padding: 12px 14px;
    margin-bottom: 12px;
    font-size: 13px;
    line-height: 1.6;
}

.run-command-button-disabled,
.run-command-button:disabled {
    background: #9ca3af;
    color: white;
    cursor: not-allowed;
    transform: none;
}

.run-command-safe_test {
    background: #065f46;
}

.run-command-safe_test:hover {
    background: #047857;
}

.run-command-server_tick {
    background: #b45309;
}

.run-command-server_tick:hover {
    background: #92400e;
}

.safe-run-card,
.danger-run-card {
    background: white;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.safe-run-card {
    border: 1px solid #a7f3d0;
    background: #f0fdf4;
}

.danger-run-card {
    border: 1px solid #fde68a;
    background: #fff7ed;
}

.run-area-title {
    font-size: 15px;
    font-weight: 900;
    margin-bottom: 8px;
    color: #111827;
}

.danger-run-card .run-warning-box {
    background: #fffbeb;
}

.safe-run-card .program-subtitle {
    color: #065f46;
    font-weight: 700;
}

.run-history-card {
    background: white;
    border-radius: 16px;
    padding: 14px 16px;
    margin-bottom: 10px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.run-history-main {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.run-history-title {
    font-size: 15px;
    font-weight: 800;
    margin-bottom: 6px;
}

.run-status-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}

.run-status-success {
    background: #d1fae5;
    color: #065f46;
}

.run-status-failed {
    background: #fee2e2;
    color: #991b1b;
}

.run-detail-box {
    margin-top: 12px;
    border-top: 1px solid #e5e7eb;
    padding-top: 10px;
}

.run-detail-box summary {
    cursor: pointer;
    font-size: 13px;
    font-weight: 800;
    color: #111827;
}

.run-detail-title {
    margin: 10px 0 6px;
    font-size: 12px;
    font-weight: 800;
    color: #374151;
}

.run-detail-pre {
    max-height: 260px;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    background: #111827;
    color: white;
    border-radius: 12px;
    padding: 12px;
    font-size: 12px;
    line-height: 1.5;
}

.run-detail-error {
    background: #7f1d1d;
}

.danger-unlock-box {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 14px;
    background: white;
    border: 1px dashed #f59e0b;
    color: #92400e;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
    cursor: pointer;
}

.danger-unlock-box input {
    margin-top: 2px;
    width: 16px;
    height: 16px;
    cursor: pointer;
}

.actual-run-command-button:disabled,
.actual-run-command-button-locked {
    background: #d1d5db;
    color: #6b7280;
    cursor: not-allowed;
    box-shadow: none;
}

.actual-run-command-button:disabled:active {
    transform: none;
}

.real-run-lock-notice {
    margin: 10px 0;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid #fca5a5;
    background: #fef2f2;
    color: #991b1b;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.lock-status-card {
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 18px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.lock-status-clear {
    background: #f0fdf4;
    border: 1px solid #86efac;
}

.lock-status-active {
    background: #fff7ed;
    border: 1px solid #fdba74;
}

.lock-status-stale {
    background: #fef2f2;
    border: 1px solid #fca5a5;
}

.lock-status-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    color: #111827;
}

.lock-status-badge {
    display: inline-flex;
    align-items: center;
    margin-left: 8px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
}

.lock-status-badge-clear {
    background: #bbf7d0;
    color: #166534;
}

.lock-status-badge-active {
    background: #fed7aa;
    color: #9a3412;
}

.lock-status-badge-stale {
    background: #fecaca;
    color: #991b1b;
}

.lock-status-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 12px 0;
}

.lock-status-grid div {
    background: rgba(255, 255, 255, 0.75);
    border-radius: 12px;
    padding: 10px;
}

.lock-status-grid span {
    display: block;
    font-size: 11px;
    color: #6b7280;
    margin-bottom: 4px;
}

.lock-status-grid strong {
    display: block;
    font-size: 12px;
    color: #111827;
    word-break: break-word;
}

.lock-warning-text {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.75);
    color: #92400e;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
}

.stale-lock-release-form {
    margin-top: 12px;
}

.stale-lock-release-button {
    border: 0;
    border-radius: 999px;
    padding: 10px 14px;
    background: #991b1b;
    color: white;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
}

.stale-lock-release-button:active {
    transform: scale(0.98);
}

.lock-detail-box {
    margin-top: 12px;
}

.lock-detail-box summary {
    cursor: pointer;
    font-size: 12px;
    font-weight: 900;
    color: #111827;
}

.lock-detail-box pre {
    margin-top: 8px;
    max-height: 240px;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    background: #111827;
    color: white;
    border-radius: 12px;
    padding: 12px;
    font-size: 12px;
    line-height: 1.5;
}

@media (max-width: 520px) {
    .run-command-row {
        flex-direction: column;
    }

    .run-command-button {
        width: 100%;
    }
}

@media (max-width: 720px) {
    .lock-status-grid {
        grid-template-columns: 1fr;
    }
}

.log-summary-count-row {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.log-summary-count-card {
    background: white;
    border-radius: 14px;
    padding: 12px;
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.06);
    border: 1px solid #e5e7eb;
}

.log-summary-count-card span {
    display: block;
    font-size: 11px;
    color: #6b7280;
    font-weight: 800;
    margin-bottom: 4px;
}

.log-summary-count-card strong {
    display: block;
    font-size: 20px;
    color: #111827;
    font-weight: 900;
}

.log-summary-count-error {
    border-color: #fecaca;
    background: #fef2f2;
}

.log-summary-count-warning {
    border-color: #fde68a;
    background: #fffbeb;
}

.log-summary-count-mail {
    border-color: #bfdbfe;
    background: #eff6ff;
}

.log-summary-count-run {
    border-color: #ddd6fe;
    background: #f5f3ff;
}

.log-summary-count-file {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.log-event-card {
    background: white;
    border-radius: 16px;
    padding: 13px 14px;
    margin-bottom: 8px;
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.06);
    border-left: 5px solid #d1d5db;
}

.log-event-error {
    border-left-color: #dc2626;
}

.log-event-warning {
    border-left-color: #f59e0b;
}

.log-event-mail {
    border-left-color: #2563eb;
}

.log-event-run {
    border-left-color: #7c3aed;
}

.log-event-file {
    border-left-color: #059669;
}

.log-event-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.log-event-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 4px 9px;
    font-size: 11px;
    font-weight: 900;
}

.log-event-badge-error {
    background: #fee2e2;
    color: #991b1b;
}

.log-event-badge-warning {
    background: #fef3c7;
    color: #92400e;
}

.log-event-badge-mail {
    background: #dbeafe;
    color: #1d4ed8;
}

.log-event-badge-run {
    background: #ede9fe;
    color: #6d28d9;
}

.log-event-badge-file {
    background: #d1fae5;
    color: #065f46;
}

.log-event-source {
    color: #6b7280;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.log-event-line {
    font-size: 12px;
    line-height: 1.5;
    color: #374151;
    word-break: break-word;
    white-space: pre-wrap;
}

@media (max-width: 720px) {
    .log-summary-count-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 420px) {
    .log-summary-count-row {
        grid-template-columns: 1fr;
    }

    .log-event-head {
        align-items: flex-start;
        flex-direction: column;
    }
}

.manual-input-entry-card {
    background: white;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
}

.manual-input-entry-main {
    min-width: 0;
    flex: 1 1 auto;
}

.manual-input-entry-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 110px;
    border-radius: 999px;
    padding: 10px 14px;
    background: #111827;
    color: white;
    text-decoration: none;
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
}

.manual-input-entry-button:active {
    transform: scale(0.98);
}

.manual-input-form {
    background: white;
    border-radius: 18px;
    padding: 18px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.manual-input-textarea {
    min-height: 260px;
    resize: vertical;
    line-height: 1.6;
}

.manual-input-warning {
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 14px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    color: #92400e;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.6;
}

.manual-input-row {
    background: white;
    border-radius: 16px;
    padding: 15px 16px;
    margin-bottom: 10px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.manual-input-row-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
}

.manual-input-detail {
    margin-top: 10px;
    border-top: 1px solid #e5e7eb;
    padding-top: 10px;
}

.manual-input-detail summary {
    cursor: pointer;
    font-size: 13px;
    font-weight: 900;
    color: #111827;
}

.manual-input-detail pre {
    margin-top: 8px;
    max-height: 260px;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    background: #111827;
    color: white;
    border-radius: 12px;
    padding: 12px;
    font-size: 12px;
    line-height: 1.5;
}

@media (max-width: 520px) {
    .manual-input-entry-card {
        flex-direction: column;
        align-items: stretch;
    }

    .manual-input-entry-button {
        width: 100%;
        box-sizing: border-box;
    }
}

.manual-input-action-row {
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
}

.manual-input-detail-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 8px 12px;
    background: #111827;
    color: white;
    text-decoration: none;
    font-size: 12px;
    font-weight: 900;
}

.manual-input-detail-button:active {
    transform: scale(0.98);
}

.manual-input-detail-card,
.manual-input-body-card,
.manual-input-delete-card {
    background: white;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.manual-input-detail-title {
    font-size: 18px;
    font-weight: 900;
    margin: 10px 0 14px;
    line-height: 1.4;
}

.manual-input-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.manual-input-detail-grid div {
    background: #f9fafb;
    border-radius: 12px;
    padding: 10px;
}

.manual-input-detail-grid span {
    display: block;
    font-size: 11px;
    color: #6b7280;
    margin-bottom: 4px;
    font-weight: 800;
}

.manual-input-detail-grid strong {
    display: block;
    font-size: 13px;
    color: #111827;
    word-break: break-word;
}

.manual-input-body-card pre {
    margin: 0;
    max-height: 520px;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    background: #111827;
    color: white;
    border-radius: 12px;
    padding: 12px;
    font-size: 13px;
    line-height: 1.6;
}

.manual-input-delete-button {
    width: 100%;
    border: 0;
    border-radius: 14px;
    padding: 13px 14px;
    margin-top: 12px;
    background: #991b1b;
    color: white;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.manual-input-delete-button:active {
    transform: scale(0.98);
}

@media (max-width: 520px) {
    .manual-input-detail-grid {
        grid-template-columns: 1fr;
    }

    .manual-input-action-row {
        justify-content: stretch;
    }

    .manual-input-detail-button {
        width: 100%;
        box-sizing: border-box;
    }
}

.manual-input-apply-card {
    background: white;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.manual-input-apply-warning {
    padding: 12px 14px;
    border-radius: 14px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.6;
}

.manual-input-apply-button {
    width: 100%;
    border: 0;
    border-radius: 14px;
    padding: 13px 14px;
    margin-top: 12px;
    background: #1d4ed8;
    color: white;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.manual-input-apply-button:active {
    transform: scale(0.98);
}

.manual-input-applied-box {
    padding: 12px 14px;
    border-radius: 14px;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    color: #065f46;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.7;
}

.manual-input-cancel-form {
    margin-top: 14px;
}

.manual-input-cancel-button {
    width: 100%;
    border: 0;
    border-radius: 14px;
    padding: 13px 14px;
    margin-top: 12px;
    background: #991b1b;
    color: white;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.manual-input-cancel-button:active {
    transform: scale(0.98);
}

.manual-input-cancelled-box {
    padding: 12px 14px;
    border-radius: 14px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.7;
}

.manual-input-edit-form {
    background: white;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.manual-input-edit-textarea {
    min-height: 260px;
    resize: vertical;
    line-height: 1.6;
}

.manual-input-edit-button {
    width: 100%;
    border: 0;
    border-radius: 14px;
    padding: 13px 14px;
    margin-top: 12px;
    background: #111827;
    color: white;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.manual-input-edit-button:active {
    transform: scale(0.98);
}

.manual-input-replacement-form {
    margin-top: 14px;
}

.manual-input-replacement-warning {
    padding: 12px 14px;
    border-radius: 14px;
    background: #f5f3ff;
    border: 1px solid #ddd6fe;
    color: #5b21b6;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.6;
}

.manual-input-replacement-button {
    width: 100%;
    border: 0;
    border-radius: 14px;
    padding: 13px 14px;
    margin-top: 12px;
    background: #6d28d9;
    color: white;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.manual-input-replacement-button:active {
    transform: scale(0.98);
}

.manual-input-filter-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0 0 12px;
}

.manual-input-filter-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 8px 11px;
    background: white;
    border: 1px solid #d1d5db;
    color: #374151;
    text-decoration: none;
    font-size: 12px;
    font-weight: 900;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
}

.manual-input-filter-chip-active {
    background: #111827;
    border-color: #111827;
    color: white;
}

.manual-input-filter-chip:active {
    transform: scale(0.98);
}

.manual-input-search-form {
    background: white;
    border-radius: 16px;
    padding: 14px;
    margin-bottom: 12px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.manual-input-search-input {
    margin-bottom: 10px;
}

.manual-input-search-actions {
    display: flex;
    gap: 8px;
}

.manual-input-search-button,
.manual-input-search-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 10px 14px;
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
    cursor: pointer;
}

.manual-input-search-button {
    flex: 1;
    background: #111827;
    color: white;
}

.manual-input-search-reset {
    min-width: 82px;
    background: white;
    color: #111827;
    border: 1px solid #d1d5db;
}

.manual-input-search-button:active,
.manual-input-search-reset:active {
    transform: scale(0.98);
}

.manual-input-search-status {
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
    font-size: 13px;
    font-weight: 800;
}

.manual-input-sort-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    margin: 0 0 12px;
}

.manual-input-sort-label {
    color: #4b5563;
    font-size: 12px;
    font-weight: 900;
    padding: 0 2px;
}

.manual-input-sort-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 7px 10px;
    background: white;
    border: 1px solid #d1d5db;
    color: #374151;
    text-decoration: none;
    font-size: 12px;
    font-weight: 900;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
}

.manual-input-sort-chip-active {
    background: #1d4ed8;
    border-color: #1d4ed8;
    color: white;
}

.manual-input-sort-chip:active {
    transform: scale(0.98);
}

@media (max-width: 520px) {
    .manual-input-filter-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .manual-input-filter-chip {
        width: 100%;
        box-sizing: border-box;
    }

    .manual-input-search-actions {
        flex-direction: column;
    }

    .manual-input-search-button,
    .manual-input-search-reset {
        width: 100%;
        box-sizing: border-box;
    }

    .manual-input-sort-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .manual-input-sort-label {
        grid-column: 1 / -1;
    }

    .manual-input-sort-chip {
        width: 100%;
        box-sizing: border-box;
    }
}

.manual-input-page-size-select {
    margin-bottom: 10px;
}

.manual-input-page-summary {
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 13px;
    font-weight: 800;
}

.manual-input-pagination-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    margin: 14px 0 4px;
}

.manual-input-pagination-chip,
.manual-input-pagination-current {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 9px 12px;
    background: white;
    border: 1px solid #d1d5db;
    color: #111827;
    text-decoration: none;
    font-size: 12px;
    font-weight: 900;
    min-width: 58px;
}

.manual-input-pagination-current {
    background: #111827;
    border-color: #111827;
    color: white;
}

.manual-input-pagination-disabled {
    background: #f3f4f6;
    color: #9ca3af;
    cursor: not-allowed;
}

.manual-input-pagination-chip:active {
    transform: scale(0.98);
}

@media (max-width: 520px) {
    .manual-input-pagination-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .manual-input-pagination-chip,
    .manual-input-pagination-current {
        width: 100%;
        box-sizing: border-box;
    }

    .manual-input-pagination-current {
        grid-column: 1 / -1;
        order: -1;
    }
}

.manual-input-export-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 12px;
    padding: 12px 14px;
    border-radius: 14px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
}

.manual-input-export-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 9px 13px;
    background: #065f46;
    color: white;
    text-decoration: none;
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
}

.manual-input-export-link:active {
    transform: scale(0.98);
}

.manual-input-export-note {
    color: #065f46;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

@media (max-width: 520px) {
    .manual-input-export-row {
        flex-direction: column;
        align-items: stretch;
    }

    .manual-input-export-link {
        width: 100%;
        box-sizing: border-box;
    }
}

.manual-input-checkbox-row {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 14px 0 8px;
    padding: 12px 14px;
    border-radius: 14px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    color: #111827;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.5;
}

.manual-input-checkbox-row input {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    flex: 0 0 auto;
}

.manual-input-help-text {
    margin: 0 0 10px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.manual-set-apply-box {
    margin-top: 14px;
    padding: 14px;
    border-radius: 16px;
    background: white;
    border: 1px solid #e5e7eb;
    color: #111827;
}

.manual-set-apply-title {
    font-size: 15px;
    font-weight: 1000;
    margin-bottom: 6px;
}

.manual-set-apply-desc {
    color: #4b5563;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.manual-set-apply-errors,
.manual-set-apply-warnings {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.6;
}

.manual-set-apply-errors {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}

.manual-set-apply-warnings {
    background: #fffbeb;
    border: 1px solid #fde68a;
    color: #92400e;
}

.manual-set-apply-summary {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.manual-set-apply-summary span {
    border-radius: 999px;
    padding: 6px 9px;
    background: #f3f4f6;
    color: #374151;
    font-size: 11px;
    font-weight: 900;
}

.manual-set-apply-form {
    margin-top: 12px;
}

.manual-set-apply-button {
    width: 100%;
    border: 0;
    border-radius: 14px;
    padding: 13px 14px;
    background: #1d4ed8;
    color: white;
    font-size: 14px;
    font-weight: 1000;
    cursor: pointer;
}

.manual-set-apply-button:active {
    transform: scale(0.98);
}

.manual-set-apply-disabled {
    margin-top: 12px;
    padding: 11px 12px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    color: #6b7280;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.5;
}

.manual-input-status-link,
.manual-input-status-back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 10px 14px;
    background: #111827;
    color: white;
    text-decoration: none;
    font-size: 13px;
    font-weight: 900;
}

.pr-action-buttons {
    flex: 0 0 148px;
    width: 148px;
    min-width: 148px;
    max-width: 148px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 8px;
}

.pr-action-button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 148px;
    height: 38px;
    padding: 0 10px;
    border-radius: 999px;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    writing-mode: horizontal-tb !important;
    text-align: center;
    line-height: 1;
    font-size: 13px;
    font-weight: 900;
    box-sizing: border-box;
}

.pr-action-button.primary {
    min-width: 0 !important;
}

.pr-action-button.secondary {
    min-width: 0 !important;
}

@media (max-width: 640px) {
    .manual-input-entry-card {
        flex-direction: column;
        align-items: stretch;
    }

    .pr-action-buttons {
        flex: 0 0 auto;
        width: 100%;
        min-width: 0;
        max-width: none;
        flex-direction: column;
        align-items: stretch;
    }

    .pr-action-button {
        width: 100% !important;
        max-width: none;
        height: 42px;
    }
}

.manual-input-status-nav {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 14px 0;
}

.manual-input-status-back {
    background: #374151;
}

.manual-input-status-form {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.manual-company-status-grid {
    display: grid;
    gap: 12px;
}

.manual-company-status-card {
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: white;
    padding: 14px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05);
}

.manual-company-status-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.manual-company-status-company {
    color: #111827;
    font-size: 18px;
    font-weight: 1000;
}

.manual-company-status-label {
    margin-top: 4px;
    color: #374151;
    font-size: 13px;
    font-weight: 900;
}

.manual-company-status-count {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 7px 10px;
    background: #f3f4f6;
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
}

.manual-company-status-summary {
    margin-top: 10px;
    color: #374151;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
}

.manual-company-status-meta {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.manual-company-status-meta span,
.manual-company-status-jobids span {
    border-radius: 999px;
    padding: 6px 9px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 11px;
    font-weight: 900;
}

.manual-company-status-jobids {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 10px;
    color: #374151;
    font-size: 12px;
    font-weight: 900;
}

.manual-company-status-items {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.manual-company-status-item {
    display: grid;
    gap: 4px;
    padding: 10px 11px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    text-decoration: none;
    color: #111827;
}

.manual-company-status-item strong {
    font-size: 13px;
    font-weight: 900;
}

.manual-company-status-item span {
    color: #6b7280;
    font-size: 12px;
    font-weight: 800;
}

.manual-company-status-empty {
    margin-top: 12px;
    padding: 10px 11px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    color: #6b7280;
    font-size: 13px;
    font-weight: 800;
}

.manual-company-status-applied {
    border-color: #86efac;
    background: #f0fdf4;
}

.manual-company-status-draft {
    border-color: #fde68a;
    background: #fffbeb;
}

.manual-company-status-none {
    border-color: #bfdbfe;
    background: #eff6ff;
}

.manual-company-status-cancelled {
    border-color: #fecaca;
    background: #fef2f2;
}

.manual-company-status-empty {
    border-color: #e5e7eb;
}

.manual-input-origin-summary {
    display: grid;
    gap: 7px;
    padding: 12px;
    border-radius: 14px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
    word-break: break-all;
}

.manual-origin-job-list {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.manual-origin-job-card {
    padding: 12px;
    border-radius: 14px;
    border: 1px solid #e5e7eb;
    background: white;
}

.manual-origin-job-title {
    color: #111827;
    font-size: 14px;
    font-weight: 1000;
}

.manual-origin-job-subtitle {
    margin-top: 5px;
    color: #374151;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
}

.manual-origin-job-meta {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.manual-origin-job-meta span {
    border-radius: 999px;
    padding: 6px 9px;
    background: #f3f4f6;
    color: #374151;
    font-size: 11px;
    font-weight: 900;
}

.original-readiness-box {
    margin-bottom: 14px;
    padding: 13px 14px;
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
}

.original-readiness-head {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    margin-bottom: 8px;
}

.original-readiness-head strong {
    color: #111827;
    font-size: 15px;
    font-weight: 1000;
}

.original-readiness-head span {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 5px 9px;
    background: white;
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 11px;
    font-weight: 900;
}

.original-readiness-messages {
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.6;
}

.original-readiness-ready {
    background: #f0fdf4;
    border-color: #86efac;
}

.original-readiness-warning {
    background: #fffbeb;
    border-color: #fde68a;
}

.original-readiness-blocked,
.original-readiness-error {
    background: #fef2f2;
    border-color: #fecaca;
}

.original-company-final-grid {
    display: grid;
    gap: 12px;
}

.original-company-final-card {
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: white;
    padding: 14px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05);
}

.original-company-final-head {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: flex-start;
}

.original-company-final-name {
    color: #111827;
    font-size: 18px;
    font-weight: 1000;
}

.original-company-final-label {
    margin-top: 4px;
    color: #374151;
    font-size: 13px;
    font-weight: 900;
}

.original-company-final-count {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 7px 10px;
    background: #f3f4f6;
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
}

.original-company-final-summary {
    margin-top: 10px;
    color: #374151;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
}

.original-company-final-titles {
    display: grid;
    gap: 6px;
    margin-top: 10px;
}

.original-company-final-titles div {
    border-radius: 12px;
    padding: 8px 10px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid #e5e7eb;
    color: #111827;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.5;
}

.original-company-final-jobs {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.original-company-final-jobs div {
    display: grid;
    gap: 3px;
    border-radius: 12px;
    padding: 9px 10px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid #e5e7eb;
}

.original-company-final-jobs strong {
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
}

.original-company-final-jobs span {
    color: #4b5563;
    font-size: 11px;
    font-weight: 900;
}

.original-company-final-jobs em {
    color: #374151;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
    line-height: 1.4;
}

.original-company-final-empty {
    margin-top: 10px;
    padding: 10px 11px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    color: #6b7280;
    font-size: 12px;
    font-weight: 900;
}

.original-company-final-applied {
    background: #f0fdf4;
    border-color: #86efac;
}

.original-company-final-none {
    background: #eff6ff;
    border-color: #bfdbfe;
}

.original-company-final-error {
    background: #fef2f2;
    border-color: #fecaca;
}

.manual-origin-job-note {
    margin-top: 8px;
    padding: 9px 10px;
    border-radius: 12px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.5;
}

.manual-origin-job-warnings {
    margin-top: 8px;
    padding: 9px 10px;
    border-radius: 12px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    color: #92400e;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.6;
}

@media (min-width: 760px) {
    .manual-company-status-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .manual-input-status-form {
        grid-template-columns: 1fr auto;
        align-items: end;
    }

    .manual-input-status-form .label {
        grid-column: 1 / -1;
    }

    .original-company-final-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.manual-status-run-box {
    padding: 14px;
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: white;
}

.manual-status-run-ready {
    background: #f0fdf4;
    border-color: #86efac;
}

.manual-status-run-blocked {
    background: #fef2f2;
    border-color: #fecaca;
}

.manual-status-run-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
}

.manual-status-run-head strong {
    color: #111827;
    font-size: 16px;
    font-weight: 1000;
}

.manual-status-run-head span {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 5px 9px;
    background: white;
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 11px;
    font-weight: 900;
}

.manual-status-run-desc {
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.6;
}

.manual-status-run-reasons {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.6;
}

.manual-status-run-reasons-block {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}

.manual-status-run-reasons-warning {
    background: #fffbeb;
    border: 1px solid #fde68a;
    color: #92400e;
}

.manual-status-run-lock {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 12px;
}

.manual-status-run-lock div {
    border-radius: 12px;
    padding: 9px 10px;
    background: rgba(255, 255, 255, 0.75);
    border: 1px solid #e5e7eb;
}

.manual-status-run-lock span {
    display: block;
    color: #6b7280;
    font-size: 11px;
    font-weight: 900;
    margin-bottom: 4px;
}

.manual-status-run-lock strong {
    display: block;
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
    word-break: break-word;
}

.manual-status-run-confirm {
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 14px;
    background: white;
    border: 1px dashed #f59e0b;
    color: #92400e;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.5;
}

.manual-status-run-confirm label {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    cursor: pointer;
}

.manual-status-run-confirm input {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    flex: 0 0 auto;
}

.manual-status-run-button-grid {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.manual-status-run-form {
    display: grid;
    gap: 7px;
    padding: 12px;
    border-radius: 14px;
    background: white;
    border: 1px solid #e5e7eb;
}

.manual-status-run-button {
    width: 100%;
    border: 0;
    border-radius: 14px;
    padding: 13px 14px;
    background: #1d4ed8;
    color: white;
    font-size: 14px;
    font-weight: 1000;
    cursor: pointer;
}

.manual-status-run-button-recommended {
    background: #065f46;
}

.manual-status-run-button:disabled {
    background: #9ca3af;
    cursor: not-allowed;
}

.manual-status-run-button:active:not(:disabled) {
    transform: scale(0.98);
}

.manual-status-run-option-desc {
    color: #4b5563;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.manual-status-run-option-desc strong {
    display: inline-flex;
    margin-top: 5px;
    border-radius: 999px;
    padding: 4px 8px;
    background: #dcfce7;
    color: #166534;
    font-size: 11px;
    font-weight: 1000;
}

.manual-status-run-disabled {
    margin-top: 12px;
    padding: 11px 12px;
    border-radius: 12px;
    background: white;
    border: 1px dashed #d1d5db;
    color: #6b7280;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.5;
}

@media (min-width: 760px) {
    .manual-status-run-lock {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .manual-status-run-button-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .manual-status-run-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .manual-status-run-lock {
        grid-template-columns: 1fr;
    }
}

.manual-status-result-summary {
    display: grid;
    gap: 6px;
    padding: 12px 13px;
    border-radius: 14px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
    margin-bottom: 12px;
}

.manual-status-result-list {
    display: grid;
    gap: 10px;
}

.manual-status-result-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px 13px;
    border-radius: 14px;
    background: white;
    border: 1px solid #e5e7eb;
}

.manual-status-result-main {
    min-width: 0;
    flex: 1;
}

.manual-status-result-name {
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
    word-break: break-word;
}

.manual-status-result-meta {
    margin-top: 4px;
    color: #6b7280;
    font-size: 11px;
    font-weight: 800;
    word-break: break-word;
}

.manual-status-result-download {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 8px 11px;
    background: #111827;
    color: white;
    text-decoration: none;
    font-size: 12px;
    font-weight: 900;
}

.manual-status-result-download:active {
    transform: scale(0.98);
}

.manual-status-result-empty {
    padding: 12px 13px;
    border-radius: 14px;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    color: #6b7280;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.manual-status-recent-result-title {
    margin: 14px 0 8px;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.manual-status-log-count-row {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.manual-status-log-count-card {
    border-radius: 14px;
    padding: 11px 10px;
    background: white;
    border: 1px solid #e5e7eb;
}

.manual-status-log-count-card span {
    display: block;
    color: #6b7280;
    font-size: 10px;
    font-weight: 900;
    margin-bottom: 4px;
}

.manual-status-log-count-card strong {
    display: block;
    color: #111827;
    font-size: 18px;
    font-weight: 1000;
}

.manual-status-log-count-error {
    background: #fef2f2;
    border-color: #fecaca;
}

.manual-status-log-count-warning {
    background: #fffbeb;
    border-color: #fde68a;
}

.manual-status-log-count-mail {
    background: #eff6ff;
    border-color: #bfdbfe;
}

.manual-status-log-count-run {
    background: #f5f3ff;
    border-color: #ddd6fe;
}

.manual-status-log-count-file {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.manual-status-log-event-list {
    display: grid;
    gap: 8px;
}

.manual-status-log-event-card {
    border-radius: 14px;
    padding: 11px 12px;
    background: white;
    border: 1px solid #e5e7eb;
    border-left: 5px solid #d1d5db;
}

.manual-status-log-event-error {
    border-left-color: #dc2626;
}

.manual-status-log-event-warning {
    border-left-color: #f59e0b;
}

.manual-status-log-event-mail {
    border-left-color: #2563eb;
}

.manual-status-log-event-run {
    border-left-color: #7c3aed;
}

.manual-status-log-event-file {
    border-left-color: #059669;
}

.manual-status-log-event-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 7px;
}

.manual-status-log-event-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 4px 8px;
    font-size: 10px;
    font-weight: 1000;
}

.manual-status-log-event-badge-error {
    background: #fee2e2;
    color: #991b1b;
}

.manual-status-log-event-badge-warning {
    background: #fef3c7;
    color: #92400e;
}

.manual-status-log-event-badge-mail {
    background: #dbeafe;
    color: #1d4ed8;
}

.manual-status-log-event-badge-run {
    background: #ede9fe;
    color: #6d28d9;
}

.manual-status-log-event-badge-file {
    background: #d1fae5;
    color: #065f46;
}

.manual-status-log-event-source {
    color: #6b7280;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.manual-status-log-event-line {
    color: #374151;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
    white-space: pre-wrap;
    word-break: break-word;
}

@media (max-width: 720px) {
    .manual-status-log-count-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .manual-status-result-card {
        align-items: stretch;
        flex-direction: column;
    }

    .manual-status-result-download {
        width: 100%;
        box-sizing: border-box;
    }

    .manual-status-log-count-row {
        grid-template-columns: 1fr;
    }

    .manual-status-log-event-head {
        align-items: flex-start;
        flex-direction: column;
    }
}

.manual-target-job-guide {
    padding: 12px 13px;
    border-radius: 14px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.6;
    margin-bottom: 12px;
}

.manual-target-job-list {
    display: grid;
    gap: 10px;
}

.manual-target-job-card {
    display: grid;
    gap: 10px;
    padding: 13px;
    border-radius: 16px;
    background: white;
    border: 1px solid #e5e7eb;
}

.manual-target-job-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}

.manual-target-job-id {
    color: #111827;
    font-size: 15px;
    font-weight: 1000;
    word-break: break-word;
}

.manual-target-job-title {
    margin-top: 4px;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
    word-break: break-word;
}

.manual-copy-job-id-button {
    flex: 0 0 auto;
    border: 0;
    border-radius: 999px;
    padding: 8px 10px;
    background: #111827;
    color: white;
    font-size: 11px;
    font-weight: 1000;
    cursor: pointer;
}

.manual-copy-job-id-button-done {
    background: #065f46;
}

.manual-copy-job-id-button:active {
    transform: scale(0.98);
}

.manual-target-job-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.manual-target-job-meta span {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 5px 8px;
    background: #f3f4f6;
    color: #374151;
    font-size: 11px;
    font-weight: 900;
}

.manual-target-job-warnings {
    padding: 9px 10px;
    border-radius: 12px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    color: #92400e;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
}

.manual-target-job-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.manual-target-job-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    padding: 11px 12px;
    background: #1d4ed8;
    color: white;
    text-decoration: none;
    font-size: 13px;
    font-weight: 1000;
}

.manual-target-job-actions a:nth-child(2) {
    background: #7c3aed;
}

.manual-target-job-actions a:active {
    transform: scale(0.98);
}

.manual-target-job-empty {
    padding: 12px 13px;
    border-radius: 14px;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    color: #6b7280;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.6;
}

.manual-target-prefill-box {
    margin-top: 8px;
    padding: 10px 11px;
    border-radius: 13px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e40af;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.5;
}

.manual-target-prefill-box strong {
    display: block;
    margin-top: 4px;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
    word-break: break-word;
}

@media (max-width: 520px) {
    .manual-target-job-head {
        flex-direction: column;
    }

    .manual-copy-job-id-button {
        width: 100%;
    }

    .manual-target-job-actions {
        grid-template-columns: 1fr;
    }
}

.manual-operation-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.manual-operation-summary-card {
    padding: 12px;
    border-radius: 14px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}

.manual-operation-summary-card span {
    display: block;
    color: #6b7280;
    font-size: 11px;
    font-weight: 900;
}

.manual-operation-summary-card strong {
    display: block;
    margin-top: 5px;
    color: #111827;
    font-size: 20px;
    font-weight: 1000;
}

.manual-operation-message-list {
    display: grid;
    gap: 5px;
    padding: 11px 12px;
    border-radius: 14px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    margin-bottom: 12px;
}

.manual-operation-message {
    color: #1e40af;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.5;
}

.manual-operation-list {
    display: grid;
    gap: 10px;
}

.manual-operation-item {
    display: grid;
    gap: 9px;
    padding: 13px;
    border-radius: 16px;
    background: white;
    border: 1px solid #e5e7eb;
}

.manual-operation-item-draft {
    border-color: #fde68a;
    background: #fffbeb;
}

.manual-operation-item-applied {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.manual-operation-item-cancelled {
    border-color: #fecaca;
    background: #fef2f2;
}

.manual-operation-item-deleted {
    border-color: #d1d5db;
    background: #f9fafb;
}

.manual-operation-item-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.manual-operation-item-title {
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
    line-height: 1.4;
}

.manual-operation-item-subtitle {
    margin-top: 4px;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
    word-break: break-word;
}

.manual-operation-badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 6px 9px;
    font-size: 11px;
    font-weight: 1000;
    background: #e5e7eb;
    color: #374151;
}

.manual-operation-badge-draft {
    background: #fef3c7;
    color: #92400e;
}

.manual-operation-badge-applied {
    background: #dcfce7;
    color: #166534;
}

.manual-operation-badge-cancelled {
    background: #fee2e2;
    color: #991b1b;
}

.manual-operation-badge-deleted {
    background: #e5e7eb;
    color: #374151;
}

.manual-operation-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.manual-operation-meta span {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 5px 8px;
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 11px;
    font-weight: 900;
    word-break: break-word;
}

.manual-operation-note {
    padding: 9px 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.85);
    border: 1px dashed #d1d5db;
    color: #4b5563;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
}

.manual-operation-actions {
    display: flex;
    justify-content: flex-end;
}

.manual-operation-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 8px 11px;
    background: #111827;
    color: white;
    text-decoration: none;
    font-size: 11px;
    font-weight: 1000;
}

.manual-operation-empty {
    padding: 12px 13px;
    border-radius: 14px;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    color: #6b7280;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.6;
}

@media (max-width: 520px) {
    .manual-operation-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .manual-operation-item-head {
        flex-direction: column;
    }

    .manual-operation-badge {
        width: fit-content;
    }

    .manual-operation-actions a {
        width: 100%;
    }
}

.manual-execution-card {
  margin-top: 18px;
}

.manual-execution-summary-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.manual-execution-summary-item {
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 12px;
  background: #ffffff;
}

.manual-execution-summary-label {
  display: block;
  font-size: 12px;
  color: #6b7280;
  margin-bottom: 6px;
}

.manual-execution-summary-item strong {
  font-size: 20px;
  color: #111827;
}

.manual-execution-messages {
  margin-top: 12px;
  display: grid;
  gap: 6px;
}

.manual-execution-message {
  border-radius: 12px;
  padding: 9px 11px;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  color: #374151;
  font-size: 13px;
}

.manual-execution-list {
  margin-top: 14px;
  display: grid;
  gap: 10px;
}

.manual-execution-item {
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 14px;
  background: #ffffff;
}

.manual-execution-item-completed {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.manual-execution-item-slot {
  border-color: #bfdbfe;
  background: #eff6ff;
}

.manual-execution-item-pending {
  border-color: #fde68a;
  background: #fffbeb;
}

.manual-execution-item-waiting,
.manual-execution-item-unknown {
  border-color: #e5e7eb;
  background: #f9fafb;
}

.manual-execution-item-cancelled {
  border-color: #fecaca;
  background: #fef2f2;
}

.manual-execution-main {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.manual-execution-title {
  font-weight: 700;
  color: #111827;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.manual-execution-subtitle {
  margin-top: 4px;
  font-size: 13px;
  color: #4b5563;
}

.manual-execution-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 12px;
  font-weight: 700;
  background: #e5e7eb;
  color: #374151;
}

.manual-execution-badge-completed {
  background: #dcfce7;
  color: #166534;
}

.manual-execution-badge-slot {
  background: #dbeafe;
  color: #1d4ed8;
}

.manual-execution-badge-pending {
  background: #fef3c7;
  color: #92400e;
}

.manual-execution-badge-waiting,
.manual-execution-badge-unknown {
  background: #e5e7eb;
  color: #374151;
}

.manual-execution-badge-cancelled {
  background: #fee2e2;
  color: #991b1b;
}

.manual-execution-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-top: 10px;
  font-size: 12px;
  color: #4b5563;
}

.manual-execution-file {
  margin-top: 10px;
  padding: 10px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px dashed #d1d5db;
  font-size: 13px;
  color: #374151;
}

.manual-execution-file-empty {
  color: #6b7280;
}

.manual-execution-path {
  margin-top: 4px;
  font-size: 12px;
  color: #6b7280;
  word-break: break-all;
}

@media (max-width: 900px) {
  .manual-execution-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .manual-execution-summary-grid {
    grid-template-columns: 1fr;
  }

  .manual-execution-main {
    display: block;
  }

  .manual-execution-meta {
    display: grid;
    gap: 6px;
  }
}

.manual-backup-card {
    margin-top: 18px;
}

.manual-backup-message-list {
    display: grid;
    gap: 6px;
    margin-top: 12px;
}

.manual-backup-message {
    border-radius: 12px;
    padding: 9px 11px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
}

.manual-backup-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 12px;
    padding: 12px;
    border-radius: 14px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
}

.manual-backup-total span {
    color: #1e40af;
    font-size: 13px;
    font-weight: 900;
}

.manual-backup-total strong {
    color: #111827;
    font-size: 20px;
    font-weight: 1000;
}

.manual-backup-group-list {
    display: grid;
    gap: 12px;
    margin-top: 14px;
}

.manual-backup-group {
    display: grid;
    gap: 10px;
    padding: 14px;
    border-radius: 16px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
}

.manual-backup-group-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}

.manual-backup-group-title {
    color: #111827;
    font-size: 14px;
    font-weight: 1000;
}

.manual-backup-group-desc {
    margin-top: 4px;
    color: #4b5563;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.manual-backup-group-count {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 6px 9px;
    background: #111827;
    color: white;
    font-size: 11px;
    font-weight: 1000;
}

.manual-backup-path {
    padding: 9px 10px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    color: #4b5563;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
    word-break: break-all;
}

.manual-backup-file-list {
    display: grid;
    gap: 8px;
}

.manual-backup-file {
    padding: 10px 11px;
    border-radius: 13px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}

.manual-backup-file-name {
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
    word-break: break-word;
}

.manual-backup-file-meta {
    margin-top: 4px;
    color: #6b7280;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
    word-break: break-all;
}

.manual-backup-empty {
    padding: 11px 12px;
    border-radius: 13px;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    color: #6b7280;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

@media (max-width: 520px) {
    .manual-backup-group-head {
        flex-direction: column;
    }

    .manual-backup-group-count {
        width: fit-content;
    }
}

.operation-health-card {
    margin-bottom: 18px;
}

.operation-health-head {
    display: grid;
    gap: 12px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    margin-bottom: 12px;
}

.operation-health-head strong {
    display: block;
    color: #111827;
    font-size: 18px;
    font-weight: 1000;
}

.operation-health-head p {
    margin: 6px 0 0;
    color: #4b5563;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
}

.operation-health-head-ok {
    background: #f0fdf4;
    border-color: #86efac;
}

.operation-health-head-warn {
    background: #fffbeb;
    border-color: #fde68a;
}

.operation-health-head-bad {
    background: #fef2f2;
    border-color: #fecaca;
}

.operation-health-counts {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.operation-health-counts span {
    border-radius: 999px;
    padding: 6px 9px;
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 11px;
    font-weight: 1000;
}

.operation-health-message-list {
    display: grid;
    gap: 6px;
    margin-bottom: 12px;
}

.operation-health-message {
    padding: 9px 11px;
    border-radius: 12px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e40af;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.5;
}

.operation-health-item-list {
    display: grid;
    gap: 9px;
}

.operation-health-item {
    padding: 12px;
    border-radius: 15px;
    background: white;
    border: 1px solid #e5e7eb;
}

.operation-health-item-ok {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.operation-health-item-warn {
    border-color: #fde68a;
    background: #fffbeb;
}

.operation-health-item-bad {
    border-color: #fecaca;
    background: #fef2f2;
}

.operation-health-item-main {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
}

.operation-health-item-title {
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.operation-health-item-message {
    margin-top: 4px;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.operation-health-badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 5px 8px;
    font-size: 11px;
    font-weight: 1000;
}

.operation-health-badge-ok {
    background: #dcfce7;
    color: #166534;
}

.operation-health-badge-warn {
    background: #fef3c7;
    color: #92400e;
}

.operation-health-badge-bad {
    background: #fee2e2;
    color: #991b1b;
}

.operation-health-detail {
    margin-top: 8px;
    padding: 8px 9px;
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.8);
    border: 1px dashed #d1d5db;
    color: #4b5563;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
    word-break: break-all;
}

.operation-health-env-detail {
    margin-top: 12px;
    padding: 12px;
    border-radius: 14px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}

.operation-health-env-detail summary {
    cursor: pointer;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.operation-health-env-list {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.operation-health-env-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
    padding: 10px;
    border-radius: 12px;
    background: white;
    border: 1px solid #e5e7eb;
}

.operation-health-env-item strong {
    display: block;
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
}

.operation-health-env-item span {
    display: block;
    margin-top: 3px;
    color: #6b7280;
    font-size: 11px;
    font-weight: 800;
    word-break: break-all;
}

.operation-health-env-item em {
    flex: 0 0 auto;
    font-style: normal;
    border-radius: 999px;
    padding: 5px 8px;
    font-size: 11px;
    font-weight: 1000;
}

.operation-health-env-ok em {
    background: #dcfce7;
    color: #166534;
}

.operation-health-env-bad em {
    background: #fee2e2;
    color: #991b1b;
}

.operation-health-secret-note {
    margin-top: 10px;
    padding: 9px 10px;
    border-radius: 11px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e40af;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.5;
}

@media (max-width: 520px) {
    .operation-health-item-main,
    .operation-health-env-item {
        flex-direction: column;
    }

    .operation-health-badge,
    .operation-health-env-item em {
        width: fit-content;
    }
}

.deploy-readiness-card {
    margin-bottom: 18px;
}

.deploy-readiness-head {
    display: grid;
    gap: 12px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    margin-bottom: 12px;
}

.deploy-readiness-head strong {
    display: block;
    color: #111827;
    font-size: 18px;
    font-weight: 1000;
}

.deploy-readiness-head p {
    margin: 6px 0 0;
    color: #4b5563;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
}

.deploy-readiness-head-ok {
    background: #f0fdf4;
    border-color: #86efac;
}

.deploy-readiness-head-warn {
    background: #fffbeb;
    border-color: #fde68a;
}

.deploy-readiness-head-bad {
    background: #fef2f2;
    border-color: #fecaca;
}

.deploy-readiness-counts {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.deploy-readiness-counts span {
    border-radius: 999px;
    padding: 6px 9px;
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 11px;
    font-weight: 1000;
}

.deploy-readiness-message-list {
    display: grid;
    gap: 6px;
    margin-bottom: 12px;
}

.deploy-readiness-message {
    padding: 9px 11px;
    border-radius: 12px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e40af;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.5;
}

.deploy-readiness-item-list {
    display: grid;
    gap: 9px;
}

.deploy-readiness-item {
    padding: 12px;
    border-radius: 15px;
    background: white;
    border: 1px solid #e5e7eb;
}

.deploy-readiness-item-ok {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.deploy-readiness-item-warn {
    border-color: #fde68a;
    background: #fffbeb;
}

.deploy-readiness-item-bad {
    border-color: #fecaca;
    background: #fef2f2;
}

.deploy-readiness-item-main {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
}

.deploy-readiness-item-title {
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.deploy-readiness-item-message {
    margin-top: 4px;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.deploy-readiness-badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 5px 8px;
    font-size: 11px;
    font-weight: 1000;
}

.deploy-readiness-badge-ok {
    background: #dcfce7;
    color: #166534;
}

.deploy-readiness-badge-warn {
    background: #fef3c7;
    color: #92400e;
}

.deploy-readiness-badge-bad {
    background: #fee2e2;
    color: #991b1b;
}

.deploy-readiness-detail {
    margin-top: 8px;
    padding: 8px 9px;
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.8);
    border: 1px dashed #d1d5db;
    color: #4b5563;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
    word-break: break-all;
}

.deploy-command-detail {
    margin-top: 12px;
    padding: 12px;
    border-radius: 14px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}

.deploy-command-detail summary {
    cursor: pointer;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.deploy-command-list {
    display: grid;
    gap: 10px;
    margin-top: 10px;
}

.deploy-command-item {
    display: grid;
    gap: 6px;
}

.deploy-command-label {
    color: #374151;
    font-size: 12px;
    font-weight: 1000;
}

.deploy-command-item pre {
    margin: 0;
    padding: 10px;
    border-radius: 12px;
    background: #111827;
    color: #e5e7eb;
    font-size: 12px;
    line-height: 1.5;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
}

.deploy-url-list {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.deploy-url-item {
    display: grid;
    gap: 4px;
    padding: 10px;
    border-radius: 12px;
    background: white;
    border: 1px solid #e5e7eb;
}

.deploy-url-item strong {
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
}

.deploy-url-item span {
    color: #4b5563;
    font-size: 11px;
    font-weight: 800;
    word-break: break-all;
}

@media (max-width: 520px) {
    .deploy-readiness-item-main {
        flex-direction: column;
    }

    .deploy-readiness-badge {
        width: fit-content;
    }
}

.systemd-draft-card {
    margin-bottom: 18px;
}

.systemd-draft-head {
    display: grid;
    gap: 12px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid #bfdbfe;
    background: #eff6ff;
    margin-bottom: 12px;
}

.systemd-draft-head strong {
    display: block;
    color: #111827;
    font-size: 18px;
    font-weight: 1000;
}

.systemd-draft-head p {
    margin: 6px 0 0;
    color: #1e40af;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
}

.systemd-draft-message-list {
    display: grid;
    gap: 6px;
    margin-bottom: 12px;
}

.systemd-draft-message {
    padding: 9px 11px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.5;
}

.systemd-draft-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.systemd-draft-summary-grid div {
    padding: 12px;
    border-radius: 14px;
    background: white;
    border: 1px solid #e5e7eb;
}

.systemd-draft-summary-grid span {
    display: block;
    color: #6b7280;
    font-size: 11px;
    font-weight: 900;
    margin-bottom: 5px;
}

.systemd-draft-summary-grid strong {
    display: block;
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
    word-break: break-all;
}

.systemd-draft-list,
.systemd-command-list {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.systemd-draft-detail,
.systemd-command-detail {
    padding: 12px;
    border-radius: 14px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
}

.systemd-draft-detail summary,
.systemd-command-detail summary {
    cursor: pointer;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.systemd-draft-desc {
    margin-top: 9px;
    color: #4b5563;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.systemd-draft-filename {
    margin-top: 8px;
    padding: 8px 9px;
    border-radius: 11px;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    color: #374151;
    font-size: 11px;
    font-weight: 900;
    word-break: break-all;
}

.systemd-draft-pre {
    margin: 10px 0 0;
    padding: 12px;
    border-radius: 12px;
    background: #111827;
    color: #e5e7eb;
    font-size: 12px;
    line-height: 1.5;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
}

@media (max-width: 760px) {
    .systemd-draft-summary-grid {
        grid-template-columns: 1fr;
    }
}

.external-access-card {
    margin-bottom: 18px;
}

.external-access-head {
    display: grid;
    gap: 12px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid #c7d2fe;
    background: #eef2ff;
    margin-bottom: 12px;
}

.external-access-head strong {
    display: block;
    color: #111827;
    font-size: 18px;
    font-weight: 1000;
}

.external-access-head p {
    margin: 6px 0 0;
    color: #3730a3;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
}

.external-access-message-list {
    display: grid;
    gap: 6px;
    margin-bottom: 12px;
}

.external-access-message {
    padding: 9px 11px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.5;
}

.external-access-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.external-access-summary-grid div {
    padding: 12px;
    border-radius: 14px;
    background: white;
    border: 1px solid #e5e7eb;
}

.external-access-summary-grid span {
    display: block;
    color: #6b7280;
    font-size: 11px;
    font-weight: 900;
    margin-bottom: 5px;
}

.external-access-summary-grid strong {
    display: block;
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
    word-break: break-all;
}

.external-checklist-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.external-checklist-item {
    padding: 12px;
    border-radius: 14px;
    background: white;
    border: 1px solid #e5e7eb;
}

.external-checklist-title {
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
    margin-bottom: 5px;
}

.external-checklist-desc {
    color: #4b5563;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.external-access-detail,
.external-command-detail {
    padding: 12px;
    border-radius: 14px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    margin-top: 10px;
}

.external-access-detail summary,
.external-command-detail summary {
    cursor: pointer;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.external-url-list {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.external-url-item {
    display: grid;
    gap: 4px;
    padding: 10px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}

.external-url-item strong {
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
}

.external-url-item span {
    color: #4b5563;
    font-size: 11px;
    font-weight: 800;
    word-break: break-all;
}

.external-command-list {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.external-command-desc {
    margin-top: 9px;
    color: #4b5563;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.external-command-pre {
    margin: 10px 0 0;
    padding: 12px;
    border-radius: 12px;
    background: #111827;
    color: #e5e7eb;
    font-size: 12px;
    line-height: 1.5;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
}

@media (max-width: 760px) {
    .external-access-summary-grid,
    .external-checklist-grid {
        grid-template-columns: 1fr;
    }
}

.operation-flow-card {
    margin-bottom: 18px;
}

.operation-flow-head {
    display: grid;
    gap: 12px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    margin-bottom: 12px;
}

.operation-flow-head strong {
    display: block;
    color: #111827;
    font-size: 18px;
    font-weight: 1000;
}

.operation-flow-head p {
    margin: 6px 0 0;
    color: #4b5563;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
}

.operation-flow-head-ok {
    background: #f0fdf4;
    border-color: #86efac;
}

.operation-flow-head-warn {
    background: #fffbeb;
    border-color: #fde68a;
}

.operation-flow-head-bad {
    background: #fef2f2;
    border-color: #fecaca;
}

.operation-flow-counts {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.operation-flow-counts span {
    border-radius: 999px;
    padding: 6px 9px;
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 11px;
    font-weight: 1000;
}

.operation-flow-message-list {
    display: grid;
    gap: 6px;
    margin-bottom: 12px;
}

.operation-flow-message {
    padding: 9px 11px;
    border-radius: 12px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e40af;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.5;
}

.operation-flow-schedule-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.operation-flow-schedule-grid div {
    padding: 12px;
    border-radius: 14px;
    background: white;
    border: 1px solid #e5e7eb;
}

.operation-flow-schedule-grid span {
    display: block;
    color: #6b7280;
    font-size: 11px;
    font-weight: 900;
    margin-bottom: 5px;
}

.operation-flow-schedule-grid strong {
    display: block;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
    word-break: break-all;
}

.operation-flow-group-list {
    display: grid;
    gap: 12px;
}

.operation-flow-group {
    padding: 12px;
    border-radius: 16px;
    background: white;
    border: 1px solid #e5e7eb;
}

.operation-flow-group-title {
    color: #111827;
    font-size: 15px;
    font-weight: 1000;
    margin-bottom: 10px;
}

.operation-flow-item-list {
    display: grid;
    gap: 8px;
}

.operation-flow-item {
    padding: 11px;
    border-radius: 14px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}

.operation-flow-item-ok {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.operation-flow-item-warn {
    border-color: #fde68a;
    background: #fffbeb;
}

.operation-flow-item-bad {
    border-color: #fecaca;
    background: #fef2f2;
}

.operation-flow-item-main {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
}

.operation-flow-item-title {
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.operation-flow-item-desc {
    margin-top: 4px;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.operation-flow-badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 5px 8px;
    font-size: 11px;
    font-weight: 1000;
}

.operation-flow-badge-ok {
    background: #dcfce7;
    color: #166534;
}

.operation-flow-badge-warn {
    background: #fef3c7;
    color: #92400e;
}

.operation-flow-badge-bad {
    background: #fee2e2;
    color: #991b1b;
}

.operation-flow-detail {
    margin-top: 8px;
    padding: 8px 9px;
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px dashed #d1d5db;
    color: #4b5563;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
    word-break: break-all;
}

.operation-flow-detail-box {
    margin-top: 12px;
    padding: 12px;
    border-radius: 14px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
}

.operation-flow-detail-box summary {
    cursor: pointer;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.operation-flow-checklist {
    margin: 10px 0 0;
    padding-left: 20px;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.7;
}

.operation-flow-checklist li {
    margin-bottom: 5px;
}

.operation-flow-url-list {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.operation-flow-url-item {
    display: grid;
    gap: 4px;
    padding: 10px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}

.operation-flow-url-item strong {
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
}

.operation-flow-url-item span {
    color: #4b5563;
    font-size: 11px;
    font-weight: 800;
    word-break: break-all;
}

@media (max-width: 760px) {
    .operation-flow-schedule-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .operation-flow-item-main {
        flex-direction: column;
    }

    .operation-flow-badge {
        width: fit-content;
    }
}

.skeleton-closeout-card {
    margin-bottom: 18px;
}

.skeleton-closeout-head {
    display: grid;
    gap: 12px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    margin-bottom: 12px;
}

.skeleton-closeout-head strong {
    display: block;
    color: #111827;
    font-size: 18px;
    font-weight: 1000;
}

.skeleton-closeout-head p {
    margin: 6px 0 0;
    color: #4b5563;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
}

.skeleton-closeout-head-done {
    background: #f0fdf4;
    border-color: #86efac;
}

.skeleton-closeout-head-check {
    background: #fffbeb;
    border-color: #fde68a;
}

.skeleton-closeout-counts {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.skeleton-closeout-counts span {
    border-radius: 999px;
    padding: 6px 9px;
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 11px;
    font-weight: 1000;
}

.skeleton-closeout-note {
    margin-bottom: 12px;
    padding: 11px 12px;
    border-radius: 14px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e40af;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.6;
}

.skeleton-closeout-schedule {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.skeleton-closeout-schedule div {
    padding: 12px;
    border-radius: 14px;
    background: white;
    border: 1px solid #e5e7eb;
}

.skeleton-closeout-schedule span {
    display: block;
    color: #6b7280;
    font-size: 11px;
    font-weight: 900;
    margin-bottom: 5px;
}

.skeleton-closeout-schedule strong {
    display: block;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
    word-break: break-all;
}

.skeleton-closeout-subtitle {
    margin: 12px 0 8px;
    color: #111827;
    font-size: 14px;
    font-weight: 1000;
}

.skeleton-closeout-list {
    display: grid;
    gap: 8px;
}

.skeleton-closeout-item {
    padding: 11px;
    border-radius: 14px;
    background: white;
    border: 1px solid #e5e7eb;
}

.skeleton-closeout-item-done {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.skeleton-closeout-item-check {
    background: #fffbeb;
    border-color: #fde68a;
}

.skeleton-closeout-item-later {
    background: #f9fafb;
    border-color: #e5e7eb;
}

.skeleton-closeout-item-main {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
}

.skeleton-closeout-item-title {
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.skeleton-closeout-item-desc {
    margin-top: 4px;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.skeleton-closeout-badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 5px 8px;
    font-size: 11px;
    font-weight: 1000;
}

.skeleton-closeout-badge-done {
    background: #dcfce7;
    color: #166534;
}

.skeleton-closeout-badge-check {
    background: #fef3c7;
    color: #92400e;
}

.skeleton-closeout-badge-later {
    background: #e5e7eb;
    color: #374151;
}

.skeleton-closeout-next {
    margin-top: 8px;
    padding: 8px 9px;
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px dashed #d1d5db;
    color: #4b5563;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
}

.skeleton-closeout-detail {
    margin-top: 12px;
    padding: 12px;
    border-radius: 14px;
    background: white;
    border: 1px solid #e5e7eb;
}

.skeleton-closeout-detail summary {
    cursor: pointer;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.skeleton-closeout-detail .skeleton-closeout-list {
    margin-top: 10px;
}

.skeleton-closeout-checklist {
    margin: 10px 0 0;
    padding-left: 20px;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.7;
}

.skeleton-closeout-checklist li {
    margin-bottom: 5px;
}

@media (max-width: 760px) {
    .skeleton-closeout-schedule {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .skeleton-closeout-item-main {
        flex-direction: column;
    }

    .skeleton-closeout-badge {
        width: fit-content;
    }
}

/* 매체명 보정 관리 */
.media-alias-card {
    margin-top: 16px;
}

.media-alias-note {
    margin: 10px 0 14px;
    color: #555;
    font-size: 14px;
    line-height: 1.6;
}

.media-alias-path {
    margin: 8px 0 14px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #f7f7f7;
    color: #555;
    font-size: 13px;
    word-break: break-all;
}

.media-alias-form {
    display: grid;
    gap: 10px;
}

.media-alias-submit {
    margin-top: 8px;
}

.primary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 14px;
    padding: 12px 14px;
    background: #111827;
    color: #ffffff;
    font-size: 14px;
    font-weight: 900;
    text-decoration: none;
    cursor: pointer;
}

.primary-button:active {
    transform: scale(0.98);
}

.danger-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 14px;
    padding: 10px 12px;
    background: #dc2626;
    color: #ffffff;
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
    cursor: pointer;
}

.danger-button:active {
    transform: scale(0.98);
}

.media-alias-list {
    display: grid;
    gap: 10px;
}

.media-alias-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px;
    border: 1px solid #eeeeee;
    border-radius: 14px;
    background: #ffffff;
}

.media-alias-pair {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex-wrap: wrap;
}

.media-alias-source {
    font-weight: 700;
    color: #333333;
}

.media-alias-arrow {
    color: #999999;
}

.media-alias-target {
    font-weight: 700;
    color: #111111;
}

.media-alias-delete-form {
    margin: 0;
}

.media-alias-delete {
    white-space: nowrap;
}

.command-box {
    padding: 12px;
    border-radius: 12px;
    background: #111111;
    color: #ffffff;
    overflow-x: auto;
    font-size: 13px;
    line-height: 1.5;
}

.empty-box {
    padding: 14px;
    border-radius: 12px;
    background: #f7f7f7;
    color: #777777;
    font-size: 14px;
}

.back-link-box {
    margin-top: 18px;
}

.back-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    padding: 12px 14px;
    background: #f3f4f6;
    color: #111827;
    text-decoration: none;
    font-size: 14px;
    font-weight: 900;
}

@media (max-width: 640px) {
    .media-alias-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .media-alias-delete {
        width: 100%;
    }
}

/* 로그인 첫 화면 최근 30일 대시보드 */
.dashboard-overview-card {
    margin-top: 18px;
    padding: 16px;
    border-radius: 18px;
    background: white;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.dashboard-overview-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}

.dashboard-overview-subtitle {
    margin-top: 4px;
    color: #4b5563;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
}

.dashboard-period-note {
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.dashboard-empty-box {
    padding: 14px;
    border-radius: 14px;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    color: #6b7280;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.6;
}

.dashboard-company-chart {
    display: grid;
    gap: 11px;
}

.dashboard-company-row {
    display: grid;
    grid-template-columns: 72px 1fr 58px;
    align-items: center;
    gap: 10px;
}

.dashboard-company-name {
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.dashboard-company-bar-wrap {
    height: 18px;
    border-radius: 999px;
    background: #f3f4f6;
    overflow: hidden;
}

.dashboard-company-bar {
    height: 100%;
    min-width: 4px;
    border-radius: 999px;
    background: #111827;
}

.dashboard-company-count {
    text-align: right;
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
}

.dashboard-embargo-list {
    display: grid;
    gap: 8px;
}

.dashboard-embargo-row {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    align-items: center;
    gap: 8px;
    padding: 10px 11px;
    border-radius: 13px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}

.dashboard-embargo-rank {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #111827;
    color: white;
    font-size: 11px;
    font-weight: 1000;
}

.dashboard-embargo-row strong {
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.dashboard-embargo-row em {
    color: #991b1b;
    font-size: 12px;
    font-style: normal;
    font-weight: 1000;
}

.dashboard-recent-title {
    margin: 16px 0 8px;
    color: #111827;
    font-size: 14px;
    font-weight: 1000;
}

.dashboard-recent-embargo-list {
    display: grid;
    gap: 8px;
}

.dashboard-recent-embargo-card {
    padding: 11px 12px;
    border-radius: 14px;
    background: white;
    border: 1px solid #e5e7eb;
}

.dashboard-recent-embargo-main {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: center;
}

.dashboard-recent-embargo-main strong {
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.dashboard-recent-embargo-main span {
    color: #6b7280;
    font-size: 11px;
    font-weight: 800;
    text-align: right;
}

.dashboard-recent-embargo-title {
    margin-top: 6px;
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.dashboard-recent-embargo-meta {
    margin-top: 6px;
    color: #6b7280;
    font-size: 11px;
    font-weight: 800;
}

.dashboard-recent-embargo-link {
    display: inline-flex;
    margin-top: 8px;
    border-radius: 999px;
    padding: 6px 9px;
    background: #111827;
    color: white;
    text-decoration: none;
    font-size: 11px;
    font-weight: 900;
}

@media (max-width: 520px) {
    .dashboard-overview-head {
        flex-direction: column;
    }

    .dashboard-company-row {
        grid-template-columns: 64px 1fr 52px;
    }

    .dashboard-recent-embargo-main {
        align-items: flex-start;
        flex-direction: column;
    }

    .dashboard-recent-embargo-main span {
        text-align: left;
    }
}

/* 로그인 첫 화면 최근 30일 일자별 추이 */
.dashboard-trend-list {
    display: grid;
    gap: 8px;
}

.dashboard-trend-row {
    display: grid;
    grid-template-columns: 92px 1fr 54px;
    align-items: center;
    gap: 10px;
    padding: 10px 11px;
    border-radius: 14px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}

.dashboard-trend-date {
    display: grid;
    gap: 3px;
}

.dashboard-trend-date strong {
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
}

.dashboard-trend-date span {
    color: #6b7280;
    font-size: 11px;
    font-weight: 900;
}

.dashboard-trend-main {
    display: grid;
    gap: 6px;
}

.dashboard-trend-bar-wrap {
    height: 14px;
    border-radius: 999px;
    background: #e5e7eb;
    overflow: hidden;
}

.dashboard-trend-bar {
    height: 100%;
    min-width: 3px;
    border-radius: 999px;
    background: #111827;
}

.dashboard-trend-company-counts {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
}

.dashboard-trend-company-counts span {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 4px 7px;
    background: white;
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 10px;
    font-weight: 900;
}

.dashboard-trend-total {
    text-align: right;
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
}

@media (max-width: 520px) {
    .dashboard-trend-row {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .dashboard-trend-total {
        text-align: left;
    }
}

/* 로그인 첫 화면 최근 30일 통신사별 주요 매체 TOP */
.dashboard-company-media-grid {
    display: grid;
    gap: 12px;
}

.dashboard-company-media-card {
    padding: 13px;
    border-radius: 16px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}

.dashboard-company-media-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.dashboard-company-media-head strong {
    color: #111827;
    font-size: 15px;
    font-weight: 1000;
}

.dashboard-company-media-head span {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 5px 9px;
    background: white;
    border: 1px solid #e5e7eb;
    color: #111827;
    font-size: 11px;
    font-weight: 1000;
}

.dashboard-company-media-list {
    display: grid;
    gap: 8px;
}

.dashboard-company-media-row {
    display: grid;
    gap: 6px;
    padding: 9px 10px;
    border-radius: 13px;
    background: white;
    border: 1px solid #e5e7eb;
}

.dashboard-company-media-row-head {
    display: grid;
    grid-template-columns: 24px 1fr auto;
    align-items: center;
    gap: 7px;
}

.dashboard-company-media-rank {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: #111827;
    color: white;
    font-size: 10px;
    font-weight: 1000;
}

.dashboard-company-media-row-head strong {
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
    word-break: break-word;
}

.dashboard-company-media-row-head em {
    color: #374151;
    font-size: 11px;
    font-style: normal;
    font-weight: 1000;
    white-space: nowrap;
}

.dashboard-company-media-bar-wrap {
    height: 11px;
    border-radius: 999px;
    background: #e5e7eb;
    overflow: hidden;
}

.dashboard-company-media-bar {
    height: 100%;
    min-width: 3px;
    border-radius: 999px;
    background: #111827;
}

@media (min-width: 760px) {
    .dashboard-company-media-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .dashboard-company-media-row-head {
        grid-template-columns: 24px 1fr;
    }

    .dashboard-company-media-row-head em {
        grid-column: 2 / 3;
    }
}

/* 로그인 첫 화면 대시보드 데이터 상태 */
.dashboard-data-status-card {
    border: 1px solid #e5e7eb;
}

.dashboard-data-status-summary {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.dashboard-data-status-summary span {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 6px 9px;
    background: #f3f4f6;
    color: #374151;
    font-size: 11px;
    font-weight: 1000;
}

.dashboard-data-status-list {
    display: grid;
    gap: 9px;
}

.dashboard-data-status-row {
    padding: 12px;
    border-radius: 14px;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
}

.dashboard-data-status-ok {
    background: #f0fdf4;
    border-color: #86efac;
}

.dashboard-data-status-missing {
    background: #fffbeb;
    border-color: #fde68a;
}

.dashboard-data-status-warn {
    background: #fef2f2;
    border-color: #fecaca;
}

.dashboard-data-status-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.dashboard-data-status-title strong {
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.dashboard-data-status-title span {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 4px 8px;
    background: white;
    border: 1px solid #e5e7eb;
    color: #111827;
    font-size: 11px;
    font-weight: 1000;
}

.dashboard-data-status-path {
    margin-top: 7px;
    color: #4b5563;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
    word-break: break-all;
}

.dashboard-data-status-meta {
    margin-top: 5px;
    color: #111827;
    font-size: 11px;
    font-weight: 900;
}

.dashboard-data-status-extra {
    margin-top: 6px;
    color: #6b7280;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
}

@media (max-width: 520px) {
    .dashboard-data-status-title {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* 로그인 첫 화면 오늘 운영 바로가기 */
.dashboard-quick-card {
    border: 1px solid #e5e7eb;
}

.dashboard-quick-date {
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 12px;
    font-weight: 900;
}

.dashboard-quick-date strong {
    color: #111827;
    font-weight: 1000;
}

.dashboard-quick-grid {
    display: grid;
    gap: 10px;
}

.dashboard-quick-button {
    display: grid;
    gap: 5px;
    padding: 13px 14px;
    border-radius: 16px;
    background: white;
    border: 1px solid #e5e7eb;
    color: #111827;
    text-decoration: none;
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.05);
}

.dashboard-quick-button strong {
    font-size: 14px;
    font-weight: 1000;
}

.dashboard-quick-button span {
    color: #4b5563;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.dashboard-quick-primary {
    background: #111827;
    border-color: #111827;
    color: white;
}

.dashboard-quick-primary span {
    color: #e5e7eb;
}

.dashboard-quick-button:active {
    transform: scale(0.98);
}

.dashboard-quick-note {
    margin-top: 12px;
    padding: 11px 12px;
    border-radius: 13px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.6;
}

@media (min-width: 720px) {
    .dashboard-quick-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .dashboard-quick-button {
        padding: 12px;
    }
}

/* 로그인 첫 화면 오늘 입력 현황 요약 */
.dashboard-today-input-card {
    border: 1px solid #e5e7eb;
}

.dashboard-today-input-date {
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 12px;
    font-weight: 900;
}

.dashboard-today-input-date strong {
    color: #111827;
    font-weight: 1000;
}

.dashboard-today-input-grid {
    display: grid;
    gap: 10px;
}

.dashboard-today-input-company {
    padding: 13px;
    border-radius: 16px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}

.dashboard-today-input-applied {
    background: #f0fdf4;
    border-color: #86efac;
}

.dashboard-today-input-draft {
    background: #fffbeb;
    border-color: #fde68a;
}

.dashboard-today-input-mixed {
    background: #eff6ff;
    border-color: #bfdbfe;
}

.dashboard-today-input-none {
    background: #f5f3ff;
    border-color: #ddd6fe;
}

.dashboard-today-input-cancelled,
.dashboard-today-input-warn {
    background: #fef2f2;
    border-color: #fecaca;
}

.dashboard-today-input-missing {
    background: #f9fafb;
    border-color: #e5e7eb;
}

.dashboard-today-input-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.dashboard-today-input-head strong {
    color: #111827;
    font-size: 15px;
    font-weight: 1000;
}

.dashboard-today-input-head span {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 5px 9px;
    background: white;
    border: 1px solid #e5e7eb;
    color: #111827;
    font-size: 11px;
    font-weight: 1000;
}

.dashboard-today-input-counts {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.dashboard-today-input-counts span {
    border-radius: 999px;
    padding: 5px 8px;
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid #e5e7eb;
    color: #374151;
    font-size: 10px;
    font-weight: 900;
}

.dashboard-today-input-items {
    display: grid;
    gap: 7px;
    margin-top: 10px;
}

.dashboard-today-input-item {
    padding: 9px 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid #e5e7eb;
}

.dashboard-today-input-item strong {
    display: block;
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
    line-height: 1.4;
    word-break: break-word;
}

.dashboard-today-input-item span {
    display: block;
    margin-top: 4px;
    color: #4b5563;
    font-size: 11px;
    font-weight: 800;
    word-break: break-word;
}

.dashboard-today-input-empty {
    margin-top: 10px;
    padding: 9px 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.75);
    border: 1px dashed #d1d5db;
    color: #6b7280;
    font-size: 12px;
    font-weight: 800;
}

.dashboard-today-input-note {
    margin-top: 12px;
    padding: 11px 12px;
    border-radius: 13px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.6;
}

@media (min-width: 760px) {
    .dashboard-today-input-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .dashboard-today-input-head {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* 로그인 첫 화면 오늘 실행/결과 요약 */
.dashboard-today-run-card {
    border: 1px solid #e5e7eb;
}

.dashboard-today-run-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.dashboard-today-run-summary div {
    border-radius: 14px;
    padding: 11px 10px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}

.dashboard-today-run-summary span {
    display: block;
    color: #6b7280;
    font-size: 10px;
    font-weight: 900;
    margin-bottom: 4px;
}

.dashboard-today-run-summary strong {
    display: block;
    color: #111827;
    font-size: 20px;
    font-weight: 1000;
}

.dashboard-today-run-subtitle {
    margin: 14px 0 8px;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.dashboard-today-run-list,
.dashboard-today-result-list {
    display: grid;
    gap: 8px;
}

.dashboard-today-run-row,
.dashboard-today-result-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 11px 12px;
    border-radius: 14px;
    background: white;
    border: 1px solid #e5e7eb;
    text-decoration: none;
    color: #111827;
}

.dashboard-today-run-ok {
    background: #f0fdf4;
    border-color: #86efac;
}

.dashboard-today-run-bad {
    background: #fef2f2;
    border-color: #fecaca;
}

.dashboard-today-run-row strong,
.dashboard-today-result-row strong {
    display: block;
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
    word-break: break-word;
}

.dashboard-today-run-row span,
.dashboard-today-result-row span {
    display: block;
    margin-top: 4px;
    color: #6b7280;
    font-size: 11px;
    font-weight: 800;
    word-break: break-word;
}

.dashboard-today-run-row em,
.dashboard-today-result-row em {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 5px 8px;
    background: white;
    border: 1px solid #e5e7eb;
    color: #111827;
    font-size: 11px;
    font-style: normal;
    font-weight: 1000;
    white-space: nowrap;
}

@media (max-width: 520px) {
    .dashboard-today-run-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-today-run-row,
    .dashboard-today-result-row {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* 로그인 문자인증 다시 받기 */
.sms-resend-form {
    margin-top: 12px;
}

.sms-resend-button {
    width: 100%;
    border: 1px solid #d1d5db;
    border-radius: 14px;
    background: #ffffff;
    color: #111827;
    padding: 12px 14px;
    font-size: 13px;
    font-weight: 1000;
    cursor: pointer;
}

.sms-resend-button:active {
    transform: scale(0.98);
}

.sms-resend-help {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 13px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.6;
}

/* 매체명 보정 - 기존 누적 엑셀 재보정 */
.media-alias-warning {
    margin: 10px 0 14px;
    padding: 12px;
    border-radius: 12px;
    background: #fff7e6;
    color: #7a4b00;
    font-size: 14px;
    line-height: 1.6;
}

.media-alias-rebuild-form {
    margin: 14px 0;
}

.media-alias-rebuild-button {
    width: 100%;
}

.media-alias-rebuild-result {
    margin-top: 16px;
    padding: 14px;
    border-radius: 14px;
    border: 1px solid #eeeeee;
    background: #fafafa;
}

.media-alias-rebuild-result.ok {
    border-color: #b7e4c7;
    background: #f1fff5;
}

.media-alias-rebuild-result.bad {
    border-color: #ffc9c9;
    background: #fff5f5;
}

.media-alias-rebuild-title {
    font-weight: 800;
    margin-bottom: 10px;
}

.media-alias-rebuild-meta {
    display: grid;
    gap: 6px;
    color: #444444;
    font-size: 13px;
    word-break: break-all;
}

.media-alias-output-title {
    margin-top: 14px;
    margin-bottom: 6px;
    font-weight: 700;
    font-size: 13px;
}

.media-alias-output {
    max-height: 260px;
    overflow: auto;
    padding: 12px;
    border-radius: 12px;
    background: #111111;
    color: #ffffff;
    font-size: 12px;
    line-height: 1.5;
    white-space: pre-wrap;
}

/* 로그인/SMS 점검 화면 */
.sms-diag-card {
    background: white;
    border-radius: 18px;
    padding: 16px;
    margin-bottom: 14px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.sms-diag-ready {
    background: #f0fdf4;
    border-color: #86efac;
}

.sms-diag-warn {
    background: #fffbeb;
    border-color: #fde68a;
}

.sms-diag-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}

.sms-diag-main-badge {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 6px 10px;
    background: white;
    border: 1px solid #e5e7eb;
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
    white-space: nowrap;
}

.sms-diag-checked {
    margin-top: 10px;
    color: #374151;
    font-size: 12px;
    font-weight: 900;
}

.sms-diag-warning-box,
.sms-diag-ok-box,
.sms-diag-help {
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 14px;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.6;
}

.sms-diag-warning-box {
    background: white;
    border: 1px solid #f59e0b;
    color: #92400e;
}

.sms-diag-ok-box {
    background: white;
    border: 1px solid #86efac;
    color: #166534;
}

.sms-diag-grid {
    display: grid;
    gap: 10px;
}

.sms-diag-item {
    background: white;
    border-radius: 16px;
    padding: 13px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.05);
}

.sms-diag-item-ok {
    background: #f0fdf4;
    border-color: #86efac;
}

.sms-diag-item-warn {
    background: #fef2f2;
    border-color: #fecaca;
}

.sms-diag-item-head {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
}

.sms-diag-item-head strong {
    color: #111827;
    font-size: 14px;
    font-weight: 1000;
}

.sms-diag-item-head span {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 5px 8px;
    background: white;
    border: 1px solid #e5e7eb;
    color: #111827;
    font-size: 11px;
    font-weight: 1000;
}

.sms-diag-item-value {
    margin-top: 9px;
    color: #111827;
    font-size: 13px;
    font-weight: 900;
    word-break: break-all;
}

.sms-diag-item-desc {
    margin-top: 6px;
    color: #4b5563;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.sms-diag-log-list {
    display: grid;
    gap: 8px;
}

.sms-diag-log-row {
    border-radius: 14px;
    padding: 10px 11px;
    background: white;
    border: 1px solid #e5e7eb;
    border-left: 5px solid #9ca3af;
}

.sms-diag-log-row span {
    display: inline-flex;
    border-radius: 999px;
    padding: 4px 8px;
    margin-bottom: 7px;
    background: #f3f4f6;
    color: #374151;
    font-size: 10px;
    font-weight: 1000;
}

.sms-diag-log-row pre {
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
    color: #374151;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
}

.sms-diag-log-ok {
    border-left-color: #059669;
}

.sms-diag-log-ok span {
    background: #d1fae5;
    color: #065f46;
}

.sms-diag-log-bad {
    border-left-color: #dc2626;
}

.sms-diag-log-bad span {
    background: #fee2e2;
    color: #991b1b;
}

.sms-diag-log-dev {
    border-left-color: #f59e0b;
}

.sms-diag-log-dev span {
    background: #fef3c7;
    color: #92400e;
}

.sms-diag-log-resend {
    border-left-color: #2563eb;
}

.sms-diag-log-resend span {
    background: #dbeafe;
    color: #1d4ed8;
}

.sms-diag-help {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
}

.sms-diag-help strong {
    display: block;
    margin-bottom: 6px;
    color: #1e40af;
    font-size: 14px;
}

@media (min-width: 760px) {
    .sms-diag-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .sms-diag-head,
    .sms-diag-item-head {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* =========================================================
   PR_MANAGE 1차 UI 개선: 공통 탭바 / 홈 버튼 / 가독성 개선
   - 원본 분석 로직과 무관한 화면 스타일 전용
   ========================================================= */

:root {
    --pr-bg: #eef2f7;
    --pr-surface: #ffffff;
    --pr-surface-soft: #f8fafc;
    --pr-primary: #0f172a;
    --pr-primary-2: #1e293b;
    --pr-accent: #2563eb;
    --pr-accent-soft: #dbeafe;
    --pr-border: #d9e2ef;
    --pr-text: #111827;
    --pr-muted: #64748b;
    --pr-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

html {
    scroll-behavior: smooth;
}

body {
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, 0.10), transparent 32rem),
        linear-gradient(180deg, #f8fafc 0%, var(--pr-bg) 100%);
    color: var(--pr-text);
}

.page-wrap {
    max-width: 780px;
    padding: 28px 18px 88px;
}

.brand-box {
    background:
        linear-gradient(135deg, #0f172a 0%, #111827 45%, #1e293b 100%);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.18);
}

.brand-title {
    letter-spacing: -0.04em;
}

.brand-desc {
    color: rgba(255, 255, 255, 0.82);
}

.global-nav-card {
    position: static;
    z-index: 10;
    margin: 8px 0 12px;
    padding: 10px 12px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid var(--pr-border);
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
    backdrop-filter: blur(10px);
}

.global-nav-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.global-nav-home-button {
    display: none;
}

.global-nav-home-button-active {
    background: var(--pr-accent);
}

.global-nav-current {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.global-nav-current span {
    font-size: 10px;
    color: var(--pr-muted);
    font-weight: 900;
}

.global-nav-current strong {
    font-size: 13px;
    color: var(--pr-text);
    font-weight: 950;
    letter-spacing: -0.02em;
    line-height: 1.25;
}

.global-nav-current em {
    display: none;
}

.global-nav-tabs {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding: 0 0 2px;
    scrollbar-width: thin;
}

.global-nav-tab {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0 10px;
    border-radius: 999px;
    background: var(--pr-surface-soft);
    border: 1px solid var(--pr-border);
    color: #334155;
    text-decoration: none;
    font-size: 11px;
    font-weight: 900;
    white-space: nowrap;
}

.global-nav-tab:hover {
    border-color: #93c5fd;
    background: #eff6ff;
    color: #1d4ed8;
}

.global-nav-tab-active {
    background: var(--pr-accent);
    border-color: var(--pr-accent);
    color: white;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.16);
}

.floating-home-button {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 40;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    border-radius: 999px;
    background: var(--pr-primary);
    color: white;
    text-decoration: none;
    font-size: 16px;
    font-weight: 950;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.24);
}

.floating-home-button:active,
.global-nav-tab:active,
.global-nav-home-button:active {
    transform: scale(0.98);
}

.dashboard-overview-card,
.program-card,
.admin-menu-card,
.admin-user-card,
.file-row,
.log-card,
.diagnostic-card,
.manual-input-entry-card,
.manual-input-form,
.manual-input-row,
.manual-input-detail-card,
.manual-input-body-card,
.manual-input-delete-card,
.manual-input-apply-card,
.manual-input-edit-form,
.media-alias-card,
.sms-diag-card,
.card {
    border: 1px solid rgba(217, 226, 239, 0.95);
    box-shadow: var(--pr-shadow);
}

.section-title {
    letter-spacing: -0.03em;
}

.program-subtitle,
.dashboard-overview-subtitle,
.notice,
.manual-input-help-text,
.section-desc {
    color: var(--pr-muted);
}

.button,
.refresh-button,
.manual-input-entry-button,
.manual-input-search-button,
.manual-input-detail-button,
.manual-input-edit-button,
.manual-input-apply-button,
.download-button {
    background: var(--pr-primary);
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.13);
}

.button:hover,
.refresh-button:hover,
.manual-input-entry-button:hover,
.manual-input-search-button:hover,
.manual-input-detail-button:hover,
.manual-input-edit-button:hover,
.manual-input-apply-button:hover,
.download-button:hover {
    background: var(--pr-primary-2);
}

.secondary-refresh-button,
.mini-refresh-link,
.manual-input-search-reset,
.manual-input-filter-chip,
.manual-input-sort-chip,
.manual-input-pagination-chip {
    background: white;
    border-color: var(--pr-border);
}

.manual-input-filter-chip-active {
    background: var(--pr-primary);
    border-color: var(--pr-primary);
    color: white;
}

.manual-input-sort-chip-active,
.manual-input-pagination-current {
    background: var(--pr-accent);
    border-color: var(--pr-accent);
    color: white;
}

.input {
    border-color: var(--pr-border);
    background: white;
}

.input:focus {
    border-color: var(--pr-accent);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.alert,
.notice-box,
.dashboard-empty-box,
.manual-input-warning {
    border-width: 1px;
}

.top-user-box {
    align-items: center;
}

.role-badge {
    background: rgba(255, 255, 255, 0.22);
}

@media (max-width: 768px) {
    .global-nav-card {
        display: none;
    }
}

@media (max-width: 520px) {
    .page-wrap {
        padding: 20px 14px 82px;
    }

    .brand-box {
        padding: 22px 18px;
        border-radius: 18px;
    }

    .brand-title {
        font-size: 28px;
    }

    .floating-home-button {
        right: 14px;
        bottom: 14px;
        width: 56px;
        height: 56px;
        font-size: 15px;
    }
}

/* =========================================================
   PR_MANAGE viewer 전용 조회 화면
   ========================================================= */

.viewer-page-wrap {
    max-width: 760px;
    margin: 0 auto;
    padding: 24px 16px 84px;
}

.viewer-hero {
    border-radius: 24px;
    padding: 24px 20px;
    background:
        radial-gradient(circle at top right, rgba(37, 99, 235, 0.34), transparent 18rem),
        linear-gradient(135deg, #0f172a 0%, #111827 58%, #1e293b 100%);
    color: white;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.20);
}

.viewer-hero-compact {
    padding: 20px 18px;
}

.viewer-kicker {
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.08em;
    opacity: 0.75;
    margin-bottom: 8px;
}

.viewer-hero h1 {
    margin: 0;
    font-size: 34px;
    line-height: 1.1;
    letter-spacing: -0.05em;
}

.viewer-hero p {
    margin: 10px 0 0;
    font-size: 14px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.82);
}

.viewer-user-box {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-size: 13px;
}

.viewer-user-box span {
    display: inline-flex;
    margin-left: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    font-size: 11px;
    font-weight: 900;
}

.viewer-user-box a {
    color: white;
    text-decoration: none;
    font-weight: 900;
    white-space: nowrap;
}

.viewer-menu-grid {
    display: grid;
    gap: 12px;
    margin-top: 16px;
}

.viewer-menu-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px;
    border-radius: 20px;
    background: white;
    color: #111827;
    text-decoration: none;
    border: 1px solid #d9e2ef;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.viewer-menu-primary {
    border-color: #bfdbfe;
    background: linear-gradient(180deg, #ffffff 0%, #eff6ff 100%);
}

.viewer-menu-icon {
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #0f172a;
    color: white;
    font-size: 15px;
    font-weight: 950;
}

.viewer-menu-card strong {
    display: block;
    font-size: 18px;
    font-weight: 950;
    letter-spacing: -0.03em;
    margin-bottom: 5px;
}

.viewer-menu-card span {
    display: block;
    font-size: 13px;
    line-height: 1.45;
    color: #64748b;
}

.viewer-footer-note {
    margin-top: 16px;
    color: #64748b;
    font-size: 13px;
    line-height: 1.5;
    text-align: center;
}

.viewer-top-actions,
.viewer-action-row {
    display: flex;
    gap: 8px;
    margin: 14px 0;
    flex-wrap: wrap;
}

.viewer-top-actions a,
.viewer-primary-button,
.viewer-secondary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 999px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 900;
}

.viewer-top-actions a,
.viewer-secondary-button {
    background: white;
    color: #111827;
    border: 1px solid #d9e2ef;
}

.viewer-primary-button {
    background: #0f172a;
    color: white;
}

.viewer-card {
    margin-top: 14px;
    padding: 16px;
    border-radius: 20px;
    background: white;
    border: 1px solid #d9e2ef;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.viewer-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.viewer-section-title {
    font-size: 18px;
    font-weight: 950;
    letter-spacing: -0.04em;
    color: #111827;
}

.viewer-section-desc,
.viewer-muted {
    margin-top: 4px;
    color: #64748b;
    font-size: 13px;
    line-height: 1.5;
}

.viewer-small-download {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 11px;
    border-radius: 999px;
    background: #0f172a;
    color: white;
    text-decoration: none;
    font-size: 12px;
    font-weight: 900;
}

.viewer-count-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.viewer-count-card {
    border-radius: 16px;
    padding: 14px 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.viewer-count-card span,
.viewer-count-card em {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
}

.viewer-count-card strong {
    display: block;
    margin: 4px 0 0;
    font-size: 28px;
    line-height: 1;
    font-weight: 950;
    color: #111827;
}

.viewer-list {
    display: grid;
    gap: 8px;
}

.viewer-list-compact {
    gap: 6px;
}

.viewer-list-row,
.viewer-trend-row,
.viewer-download-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 12px;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.viewer-list-row strong,
.viewer-download-row strong {
    min-width: 0;
    font-size: 14px;
    font-weight: 900;
    color: #111827;
    word-break: break-word;
}

.viewer-list-row span,
.viewer-download-row span {
    flex: 0 0 auto;
    color: #2563eb;
    font-size: 12px;
    font-weight: 900;
}

.viewer-more-box {
    margin-top: 10px;
}

.viewer-more-box-flat {
    margin-top: 0;
}

.viewer-more-box summary {
    cursor: pointer;
    display: block;
    padding: 11px 12px;
    border-radius: 14px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 13px;
    font-weight: 950;
}

.viewer-more-box[open] summary {
    margin-bottom: 8px;
}

.viewer-more-box-small summary {
    padding: 8px 10px;
    font-size: 12px;
}

.viewer-article-list {
    display: grid;
    gap: 8px;
}

.viewer-article-row {
    display: block;
    padding: 12px;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #111827;
    text-decoration: none;
}

.viewer-article-row strong {
    display: block;
    font-size: 14px;
    line-height: 1.45;
    font-weight: 900;
    margin-bottom: 5px;
}

.viewer-article-row span {
    display: block;
    color: #64748b;
    font-size: 12px;
    line-height: 1.4;
}

.viewer-company-media-grid {
    display: grid;
    gap: 10px;
}

.viewer-company-media-card {
    padding: 13px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.viewer-company-media-title {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 9px;
    font-size: 15px;
    font-weight: 950;
    color: #111827;
}

.viewer-company-media-title span {
    color: #2563eb;
    font-size: 12px;
}

.viewer-trend-list {
    display: grid;
    gap: 8px;
}

.viewer-trend-row div {
    flex: 0 0 auto;
}

.viewer-trend-row strong {
    display: block;
    font-size: 14px;
    font-weight: 950;
}

.viewer-trend-row span {
    display: block;
    color: #64748b;
    font-size: 12px;
    margin-top: 2px;
}

.viewer-trend-row em {
    font-style: normal;
    color: #334155;
    font-size: 12px;
    line-height: 1.45;
    font-weight: 800;
    text-align: right;
}

.viewer-calendar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 6px 0 10px;
}

.viewer-calendar-head a {
    color: #1d4ed8;
    text-decoration: none;
    font-size: 13px;
    font-weight: 900;
}

.viewer-calendar-head strong {
    font-size: 16px;
    font-weight: 950;
}

.viewer-calendar {
    display: grid;
    gap: 5px;
}

.viewer-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 5px;
}

.viewer-calendar-weeknames {
    margin-bottom: 5px;
}

.viewer-calendar-weeknames span {
    text-align: center;
    color: #64748b;
    font-size: 11px;
    font-weight: 900;
}

.viewer-calendar-day {
    position: relative;
    min-height: 42px;
    border-radius: 12px;
    background: #f8fafc;
    color: #111827;
    border: 1px solid #e2e8f0;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 900;
}

.viewer-calendar-muted {
    color: #cbd5e1;
    background: #f8fafc;
}

.viewer-calendar-selected {
    background: #0f172a;
    border-color: #0f172a;
    color: white;
}

.viewer-calendar-has-files:not(.viewer-calendar-selected) {
    background: #eff6ff;
    border-color: #93c5fd;
    color: #1d4ed8;
}

.viewer-calendar-day em {
    position: absolute;
    right: 4px;
    bottom: 3px;
    min-width: 15px;
    height: 15px;
    border-radius: 999px;
    background: #2563eb;
    color: white;
    font-size: 10px;
    line-height: 15px;
    font-style: normal;
    text-align: center;
}

.viewer-selected-date {
    margin: 12px 0 8px;
    color: #475569;
    font-size: 13px;
    font-weight: 800;
}

.viewer-download-list {
    display: grid;
    gap: 8px;
}

.viewer-download-row div {
    min-width: 0;
}

.viewer-download-row span {
    display: block;
    color: #64748b;
    font-size: 12px;
    margin-bottom: 4px;
}

.viewer-download-row a {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    background: #0f172a;
    color: white;
    text-decoration: none;
    font-size: 12px;
    font-weight: 900;
}

.viewer-empty,
.viewer-alert {
    border-radius: 14px;
    padding: 12px;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    color: #64748b;
    font-size: 13px;
    line-height: 1.5;
}

.viewer-alert {
    margin-top: 12px;
    background: #fef2f2;
    border-color: #fecaca;
    color: #991b1b;
    font-weight: 800;
}

.viewer-empty-small {
    padding: 9px 10px;
    font-size: 12px;
}

@media (max-width: 560px) {
    .viewer-page-wrap {
        padding: 18px 13px 76px;
    }

    .viewer-hero {
        border-radius: 20px;
        padding: 21px 17px;
    }

    .viewer-hero h1 {
        font-size: 30px;
    }

    .viewer-card {
        padding: 14px;
        border-radius: 18px;
    }

    .viewer-card-head {
        flex-direction: column;
        align-items: stretch;
    }

    .viewer-small-download,
    .viewer-primary-button,
    .viewer-secondary-button,
    .viewer-top-actions a {
        width: 100%;
        box-sizing: border-box;
    }

    .viewer-count-grid {
        grid-template-columns: 1fr;
    }

    .viewer-list-row,
    .viewer-trend-row,
    .viewer-download-row {
        align-items: stretch;
        flex-direction: column;
    }

    .viewer-list-row span,
    .viewer-download-row a {
        width: 100%;
        box-sizing: border-box;
        justify-content: center;
    }

    .viewer-trend-row em {
        text-align: left;
    }

    .viewer-calendar-day {
        min-height: 38px;
        border-radius: 10px;
    }
}

/* viewer 보도자료 성과분석 항목 선택 화면 */
.viewer-section-switch-card {
    position: sticky;
    top: 0;
    z-index: 5;
}

.viewer-section-switch-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.viewer-section-switch-grid-single {
    grid-template-columns: 1fr;
}

.viewer-section-switch-button {
    display: grid;
    gap: 5px;
    padding: 14px 13px;
    border-radius: 18px;
    background: #f8fafc;
    border: 1px solid #dbe3ee;
    color: #111827;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.04);
}

.viewer-section-switch-button strong {
    display: block;
    font-size: 15px;
    font-weight: 1000;
    line-height: 1.25;
    word-break: keep-all;
}

.viewer-section-switch-button span {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.25;
}

.viewer-section-switch-button:active {
    transform: scale(0.98);
}

.viewer-section-switch-active {
    background: #111827;
    border-color: #111827;
    color: white;
}

.viewer-section-switch-active span {
    color: rgba(255, 255, 255, 0.78);
}

.viewer-select-empty-card {
    text-align: center;
}

@media (max-width: 420px) {
    .viewer-section-switch-grid {
        gap: 8px;
    }

    .viewer-section-switch-button {
        padding: 13px 11px;
        border-radius: 16px;
    }

    .viewer-section-switch-button strong {
        font-size: 14px;
    }

    .viewer-section-switch-button span {
        font-size: 11px;
    }
}

/* =========================================================
   viewer 화면 보완: LG유플러스 느낌으로 재정리
   - 상단 고정 해제
   - 하단 홈 버튼 유지
   - 마젠타/딥퍼플/화이트 카드 중심 톤
   - 그래프 유지
   ========================================================= */

:root {
    --viewer-brand: #e6007e;
    --viewer-brand-dark: #b00061;
    --viewer-brand-soft: #fff1f8;
    --viewer-brand-soft-border: #f7c7df;
    --viewer-ink: #191919;
    --viewer-sub: #6b7280;
    --viewer-bg: #f7f3f8;
    --viewer-card: #ffffff;
    --viewer-line: #eaddea;
    --viewer-navy: #24163f;
    --viewer-navy-2: #3a235f;
    --viewer-chip: #f8f1f7;
    --viewer-shadow: 0 10px 28px rgba(36, 22, 63, 0.08);
}

.viewer-page-wrap {
    max-width: 720px;
    margin: 0 auto;
    padding: 20px 16px 92px;
}

.viewer-hero {
    background: linear-gradient(135deg, var(--viewer-navy) 0%, var(--viewer-navy-2) 55%, var(--viewer-brand) 100%);
    color: #ffffff;
    border-radius: 28px;
    padding: 24px 20px;
    box-shadow: 0 18px 36px rgba(36, 22, 63, 0.18);
}

.viewer-hero-compact {
    padding: 24px 20px;
}

.viewer-kicker {
    color: rgba(255, 255, 255, 0.84);
    font-size: 14px;
    font-weight: 900;
    letter-spacing: -0.02em;
}

.viewer-hero h1 {
    margin: 10px 0 8px;
    color: #ffffff;
    font-size: 28px;
    line-height: 1.2;
    font-weight: 1000;
    letter-spacing: -0.03em;
}

.viewer-hero p {
    margin: 0;
    color: rgba(255, 255, 255, 0.88);
    font-size: 15px;
    line-height: 1.55;
}

.viewer-user-box {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.viewer-user-box strong {
    color: #ffffff;
    font-size: 15px;
    font-weight: 1000;
}

.viewer-user-box span {
    display: inline-flex;
    align-items: center;
    margin-left: 8px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.16);
    color: rgba(255, 255, 255, 0.92);
    font-size: 12px;
    font-weight: 900;
}

.viewer-user-box a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 84px;
    height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 900;
    backdrop-filter: blur(8px);
}

.viewer-card {
    margin-top: 16px;
    background: var(--viewer-card);
    border: 1px solid var(--viewer-line);
    border-radius: 26px;
    padding: 18px;
    box-shadow: var(--viewer-shadow);
}

.viewer-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.viewer-section-title {
    color: var(--viewer-ink);
    font-size: 18px;
    line-height: 1.35;
    font-weight: 1000;
    letter-spacing: -0.03em;
}

.viewer-section-desc,
.viewer-muted {
    margin-top: 6px;
    color: var(--viewer-sub);
    font-size: 13px;
    line-height: 1.55;
    font-weight: 700;
}

.viewer-small-download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 116px;
    height: 42px;
    padding: 0 16px;
    border-radius: 999px;
    background: var(--viewer-brand);
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 1000;
    box-shadow: 0 10px 18px rgba(230, 0, 126, 0.18);
}

.viewer-small-download:active {
    transform: scale(0.98);
}

.viewer-empty,
.viewer-alert {
    border-radius: 18px;
    padding: 14px;
    background: #faf7fb;
    border: 1px dashed #dbc9db;
    color: #6b7280;
    font-size: 13px;
    line-height: 1.6;
}

.viewer-alert {
    margin-top: 14px;
    background: #fff5f8;
    border-color: #f2bfd8;
    color: #b00061;
    font-weight: 900;
}

.viewer-empty-small {
    padding: 10px 12px;
    font-size: 12px;
}

.viewer-section-switch-card {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
}

.viewer-section-switch-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}

.viewer-section-switch-button {
    display: grid;
    gap: 6px;
    padding: 16px 14px;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid var(--viewer-line);
    color: var(--viewer-ink);
    text-decoration: none;
    box-shadow: 0 6px 16px rgba(36, 22, 63, 0.04);
}

.viewer-section-switch-button strong {
    display: block;
    font-size: 16px;
    font-weight: 1000;
    line-height: 1.28;
    word-break: keep-all;
    letter-spacing: -0.03em;
}

.viewer-section-switch-button span {
    display: block;
    color: var(--viewer-sub);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.3;
}

.viewer-section-switch-button:active {
    transform: scale(0.98);
}

.viewer-section-switch-active {
    background: linear-gradient(135deg, var(--viewer-navy) 0%, var(--viewer-brand) 100%);
    border-color: transparent;
    color: #ffffff;
    box-shadow: 0 14px 24px rgba(230, 0, 126, 0.16);
}

.viewer-section-switch-active span {
    color: rgba(255, 255, 255, 0.82);
}

.viewer-select-empty-card {
    text-align: center;
}

.viewer-count-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.viewer-count-card {
    background: linear-gradient(180deg, #ffffff 0%, #fcf6fa 100%);
    border: 1px solid var(--viewer-line);
    border-radius: 22px;
    padding: 18px 16px;
    box-shadow: 0 6px 16px rgba(36, 22, 63, 0.04);
}

.viewer-count-card span,
.viewer-count-card em {
    display: block;
    color: var(--viewer-sub);
    font-size: 13px;
    font-style: normal;
    font-weight: 800;
}

.viewer-count-card strong {
    display: block;
    margin: 8px 0 4px;
    color: var(--viewer-brand);
    font-size: 40px;
    line-height: 1;
    font-weight: 1000;
    letter-spacing: -0.04em;
}

.viewer-list,
.viewer-trend-list,
.viewer-download-list,
.viewer-article-list {
    display: grid;
    gap: 10px;
}

.viewer-list-row,
.viewer-trend-row,
.viewer-download-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 15px;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid var(--viewer-line);
    box-shadow: 0 4px 12px rgba(36, 22, 63, 0.04);
}

.viewer-list-row strong,
.viewer-download-row strong {
    color: var(--viewer-ink);
    font-size: 15px;
    font-weight: 1000;
    line-height: 1.35;
}

.viewer-list-row span,
.viewer-download-row span {
    color: var(--viewer-brand);
    font-size: 14px;
    font-weight: 1000;
    white-space: nowrap;
}

.viewer-article-row {
    display: block;
    padding: 16px;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid var(--viewer-line);
    color: inherit;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(36, 22, 63, 0.04);
}

.viewer-article-row strong {
    display: block;
    color: var(--viewer-ink);
    font-size: 15px;
    line-height: 1.5;
    font-weight: 1000;
}

.viewer-article-row span {
    display: block;
    margin-top: 8px;
    color: var(--viewer-sub);
    font-size: 12px;
    line-height: 1.55;
    font-weight: 800;
}

.viewer-company-media-grid {
    display: grid;
    gap: 14px;
}

.viewer-company-media-card {
    background: linear-gradient(180deg, #ffffff 0%, #fcf6fa 100%);
    border: 1px solid var(--viewer-line);
    border-radius: 24px;
    padding: 16px;
}

.viewer-company-media-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
    color: var(--viewer-ink);
    font-size: 17px;
    font-weight: 1000;
}

.viewer-company-media-title span {
    color: var(--viewer-brand);
    font-size: 16px;
    font-weight: 1000;
}

.viewer-more-box {
    margin-top: 10px;
    border-radius: 18px;
    background: #fbf7fb;
    border: 1px solid var(--viewer-line);
}

.viewer-more-box summary {
    cursor: pointer;
    list-style: none;
    padding: 14px 16px;
    color: var(--viewer-brand);
    font-size: 14px;
    font-weight: 1000;
}

.viewer-more-box summary::-webkit-details-marker {
    display: none;
}

.viewer-more-box[open] summary {
    border-bottom: 1px solid var(--viewer-line);
}

.viewer-trend-chart {
    display: grid;
    gap: 12px;
    margin-bottom: 16px;
}

.viewer-trend-chart-row {
    padding: 15px;
    border-radius: 22px;
    background: linear-gradient(180deg, #ffffff 0%, #fcf6fa 100%);
    border: 1px solid var(--viewer-line);
}

.viewer-trend-chart-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.viewer-trend-chart-head strong {
    color: var(--viewer-ink);
    font-size: 14px;
    font-weight: 1000;
}

.viewer-trend-chart-head span {
    color: var(--viewer-brand);
    font-size: 13px;
    font-weight: 1000;
}

.viewer-trend-bar-track {
    width: 100%;
    height: 14px;
    border-radius: 999px;
    overflow: hidden;
    background: #f1e7ee;
}

.viewer-trend-bar-fill {
    height: 100%;
    min-width: 0;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--viewer-brand) 0%, var(--viewer-navy) 100%);
}

.viewer-trend-mini {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}

.viewer-trend-mini span {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 6px 10px;
    background: var(--viewer-brand-soft);
    border: 1px solid var(--viewer-brand-soft-border);
    color: var(--viewer-brand-dark);
    font-size: 11px;
    font-weight: 1000;
}

.viewer-trend-row div {
    display: grid;
    gap: 4px;
}

.viewer-trend-row strong {
    color: var(--viewer-ink);
    font-size: 15px;
    font-weight: 1000;
}

.viewer-trend-row span {
    color: var(--viewer-sub);
    font-size: 12px;
    font-weight: 800;
}

.viewer-trend-row em {
    color: var(--viewer-brand-dark);
    font-size: 13px;
    font-style: normal;
    font-weight: 900;
    text-align: right;
    line-height: 1.5;
}

.viewer-calendar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 14px;
}

.viewer-calendar-head a {
    color: var(--viewer-brand);
    text-decoration: none;
    font-size: 14px;
    font-weight: 1000;
}

.viewer-calendar-head strong {
    color: var(--viewer-ink);
    font-size: 16px;
    font-weight: 1000;
}

.viewer-calendar {
    display: grid;
    gap: 8px;
}

.viewer-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
}

.viewer-calendar-weeknames span {
    text-align: center;
    color: var(--viewer-sub);
    font-size: 12px;
    font-weight: 900;
}

.viewer-calendar-day {
    position: relative;
    display: grid;
    align-content: center;
    justify-items: center;
    min-height: 54px;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid var(--viewer-line);
    color: var(--viewer-ink);
    text-decoration: none;
    font-size: 16px;
    font-weight: 1000;
}

.viewer-calendar-muted {
    opacity: 0.36;
}

.viewer-calendar-selected {
    background: linear-gradient(135deg, var(--viewer-navy) 0%, var(--viewer-brand) 100%);
    border-color: transparent;
    color: #ffffff;
}

.viewer-calendar-has-files:not(.viewer-calendar-selected) {
    background: #fff7fb;
    border-color: var(--viewer-brand-soft-border);
}

.viewer-calendar-day em {
    position: absolute;
    right: 6px;
    bottom: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--viewer-brand);
    color: #ffffff;
    font-size: 11px;
    font-style: normal;
    font-weight: 1000;
}

.viewer-selected-date {
    margin-top: 14px;
    color: var(--viewer-sub);
    font-size: 13px;
    font-weight: 800;
}

.viewer-selected-date strong {
    color: var(--viewer-ink);
}

.viewer-download-row div {
    display: grid;
    gap: 5px;
}

.viewer-download-row a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 104px;
    height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    background: var(--viewer-navy);
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 1000;
}

.viewer-download-row a:active {
    transform: scale(0.98);
}

.viewer-floating-home {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 80;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--viewer-navy) 0%, var(--viewer-brand) 100%);
    color: #ffffff;
    text-decoration: none;
    font-size: 18px;
    font-weight: 1000;
    box-shadow: 0 14px 30px rgba(176, 0, 97, 0.24);
}

.viewer-floating-home:active {
    transform: scale(0.96);
}

@media (max-width: 560px) {
    .viewer-page-wrap {
        padding: 18px 13px 84px;
    }

    .viewer-hero {
        border-radius: 24px;
        padding: 22px 17px;
    }

    .viewer-hero h1 {
        font-size: 30px;
    }

    .viewer-card {
        padding: 15px;
        border-radius: 22px;
    }

    .viewer-card-head {
        flex-direction: column;
        align-items: stretch;
    }

    .viewer-small-download {
        width: 100%;
        box-sizing: border-box;
    }

    .viewer-count-grid {
        grid-template-columns: 1fr;
    }

    .viewer-list-row,
    .viewer-trend-row,
    .viewer-download-row {
        align-items: stretch;
        flex-direction: column;
    }

    .viewer-list-row span,
    .viewer-download-row a {
        width: 100%;
        box-sizing: border-box;
        justify-content: center;
    }

    .viewer-trend-row em {
        text-align: left;
    }

    .viewer-calendar-day {
        min-height: 42px;
        border-radius: 12px;
        font-size: 14px;
    }
}

@media (max-width: 520px) {
    .viewer-section-switch-grid {
        gap: 8px;
    }

    .viewer-section-switch-button {
        padding: 14px 12px;
        border-radius: 18px;
    }

    .viewer-section-switch-button strong {
        font-size: 14px;
    }

    .viewer-section-switch-button span {
        font-size: 11px;
    }

    .viewer-floating-home {
        right: 16px;
        bottom: 16px;
        width: 58px;
        height: 58px;
        font-size: 16px;
    }

    .viewer-trend-chart-head {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* =========================================================
   viewer 부정기사 알림 화면 1차
   - 원본 수집 로직과 무관한 화면 스타일 전용
   ========================================================= */

.viewer-status-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.viewer-status-card {
    border-radius: 18px;
    padding: 15px 14px;
    background: linear-gradient(180deg, #ffffff 0%, var(--viewer-brand-soft) 100%);
    border: 1px solid var(--viewer-brand-soft-border);
}

.viewer-status-card span {
    display: block;
    color: var(--viewer-sub);
    font-size: 12px;
    font-weight: 900;
    margin-bottom: 6px;
}

.viewer-status-card strong {
    display: block;
    color: var(--viewer-ink);
    font-size: 24px;
    line-height: 1.1;
    font-weight: 1000;
    letter-spacing: -0.04em;
}

.viewer-status-card em {
    display: block;
    margin-top: 7px;
    color: var(--viewer-sub);
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
    line-height: 1.45;
}

.viewer-negative-download-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.viewer-negative-admin-box {
    margin-top: 14px;
    padding: 14px;
    border-radius: 18px;
    background: #f8f1f7;
    border: 1px solid var(--viewer-line);
}

.viewer-negative-admin-box strong {
    display: block;
    color: var(--viewer-ink);
    font-size: 15px;
    font-weight: 1000;
    margin-bottom: 5px;
}

.viewer-negative-admin-box p {
    margin: 0 0 10px;
    color: var(--viewer-sub);
    font-size: 13px;
    line-height: 1.5;
    font-weight: 800;
}

.viewer-negative-admin-box a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 13px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--viewer-navy) 0%, var(--viewer-brand) 100%);
    color: white;
    text-decoration: none;
    font-size: 13px;
    font-weight: 900;
}

.viewer-negative-reason {
    display: block;
    margin-top: 7px;
    color: #7c2d12;
    font-size: 12px;
    font-style: normal;
    line-height: 1.45;
    font-weight: 800;
}

.viewer-negative-path-list {
    display: grid;
    gap: 7px;
    padding: 10px 12px;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #475569;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
    word-break: break-all;
}

.negative-admin-entry-card {
    border: 1px solid var(--viewer-brand-soft-border);
    background: linear-gradient(180deg, #ffffff 0%, #fff7fb 100%);
}

@media (max-width: 560px) {
    .viewer-status-grid {
        grid-template-columns: 1fr;
    }

    .viewer-negative-download-row {
        flex-direction: column;
    }

    .viewer-negative-download-row .viewer-small-download {
        width: 100%;
        box-sizing: border-box;
    }
}

/* =========================================================
   부정기사 회원별 알림톡 ON/OFF 설정
   - 메일 알림은 표시/카운팅하지 않음
   ========================================================= */

.viewer-alert-success {
    background: #ecfdf5 !important;
    border-color: #a7f3d0 !important;
    color: #065f46 !important;
}

.negative-my-alert-card {
    margin: 0 0 14px;
    padding: 15px;
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #fff7fb 100%);
    border: 1px solid #f5c3df;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
}

.negative-my-alert-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}

.negative-my-alert-title {
    color: #111827;
    font-size: 17px;
    font-weight: 1000;
    letter-spacing: -0.03em;
}

.negative-my-alert-desc {
    margin-top: 5px;
    color: #6b7280;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
}

.negative-my-alert-pill {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0 11px;
    border-radius: 999px;
    color: white;
    font-size: 12px;
    font-weight: 1000;
    white-space: nowrap;
}

.negative-my-alert-pill-on {
    background: linear-gradient(135deg, #33135c 0%, #e6007e 100%);
}

.negative-my-alert-pill-off {
    background: #9ca3af;
}

.negative-my-alert-form {
    display: grid;
    gap: 10px;
}

.negative-my-alert-toggle {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 13px 14px;
    border-radius: 16px;
    background: white;
    border: 1px solid #f1d5e6;
    cursor: pointer;
}

.negative-my-alert-toggle input {
    width: 20px;
    height: 20px;
    margin-top: 2px;
    accent-color: #e6007e;
    flex: 0 0 auto;
}

.negative-my-alert-toggle span {
    display: grid;
    gap: 4px;
}

.negative-my-alert-toggle strong {
    color: #111827;
    font-size: 15px;
    font-weight: 1000;
}

.negative-my-alert-toggle em {
    color: #6b7280;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
    line-height: 1.4;
}

.negative-my-alert-warning {
    padding: 10px 11px;
    border-radius: 12px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.5;
}

.negative-my-alert-save-button {
    width: 100%;
    border: 0;
    border-radius: 14px;
    padding: 13px 14px;
    background: linear-gradient(135deg, #33135c 0%, #e6007e 100%);
    color: white;
    font-size: 14px;
    font-weight: 1000;
    cursor: pointer;
}

.negative-my-alert-save-button:active {
    transform: scale(0.98);
}

.negative-my-alert-path {
    padding: 10px 11px;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    color: #475569;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
    word-break: break-all;
}

@media (max-width: 560px) {
    .negative-my-alert-head {
        flex-direction: column;
    }

    .negative-my-alert-pill {
        width: 100%;
        box-sizing: border-box;
    }
}

/* =========================================================
   부정기사 상세/전체목록/alias 보정
   ========================================================= */

.viewer-alert-success {
    background: #ecfdf5 !important;
    border-color: #a7f3d0 !important;
    color: #065f46 !important;
}

.viewer-list-row-stack {
    display: grid;
    gap: 8px;
    align-items: stretch;
}

.viewer-list-main-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    text-decoration: none;
    color: inherit;
}

.viewer-list-main-link strong {
    color: #111827;
}

.viewer-list-main-link span {
    color: #e6007e;
    font-weight: 1000;
    white-space: nowrap;
}

.negative-alias-inline-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    padding-top: 4px;
}

.negative-alias-inline-form input[type="text"] {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #f1c8df;
    border-radius: 12px;
    padding: 9px 10px;
    font-size: 12px;
    font-weight: 800;
    outline: none;
}

.negative-alias-inline-form input[type="text"]:focus {
    border-color: #e6007e;
    box-shadow: 0 0 0 3px rgba(230, 0, 126, 0.12);
}

.negative-alias-inline-form button {
    border: 0;
    border-radius: 12px;
    padding: 9px 12px;
    background: linear-gradient(135deg, #33135c 0%, #e6007e 100%);
    color: white;
    font-size: 12px;
    font-weight: 1000;
    cursor: pointer;
}

.viewer-article-list {
    max-height: none !important;
    overflow: visible !important;
}

.viewer-article-row {
    word-break: keep-all;
}

.viewer-article-row span {
    line-height: 1.5;
}

.viewer-negative-reason {
    display: block;
    margin-top: 6px;
    color: #7c2d12;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
    line-height: 1.5;
}

@media (max-width: 560px) {
    .negative-alias-inline-form {
        grid-template-columns: 1fr;
    }

    .viewer-list-main-link {
        align-items: flex-start;
    }
}

/* =========================================================
   부정기사 기간 선택 / 상세 이동 보완
   ========================================================= */

.negative-period-filter {
    margin-top: 14px;
    padding: 12px;
    border-radius: 18px;
    background: #fff7fb;
    border: 1px solid #f5c5df;
}

.negative-period-title {
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
    margin-bottom: 9px;
}

.negative-period-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.negative-period-buttons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 11px;
    border-radius: 999px;
    background: white;
    border: 1px solid #f1c8df;
    color: #5b1745;
    text-decoration: none;
    font-size: 12px;
    font-weight: 1000;
}

.negative-period-buttons a.active {
    background: linear-gradient(135deg, #33135c 0%, #e6007e 100%);
    color: white;
    border-color: transparent;
    box-shadow: 0 8px 18px rgba(230, 0, 126, 0.18);
}

.negative-period-filter p {
    margin: 9px 0 0;
    color: #6b3a55;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.5;
}

#negative-detail {
    scroll-margin-top: 18px;
    border-color: #e6007e;
    box-shadow: 0 14px 30px rgba(230, 0, 126, 0.12);
}

.viewer-list-main-link {
    min-height: 28px;
}

.viewer-list-main-link:hover strong {
    color: #e6007e;
    text-decoration: underline;
}

.viewer-list-main-link span {
    color: #e6007e;
}

@media (max-width: 560px) {
    .negative-period-buttons {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .negative-period-buttons a {
        width: 100%;
        box-sizing: border-box;
    }
}

.viewer-article-row-with-admin {
    display: block;
    padding: 0;
    overflow: hidden;
}

.viewer-article-main-link {
    display: block;
    padding: 14px 15px;
    color: inherit;
    text-decoration: none;
}

.viewer-article-main-link:hover {
    background: rgba(230, 0, 126, 0.04);
}

.negative-article-admin-tools {
    padding: 12px 14px 14px;
    border-top: 1px dashed #f5c3df;
    background: #fff7fb;
}

.negative-article-override-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.negative-article-override-form label {
    display: grid;
    gap: 4px;
    color: #6b7280;
    font-size: 11px;
    font-weight: 900;
}

.negative-article-override-form input {
    width: 100%;
    min-height: 34px;
    box-sizing: border-box;
    padding: 0 10px;
    border-radius: 12px;
    border: 1px solid #f5c3df;
    background: white;
    color: #111827;
    font-size: 12px;
    font-weight: 800;
    outline: none;
}

.negative-article-override-form input:focus {
    border-color: #e6007e;
    box-shadow: 0 0 0 3px rgba(230, 0, 126, 0.10);
}

.negative-article-note-field {
    grid-column: 1 / -1;
}

.negative-article-admin-buttons {
    grid-column: 1 / -1;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.negative-article-admin-buttons button {
    min-height: 34px;
    padding: 0 12px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, #33135c 0%, #e6007e 100%);
    color: white;
    font-size: 12px;
    font-weight: 1000;
    cursor: pointer;
}

.negative-article-admin-buttons .negative-article-danger-button {
    background: #991b1b;
}

.negative-article-override-mark {
    margin-top: 8px;
    color: #9d174d;
    font-size: 11px;
    font-weight: 900;
}

@media (max-width: 640px) {
    .negative-article-override-form {
        grid-template-columns: 1fr;
    }

    .negative-article-note-field,
    .negative-article-admin-buttons {
        grid-column: auto;
    }

    .negative-article-admin-buttons button {
        width: 100%;
    }
}

.negative-manual-include-box {
    margin: 14px 0 16px;
    padding: 14px;
    border-radius: 18px;
    border: 1px solid #f5c3df;
    background: #fff7fb;
}

.negative-manual-include-title {
    color: #111827;
    font-size: 15px;
    font-weight: 1000;
    margin-bottom: 5px;
}

.negative-manual-include-desc {
    color: #6b7280;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
    margin-bottom: 12px;
}

.negative-manual-include-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.negative-manual-include-form label {
    display: grid;
    gap: 5px;
    color: #6b7280;
    font-size: 11px;
    font-weight: 900;
}

.negative-manual-include-form input,
.negative-manual-include-form select,
.negative-manual-include-form textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #f5c3df;
    border-radius: 12px;
    background: white;
    color: #111827;
    font-size: 12px;
    font-weight: 800;
    outline: none;
}

.negative-manual-include-form input,
.negative-manual-include-form select {
    min-height: 36px;
    padding: 0 10px;
}

.negative-manual-include-form textarea {
    min-height: 150px;
    padding: 10px;
    resize: vertical;
    line-height: 1.6;
}

.negative-manual-include-form input:focus,
.negative-manual-include-form select:focus,
.negative-manual-include-form textarea:focus {
    border-color: #e6007e;
    box-shadow: 0 0 0 3px rgba(230, 0, 126, 0.10);
}

.negative-manual-include-wide {
    grid-column: 1 / -1;
}

.negative-manual-include-actions {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
}

.negative-manual-include-actions button {
    min-height: 38px;
    padding: 0 14px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, #33135c 0%, #e6007e 100%);
    color: white;
    font-size: 13px;
    font-weight: 1000;
    cursor: pointer;
}

.negative-article-body-snapshot {
    margin: 0 14px 12px;
    border-radius: 14px;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    overflow: hidden;
}

.negative-article-body-snapshot summary {
    cursor: pointer;
    padding: 10px 12px;
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
    list-style: none;
}

.negative-article-body-snapshot summary::-webkit-details-marker {
    display: none;
}

.negative-article-body-snapshot[open] summary {
    border-bottom: 1px solid #e5e7eb;
    background: white;
}

.negative-article-body-meta {
    padding: 9px 12px;
    color: #6b7280;
    font-size: 11px;
    font-weight: 800;
    border-bottom: 1px solid #e5e7eb;
    background: white;
}

.negative-article-body-snapshot pre {
    margin: 0;
    max-height: 420px;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    padding: 12px;
    color: #111827;
    background: #f9fafb;
    font-size: 12px;
    line-height: 1.6;
}

@media (max-width: 640px) {
    .negative-manual-include-form {
        grid-template-columns: 1fr;
    }

    .negative-manual-include-wide,
    .negative-manual-include-actions {
        grid-column: auto;
    }

    .negative-manual-include-actions button {
        width: 100%;
    }
}

.viewer-alert-success {
    background: #ecfdf5;
    color: #065f46;
    border: 1px solid #a7f3d0;
}

.press-release-my-alert-card {
    margin-top: 8px;
}

.viewer-media-alias-row {
    display: block;
}

.viewer-media-alias-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.viewer-media-alias-inline-form {
    display: flex;
    gap: 6px;
    margin-top: 8px;
    align-items: center;
}

.viewer-media-alias-inline-form input[type="text"] {
    flex: 1;
    min-width: 0;
    border: 1px solid #f0b8d3;
    border-radius: 999px;
    padding: 8px 10px;
    font-size: 12px;
    outline: none;
    background: #fff;
}

.viewer-media-alias-inline-form input[type="text"]:focus {
    border-color: #e6007e;
    box-shadow: 0 0 0 3px rgba(230, 0, 126, 0.08);
}

.viewer-media-alias-inline-form button {
    border: 0;
    border-radius: 999px;
    padding: 8px 10px;
    background: #e6007e;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
    white-space: nowrap;
}

.viewer-media-alias-inline-form button:active {
    transform: scale(0.98);
}

@media (max-width: 520px) {
    .viewer-media-alias-inline-form {
        flex-direction: column;
        align-items: stretch;
    }

    .viewer-media-alias-inline-form button {
        width: 100%;
    }
}

/* ============================================================
   Admin home v1
   - Viewer home layout as base
   - Admin features highlighted separately
   ============================================================ */

.admin-home-wrap {
    max-width: 880px;
}

.admin-home-hero {
    background:
        radial-gradient(circle at 0% 0%, rgba(255, 255, 255, 0.18), transparent 28%),
        linear-gradient(135deg, #111827 0%, #1f2937 48%, #e6007e 130%);
}

.admin-home-date-card {
    margin-top: 14px;
    padding: 14px 16px;
    border-radius: 18px;
    background: white;
    border: 1px solid #d9e2ef;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.admin-home-date-card span {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    margin-bottom: 3px;
}

.admin-home-date-card strong {
    display: block;
    color: #111827;
    font-size: 18px;
    font-weight: 950;
}

.admin-home-date-card a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    background: #111827;
    color: white;
    text-decoration: none;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.admin-home-section {
    margin-top: 20px;
}

.admin-home-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.admin-home-section-head strong {
    display: block;
    color: #111827;
    font-size: 18px;
    font-weight: 950;
    letter-spacing: -0.03em;
}

.admin-home-section-head span {
    display: block;
    margin-top: 3px;
    color: #64748b;
    font-size: 13px;
    line-height: 1.45;
}

.admin-only-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    padding: 0 10px;
    border-radius: 999px;
    background: #fff0f7;
    color: #e6007e;
    border: 1px solid #ffd0e7;
    font-size: 11px;
    font-style: normal;
    font-weight: 950;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.admin-home-admin-section {
    padding: 14px;
    border-radius: 24px;
    background: linear-gradient(180deg, #ffffff 0%, #fff7fb 100%);
    border: 1px solid #ffd0e7;
    box-shadow: 0 10px 28px rgba(230, 0, 126, 0.08);
}

.admin-home-grid {
    margin-top: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-home-card {
    border-color: #fbcfe8;
    background: white;
    position: relative;
}

.admin-home-card::after {
    content: "관리자";
    position: absolute;
    top: 12px;
    right: 12px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #fff0f7;
    color: #e6007e;
    font-size: 10px;
    font-weight: 950;
}

.admin-home-card-primary {
    background: linear-gradient(180deg, #ffffff 0%, #fff0f7 100%);
    border-color: #f9a8d4;
}

.admin-home-icon {
    background: linear-gradient(135deg, #e6007e 0%, #7c3aed 100%);
    font-size: 12px;
    letter-spacing: -0.04em;
}

.admin-home-status-card {
    margin-top: 20px;
    padding: 16px;
    border-radius: 24px;
    background: white;
    border: 1px solid #d9e2ef;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.admin-home-summary-grid {
    display: grid;
    gap: 10px;
    margin-top: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-home-summary-item {
    display: block;
    padding: 14px;
    border-radius: 18px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #111827;
    text-decoration: none;
}

.admin-home-summary-item span {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 850;
    margin-bottom: 4px;
}

.admin-home-summary-item strong {
    display: block;
    color: #111827;
    font-size: 17px;
    font-weight: 950;
    margin-bottom: 4px;
}

.admin-home-summary-item em {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-style: normal;
    line-height: 1.45;
}

.admin-home-summary-warn {
    background: #fffbeb;
    border-color: #fde68a;
}

.admin-home-footer-note {
    padding-bottom: 28px;
}

@media (max-width: 719px) {
    .admin-home-grid,
    .admin-home-summary-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .admin-home-date-card {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-home-date-card a {
        width: 100%;
        box-sizing: border-box;
    }

    .admin-home-section-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-home-card::after {
        top: 10px;
        right: 10px;
    }
}

/* ============================================================
   Admin unified screen v1
   - 관리자 홈에서 연결되는 구형 화면 전체 신식 디자인 통일
   - page-wrap / brand-box 기반 기존 템플릿을 viewer 톤으로 변환
   - 기능/라우트/폼 로직은 변경하지 않음
   ============================================================ */

:root {
    --admin-uplus-pink: #e6007e;
    --admin-uplus-pink-dark: #b00061;
    --admin-uplus-soft: #fff1f8;
    --admin-uplus-border: #f7c7df;
    --admin-navy: #24163f;
    --admin-navy-2: #3a235f;
    --admin-text: #191919;
    --admin-muted: #6b7280;
    --admin-bg: #f7f3f8;
    --admin-card: #ffffff;
    --admin-line: #eaddea;
    --admin-shadow: 0 10px 28px rgba(36, 22, 63, 0.08);
    --admin-shadow-strong: 0 18px 36px rgba(36, 22, 63, 0.18);
}

body:has(.page-wrap > .brand-box) {
    background:
        radial-gradient(circle at top left, rgba(230, 0, 126, 0.08), transparent 30rem),
        linear-gradient(180deg, #ffffff 0%, var(--admin-bg) 100%) !important;
    color: var(--admin-text);
}

.page-wrap {
    max-width: 720px !important;
    margin: 0 auto !important;
    padding: 20px 16px 92px !important;
}

.page-wrap > .brand-box {
    background:
        linear-gradient(135deg, var(--admin-navy) 0%, var(--admin-navy-2) 55%, var(--admin-uplus-pink) 100%) !important;
    color: #ffffff !important;
    border-radius: 28px !important;
    padding: 24px 20px !important;
    margin: 0 0 16px !important;
    box-shadow: var(--admin-shadow-strong) !important;
    border: 0 !important;
}

.page-wrap > .brand-box .brand-title {
    margin: 0 0 8px !important;
    color: #ffffff !important;
    font-size: 28px !important;
    line-height: 1.2 !important;
    font-weight: 1000 !important;
    letter-spacing: -0.03em !important;
}

.page-wrap > .brand-box .brand-desc {
    margin: 0 !important;
    color: rgba(255, 255, 255, 0.88) !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    font-weight: 700 !important;
    opacity: 1 !important;
}

.page-wrap > .brand-box .top-user-box {
    margin-top: 18px !important;
    padding-top: 14px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.18) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    color: #ffffff !important;
}

.page-wrap > .brand-box .top-user-box strong {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 1000 !important;
}

.page-wrap > .brand-box .role-badge {
    display: inline-flex !important;
    align-items: center !important;
    margin-left: 8px !important;
    padding: 4px 10px !important;
    border-radius: 999px !important;
    background: rgba(255, 255, 255, 0.16) !important;
    color: rgba(255, 255, 255, 0.92) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
}

.page-wrap > .brand-box .logout-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 84px !important;
    height: 40px !important;
    padding: 0 14px !important;
    border-radius: 999px !important;
    background: rgba(255, 255, 255, 0.14) !important;
    color: #ffffff !important;
    text-decoration: none !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    backdrop-filter: blur(8px);
}

.page-wrap > .quick-action-row {
    margin: 0 0 14px !important;
    padding: 12px !important;
    border-radius: 24px !important;
    background: #ffffff !important;
    border: 1px solid var(--admin-line) !important;
    box-shadow: var(--admin-shadow) !important;
}

.global-nav-card {
    position: static !important;
    margin: 14px 0 18px !important;
    padding: 14px !important;
    border-radius: 24px !important;
    background: #ffffff !important;
    border: 1px solid var(--admin-line) !important;
    box-shadow: var(--admin-shadow) !important;
    backdrop-filter: none !important;
}

.global-nav-top {
    margin-bottom: 10px !important;
}

.global-nav-current span {
    color: var(--admin-muted) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
}

.global-nav-current strong {
    color: var(--admin-text) !important;
    font-size: 15px !important;
    font-weight: 1000 !important;
    letter-spacing: -0.03em !important;
}

.global-nav-tabs {
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    padding-bottom: 2px !important;
}

.global-nav-tab {
    min-height: 34px !important;
    padding: 0 12px !important;
    border-radius: 999px !important;
    background: #fbf7fb !important;
    border: 1px solid var(--admin-line) !important;
    color: var(--admin-text) !important;
    font-size: 12px !important;
    font-weight: 1000 !important;
}

.global-nav-tab-active {
    background: linear-gradient(135deg, var(--admin-navy) 0%, var(--admin-uplus-pink) 100%) !important;
    border-color: transparent !important;
    color: #ffffff !important;
    box-shadow: 0 10px 18px rgba(230, 0, 126, 0.16) !important;
}

.section-block,
.dashboard-overview-card,
.program-card,
.admin-menu-card,
.admin-user-card,
.file-row,
.log-card,
.diagnostic-card,
.run-command-card,
.safe-run-card,
.danger-run-card,
.lock-status-card,
.manual-input-entry-card,
.manual-input-form,
.manual-input-row,
.manual-input-detail-card,
.manual-input-body-card,
.manual-input-delete-card,
.manual-input-apply-card,
.manual-input-edit-form,
.manual-set-apply-box,
.media-alias-card,
.sms-diag-card,
.card {
    background: #ffffff !important;
    border: 1px solid var(--admin-line) !important;
    border-radius: 26px !important;
    box-shadow: var(--admin-shadow) !important;
}

.section-block,
.card {
    margin-top: 16px !important;
    padding: 18px !important;
}

.dashboard-overview-card,
.program-card,
.admin-menu-card,
.admin-user-card,
.file-row,
.log-card,
.diagnostic-card,
.run-command-card,
.safe-run-card,
.danger-run-card,
.lock-status-card,
.manual-input-entry-card,
.manual-input-form,
.manual-input-row,
.manual-input-detail-card,
.manual-input-body-card,
.manual-input-delete-card,
.manual-input-apply-card,
.manual-input-edit-form,
.manual-set-apply-box,
.media-alias-card,
.sms-diag-card {
    padding: 18px !important;
}

.section-block > .manual-input-form,
.section-block > .manual-input-detail-card,
.section-block > .manual-input-body-card,
.section-block > .manual-input-delete-card,
.section-block > .manual-input-apply-card,
.section-block > .manual-input-edit-form,
.section-block > .program-card,
.section-block > .media-alias-card {
    box-shadow: 0 4px 12px rgba(36, 22, 63, 0.04) !important;
}

.section-title,
.program-title,
.log-title,
.diagnostic-title,
.run-area-title,
.manual-set-apply-title,
.media-alias-rebuild-title {
    color: var(--admin-text) !important;
    font-size: 18px !important;
    line-height: 1.35 !important;
    font-weight: 1000 !important;
    letter-spacing: -0.03em !important;
}

.program-subtitle,
.dashboard-overview-subtitle,
.manual-set-apply-desc,
.media-alias-note,
.notice,
.notice-box,
.section-desc {
    color: var(--admin-muted) !important;
    font-size: 13px !important;
    line-height: 1.55 !important;
    font-weight: 700 !important;
}

.label {
    color: var(--admin-text) !important;
    font-size: 13px !important;
    font-weight: 1000 !important;
    margin: 16px 0 7px !important;
}

.input,
select.input,
textarea.input,
.small-input,
.negative-article-override-form input,
.negative-article-override-form select,
.viewer-media-alias-inline-form input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--admin-line) !important;
    border-radius: 18px !important;
    background: #ffffff !important;
    color: var(--admin-text) !important;
    padding: 14px 13px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    outline: none !important;
}

.input:focus,
select.input:focus,
textarea.input:focus,
.small-input:focus,
.negative-article-override-form input:focus,
.negative-article-override-form select:focus,
.viewer-media-alias-inline-form input:focus {
    border-color: var(--admin-uplus-pink) !important;
    box-shadow: 0 0 0 3px rgba(230, 0, 126, 0.12) !important;
}

.manual-input-textarea,
.manual-input-edit-textarea {
    min-height: 260px !important;
    line-height: 1.65 !important;
}

.button,
.refresh-button,
.primary-button,
.manual-input-entry-button,
.manual-input-status-link,
.manual-input-status-back,
.manual-input-detail-button,
.manual-input-edit-button,
.manual-input-apply-button,
.manual-set-apply-button,
.manual-input-search-button,
.manual-status-run-button,
.download-button,
.run-command-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    border: 0 !important;
    border-radius: 999px !important;
    padding: 0 16px !important;
    background: var(--admin-uplus-pink) !important;
    color: #ffffff !important;
    text-decoration: none !important;
    font-size: 13px !important;
    font-weight: 1000 !important;
    box-shadow: 0 10px 18px rgba(230, 0, 126, 0.18) !important;
    cursor: pointer !important;
}

.button:hover,
.refresh-button:hover,
.primary-button:hover,
.manual-input-entry-button:hover,
.manual-input-status-link:hover,
.manual-input-status-back:hover,
.manual-input-detail-button:hover,
.manual-input-edit-button:hover,
.manual-input-apply-button:hover,
.manual-set-apply-button:hover,
.manual-input-search-button:hover,
.manual-status-run-button:hover,
.download-button:hover,
.run-command-button:hover {
    background: var(--admin-uplus-pink-dark) !important;
}

.secondary-refresh-button,
.mini-refresh-link,
.manual-input-search-reset,
.manual-input-filter-chip,
.manual-input-sort-chip,
.manual-input-pagination-chip,
.back-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 34px !important;
    border-radius: 999px !important;
    padding: 0 12px !important;
    background: #ffffff !important;
    border: 1px solid var(--admin-line) !important;
    color: var(--admin-text) !important;
    text-decoration: none !important;
    font-size: 12px !important;
    font-weight: 1000 !important;
    box-shadow: none !important;
}

.manual-input-filter-chip-active,
.manual-input-sort-chip-active,
.manual-input-pagination-current {
    background: linear-gradient(135deg, var(--admin-navy) 0%, var(--admin-uplus-pink) 100%) !important;
    border-color: transparent !important;
    color: #ffffff !important;
}

.danger-button,
.reject-button,
.manual-input-delete-button,
.manual-input-cancel-button,
.stale-lock-release-button,
.negative-article-danger-button {
    border: 0 !important;
    border-radius: 999px !important;
    background: #dc2626 !important;
    color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 1000 !important;
    min-height: 40px !important;
    padding: 0 14px !important;
}

.approve-button,
.run-command-safe_test,
.manual-status-run-button-recommended {
    background: #059669 !important;
    color: #ffffff !important;
}

.manual-input-checkbox-row,
.manual-input-help-text,
.manual-target-prefill-box,
.manual-input-warning,
.manual-set-apply-errors,
.manual-set-apply-warnings,
.media-alias-warning,
.run-warning-box,
.real-run-lock-notice,
.manual-status-run-confirm,
.manual-status-run-disabled {
    border-radius: 18px !important;
    border: 1px solid var(--admin-line) !important;
    box-shadow: none !important;
}

.manual-input-help-text,
.manual-target-prefill-box {
    background: #fff7fb !important;
    border-color: var(--admin-uplus-border) !important;
    color: var(--admin-uplus-pink-dark) !important;
}

.media-alias-row,
.manual-operation-item,
.manual-company-status-card,
.original-company-final-card,
.manual-status-result-card,
.run-history-card,
.log-event-card,
.sms-diag-item,
.sms-diag-log-row,
.dashboard-data-status-row,
.file-mini-row {
    border-radius: 20px !important;
    border: 1px solid var(--admin-line) !important;
    background: #ffffff !important;
    box-shadow: 0 4px 12px rgba(36, 22, 63, 0.04) !important;
}

.status-badge,
.run-status-badge,
.manual-operation-badge,
.lock-status-badge,
.sms-diag-main-badge,
.sms-diag-item-head span {
    border-radius: 999px !important;
    padding: 5px 9px !important;
    font-size: 11px !important;
    font-weight: 1000 !important;
}

.log-box,
.command-box,
.run-detail-pre,
.lock-detail-box pre,
.manual-input-detail pre,
.manual-input-body-card pre,
.media-alias-output,
.external-command-pre,
.deploy-command-item pre,
.systemd-draft-pre {
    border-radius: 18px !important;
    background: #1f1633 !important;
    color: #f8fafc !important;
    border: 0 !important;
}

.program-path,
.media-alias-path,
.dashboard-data-status-path,
.manual-input-origin-summary,
.manual-backup-path {
    border-radius: 16px !important;
    background: #faf7fb !important;
    border: 1px solid var(--admin-line) !important;
    color: var(--admin-muted) !important;
    padding: 10px 12px !important;
    font-weight: 800 !important;
}

.alert {
    border-radius: 18px !important;
    padding: 14px !important;
    margin: 12px 0 !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1.55 !important;
}

.alert-error,
.run-alert-failed {
    background: #fff5f8 !important;
    border: 1px solid #f2bfd8 !important;
    color: var(--admin-uplus-pink-dark) !important;
}

.alert-success,
.run-alert-success {
    background: #f0fdf4 !important;
    border: 1px solid #86efac !important;
    color: #166534 !important;
}

.run-alert-warning {
    background: #fffbeb !important;
    border: 1px solid #fde68a !important;
    color: #92400e !important;
}

.manual-input-detail-grid div,
.manual-operation-summary-card,
.manual-status-log-count-card,
.manual-backup-total,
.systemd-draft-summary-grid div,
.external-access-summary-grid div,
.operation-flow-schedule-grid div,
.skeleton-closeout-schedule div {
    border-radius: 18px !important;
    background: #faf7fb !important;
    border: 1px solid var(--admin-line) !important;
}

@media (max-width: 560px) {
    .page-wrap {
        padding: 18px 13px 84px !important;
    }

    .page-wrap > .brand-box {
        border-radius: 24px !important;
        padding: 22px 17px !important;
    }

    .page-wrap > .brand-box .brand-title {
        font-size: 30px !important;
    }

    .page-wrap > .brand-box .top-user-box {
        align-items: stretch !important;
        flex-direction: column !important;
    }

    .page-wrap > .brand-box .logout-link {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .global-nav-tabs,
    .quick-action-row,
    .manual-input-filter-row,
    .manual-input-status-nav,
    .manual-input-search-actions,
    .run-command-row {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }

    .button,
    .refresh-button,
    .primary-button,
    .secondary-refresh-button,
    .mini-refresh-link,
    .manual-input-entry-button,
    .manual-input-status-link,
    .manual-input-status-back,
    .manual-input-detail-button,
    .manual-input-edit-button,
    .manual-input-apply-button,
    .manual-set-apply-button,
    .manual-input-search-button,
    .manual-input-search-reset,
    .manual-status-run-button,
    .download-button,
    .run-command-button,
    .danger-button,
    .reject-button,
    .approve-button,
    .back-link {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .section-block,
    .dashboard-overview-card,
    .card,
    .manual-input-form,
    .media-alias-card {
        padding: 15px !important;
        border-radius: 22px !important;
    }
}

/* ============================================================
   Admin home v2
   - 부정기사 운영관리 프로그램 자동 탐색 실패 시 표시
   ============================================================ */

.admin-home-card-warn {
    background: #fffbeb !important;
    border-color: #fde68a !important;
}

.admin-home-card-warn::after {
    content: "확인 필요";
    background: #fef3c7;
    color: #92400e;
}

.admin-home-warning-text {
    display: inline-flex;
    width: fit-content;
    margin-top: 8px;
    padding: 5px 8px;
    border-radius: 999px;
    background: #fef3c7;
    color: #92400e;
    font-size: 11px;
    font-style: normal;
    font-weight: 1000;
}

/* ============================================================
   Admin unified screen v2
   - 하위 관리자 화면 실제 구조 정리
   - hero -> nav -> quick/control -> content 순서 강화
   ============================================================ */

.admin-shell {
    max-width: 760px !important;
}

.admin-login-shell {
    max-width: 560px !important;
}

.admin-subpage-hero {
    position: relative;
}

.admin-subpage-kicker {
    color: rgba(255, 255, 255, 0.84);
    font-size: 14px;
    font-weight: 900;
    letter-spacing: -0.02em;
    margin-bottom: 8px;
}

.admin-subpage-quick-card,
.admin-subpage-control-card {
    margin-top: 16px;
    padding: 16px;
    border-radius: 26px;
    background: #ffffff;
    border: 1px solid var(--admin-line);
    box-shadow: var(--admin-shadow);
}

.admin-subpage-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.admin-subpage-section-head strong {
    display: block;
    color: var(--admin-text);
    font-size: 18px;
    font-weight: 1000;
    letter-spacing: -0.03em;
}

.admin-subpage-section-head span {
    display: block;
    margin-top: 4px;
    color: var(--admin-muted);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
}

.admin-subpage-quick-grid {
    display: grid;
    gap: 10px;
}

.admin-subpage-quick-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 14px;
    border-radius: 999px;
    background: #ffffff;
    border: 1px solid var(--admin-line);
    color: var(--admin-text);
    text-decoration: none;
    font-size: 13px;
    font-weight: 1000;
}

.admin-subpage-quick-primary {
    background: linear-gradient(135deg, var(--admin-navy) 0%, var(--admin-uplus-pink) 100%);
    border-color: transparent;
    color: #ffffff;
    box-shadow: 0 10px 18px rgba(230, 0, 126, 0.16);
}

.admin-subpage-quick-button:active {
    transform: scale(0.98);
}

.admin-subpage-inline-actions {
    margin: 0 0 14px !important;
}

.admin-subpage-date-form {
    margin-top: 0 !important;
    padding: 14px !important;
    border-radius: 22px !important;
    background: #fff7fb !important;
    border: 1px solid var(--admin-uplus-border) !important;
}

.admin-subpage-apply-box {
    margin-top: 14px !important;
    box-shadow: none !important;
    border-radius: 22px !important;
}

.admin-subpage-hero .brand-title {
    font-size: 30px !important;
}

.admin-operation-shell .quick-action-row {
    display: grid !important;
    gap: 10px !important;
}

.admin-operation-shell .danger-run-card {
    background: #fff7ed !important;
    border-color: #fdba74 !important;
}

.admin-operation-shell .danger-run-card .run-area-title {
    color: #92400e !important;
}

.admin-operation-shell .safe-run-card {
    background: #f0fdf4 !important;
    border-color: #86efac !important;
}

.admin-manual-status-shell .brand-box .manual-input-status-nav,
.admin-manual-status-shell .brand-box .manual-input-status-form,
.admin-manual-status-shell .brand-box .manual-set-apply-box {
    display: none !important;
}

.admin-shell .admin-subpage-quick-card + .alert,
.admin-shell .admin-subpage-quick-card + .section-block,
.admin-shell .admin-subpage-control-card + .card {
    margin-top: 16px;
}

.bottom-links {
    display: grid !important;
    gap: 8px !important;
    margin-top: 18px !important;
}

.bottom-links a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 40px !important;
    border-radius: 999px !important;
    padding: 0 14px !important;
    background: #ffffff !important;
    border: 1px solid var(--admin-line) !important;
    color: var(--admin-text) !important;
    text-decoration: none !important;
    font-size: 13px !important;
    font-weight: 1000 !important;
}

.bottom-links a:first-child {
    background: linear-gradient(135deg, var(--admin-navy) 0%, var(--admin-uplus-pink) 100%) !important;
    border-color: transparent !important;
    color: #ffffff !important;
}

.admin-login-shell {
    max-width: 560px !important;
}

.admin-login-shell .login-card {
    background: #ffffff !important;
    border: 1px solid var(--admin-line) !important;
    border-radius: 26px !important;
    box-shadow: var(--admin-shadow) !important;
    padding: 20px !important;
}

@media (min-width: 720px) {
    .admin-subpage-quick-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .bottom-links {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .admin-subpage-quick-card,
    .admin-subpage-control-card {
        padding: 15px;
        border-radius: 22px;
    }

    .admin-subpage-section-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-subpage-quick-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   Preview operation monitor
   - /preview 뷰어/관리자 첫 화면 자동운영 상태 표시
   ============================================================ */

.viewer-operation-status-card {
    margin-top: 16px;
    padding: 16px;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid #d9e2ef;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.viewer-operation-status-head {
    margin-bottom: 12px;
}

.viewer-operation-status-head strong {
    display: block;
    color: #111827;
    font-size: 18px;
    font-weight: 950;
    letter-spacing: -0.03em;
}

.viewer-operation-status-head span {
    display: block;
    margin-top: 4px;
    color: #64748b;
    font-size: 13px;
    line-height: 1.45;
}

.viewer-operation-status-list {
    display: grid;
    gap: 10px;
}

.viewer-operation-status-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px;
    border-radius: 18px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.viewer-operation-status-main {
    min-width: 0;
}

.viewer-operation-status-label {
    display: block;
    color: #111827;
    font-size: 15px;
    font-weight: 950;
    letter-spacing: -0.03em;
}

.viewer-operation-status-subtitle {
    display: block;
    margin-top: 3px;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

.viewer-operation-status-detail {
    display: block;
    margin-top: 6px;
    color: #475569;
    font-size: 12px;
    line-height: 1.45;
    word-break: keep-all;
}

.viewer-operation-status-side {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
    text-align: right;
}

.viewer-operation-status-caption {
    color: #64748b;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: -0.01em;
}

.viewer-operation-status-indicator-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.viewer-operation-status-state {
    color: #111827;
    font-size: 13px;
    font-weight: 950;
    white-space: nowrap;
}

.viewer-operation-status-light {
    width: 12px;
    height: 12px;
    border-radius: 999px;
    display: inline-block;
    flex: 0 0 auto;
}

.viewer-operation-status-light-green {
    background: #22c55e;
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.16);
}

.viewer-operation-status-light-red {
    background: #ef4444;
    box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.16);
}

.viewer-operation-status-light-gray {
    background: #94a3b8;
    box-shadow: 0 0 0 4px rgba(148, 163, 184, 0.16);
}

.admin-home-operation-status-card {
    margin-top: 0;
}

@media (max-width: 560px) {
    .viewer-operation-status-item {
        align-items: flex-start;
        flex-direction: column;
    }

    .viewer-operation-status-side {
        align-items: flex-start;
        text-align: left;
    }
}

/* ============================================================
   Negative URL diagnosis v1
   ============================================================ */

.negative-url-diagnosis-page {
    padding-bottom: 96px;
}

.viewer-hero-compact {
    padding-bottom: 18px;
}

.negative-url-diagnosis-card {
    margin-top: 16px;
}

.negative-url-diagnosis-form {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.negative-url-diagnosis-form .button {
    margin-top: 0;
}

.negative-url-diagnosis-result {
    margin-top: 16px;
    border-left: 6px solid #94a3b8;
}

.negative-url-diagnosis-result-reflected {
    border-left-color: #22c55e;
}

.negative-url-diagnosis-result-manual_excluded,
.negative-url-diagnosis-result-duplicate_blocked,
.negative-url-diagnosis-result-low_or_not_negative,
.negative-url-diagnosis-result-archive_only,
.negative-url-diagnosis-result-trace_only {
    border-left-color: #f59e0b;
}

.negative-url-diagnosis-result-not_found,
.negative-url-diagnosis-result-invalid_url {
    border-left-color: #ef4444;
}

.negative-url-diagnosis-status-row {
    display: grid;
    gap: 14px;
}

.negative-url-diagnosis-lamps {
    display: grid;
    gap: 8px;
}

.negative-url-diagnosis-lamp {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 11px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #334155;
    font-size: 12px;
    font-weight: 1000;
}

.negative-url-diagnosis-lamp span {
    width: 11px;
    height: 11px;
    border-radius: 999px;
    display: inline-block;
    flex: 0 0 auto;
}

.negative-url-diagnosis-lamp-ok {
    background: #f0fdf4;
    border-color: #86efac;
    color: #166534;
}

.negative-url-diagnosis-lamp-ok span {
    background: #22c55e;
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.16);
}

.negative-url-diagnosis-lamp-bad {
    background: #fff7f7;
    border-color: #fecaca;
    color: #991b1b;
}

.negative-url-diagnosis-lamp-bad span {
    background: #ef4444;
    box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.14);
}

.negative-url-diagnosis-reason,
.negative-url-diagnosis-urlbox {
    margin-top: 14px;
    padding: 12px 13px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.negative-url-diagnosis-reason strong,
.negative-url-diagnosis-urlbox strong {
    display: block;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
    margin-bottom: 6px;
}

.negative-url-diagnosis-reason span,
.negative-url-diagnosis-urlbox span {
    display: block;
    color: #475569;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.55;
    word-break: break-all;
}

.negative-url-diagnosis-detail-grid {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.negative-url-diagnosis-detail-grid div {
    padding: 12px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.negative-url-diagnosis-detail-grid span {
    display: block;
    color: #64748b;
    font-size: 11px;
    font-weight: 900;
    margin-bottom: 5px;
}

.negative-url-diagnosis-detail-grid strong {
    display: block;
    color: #111827;
    font-size: 14px;
    font-weight: 1000;
    word-break: break-word;
}

.negative-url-diagnosis-article {
    margin-top: 12px;
    padding: 13px;
    border-radius: 18px;
    background: #fff7fb;
    border: 1px solid #ffd0e7;
}

.negative-url-diagnosis-article strong {
    display: block;
    color: #111827;
    font-size: 15px;
    font-weight: 1000;
    line-height: 1.45;
}

.negative-url-diagnosis-article a,
.negative-url-diagnosis-list-item a,
.negative-url-diagnosis-page .viewer-footer-note a {
    color: #e6007e;
    font-weight: 1000;
    text-decoration: none;
}

.negative-url-diagnosis-article p {
    color: #475569;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.6;
}

.negative-url-diagnosis-list {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.negative-url-diagnosis-list-item {
    padding: 13px;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.04);
}

.negative-url-diagnosis-list-item strong {
    display: block;
    color: #111827;
    font-size: 14px;
    font-weight: 1000;
    line-height: 1.45;
}

.negative-url-diagnosis-list-item span {
    display: block;
    margin-top: 5px;
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
}

.negative-url-diagnosis-list-item p,
.negative-url-diagnosis-list-item em {
    display: block;
    margin: 7px 0 0;
    color: #475569;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
    line-height: 1.55;
    word-break: break-word;
}

.negative-url-diagnosis-source-list {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.negative-url-diagnosis-source-list div {
    padding: 11px 12px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.negative-url-diagnosis-source-list strong {
    display: block;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.negative-url-diagnosis-source-list span {
    display: block;
    margin-top: 5px;
    color: #64748b;
    font-size: 11px;
    font-weight: 800;
    word-break: break-all;
}

@media (min-width: 720px) {
    .negative-url-diagnosis-status-row {
        grid-template-columns: 1fr 220px;
        align-items: start;
    }

    .negative-url-diagnosis-detail-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .negative-url-diagnosis-lamp {
        justify-content: flex-start;
    }

    .negative-url-diagnosis-detail-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   Negative manual include edit v1
   - 이미 입력한 수동 포함 부정기사 전체 수정
   ============================================================ */

.negative-manual-include-edit-box {
    margin-top: 12px;
    padding: 13px;
    border-radius: 18px;
    background: #fff7fb;
    border: 1px solid #ffd0e7;
}

.negative-manual-include-edit-box summary {
    cursor: pointer;
    color: #e6007e;
    font-size: 13px;
    font-weight: 1000;
}

.negative-manual-include-edit-form {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.negative-manual-include-edit-form label {
    display: grid;
    gap: 5px;
}

.negative-manual-include-edit-form label span {
    color: #374151;
    font-size: 12px;
    font-weight: 1000;
}

.negative-manual-include-edit-form input,
.negative-manual-include-edit-form select,
.negative-manual-include-edit-form textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #f9a8d4;
    border-radius: 14px;
    background: #ffffff;
    color: #111827;
    padding: 11px 12px;
    font-size: 13px;
    font-weight: 800;
    outline: none;
}

.negative-manual-include-edit-form textarea {
    min-height: 160px;
    resize: vertical;
    line-height: 1.6;
}

.negative-manual-include-edit-form input:focus,
.negative-manual-include-edit-form select:focus,
.negative-manual-include-edit-form textarea:focus {
    border-color: #e6007e;
    box-shadow: 0 0 0 3px rgba(230, 0, 126, 0.12);
}

.negative-manual-include-edit-actions {
    margin-top: 2px;
}

.negative-manual-include-edit-actions button {
    width: 100%;
    border: 0;
    border-radius: 999px;
    padding: 12px 14px;
    background: #e6007e;
    color: #ffffff;
    font-size: 13px;
    font-weight: 1000;
    cursor: pointer;
}

.negative-manual-include-edit-actions button:active {
    transform: scale(0.98);
}

@media (min-width: 720px) {
    .negative-manual-include-edit-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .negative-manual-include-edit-form .negative-manual-include-wide,
    .negative-manual-include-edit-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 560px) {
    .negative-manual-include-edit-form {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   Floating home button v1
   - 뷰어/관리자 공통 오른쪽 하단 PR관리 홈 버튼
   ============================================================ */

.floating-home-button {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 9999;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 999px;
    background: linear-gradient(135deg, #24163f 0%, #e6007e 100%);
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 1000;
    letter-spacing: -0.02em;
    box-shadow: 0 14px 28px rgba(36, 22, 63, 0.26);
    border: 1px solid rgba(255, 255, 255, 0.24);
    -webkit-tap-highlight-color: transparent;
}

.floating-home-button::before {
    content: "";
    position: absolute;
    inset: -5px;
    border-radius: 999px;
    background: rgba(230, 0, 126, 0.12);
    z-index: -1;
}

.floating-home-button:active {
    transform: scale(0.96);
}

.floating-home-button-admin {
    background: linear-gradient(135deg, #111827 0%, #e6007e 100%);
}

@media (max-width: 560px) {
    .floating-home-button {
        right: 14px;
        bottom: 14px;
        width: 52px;
        height: 52px;
        font-size: 13px;
    }

    .viewer-page-wrap,
    .admin-home-wrap,
    .page-wrap {
        padding-bottom: 94px !important;
    }
}

/* ============================================================
   News scrap manual query v1
   ============================================================ */

.admin-disable-user-form {
    display: flex;
    gap: 8px;
    margin-top: 10px;
    align-items: center;
    flex-wrap: wrap;
}

.admin-disable-user-form .small-input {
    flex: 1 1 180px;
}

.news-scrap-status-card {
    border: 1px solid #e5e7eb;
}

.news-scrap-status-ready {
    border-color: #a7f3d0;
    background: #f0fdf4;
}

.news-scrap-status-running,
.news-scrap-status-cooldown {
    border-color: #fde68a;
    background: #fffbeb;
}

.news-scrap-status-error {
    border-color: #fecaca;
    background: #fef2f2;
}

.news-scrap-cooldown-box {
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.78);
    color: #92400e;
    font-size: 13px;
    line-height: 1.5;
}

.news-scrap-cooldown-box strong,
.news-scrap-cooldown-box span {
    display: block;
}

.news-scrap-progress-box {
    margin-top: 14px;
    padding: 14px;
    border-radius: 16px;
    background: #111827;
    color: white;
}

.news-scrap-progress-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    font-size: 13px;
    font-weight: 900;
}

.news-scrap-progress-bar {
    margin-top: 10px;
    height: 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    overflow: hidden;
}

.news-scrap-progress-bar span {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: #e6007e;
    transition: width 0.4s ease;
}

.news-scrap-progress-box p {
    margin: 10px 0 0;
    font-size: 12px;
    line-height: 1.5;
    color: #e5e7eb;
}

.news-scrap-history-list {
    display: grid;
    gap: 10px;
}

.news-scrap-history-item {
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: white;
    padding: 12px 14px;
}

.news-scrap-history-item summary {
    cursor: pointer;
    list-style: none;
}

.news-scrap-history-item summary::-webkit-details-marker {
    display: none;
}

.news-scrap-history-item summary strong {
    display: block;
    color: #111827;
    font-size: 14px;
    font-weight: 900;
    margin-bottom: 4px;
}

.news-scrap-history-item summary span {
    display: block;
    color: #6b7280;
    font-size: 12px;
    font-weight: 700;
}

.news-scrap-history-item pre {
    margin: 12px 0 0;
    padding: 12px;
    border-radius: 12px;
    background: #f9fafb;
    white-space: pre-wrap;
    word-break: break-word;
    font-size: 12px;
    line-height: 1.5;
    max-height: 300px;
    overflow: auto;
}

.news-scrap-learning-card {
    border: 1px solid #fbcfe8;
    background: #fff7fb;
}

.news-scrap-learning-grid {
    display: grid;
    gap: 14px;
}

.news-scrap-learning-form {
    background: white;
    border: 1px solid #fce7f3;
    border-radius: 16px;
    padding: 14px;
}

.news-scrap-learning-form strong {
    display: block;
    font-size: 15px;
    font-weight: 900;
    margin-bottom: 10px;
    color: #111827;
}

.news-scrap-learning-form label {
    display: block;
    margin-top: 10px;
}

.news-scrap-learning-form label span {
    display: block;
    font-size: 12px;
    font-weight: 900;
    color: #4b5563;
    margin-bottom: 5px;
}

.news-scrap-learning-button {
    width: 100%;
    margin-top: 14px;
    border: 0;
    border-radius: 999px;
    padding: 12px 14px;
    background: #e6007e;
    color: white;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.news-scrap-learning-danger {
    background: #991b1b;
}

.news-scrap-learning-counts {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.news-scrap-learning-counts span {
    display: inline-flex;
    border-radius: 999px;
    padding: 6px 10px;
    background: white;
    color: #111827;
    border: 1px solid #fbcfe8;
    font-size: 12px;
    font-weight: 900;
}

.account-withdraw-card {
    border: 1px solid #fecaca;
    background: #fff7f7;
}

.account-withdraw-form {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}

.account-withdraw-form .input {
    flex: 1 1 220px;
}

.account-withdraw-button {
    border: 0;
    border-radius: 999px;
    padding: 12px 16px;
    background: #991b1b;
    color: white;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
}

@media (min-width: 720px) {
    .news-scrap-learning-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .admin-disable-user-form,
    .account-withdraw-form {
        flex-direction: column;
        align-items: stretch;
    }

    .account-withdraw-button {
        width: 100%;
    }
}

.viewer-operation-status-item-static {
    cursor: default;
    pointer-events: none;
}

.viewer-operation-status-item-static:hover {
    transform: none;
}

.negative-article-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
}

.negative-article-title-main {
    min-width: 0;
    flex: 1 1 auto;
}

.negative-article-title-main a {
    display: block;
}

.negative-article-title-side {
    flex: 0 0 auto;
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
    min-width: 136px;
}

.negative-delivery-status {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-width: 122px;
    max-width: 170px;
    border-radius: 999px;
    padding: 8px 11px;
    border: 1px solid #cbd5e1;
    background: #f8fafc;
    color: #475569;
    text-align: center;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

.negative-delivery-status strong {
    display: block;
    font-size: 11px;
    font-weight: 1000;
    line-height: 1.1;
    white-space: nowrap;
}

.negative-delivery-status span {
    display: block;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.25;
    color: inherit;
    word-break: keep-all;
}

.negative-delivery-status-sent {
    background: #dcfce7;
    border-color: #22c55e;
    color: #166534;
}

.negative-delivery-status-duplicate {
    background: #fef3c7;
    border-color: #f59e0b;
    color: #92400e;
}

.negative-delivery-status-pending {
    background: #f1f5f9;
    border-color: #94a3b8;
    color: #475569;
}

.negative-alert-test-form {
    display: grid;
    gap: 10px;
}

.negative-alert-test-log-list {
    display: grid;
    gap: 10px;
}

.negative-alert-test-log-row {
    padding: 13px;
    border-radius: 16px;
    background: white;
    border: 1px solid #e5e7eb;
    border-left: 5px solid #94a3b8;
}

.negative-alert-test-log-success {
    border-left-color: #22c55e;
    background: #f0fdf4;
}

.negative-alert-test-log-failed {
    border-left-color: #ef4444;
    background: #fff7f7;
}

.negative-alert-test-log-row strong {
    display: block;
    color: #111827;
    font-size: 14px;
    font-weight: 1000;
}

.negative-alert-test-log-row span,
.negative-alert-test-log-row p,
.negative-alert-test-log-row em {
    display: block;
    margin: 5px 0 0;
    color: #475569;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
    line-height: 1.45;
    word-break: break-word;
}

.negative-alert-test-textarea {
    min-height: 110px;
    resize: vertical;
    line-height: 1.6;
}

@media (max-width: 560px) {
    .negative-article-title-row {
        flex-direction: column;
        align-items: stretch;
    }

    .negative-article-title-side {
        justify-content: flex-start;
        min-width: auto;
    }

    .negative-delivery-status {
        min-width: auto;
        max-width: 100%;
        width: fit-content;
        border-radius: 14px;
    }
}

/* ============================================================
   Operation monitor v2
   - 보도자료 정시 운영 / 부정기사 2분 주기 운영 구분
   - 초록/노랑/빨강 3단계 표시
   - 상태 항목 클릭 이동
   ============================================================ */

.viewer-operation-status-item {
    color: #111827;
    text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.viewer-operation-status-item-ok {
    background: #f0fdf4;
    border-color: #86efac;
}

.viewer-operation-status-item-warn {
    background: #fffbeb;
    border-color: #fde68a;
}

.viewer-operation-status-item-bad {
    background: #fff7f7;
    border-color: #fecaca;
}

.viewer-operation-status-item:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.10);
}

.viewer-operation-status-light-yellow {
    background: #f59e0b;
    box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.18);
}

.viewer-operation-status-item-warn .viewer-operation-status-state {
    color: #92400e;
}

.viewer-operation-status-item-ok .viewer-operation-status-state {
    color: #166534;
}

.viewer-operation-status-item-bad .viewer-operation-status-state {
    color: #991b1b;
}

/* ============================================================
   Negative article delivery badge compact override
   - 제목 오른쪽 작은 상태 라벨
   - 관리자 수정폼 레이아웃 밀림 방지
   ============================================================ */

.viewer-article-row-with-admin {
    padding-right: 14px !important;
}

.negative-article-title-row {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 10px !important;
    width: 100% !important;
}

.negative-article-title-main {
    min-width: 0 !important;
    flex: 1 1 auto !important;
}

.negative-article-title-main a,
.negative-article-title-link,
.viewer-article-main-link {
    display: block !important;
}

.negative-article-title-side {
    position: static !important;
    flex: 0 0 auto !important;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: flex-start !important;
    min-width: auto !important;
    margin-left: 8px !important;
}

.negative-delivery-status {
    position: static !important;
    top: auto !important;
    right: auto !important;
    z-index: auto !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-width: auto !important;
    max-width: 120px !important;
    min-height: auto !important;

    border-radius: 999px !important;
    padding: 4px 8px !important;
    border-width: 1px !important;
    border-style: solid !important;

    text-align: center !important;
    box-shadow: none !important;
    white-space: nowrap !important;
}

.negative-delivery-status strong {
    display: block !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.02em !important;
    white-space: nowrap !important;
}

.negative-delivery-status span {
    display: none !important;
}

.negative-delivery-status-sent {
    background: #ecfdf5 !important;
    border-color: #86efac !important;
    color: #047857 !important;
}

.negative-delivery-status-duplicate {
    background: #fff7ed !important;
    border-color: #fdba74 !important;
    color: #c2410c !important;
}

.negative-delivery-status-pending {
    background: #f8fafc !important;
    border-color: #cbd5e1 !important;
    color: #64748b !important;
}

@media (max-width: 768px) {
    .viewer-article-row-with-admin {
        padding-right: 14px !important;
    }

    .negative-article-title-row {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 6px !important;
    }

    .negative-article-title-side {
        justify-content: flex-start !important;
        margin-left: 0 !important;
    }

    .negative-delivery-status {
        width: fit-content !important;
        max-width: 100% !important;
        border-radius: 999px !important;
    }
}

/* ============================================================
   News scrap manual query v1
   ============================================================ */

.news-scrap-page {
    padding-bottom: 96px;
}

.news-scrap-form-card {
    margin-top: 16px;
}

.news-scrap-form {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.news-scrap-form label {
    display: grid;
    gap: 6px;
}

.news-scrap-form label span {
    color: #374151;
    font-size: 12px;
    font-weight: 1000;
}

.news-scrap-form input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #f9a8d4;
    border-radius: 14px;
    background: #ffffff;
    color: #111827;
    padding: 12px 12px;
    font-size: 15px;
    font-weight: 900;
    outline: none;
}

.news-scrap-form input:focus {
    border-color: #e6007e;
    box-shadow: 0 0 0 3px rgba(230, 0, 126, 0.12);
}

.news-scrap-form-actions {
    margin-top: 2px;
}

.news-scrap-form-actions button {
    width: 100%;
    border: 0;
    border-radius: 999px;
    padding: 13px 14px;
    background: #e6007e;
    color: #ffffff;
    font-size: 14px;
    font-weight: 1000;
    cursor: pointer;
}

.news-scrap-form-actions button:active {
    transform: scale(0.98);
}

.news-scrap-help {
    margin-top: 12px;
    padding: 11px 12px;
    border-radius: 14px;
    background: #fff7fb;
    border: 1px solid #ffd0e7;
    color: #9d174d;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.5;
}

.news-scrap-alert-error {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fecaca;
}

.news-scrap-result-card {
    margin-top: 16px;
}

.news-scrap-count-pill {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 7px 11px;
    background: #fff0f7;
    color: #e6007e;
    border: 1px solid #ffd0e7;
    font-size: 12px;
    font-weight: 1000;
}

.news-scrap-result-body {
    margin: 12px 0 0;
    padding: 14px;
    border-radius: 18px;
    background: #111827;
    color: #f9fafb;
    font-size: 13px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    line-height: 1.65;
    white-space: pre-wrap;
    word-break: break-word;
    overflow-x: auto;
    max-height: 70vh;
    overflow-y: auto;
}

.news-scrap-empty-card {
    margin-top: 16px;
}

.news-scrap-debug-card {
    margin-top: 16px;
}

.news-scrap-debug-card summary {
    cursor: pointer;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
}

.news-scrap-debug-grid {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.news-scrap-debug-grid div {
    padding: 10px 11px;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.news-scrap-debug-grid span {
    display: block;
    color: #64748b;
    font-size: 11px;
    font-weight: 900;
    margin-bottom: 5px;
}

.news-scrap-debug-grid strong {
    display: block;
    color: #111827;
    font-size: 12px;
    font-weight: 900;
    word-break: break-all;
}

.news-scrap-debug-command {
    margin-top: 10px;
}

.news-scrap-debug-command strong {
    display: block;
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
    margin-bottom: 6px;
}

.news-scrap-debug-command pre {
    margin: 0;
    padding: 11px;
    border-radius: 14px;
    background: #111827;
    color: #f9fafb;
    font-size: 11px;
    line-height: 1.5;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 240px;
    overflow: auto;
}

.news-scrap-debug-error pre {
    background: #7f1d1d;
}

@media (min-width: 720px) {
    .news-scrap-form {
        grid-template-columns: 1.1fr 0.8fr 0.8fr;
        align-items: end;
    }

    .news-scrap-form-actions {
        grid-column: 1 / -1;
    }

    .news-scrap-debug-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .news-scrap-form {
        grid-template-columns: 1fr;
    }
}

.viewer-article-row {
    position: relative;
}

.viewer-article-row-with-admin {
    position: relative;
    padding-right: 170px;
}

.negative-article-title-row {
    display: block;
    width: 100%;
}

.negative-article-title-main {
    min-width: 0;
}

.negative-article-title-main a,
.negative-article-title-link,
.viewer-article-main-link {
    display: block;
}

.negative-article-title-side {
    position: static;
}

.negative-delivery-status {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 104px;
    max-width: 136px;
    min-height: 34px;
    border-radius: 999px;
    padding: 7px 10px;
    border: 1px solid #cbd5e1;
    background: #f8fafc;
    color: #475569;
    text-align: center;
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.10);
}

.negative-delivery-status strong {
    display: block;
    font-size: 11px;
    font-weight: 1000;
    line-height: 1.15;
    white-space: nowrap;
}

.negative-delivery-status span {
    display: none !important;
}

.negative-delivery-status-sent {
    background: #dcfce7;
    border-color: #22c55e;
    color: #166534;
}

.negative-delivery-status-duplicate {
    background: #fef3c7;
    border-color: #f59e0b;
    color: #92400e;
}

.negative-delivery-status-pending {
    background: #f1f5f9;
    border-color: #94a3b8;
    color: #475569;
}

@media (max-width: 768px) {
    .viewer-article-row-with-admin {
        padding-right: 14px;
    }

    .negative-delivery-status {
        position: static;
        margin: 8px 0 0;
        min-width: auto;
        max-width: 100%;
        width: fit-content;
        border-radius: 14px;
    }

    .negative-article-title-side {
        display: flex;
        justify-content: flex-start;
    }
}

/* =========================================================
   2026-05-04 모바일 탈퇴 버튼 축소 / TOP 목록 줄바꿈 보정 / 방문통계
   ========================================================= */

.account-withdraw-compact-wrap {
    margin-top: 14px;
    display: flex;
    justify-content: center;
}

.account-withdraw-compact {
    width: 100%;
    max-width: 360px;
}

.account-withdraw-compact > summary {
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border-radius: 999px;
    background: white;
    color: #991b1b;
    border: 1px solid #fecaca;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.account-withdraw-compact > summary::-webkit-details-marker {
    display: none;
}

.account-withdraw-compact[open] > summary {
    background: #fef2f2;
}

.account-withdraw-compact-body {
    margin-top: 10px;
    padding: 14px;
    border-radius: 16px;
    background: white;
    border: 1px solid #fee2e2;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}

.account-withdraw-compact-desc {
    margin-bottom: 10px;
    color: #6b7280;
    font-size: 12px;
    line-height: 1.5;
}

.account-withdraw-form-compact {
    display: flex;
    gap: 8px;
    align-items: center;
}

.account-withdraw-form-compact .input {
    flex: 1 1 auto;
    min-width: 0;
}

.account-withdraw-button {
    border: 0;
    border-radius: 999px;
    padding: 12px 14px;
    background: #991b1b;
    color: white;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
    white-space: nowrap;
}

.account-withdraw-button:active {
    transform: scale(0.98);
}

/* 모바일에서 매체명/기자명이 한 글자씩 세로로 깨지는 문제 방지 */
.viewer-list-row,
.viewer-trend-row,
.viewer-download-row,
.admin-visit-top-row,
.negative-top-row,
.negative-ranking-row {
    min-width: 0;
}

.viewer-list-row strong,
.viewer-list-row span,
.viewer-company-media-title,
.viewer-company-media-title span,
.viewer-trend-row strong,
.viewer-trend-row span,
.viewer-trend-row em,
.negative-top-row strong,
.negative-top-row span,
.negative-ranking-row strong,
.negative-ranking-row span,
.dashboard-data-status-title strong,
.dashboard-data-status-title span {
    word-break: keep-all;
    overflow-wrap: normal;
}

.viewer-list-row strong,
.viewer-company-media-title,
.negative-top-row strong,
.negative-ranking-row strong {
    min-width: 0;
    flex: 1 1 auto;
}

.viewer-list-row span,
.negative-top-row span,
.negative-ranking-row span {
    flex: 0 0 auto;
    white-space: nowrap;
}

.viewer-company-media-card,
.viewer-company-media-grid,
.viewer-list,
.viewer-list-compact {
    min-width: 0;
}

/* 중복 제외 기사 기준 URL 표시 */
.negative-duplicate-source-box {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 14px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.negative-duplicate-source-title {
    color: #92400e;
    font-size: 12px;
    font-weight: 900;
}

.negative-duplicate-source-box a,
.negative-duplicate-source-box span {
    color: #111827;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.45;
    word-break: break-all;
}

/* 관리자 홈 회원 방문 그래프 */
.admin-visit-stats-section {
    border: 1px solid #ffd0e7;
    border-left: 5px solid #e6007e;
    border-radius: 18px;
    padding: 16px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.admin-visit-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 12px 0;
}

.admin-visit-summary-item {
    border-radius: 14px;
    background: #fff0f7;
    border: 1px solid #ffd0e7;
    padding: 12px;
}

.admin-visit-summary-item span {
    display: block;
    color: #6b7280;
    font-size: 11px;
    font-weight: 900;
    margin-bottom: 4px;
}

.admin-visit-summary-item strong {
    display: inline-block;
    color: #111827;
    font-size: 24px;
    font-weight: 900;
    line-height: 1;
}

.admin-visit-summary-item em {
    color: #e6007e;
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
}

.admin-visit-chart {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 12px;
}

.admin-visit-chart-row {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 8px;
    align-items: center;
}

.admin-visit-chart-head {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.admin-visit-chart-head strong {
    font-size: 12px;
    font-weight: 900;
    color: #111827;
    white-space: nowrap;
}

.admin-visit-chart-head span {
    font-size: 11px;
    font-weight: 800;
    color: #6b7280;
    white-space: nowrap;
}

.admin-visit-chart-track {
    height: 12px;
    border-radius: 999px;
    background: #f3f4f6;
    overflow: hidden;
}

.admin-visit-chart-fill {
    height: 100%;
    min-width: 2px;
    border-radius: 999px;
    background: #e6007e;
}

.admin-visit-top-list {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #f3f4f6;
}

.admin-visit-top-title {
    margin-bottom: 8px;
    color: #111827;
    font-size: 13px;
    font-weight: 900;
}

.admin-visit-top-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 8px 0;
    border-top: 1px solid #f9fafb;
}

.admin-visit-top-row:first-of-type {
    border-top: 0;
}

.admin-visit-top-row div {
    min-width: 0;
}

.admin-visit-top-row strong {
    display: block;
    color: #111827;
    font-size: 13px;
    font-weight: 900;
    word-break: keep-all;
}

.admin-visit-top-row span {
    display: block;
    color: #6b7280;
    font-size: 11px;
    font-weight: 800;
    margin-top: 2px;
}

.admin-visit-top-row em {
    flex: 0 0 auto;
    color: #e6007e;
    font-size: 13px;
    font-style: normal;
    font-weight: 900;
    white-space: nowrap;
}

@media (max-width: 520px) {
    .account-withdraw-compact-wrap {
        margin-top: 10px;
    }

    .account-withdraw-compact {
        max-width: none;
    }

    .account-withdraw-form-compact {
        flex-direction: column;
        align-items: stretch;
    }

    .account-withdraw-form-compact .input,
    .account-withdraw-form-compact .account-withdraw-button {
        width: 100%;
        box-sizing: border-box;
    }

    .viewer-list-row {
        align-items: flex-start;
        gap: 8px;
    }

    .viewer-list-row strong {
        line-height: 1.35;
    }

    .viewer-list-row span {
        white-space: nowrap;
        line-height: 1.35;
    }

    .viewer-company-media-title {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 8px;
        line-height: 1.35;
    }

    .admin-visit-summary-grid {
        grid-template-columns: 1fr;
    }

    .admin-visit-chart-row {
        grid-template-columns: 58px minmax(0, 1fr);
    }
}

.top-list-item {
  display: block;
  width: 100%;
  padding: 16px 18px;
  border: 1px solid #f0e3ee;
  border-radius: 18px;
  background: #fff;
  box-sizing: border-box;
}

.top-list-item + .top-list-item {
  margin-top: 12px;
}

.top-list-item-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-width: 0;
}

.top-list-name {
  flex: 1 1 auto;
  min-width: 0;
  display: block;
  color: #181a2a;
  font-weight: 800;
  font-size: 18px;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.top-list-count {
  flex: 0 0 auto;
  display: inline-block;
  margin-left: auto;
  color: #e61b87;
  font-weight: 900;
  font-size: 18px;
  line-height: 1.2;
  white-space: nowrap;
  text-align: right;
}

.top-list-sub {
  margin-top: 6px;
  color: #7c8296;
  font-size: 13px;
  line-height: 1.4;
}

.duplicate-basis-box {
  margin-top: 12px;
  padding: 14px 16px;
  border: 1px solid #f1dfc8;
  border-radius: 16px;
  background: #fff9f2;
}

.duplicate-basis-title {
  margin-bottom: 8px;
  color: #8c5a25;
  font-weight: 800;
  font-size: 15px;
  line-height: 1.3;
}

.duplicate-basis-link {
  color: #8c5a25;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.5;
  word-break: break-all;
  text-decoration: none;
}

.duplicate-basis-link:hover {
  text-decoration: underline;
}

.duplicate-basis-url {
  margin-top: 6px;
  color: #9a815f;
  font-size: 12px;
  line-height: 1.4;
  word-break: break-all;
}

.duplicate-basis-empty {
  color: #8c5a25;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.5;
  word-break: keep-all;
}

@media (max-width: 768px) {
    .top-list-item {
        padding: 14px 16px;
        border-radius: 16px;
  }

  .top-list-name,
  .top-list-count {
    font-size: 16px;
  }

    .top-list-item-main {
        gap: 10px;
    }
}

/* 2026-05-04: 부정기사 조회 화면 모바일 TOP 리스트 겹침 방지 */
.negative-top-safe-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    text-decoration: none !important;
}

.negative-top-safe-name {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: block !important;
    color: #171827 !important;
    font-weight: 900 !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.negative-top-safe-count {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    min-width: 46px !important;
    margin-left: auto !important;
    color: #e6007e !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    text-align: right !important;
}

.viewer-card .negative-ranking-row,
.viewer-card .negative-ranking-item,
.viewer-card .negative-top-row,
.viewer-card .negative-top-item,
.viewer-card .negative-media-row,
.viewer-card .negative-reporter-row,
.viewer-card .viewer-ranking-row,
.viewer-card .viewer-top-row,
.viewer-card .viewer-top-item,
.viewer-card .viewer-media-row,
.viewer-card .viewer-reporter-row,
.viewer-card .viewer-detail-row,
.viewer-card .viewer-detail-item,
.viewer-card .dashboard-media-row,
.viewer-card .dashboard-top-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    min-width: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.viewer-card .negative-ranking-row > *:first-child,
.viewer-card .negative-ranking-item > *:first-child,
.viewer-card .negative-top-row > *:first-child,
.viewer-card .negative-top-item > *:first-child,
.viewer-card .negative-media-row > *:first-child,
.viewer-card .negative-reporter-row > *:first-child,
.viewer-card .viewer-ranking-row > *:first-child,
.viewer-card .viewer-top-row > *:first-child,
.viewer-card .viewer-top-item > *:first-child,
.viewer-card .viewer-media-row > *:first-child,
.viewer-card .viewer-reporter-row > *:first-child,
.viewer-card .viewer-detail-row > *:first-child,
.viewer-card .viewer-detail-item > *:first-child,
.viewer-card .dashboard-media-row > *:first-child,
.viewer-card .dashboard-top-row > *:first-child {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.viewer-card .negative-ranking-row > *:last-child,
.viewer-card .negative-ranking-item > *:last-child,
.viewer-card .negative-top-row > *:last-child,
.viewer-card .negative-top-item > *:last-child,
.viewer-card .negative-media-row > *:last-child,
.viewer-card .negative-reporter-row > *:last-child,
.viewer-card .viewer-ranking-row > *:last-child,
.viewer-card .viewer-top-row > *:last-child,
.viewer-card .viewer-top-item > *:last-child,
.viewer-card .viewer-media-row > *:last-child,
.viewer-card .viewer-reporter-row > *:last-child,
.viewer-card .viewer-detail-row > *:last-child,
.viewer-card .viewer-detail-item > *:last-child,
.viewer-card .dashboard-media-row > *:last-child,
.viewer-card .dashboard-top-row > *:last-child {
    flex: 0 0 auto !important;
    margin-left: auto !important;
    white-space: nowrap !important;
    text-align: right !important;
}

.negative-duplicate-source-box {
    margin-top: 12px;
    padding: 14px 16px;
    border: 1px solid #f1dfc8;
    border-radius: 16px;
    background: #fff9f2;
}

.negative-duplicate-source-title {
    margin-bottom: 8px;
    color: #8c5a25;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.35;
}

.negative-duplicate-source-link {
    display: block;
    color: #8c5a25;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
    text-decoration: none;
    word-break: break-all;
}

.negative-duplicate-source-link:hover {
    text-decoration: underline;
}

.negative-duplicate-source-empty {
    display: block;
    color: #8c5a25;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;
    word-break: keep-all;
}

@media (max-width: 768px) {
    .negative-top-safe-row {
        gap: 10px !important;
    }

    .negative-top-safe-name,
    .negative-top-safe-count {
        font-size: 16px !important;
    }

    .negative-top-safe-count {
        min-width: 44px !important;
    }

    .negative-duplicate-source-box {
        padding: 13px 14px;
        border-radius: 14px;
    }
}

/* 2026-05-04 stable-topfix2: TOP 리스트 겹침/누락 최종 보정 */
.viewer-list-main-link-safe {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) max-content !important;
    align-items: center !important;
    column-gap: 12px !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    text-decoration: none !important;
}

.viewer-list-main-link-safe > strong {
    grid-column: 1 !important;
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    position: static !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    color: #171827 !important;
    font-weight: 900 !important;
    line-height: 1.35 !important;
    text-align: left !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.viewer-list-main-link-safe > span {
    grid-column: 2 !important;
    display: block !important;
    min-width: max-content !important;
    position: static !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    margin-left: 0 !important;
    color: #e6007e !important;
    font-weight: 900 !important;
    line-height: 1.25 !important;
    text-align: right !important;
    white-space: nowrap !important;
}

.viewer-list-main-link.negative-top-safe-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) max-content !important;
    align-items: center !important;
    column-gap: 12px !important;
    width: 100% !important;
    min-width: 0 !important;
}

.viewer-list-main-link.negative-top-safe-row > .negative-top-safe-name {
    grid-column: 1 !important;
    display: block !important;
    min-width: 0 !important;
    position: static !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    color: #171827 !important;
    text-align: left !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.viewer-list-main-link.negative-top-safe-row > .negative-top-safe-count {
    grid-column: 2 !important;
    display: block !important;
    min-width: max-content !important;
    position: static !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    color: #e6007e !important;
    text-align: right !important;
    white-space: nowrap !important;
}

.viewer-media-alias-row {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.viewer-media-alias-main.viewer-list-main-link-safe {
    width: 100% !important;
}

.viewer-media-alias-inline-form {
    margin-top: 10px !important;
}

.admin-visit-top-list-first {
    margin-top: 18px !important;
    margin-bottom: 18px !important;
}

.admin-visit-top-row-safe {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) max-content !important;
    align-items: center !important;
    column-gap: 12px !important;
    min-width: 0 !important;
}

.admin-visit-top-row-safe > div {
    min-width: 0 !important;
}

.admin-visit-top-row-safe > div > strong,
.admin-visit-top-row-safe > div > span {
    display: block !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.admin-visit-top-row-safe > em {
    min-width: max-content !important;
    margin-left: 0 !important;
    white-space: nowrap !important;
    text-align: right !important;
    color: #e6007e !important;
    font-weight: 900 !important;
}

.negative-duplicate-source-box {
    margin-top: 12px !important;
    padding: 14px 16px !important;
    border: 1px solid #f1dfc8 !important;
    border-radius: 16px !important;
    background: #fff9f2 !important;
}

.negative-duplicate-source-title {
    margin-bottom: 8px !important;
    color: #8c5a25 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1.35 !important;
}

.negative-duplicate-source-link {
    display: block !important;
    color: #8c5a25 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.5 !important;
    text-decoration: none !important;
    word-break: break-all !important;
}

.negative-duplicate-source-empty {
    display: block !important;
    color: #8c5a25 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.5 !important;
    word-break: keep-all !important;
}

@media (max-width: 768px) {
    .viewer-list-main-link-safe {
        column-gap: 10px !important;
    }

    .viewer-list-main-link-safe > strong,
    .viewer-list-main-link-safe > span {
        font-size: 16px !important;
    }

    .viewer-media-alias-inline-form {
        margin-top: 8px !important;
    }

    .negative-duplicate-source-box {
        padding: 13px 14px !important;
        border-radius: 14px !important;
    }
}

/* 2026-05-04: 계정 탈퇴 요청 강조 */
.account-request-highlight {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    color: #9a3412;
    font-weight: 800;
    line-height: 1.5;
}

/* ============================================================
   Operation split pages v1
   - 운영관리 긴 페이지를 항목별 전용 화면으로 분리
   ============================================================ */

.operation-split-shell {
    max-width: 760px !important;
}

.admin-subpage-kicker {
    color: rgba(255, 255, 255, 0.8);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.admin-subpage-hero {
    background: linear-gradient(135deg, #24163f 0%, #e6007e 100%);
}

.admin-subpage-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.admin-subpage-section-head strong {
    display: block;
    font-size: 18px;
    font-weight: 1000;
}

.admin-subpage-section-head span {
    display: block;
    margin-top: 4px;
    color: #6b7280;
    font-size: 13px;
    line-height: 1.45;
}

.operation-split-nav-card {
    margin-top: 16px;
    padding: 16px;
    border-radius: 26px;
    background: #ffffff;
    border: 1px solid var(--admin-line, #eadbea);
    box-shadow: var(--admin-shadow, 0 14px 32px rgba(17, 24, 39, 0.08));
}

.operation-split-nav-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
}

.operation-split-nav-button {
    display: grid;
    gap: 3px;
    align-content: center;
    min-height: 52px;
    padding: 9px 10px;
    border-radius: 16px;
    background: #ffffff;
    border: 1px solid var(--admin-line, #eadbea);
    color: var(--admin-text, #111827);
    text-decoration: none;
}

.operation-split-nav-button strong {
    display: block;
    font-size: 13px;
    font-weight: 1000;
    line-height: 1.15;
}

.operation-split-nav-button span {
    display: block;
    color: var(--admin-muted, #6b7280);
    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;
    word-break: keep-all;
}

.operation-split-nav-active {
    background: linear-gradient(135deg, var(--admin-navy, #24163f) 0%, var(--admin-uplus-pink, #e6007e) 100%);
    border-color: transparent;
    color: #ffffff;
    box-shadow: 0 10px 20px rgba(230, 0, 126, 0.18);
}

.operation-split-nav-active span {
    color: rgba(255, 255, 255, 0.82);
}

.operation-split-card-grid {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.operation-split-card {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 76px;
    padding: 14px;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid var(--admin-line, #eadbea);
    color: var(--admin-text, #111827);
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(17, 24, 39, 0.05);
}

.operation-split-card-primary {
    background: #fff7fb;
    border-color: var(--admin-uplus-border, #f5c5df);
}

.operation-split-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 46px;
    width: 46px;
    height: 46px;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--admin-navy, #24163f) 0%, var(--admin-uplus-pink, #e6007e) 100%);
    color: #ffffff;
    font-size: 12px;
    font-weight: 1000;
}

.operation-split-card strong {
    display: block;
    font-size: 15px;
    font-weight: 1000;
    letter-spacing: -0.03em;
}

.operation-split-card span {
    display: block;
    margin-top: 4px;
    color: var(--admin-muted, #6b7280);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.45;
}

.operation-split-quick-row {
    display: grid;
    gap: 8px;
    margin-top: 16px;
}

.operation-split-quick-row a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    border-radius: 999px;
    background: #ffffff;
    border: 1px solid var(--admin-line, #eadbea);
    color: var(--admin-text, #111827);
    text-decoration: none;
    font-size: 13px;
    font-weight: 1000;
}

.operation-split-quick-row a:first-child {
    background: linear-gradient(135deg, var(--admin-navy, #24163f) 0%, var(--admin-uplus-pink, #e6007e) 100%);
    color: #ffffff;
    border-color: transparent;
}

.operation-split-summary-card {
    margin-top: 12px;
    padding: 14px;
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
}

.operation-split-summary-card strong {
    display: block;
    color: #111827;
    font-size: 16px;
    font-weight: 1000;
}

.operation-split-summary-card span {
    display: block;
    margin-top: 5px;
    color: #4b5563;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.45;
}

.operation-split-summary-ok {
    background: #f0fdf4;
    border-color: #86efac;
}

.operation-split-summary-warn {
    background: #fffbeb;
    border-color: #fbbf24;
}

.operation-split-summary-bad {
    background: #fef2f2;
    border-color: #fecaca;
}

.operation-split-message-list {
    display: grid;
    gap: 6px;
    margin-top: 10px;
}

.operation-split-message-list div {
    padding: 8px 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.72);
    color: #374151;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.45;
}

.operation-split-mini-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-top: 12px;
}

.operation-split-mini-card {
    padding: 11px;
    border-radius: 16px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
}

.operation-split-mini-card span {
    display: block;
    color: #64748b;
    font-size: 11px;
    font-weight: 900;
}

.operation-split-mini-card strong {
    display: block;
    margin-top: 4px;
    color: #111827;
    font-size: 18px;
    font-weight: 1000;
}

.operation-split-log-event-list {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.operation-split-log-event {
    padding: 11px;
    border-radius: 14px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
}

.operation-split-log-event strong {
    display: block;
    color: #111827;
    font-size: 12px;
    font-weight: 1000;
}

.operation-split-log-event span {
    display: block;
    margin-top: 4px;
    color: #475569;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.45;
    word-break: break-word;
}

@media (min-width: 720px) {
    .operation-split-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .operation-split-quick-row {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .operation-split-nav-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .operation-split-mini-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 420px) {
    .operation-split-nav-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .operation-split-card {
        align-items: flex-start;
    }
}

/* 2026-05-04: 관리자 홈 메뉴 정렬/그룹핑 개선 */
.admin-menu-group-title {
    margin: 18px 0 10px;
    padding-left: 2px;
    color: #e6007e;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: -0.02em;
}

.admin-menu-group-title:first-of-type {
    margin-top: 12px;
}

.admin-home-grid-balanced {
    align-items: stretch;
}

.admin-home-grid-balanced .viewer-menu-card,
.admin-home-grid-balanced .admin-home-card {
    min-height: 96px;
    height: 100%;
    box-sizing: border-box;
}

.admin-home-grid-balanced .admin-home-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: center;
    column-gap: 14px;
}

.admin-home-grid-balanced .admin-home-icon {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1.1;
    text-align: center;
    font-size: 12px;
    font-weight: 900;
    word-break: keep-all;
}

.admin-home-grid-balanced .admin-home-card > div:last-child {
    min-width: 0;
}

.admin-home-grid-balanced .admin-home-card strong {
    display: block;
    margin-bottom: 5px;
    color: #171827;
    font-size: 15px;
    font-weight: 900;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-home-grid-balanced .admin-home-card span {
    display: -webkit-box;
    min-height: 34px;
    color: #6b7280;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.45;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.admin-home-grid-balanced .admin-home-card .admin-home-warning-text {
    display: inline-flex;
    min-height: 0;
    margin-top: 6px;
    color: #b45309;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.3;
}

@media (max-width: 768px) {
    .admin-home-grid-balanced .admin-home-card {
        min-height: 92px;
        grid-template-columns: 44px minmax(0, 1fr);
        column-gap: 12px;
    }

    .admin-home-grid-balanced .admin-home-icon {
        width: 40px;
        height: 40px;
        min-width: 40px;
        font-size: 11px;
    }

    .admin-home-grid-balanced .admin-home-card strong {
        font-size: 14px;
    }

    .admin-home-grid-balanced .admin-home-card span {
        font-size: 12px;
    }
}

