* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: #edf1f5;
    color: #111827;
    font-family: Arial, "Noto Sans KR", sans-serif;
}

.builder-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
}

.builder-sidebar {
    background: #2f3b49;
    color: #ffffff;
    padding: 22px 18px;
}

.builder-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 28px;
}

.builder-brand span {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #03c75a;
    display: inline-grid;
    place-items: center;
    font-size: 22px;
    font-weight: 1000;
}

.builder-brand strong {
    font-size: 20px;
    letter-spacing: -0.06em;
}

.builder-nav {
    display: grid;
    gap: 8px;
}

.builder-nav a {
    display: block;
    padding: 12px 13px;
    border-radius: 10px;
    color: #dbeafe;
    text-decoration: none;
    font-size: 14px;
    font-weight: 800;
}

.builder-nav a:hover,
.builder-nav a.is-active {
    background: #03c75a;
    color: #ffffff;
}

.builder-main {
    min-width: 0;
    padding: 26px 34px 60px;
}

.builder-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}

.builder-topbar p {
    margin: 0 0 5px;
    color: #64748b;
    font-size: 13px;
    font-weight: 900;
}

.builder-topbar h1 {
    margin: 0;
    font-size: 28px;
    letter-spacing: -0.06em;
}

.builder-actions {
    display: flex;
    gap: 8px;
}

.builder-light-link,
.builder-primary-link,
.builder-save-layout,
.builder-control-card button {
    border: 0;
    border-radius: 10px;
    padding: 11px 15px;
    font-size: 13px;
    font-weight: 1000;
    text-decoration: none;
    cursor: pointer;
}

.builder-light-link {
    background: #ffffff;
    color: #334155;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
}

.builder-primary-link,
.builder-save-layout,
.builder-control-card button {
    background: #03c75a;
    color: #ffffff;
}

.builder-messages {
    display: grid;
    gap: 8px;
    margin-bottom: 16px;
}

.builder-message {
    padding: 12px 14px;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
    font-weight: 800;
}

.layout-preset-panel {
    display: flex;
    gap: 12px;
    margin-bottom: 18px;
    padding: 14px;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.layout-preset {
    width: 98px;
    height: 72px;
    border: 2px solid #d9e1ea;
    border-radius: 12px;
    padding: 8px;
    position: relative;
    background: #f8fafc;
}

.layout-preset.is-active {
    border-color: #03c75a;
    box-shadow: inset 0 0 0 2px rgba(3, 199, 90, 0.12);
}

.layout-preset span {
    display: block;
    height: 9px;
    margin-bottom: 5px;
    border-radius: 4px;
    background: #cbd5e1;
}

.layout-preset span:nth-child(2) {
    width: 66%;
}

.layout-preset span:nth-child(3) {
    width: 40%;
}

.layout-preset strong {
    position: absolute;
    left: 8px;
    bottom: 6px;
    font-size: 11px;
    color: #334155;
}

.home-builder-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 22px;
    align-items: start;
}

.layout-canvas {
    padding: 22px;
    border-radius: 18px;
    background: #8c929a;
    min-height: 740px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18);
}

.canvas-guide {
    margin-bottom: 15px;
    color: #fff36b;
    text-align: center;
    font-size: 13px;
    font-weight: 1000;
}

.canvas-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 14px;
    align-items: start;
}

.drop-area {
    min-height: 88px;
    margin-bottom: 14px;
    padding: 12px;
    border: 2px dashed rgba(255,255,255,0.38);
    border-radius: 14px;
    background: rgba(255,255,255,0.22);
}

.drop-area.drag-over {
    border-color: #fff36b;
    background: rgba(255,255,255,0.36);
}

.drop-area-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 10px;
    color: #ffffff;
}

.drop-area-head strong {
    font-size: 15px;
    font-weight: 1000;
}

.drop-area-head span {
    color: rgba(255,255,255,0.74);
    font-size: 11px;
    font-weight: 800;
}

.drop-area-top .section-block-card {
    min-height: 92px;
}

.drop-area-main {
    min-height: 420px;
}

.drop-area-sidebar {
    min-height: 420px;
}

.drop-empty {
    padding: 20px;
    border-radius: 12px;
    background: rgba(255,255,255,0.38);
    color: #ffffff;
    text-align: center;
    font-size: 13px;
    font-weight: 900;
}

.section-block-card {
    margin-bottom: 10px;
    padding: 13px;
    border-radius: 12px;
    background: linear-gradient(180deg, #ffffff, #f8fafc);
    color: #111827;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.18);
    cursor: grab;
}

.section-block-card:active {
    cursor: grabbing;
}

.section-block-card.is-selected {
    outline: 3px solid #03c75a;
}

.section-block-card.is-off {
    opacity: 0.48;
}

.section-card-top {
    display: flex;
    align-items: center;
    gap: 8px;
}

.section-card-top strong {
    flex: 1;
    font-size: 14px;
    font-weight: 1000;
    letter-spacing: -0.04em;
}

.drag-handle {
    color: #94a3b8;
    font-weight: 1000;
}

.section-card-top em {
    padding: 3px 6px;
    border-radius: 999px;
    background: #03c75a;
    color: #ffffff;
    font-size: 10px;
    font-style: normal;
    font-weight: 1000;
}

.section-card-top em.off {
    background: #94a3b8;
}

.section-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 9px;
}

.section-card-meta span {
    padding: 4px 7px;
    border-radius: 999px;
    background: #eef2f7;
    color: #334155;
    font-size: 11px;
    font-weight: 900;
}

.section-card-preview {
    margin-top: 9px;
    display: grid;
    gap: 4px;
}

.section-card-preview p {
    margin: 0;
    color: #64748b;
    font-size: 11px;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hidden-section-box {
    margin-top: 10px;
}

.hidden-section-box summary {
    color: #ffffff;
    font-weight: 1000;
    cursor: pointer;
}

.builder-control-panel {
    position: sticky;
    top: 18px;
    display: grid;
    gap: 16px;
}

.builder-control-card,
.builder-card,
.dashboard-stats article {
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.builder-control-card {
    padding: 18px;
}

.builder-control-card h2 {
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 2px solid #111827;
    font-size: 17px;
    letter-spacing: -0.05em;
}

.builder-control-card form {
    display: grid;
    gap: 9px;
}

.builder-control-card label {
    color: #334155;
    font-size: 12px;
    font-weight: 1000;
}

.builder-control-card input[type="text"],
.builder-control-card input[type="number"],
.builder-control-card select {
    width: 100%;
    min-height: 38px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    padding: 8px 10px;
    background: #ffffff;
}

.check-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.panel-help {
    margin: 0 0 12px;
    color: #64748b;
    font-size: 12px;
    line-height: 1.5;
}

.dashboard-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 18px;
}

.dashboard-stats article {
    padding: 22px;
}

.dashboard-stats span {
    display: block;
    color: #64748b;
    font-size: 13px;
    font-weight: 900;
}

.dashboard-stats strong {
    display: block;
    margin-top: 8px;
    font-size: 34px;
    font-weight: 1000;
}

.builder-card {
    padding: 20px;
}

.builder-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}

.builder-card-head h2 {
    margin: 0;
}

.builder-card-head a {
    color: #03c75a;
    font-weight: 1000;
    text-decoration: none;
}

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

.simple-list a {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 12px;
    border-radius: 10px;
    background: #f8fafc;
    color: #111827;
    text-decoration: none;
}

.simple-list span {
    color: #64748b;
    font-size: 12px;
}

.empty-text {
    color: #64748b;
}

@media (max-width: 1180px) {
    .builder-shell {
        grid-template-columns: 1fr;
    }

    .builder-sidebar {
        position: static;
    }

    .home-builder-grid {
        grid-template-columns: 1fr;
    }

    .builder-control-panel {
        position: static;
    }
}

@media (max-width: 760px) {
    .builder-main {
        padding: 18px;
    }

    .canvas-body,
    .dashboard-stats {
        grid-template-columns: 1fr;
    }

    .layout-preset-panel {
        overflow-x: auto;
    }
}


/* ======================================================
   K PRISM builder logo and drag patch
   ====================================================== */

.builder-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin-bottom: 28px;
    padding: 13px 12px;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.18);
}

.builder-brand-home {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.builder-brand-logo {
    display: block;
    width: 100%;
    max-width: 170px;
    height: auto;
    object-fit: contain;
}

.section-block-card.is-dragging {
    opacity: 0.54;
    transform: scale(0.985);
}

.drop-area.drag-over {
    border-color: #fff36b;
    background: rgba(255, 255, 255, 0.38);
}

.drop-area .section-block-card {
    transition: transform 0.12s ease, box-shadow 0.12s ease, outline 0.12s ease;
}

.drop-area .section-block-card:hover {
    transform: translateY(-1px);
}

@media (max-width: 1180px) {
    .builder-brand {
        max-width: 220px;
    }
}

/* ======================================================
   Manager pages theme patch
   기사/카테고리 관리 화면을 홈빌더 테마와 통일
   ====================================================== */

.manager-page {
    background:
        radial-gradient(circle at top right, rgba(3, 199, 90, 0.08), transparent 32%),
        #edf1f5;
}

.manager-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
    padding: 24px 28px;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.manager-hero span {
    display: inline-flex;
    margin-bottom: 8px;
    color: #03c75a;
    font-size: 12px;
    font-weight: 1000;
    letter-spacing: 0.08em;
}

.manager-hero h2 {
    margin: 0;
    color: #111827;
    font-size: 23px;
    letter-spacing: -0.06em;
}

.manager-hero p {
    margin: 8px 0 0;
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
}

.manager-hero strong {
    min-width: 92px;
    padding: 16px 18px;
    border-radius: 16px;
    background: #0f172a;
    color: #ffffff;
    text-align: center;
    font-size: 25px;
    font-weight: 1000;
}

.manager-filter-card {
    margin-bottom: 18px;
}

.manager-list-grid {
    display: grid;
    gap: 14px;
}

.manager-item-card,
.manager-category-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 20px;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.manager-item-kicker,
.manager-category-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.manager-item-kicker span,
.manager-category-head span {
    display: inline-flex;
    align-items: center;
    height: 26px;
    padding: 0 10px;
    border-radius: 999px;
    background: #ecfdf5;
    color: #047857;
    font-size: 12px;
    font-weight: 1000;
}

.manager-item-kicker em,
.manager-category-head em {
    display: inline-flex;
    align-items: center;
    height: 24px;
    padding: 0 9px;
    border-radius: 999px;
    background: #03c75a;
    color: #ffffff;
    font-size: 11px;
    font-style: normal;
    font-weight: 1000;
}

.manager-category-head em.off {
    background: #94a3b8;
}

.manager-item-card h2,
.manager-category-card h2 {
    margin: 0;
    color: #111827;
    font-size: 19px;
    line-height: 1.32;
    letter-spacing: -0.05em;
}

.manager-item-card p,
.manager-category-card p {
    margin: 9px 0 0;
    color: #64748b;
    font-size: 13px;
    line-height: 1.55;
}

.manager-item-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.manager-item-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 9px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: 12px;
    font-weight: 900;
}

.manager-item-actions {
    display: flex;
    gap: 8px;
}

.manager-item-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 62px;
    height: 38px;
    padding: 0 12px;
    border-radius: 10px;
    background: #eef2f7;
    color: #111827;
    text-decoration: none;
    font-size: 13px;
    font-weight: 1000;
}

.manager-item-actions a:first-child {
    background: #03c75a;
    color: #ffffff;
}

.manager-category-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.manager-category-card {
    grid-template-columns: 1fr;
    align-items: stretch;
}

.manager-category-card.is-off {
    opacity: 0.58;
}

.manager-category-card .manager-item-actions {
    margin-top: 4px;
}

.manager-empty {
    padding: 32px;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
    text-align: center;
}

.manager-empty strong {
    display: block;
    color: #111827;
    font-size: 19px;
    font-weight: 1000;
}

.manager-empty p {
    color: #64748b;
    font-weight: 800;
}

.manager-form-card {
    padding: 24px;
}

.builder-filter-form {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 180px 180px 100px;
    gap: 10px;
}

.builder-filter-form input,
.builder-filter-form select,
.builder-input {
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #ffffff;
}

@media (max-width: 1180px) {
    .manager-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .manager-hero,
    .manager-item-card {
        grid-template-columns: 1fr;
        flex-direction: column;
        align-items: stretch;
    }

    .manager-category-grid,
    .builder-filter-form {
        grid-template-columns: 1fr;
    }

    .manager-item-actions {
        justify-content: flex-start;
    }
}

/* ======================================================
   Editor form theme hard patch
   Django raw form 느낌 제거
   ====================================================== */

.editor-layout-form {
    display: block;
}

.editor-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 18px;
    align-items: start;
}

.category-editor-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    align-items: start;
}

.editor-panel {
    padding: 24px;
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
}

.editor-panel-wide {
    grid-column: 1 / -1;
}

.editor-main-panel {
    min-height: 620px;
}

.editor-side-panel {
    display: grid;
    gap: 18px;
}

.editor-panel-head {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 20px;
    padding-bottom: 14px;
    border-bottom: 2px solid #111827;
}

.editor-panel-head span {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    background: #03c75a;
    color: #ffffff;
    font-size: 13px;
    font-weight: 1000;
}

.editor-panel-head h2 {
    margin: 0;
    color: #111827;
    font-size: 20px;
    line-height: 1.25;
    letter-spacing: -0.06em;
}

.editor-panel-head p {
    margin: 4px 0 0;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

.editor-field {
    display: grid;
    gap: 8px;
    margin-bottom: 16px;
}

.editor-field:last-child {
    margin-bottom: 0;
}

.editor-field label {
    display: block;
    color: #334155;
    font-size: 13px;
    font-weight: 1000;
    letter-spacing: -0.03em;
}

.editor-field input[type="text"],
.editor-field input[type="number"],
.editor-field input[type="url"],
.editor-field input[type="email"],
.editor-field input[type="datetime-local"],
.editor-field input[type="file"],
.editor-field select,
.editor-field textarea,
.editor-field .builder-input {
    width: 100% !important;
    min-height: 44px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 13px !important;
    padding: 10px 13px !important;
    background: #ffffff !important;
    color: #111827 !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    outline: none !important;
    box-shadow: none !important;
}

.editor-field input:focus,
.editor-field select:focus,
.editor-field textarea:focus {
    border-color: #03c75a !important;
    box-shadow: 0 0 0 4px rgba(3, 199, 90, 0.12) !important;
}

.editor-field textarea {
    min-height: 130px !important;
    resize: vertical;
}

.editor-field-body textarea {
    min-height: 520px !important;
    font-size: 15px !important;
    line-height: 1.75 !important;
}

.editor-field-wide {
    grid-column: 1 / -1;
}

.editor-seo-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.editor-etc-panel:empty {
    display: none;
}

.editor-field input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    min-height: 20px !important;
    accent-color: #03c75a;
}

.editor-field:has(input[type="checkbox"]) {
    grid-template-columns: auto 1fr;
    align-items: center;
}

.editor-field:has(input[type="checkbox"]) label {
    grid-column: 1 / -1;
}

.editor-field .clearable-file-input,
.editor-field a {
    color: #2563eb;
    font-weight: 800;
}

.editor-save-bar {
    position: sticky;
    bottom: 18px;
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 4px;
    padding: 18px 20px;
    border-radius: 18px;
    background: rgba(15, 23, 42, 0.94);
    color: #ffffff;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.25);
    z-index: 20;
}

.editor-save-bar strong {
    display: block;
    font-size: 16px;
    font-weight: 1000;
}

.editor-save-bar span {
    display: block;
    margin-top: 3px;
    color: #cbd5e1;
    font-size: 12px;
    font-weight: 800;
}

.editor-save-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.editor-save-actions a,
.editor-save-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 86px;
    height: 44px;
    border: 0;
    border-radius: 12px;
    padding: 0 16px;
    font-size: 14px;
    font-weight: 1000;
    text-decoration: none;
    cursor: pointer;
}

.editor-save-actions a {
    background: #334155;
    color: #ffffff;
}

.editor-save-actions button {
    background: #03c75a;
    color: #ffffff;
}

.field-help {
    margin: 0;
    color: #64748b;
    font-size: 12px;
    line-height: 1.45;
    font-weight: 700;
}

.form-errors {
    padding: 10px 12px;
    border-radius: 12px;
    background: #fff1f2;
    color: #be123c;
    font-size: 12px;
    font-weight: 900;
}

@media (max-width: 1180px) {
    .editor-layout,
    .category-editor-layout {
        grid-template-columns: 1fr;
    }

    .editor-side-panel {
        grid-template-columns: 1fr;
    }

    .editor-seo-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .editor-panel {
        padding: 18px;
        border-radius: 18px;
    }

    .editor-save-bar {
        position: static;
        flex-direction: column;
        align-items: stretch;
    }

    .editor-save-actions {
        justify-content: stretch;
    }

    .editor-save-actions a,
    .editor-save-actions button {
        flex: 1;
    }
}

/* ======================================================
   Article filters and reporter profile
   ====================================================== */

.article-filter-form {
    grid-template-columns: minmax(260px, 1fr) 150px 150px 170px 150px 170px 90px 90px;
}

.article-filter-form input[type="date"] {
    width: 100%;
    min-height: 40px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    padding: 8px 10px;
    background: #ffffff;
}

.filter-reset-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    border-radius: 10px;
    background: #eef2f7;
    color: #111827;
    text-decoration: none;
    font-size: 13px;
    font-weight: 1000;
}

.reporter-chip {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 9px;
    border-radius: 999px;
    background: #ecfdf5;
    color: #047857;
    font-size: 12px;
    font-weight: 1000;
    text-decoration: none;
}

.reporter-chip:hover {
    background: #03c75a;
    color: #ffffff;
}

.reporter-profile-hero {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 20px;
    align-items: center;
    margin-bottom: 18px;
    padding: 26px;
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
}

.reporter-avatar {
    display: grid;
    place-items: center;
    width: 96px;
    height: 96px;
    border-radius: 28px;
    background: linear-gradient(135deg, #03c75a, #0f172a);
    color: #ffffff;
    font-size: 42px;
    font-weight: 1000;
}

.reporter-profile-main span {
    display: inline-flex;
    margin-bottom: 8px;
    color: #03c75a;
    font-size: 12px;
    font-weight: 1000;
    letter-spacing: 0.08em;
}

.reporter-profile-main h2 {
    margin: 0;
    color: #111827;
    font-size: 30px;
    letter-spacing: -0.06em;
}

.reporter-profile-main p {
    margin: 8px 0 0;
    color: #64748b;
    font-size: 14px;
    font-weight: 800;
}

.reporter-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.reporter-stat-grid article {
    padding: 20px;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.reporter-stat-grid span {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
}

.reporter-stat-grid strong {
    display: block;
    margin-top: 8px;
    color: #111827;
    font-size: 30px;
    font-weight: 1000;
}

.reporter-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    gap: 18px;
    margin-bottom: 18px;
}

.reporter-info-list {
    display: grid;
    gap: 10px;
}

.reporter-info-list div {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 12px;
    padding: 12px;
    border-radius: 12px;
    background: #f8fafc;
}

.reporter-info-list span {
    color: #64748b;
    font-size: 13px;
    font-weight: 900;
}

.reporter-info-list strong {
    color: #111827;
    font-size: 14px;
    line-height: 1.55;
    word-break: break-all;
}

.reporter-top-list {
    display: grid;
    gap: 9px;
    margin: 0;
    padding-left: 20px;
}

.reporter-top-list li {
    padding: 10px;
    border-radius: 12px;
    background: #f8fafc;
}

.reporter-top-list a {
    display: block;
    color: #111827;
    text-decoration: none;
    font-weight: 1000;
}

.reporter-top-list span {
    display: block;
    margin-top: 5px;
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
}

.reporter-article-card {
    box-shadow: none;
    border: 1px solid #e5e7eb;
}

@media (max-width: 1300px) {
    .article-filter-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .reporter-detail-grid {
        grid-template-columns: 1fr;
    }

    .reporter-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .article-filter-form,
    .reporter-profile-hero,
    .reporter-stat-grid {
        grid-template-columns: 1fr;
    }

    .reporter-info-list div {
        grid-template-columns: 1fr;
    }
}

/* ======================================================
   Advertisement Management Step CSS
   ====================================================== */

.ad-subnav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
    padding: 10px;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.ad-subnav a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 12px;
    background: #f1f5f9;
    color: #334155;
    text-decoration: none;
    font-size: 13px;
    font-weight: 1000;
}

.ad-subnav a.is-active {
    background: #03c75a;
    color: #ffffff;
}

.ad-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.ad-stat-grid article {
    padding: 20px;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.ad-stat-grid span {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
}

.ad-stat-grid strong {
    display: block;
    margin-top: 8px;
    color: #111827;
    font-size: 28px;
    font-weight: 1000;
}

.ad-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.ad-mini-list {
    display: grid;
    gap: 10px;
}

.ad-mini-list article {
    padding: 14px;
    border-radius: 14px;
    background: #f8fafc;
}

.ad-mini-list strong {
    display: block;
    color: #111827;
    font-size: 14px;
    font-weight: 1000;
}

.ad-mini-list span,
.empty-text {
    display: block;
    margin-top: 5px;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

@media (max-width: 1200px) {
    .ad-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ad-dashboard-grid {
        grid-template-columns: 1fr;
    }
}

/* ======================================================
   Advertisement Management List CSS
   ====================================================== */

.ad-creative-grid {
    display: grid;
    gap: 14px;
}

.ad-creative-list-card {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 18px;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.ad-creative-thumb {
    display: grid;
    place-items: center;
    min-height: 118px;
    border-radius: 14px;
    background: #f1f5f9;
    overflow: hidden;
}

.ad-creative-thumb img {
    width: 100%;
    height: 118px;
    object-fit: cover;
}

.ad-creative-thumb span {
    color: #64748b;
    font-size: 12px;
    font-weight: 1000;
}

.ad-creative-body h2 {
    margin: 8px 0 8px;
    color: #111827;
    font-size: 20px;
    font-weight: 1000;
}

.ad-creative-body p {
    margin: 0 0 10px;
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
}

@media (max-width: 900px) {
    .ad-creative-list-card {
        grid-template-columns: 1fr;
    }
}

/* ======================================================
   Advertisement Full Redesign CSS
   광고관리 전용 리디자인
   ====================================================== */

.ad-subnav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
    padding: 10px;
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.ad-subnav a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 16px;
    border-radius: 13px;
    background: #f1f5f9;
    color: #334155;
    text-decoration: none;
    font-size: 13px;
    font-weight: 1000;
    transition: all 0.16s ease;
}

.ad-subnav a:hover {
    transform: translateY(-1px);
    background: #e2e8f0;
}

.ad-subnav a.is-active {
    background: #03c75a;
    color: #ffffff;
    box-shadow: 0 10px 20px rgba(3, 199, 90, 0.22);
}

.ad-form-hero {
    margin-bottom: 18px;
}

.ad-form-shell {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.ad-form-guide,
.ad-modern-form {
    border-radius: 24px;
    background: #ffffff;
    box-shadow: 0 12px 34px rgba(15, 23, 42, 0.08);
}

.ad-form-guide {
    position: sticky;
    top: 20px;
    padding: 24px;
}

.ad-form-guide > span {
    display: inline-flex;
    margin-bottom: 10px;
    color: #03c75a;
    font-size: 12px;
    font-weight: 1000;
    letter-spacing: 0.08em;
}

.ad-form-guide h2 {
    margin: 0 0 8px;
    color: #0f172a;
    font-size: 24px;
    font-weight: 1000;
    letter-spacing: -0.05em;
}

.ad-form-guide p {
    margin: 0;
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.6;
}

.ad-form-guide-list {
    display: grid;
    gap: 10px;
    margin-top: 22px;
}

.ad-form-guide-list div {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border-radius: 16px;
    background: #f8fafc;
}

.ad-form-guide-list strong {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    background: #0f172a;
    color: #ffffff;
    font-size: 12px;
    font-weight: 1000;
}

.ad-form-guide-list span {
    color: #0f172a;
    font-size: 13px;
    font-weight: 1000;
}

.ad-modern-form {
    padding: 24px;
}

.ad-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.ad-field-card {
    padding: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    background: #f8fafc;
}

.ad-field-card.is-wide {
    grid-column: 1 / -1;
}

.ad-field-card label {
    display: block;
    margin-bottom: 9px;
    color: #0f172a;
    font-size: 13px;
    font-weight: 1000;
    letter-spacing: -0.02em;
}

.ad-field-control input,
.ad-field-control select,
.ad-field-control textarea,
.ad-modern-form input[type="text"],
.ad-modern-form input[type="email"],
.ad-modern-form input[type="url"],
.ad-modern-form input[type="number"],
.ad-modern-form input[type="date"],
.ad-modern-form input[type="file"],
.ad-modern-form select,
.ad-modern-form textarea {
    width: 100%;
    min-height: 46px;
    box-sizing: border-box;
    padding: 0 14px;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    background: #ffffff;
    color: #0f172a;
    font-size: 14px;
    font-weight: 800;
    outline: none;
    transition: all 0.16s ease;
}

.ad-field-control textarea,
.ad-modern-form textarea {
    min-height: 150px;
    padding: 14px;
    line-height: 1.55;
    resize: vertical;
}

.ad-field-control input:focus,
.ad-field-control select:focus,
.ad-field-control textarea:focus,
.ad-modern-form input:focus,
.ad-modern-form select:focus,
.ad-modern-form textarea:focus {
    border-color: #03c75a;
    box-shadow: 0 0 0 4px rgba(3, 199, 90, 0.13);
}

.ad-modern-form input[type="checkbox"] {
    width: 20px;
    height: 20px;
    min-height: auto;
    accent-color: #03c75a;
}

.ad-modern-form input[type="file"] {
    padding: 10px 12px;
    line-height: 1.4;
}

.ad-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #e2e8f0;
}

.ad-form-actions button,
.ad-form-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 110px;
    min-height: 46px;
    padding: 0 18px;
    border: 0;
    border-radius: 14px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 1000;
    cursor: pointer;
}

.ad-form-actions button {
    background: #03c75a;
    color: #ffffff;
    box-shadow: 0 10px 22px rgba(3, 199, 90, 0.24);
}

.ad-form-actions a {
    background: #f1f5f9;
    color: #334155;
}

.ad-form-errors {
    margin-top: 8px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #fff1f2;
    color: #be123c;
    font-size: 12px;
    font-weight: 900;
}

.ad-form-errors ul {
    margin: 0;
    padding-left: 16px;
}

.field-help {
    margin: 8px 0 0;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

/* 목록 페이지 보정 */
.manager-category-grid,
.manager-list-grid,
.ad-creative-grid {
    display: grid;
    gap: 14px;
}

.manager-category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.manager-category-card,
.manager-item-card,
.ad-creative-list-card,
.manager-empty,
.builder-card {
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 12px 34px rgba(15, 23, 42, 0.08);
}

.manager-category-card {
    padding: 20px;
}

.manager-category-head,
.manager-item-kicker {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.manager-category-head span,
.manager-item-kicker span {
    display: inline-flex;
    padding: 6px 9px;
    border-radius: 999px;
    background: #dcfce7;
    color: #047857;
    font-size: 12px;
    font-weight: 1000;
}

.manager-category-head em,
.manager-item-kicker em {
    display: inline-flex;
    padding: 6px 9px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: 12px;
    font-style: normal;
    font-weight: 1000;
}

.manager-category-card h2,
.manager-item-card h2 {
    margin: 0 0 8px;
    color: #0f172a;
    font-size: 20px;
    font-weight: 1000;
    letter-spacing: -0.05em;
}

.manager-category-card p,
.manager-item-card p {
    margin: 0 0 12px;
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.55;
}

.manager-item-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.manager-item-meta span {
    display: inline-flex;
    padding: 7px 10px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: 12px;
    font-weight: 900;
}

.manager-item-actions {
    display: flex;
    gap: 8px;
    margin-top: 14px;
}

.manager-item-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 12px;
    background: #03c75a;
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 1000;
}

.manager-item-actions a:nth-child(n+2) {
    background: #f1f5f9;
    color: #334155;
}

.manager-item-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 20px;
}

.manager-empty {
    grid-column: 1 / -1;
    padding: 28px;
    text-align: center;
}

.manager-empty strong {
    display: block;
    color: #0f172a;
    font-size: 20px;
    font-weight: 1000;
}

.manager-empty p {
    margin: 8px 0 0;
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
}

.ad-creative-list-card {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 20px;
}

.ad-creative-thumb {
    display: grid;
    place-items: center;
    min-height: 128px;
    border-radius: 18px;
    background: #f1f5f9;
    overflow: hidden;
}

.ad-creative-thumb img {
    width: 100%;
    height: 128px;
    object-fit: cover;
}

.ad-creative-thumb span {
    color: #64748b;
    font-size: 12px;
    font-weight: 1000;
}

.ad-creative-body h2 {
    margin: 8px 0 8px;
    color: #0f172a;
    font-size: 21px;
    font-weight: 1000;
    letter-spacing: -0.05em;
}

.ad-creative-body p {
    margin: 0 0 10px;
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
}

.builder-filter-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 10px;
}

.builder-filter-form input,
.builder-filter-form select {
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    background: #ffffff;
    color: #0f172a;
    font-size: 14px;
    font-weight: 800;
}

.builder-filter-form button,
.filter-reset-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 16px;
    border: 0;
    border-radius: 14px;
    background: #03c75a;
    color: #ffffff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 1000;
}

.filter-reset-link {
    background: #f1f5f9;
    color: #334155;
}

.builder-table {
    width: 100%;
    border-collapse: collapse;
}

.builder-table th,
.builder-table td {
    padding: 14px 12px;
    border-bottom: 1px solid #e2e8f0;
    text-align: left;
    color: #0f172a;
    font-size: 13px;
    font-weight: 800;
}

.builder-table th {
    color: #64748b;
    font-size: 12px;
    font-weight: 1000;
}

@media (max-width: 1200px) {
    .ad-form-shell,
    .ad-creative-list-card,
    .manager-item-card {
        grid-template-columns: 1fr;
    }

    .manager-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ad-form-guide {
        position: static;
    }
}

@media (max-width: 760px) {
    .ad-form-grid,
    .manager-category-grid,
    .builder-filter-form {
        grid-template-columns: 1fr;
    }
}

/* ======================================================
   Advertisement Contract Auto Calc CSS
   ====================================================== */

.ad-auto-badge {
    display: inline-flex;
    margin-left: 8px;
    padding: 4px 7px;
    border-radius: 999px;
    background: #dcfce7;
    color: #047857;
    font-size: 11px;
    font-style: normal;
    font-weight: 1000;
    vertical-align: middle;
}

.ad-field-control input.is-auto-calculated {
    background: #f1f5f9;
    color: #334155;
    cursor: not-allowed;
}

.ad-calc-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 20px;
    padding: 16px;
    border-radius: 20px;
    background: #0f172a;
}

.ad-calc-summary div {
    padding: 14px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.08);
}

.ad-calc-summary span {
    display: block;
    margin-bottom: 8px;
    color: #cbd5e1;
    font-size: 12px;
    font-weight: 900;
}

.ad-calc-summary strong {
    display: block;
    color: #ffffff;
    font-size: 20px;
    font-weight: 1000;
    letter-spacing: -0.04em;
}

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

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

/* ======================================================
   Admin Number Format CSS
   ====================================================== */

.ad-field-control input[inputmode="numeric"],
.ad-modern-form input[inputmode="numeric"] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.ad-calc-summary strong,
.ad-stat-grid strong,
.manager-hero strong,
.manager-item-meta span,
.builder-table td {
    font-variant-numeric: tabular-nums;
}

.ad-field-control input.is-auto-calculated {
    background: #f1f5f9;
    color: #334155;
    cursor: not-allowed;
}


/* ======================================================
   Common Builder Sidebar CSS
   ====================================================== */

.builder-sidebar {
    background: #2d3c4a;
}

.builder-brand {
    padding: 20px 16px 18px;
}

.builder-brand-home {
    display: block;
    text-decoration: none;
}

.builder-brand-logo {
    display: block;
    width: 100%;
    max-width: 190px;
    height: auto;
    max-height: 96px;
    object-fit: contain;
    padding: 12px;
    border-radius: 18px;
    background: #ffffff;
    box-sizing: border-box;
}

.builder-nav {
    display: grid;
    gap: 8px;
    padding: 10px 16px 24px;
}

.builder-nav a {
    display: flex;
    align-items: center;
    min-height: 46px;
    padding: 0 14px;
    border-radius: 12px;
    color: #e5eef7;
    text-decoration: none;
    font-size: 15px;
    font-weight: 1000;
    letter-spacing: -0.03em;
}

.builder-nav a:hover {
    background: rgba(255, 255, 255, 0.08);
}

.builder-nav a.is-active {
    background: #03c75a;
    color: #ffffff;
    box-shadow: 0 10px 22px rgba(3, 199, 90, 0.22);
}


/* ======================================================
   NB article editor repair - 2026.05.28 v2
   기사 작성 화면 CKEditor 폭 이탈 보정
   ====================================================== */

.article-editor-page .manager-page,
.article-editor-page .manager-page *,
.article-editor-page .manager-page *::before,
.article-editor-page .manager-page *::after {
    box-sizing: border-box;
}

.article-editor-page .manager-page .editor-layout-form,
.article-editor-page .manager-page .editor-layout {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.article-editor-page .manager-page .editor-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 360px) !important;
    gap: 24px !important;
    align-items: start !important;
}

.article-editor-page .manager-page .editor-main-panel {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.article-editor-page .manager-page .editor-side-panel {
    grid-column: 2 !important;
    width: 100% !important;
    max-width: 360px !important;
    min-width: 0 !important;
}

.article-editor-page .manager-page .editor-panel-wide,
.article-editor-page .manager-page .editor-save-bar {
    grid-column: 1 / -1 !important;
}

.article-editor-page .manager-page .editor-field,
.article-editor-page .manager-page .editor-field-body {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.article-editor-page .manager-page .editor-field input,
.article-editor-page .manager-page .editor-field select,
.article-editor-page .manager-page .editor-field textarea {
    width: 100% !important;
    max-width: 100% !important;
}

.article-editor-page .manager-page .editor-main-panel .django-ckeditor-widget,
.article-editor-page .manager-page .editor-main-panel [id^="cke_"],
.article-editor-page .manager-page .editor-main-panel .ck-editor {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    clear: both !important;
    overflow: hidden !important;
}

.article-editor-page .manager-page .editor-main-panel .ck-editor__top,
.article-editor-page .manager-page .editor-main-panel .ck-sticky-panel,
.article-editor-page .manager-page .editor-main-panel .ck-sticky-panel__content,
.article-editor-page .manager-page .editor-main-panel .ck-toolbar,
.article-editor-page .manager-page .editor-main-panel .ck-editor__main,
.article-editor-page .manager-page .editor-main-panel .ck-editor__editable,
.article-editor-page .manager-page .editor-main-panel .ck-editor__editable_inline,
.article-editor-page .manager-page .editor-main-panel .ck-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.article-editor-page .manager-page .editor-main-panel .ck-sticky-panel__content {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
}

.article-editor-page .manager-page .editor-main-panel .ck-toolbar,
.article-editor-page .manager-page .editor-main-panel .ck-toolbar__items {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    overflow: hidden !important;
}

.article-editor-page .manager-page .editor-main-panel .ck-toolbar__items > * {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
}

.article-editor-page .manager-page .editor-main-panel .ck-editor__editable,
.article-editor-page .manager-page .editor-main-panel .ck-content {
    min-height: 360px !important;
    overflow-x: hidden !important;
}

.article-editor-page .manager-page .editor-main-panel iframe {
    width: 100% !important;
    max-width: 100% !important;
}

.article-editor-page .manager-page .article-editor-helper,
.article-editor-page .manager-page [data-article-editor-helper],
.article-editor-page .manager-page .article-editor-helper-title,
.article-editor-page .manager-page .article-editor-helper-buttons,
.article-editor-page .manager-page .article-editor-helper-button {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
}

@media (max-width: 1100px) {
    .article-editor-page .manager-page .editor-layout {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .article-editor-page .manager-page .editor-main-panel,
    .article-editor-page .manager-page .editor-side-panel,
    .article-editor-page .manager-page .editor-panel-wide,
    .article-editor-page .manager-page .editor-save-bar {
        grid-column: 1 !important;
        max-width: 100% !important;
    }
}


/* ======================================================
   NB article editor side panel repair - 2026.05.28 v3
   우측 설정 패널 독립 스크롤 / SEO 입력칸 폭 보정
   ====================================================== */

.article-editor-page .manager-page .editor-layout {
    overflow: visible !important;
}

.article-editor-page .manager-page .editor-side-panel {
    position: sticky !important;
    top: 24px !important;
    align-self: start !important;
    max-height: calc(100vh - 48px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-right: 6px !important;
    scrollbar-gutter: stable !important;
}

.article-editor-page .manager-page .editor-side-panel::-webkit-scrollbar {
    width: 8px;
}

.article-editor-page .manager-page .editor-side-panel::-webkit-scrollbar-track {
    background: transparent;
}

.article-editor-page .manager-page .editor-side-panel::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.22);
}

.article-editor-page .manager-page .editor-side-panel .editor-panel {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.article-editor-page .manager-page .editor-side-panel .editor-seo-grid,
.article-editor-page .manager-page .editor-side-panel .editor-seo-grid-side {
    display: block !important;
    grid-template-columns: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.article-editor-page .manager-page .editor-side-panel .editor-seo-grid .editor-field,
.article-editor-page .manager-page .editor-side-panel .editor-seo-grid-side .editor-field,
.article-editor-page .manager-page .editor-side-panel .editor-field,
.article-editor-page .manager-page .editor-side-panel .editor-field-wide {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.article-editor-page .manager-page .editor-side-panel input[type="text"],
.article-editor-page .manager-page .editor-side-panel input[type="email"],
.article-editor-page .manager-page .editor-side-panel input[type="url"],
.article-editor-page .manager-page .editor-side-panel input[type="number"],
.article-editor-page .manager-page .editor-side-panel input[type="datetime-local"],
.article-editor-page .manager-page .editor-side-panel input[type="file"],
.article-editor-page .manager-page .editor-side-panel select,
.article-editor-page .manager-page .editor-side-panel textarea,
.article-editor-page .manager-page .editor-side-panel .builder-input,
.article-editor-page .manager-page .editor-side-panel .builder-textarea,
.article-editor-page .manager-page .editor-side-panel .builder-multiple {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.article-editor-page .manager-page .editor-side-panel select[multiple],
.article-editor-page .manager-page .editor-side-panel .builder-multiple {
    min-height: 0 !important;
}

@media (max-width: 1100px) {
    .article-editor-page .manager-page .editor-side-panel {
        position: static !important;
        max-height: none !important;
        overflow: visible !important;
        padding-right: 0 !important;
    }
}


/* ======================================================
   NB article list repair - 2026.05.28 v1
   기사관리 목록 페이지 디자인 복구
   ====================================================== */

.article-list-page .manager-page {
    width: 100%;
    min-width: 0;
}

.article-list-page .article-list-hero,
.article-list-page .article-list-filter-card,
.article-list-page .article-list-table-card {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.article-list-page .article-list-hero {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin: 18px 0 18px;
    padding: 28px 30px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.78);
    box-shadow: 0 22px 50px rgba(15, 23, 42, 0.08);
}

.article-list-page .article-list-hero span {
    display: block;
    margin-bottom: 10px;
    color: #64748b;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.article-list-page .article-list-hero h2 {
    margin: 0;
    color: #0f172a;
    font-size: 28px;
    line-height: 1.25;
    letter-spacing: -0.04em;
}

.article-list-page .article-list-hero p {
    margin: 12px 0 0;
    color: #475569;
    font-size: 15px;
    font-weight: 700;
}

.article-list-page .article-list-hero strong {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 72px;
    height: 44px;
    padding: 0 18px;
    border-radius: 999px;
    background: #0f172a;
    color: #ffffff;
    font-size: 15px;
    font-weight: 900;
}

.article-list-page .article-list-filter-card,
.article-list-page .article-list-table-card {
    margin-top: 18px;
    padding: 22px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 22px 50px rgba(15, 23, 42, 0.08);
}

.article-list-page .article-list-filter-form {
    display: grid;
    grid-template-columns: minmax(260px, 1.6fr) repeat(5, minmax(130px, 1fr)) auto;
    gap: 14px;
    align-items: end;
}

.article-list-page .article-list-filter-form label {
    display: block;
    margin-bottom: 7px;
    color: #334155;
    font-size: 12px;
    font-weight: 900;
}

.article-list-page .article-list-filter-form input,
.article-list-page .article-list-filter-form select {
    width: 100%;
    height: 42px;
    padding: 0 13px;
    border: 1px solid #dbe3ef;
    border-radius: 13px;
    background: #ffffff;
    color: #0f172a;
    font-size: 14px;
    font-weight: 700;
    outline: none;
    box-sizing: border-box;
}

.article-list-page .article-list-filter-form input:focus,
.article-list-page .article-list-filter-form select:focus {
    border-color: #22c55e;
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.12);
}

.article-list-page .article-list-filter-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.article-list-page .article-list-filter-actions button,
.article-list-page .article-list-filter-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 42px;
    padding: 0 16px;
    border: 0;
    border-radius: 13px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 900;
    white-space: nowrap;
}

.article-list-page .article-list-filter-actions button {
    background: #22c55e;
    color: #ffffff;
    cursor: pointer;
}

.article-list-page .article-list-filter-actions a {
    background: #f1f5f9;
    color: #334155;
}

.article-list-page .article-bulk-download-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
    padding: 16px 18px;
    border-radius: 18px;
    background: #f8fafc;
}

.article-list-page .article-bulk-download-toolbar strong {
    display: block;
    color: #0f172a;
    font-size: 15px;
    font-weight: 900;
}

.article-list-page .article-bulk-download-toolbar span {
    display: block;
    margin-top: 3px;
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
}

.article-list-page .article-bulk-download-toolbar button {
    height: 40px;
    padding: 0 15px;
    border: 0;
    border-radius: 12px;
    background: #0f172a;
    color: #ffffff;
    font-weight: 900;
    cursor: pointer;
}

.article-list-page .article-bulk-download-toolbar button:disabled {
    cursor: not-allowed;
    background: #cbd5e1;
    color: #64748b;
}

.article-list-page .article-list-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    border-radius: 18px;
    border: 1px solid #e2e8f0;
    background: #ffffff;
}

.article-list-page .article-list-table {
    width: 100%;
    min-width: 1180px;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
}

.article-list-page .article-list-table th,
.article-list-page .article-list-table td {
    padding: 14px 12px;
    border-bottom: 1px solid #e2e8f0;
    vertical-align: top;
    color: #0f172a;
    font-size: 14px;
    line-height: 1.45;
}

.article-list-page .article-list-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f8fafc;
    color: #334155;
    font-size: 12px;
    font-weight: 900;
    text-align: left;
    letter-spacing: -0.02em;
}

.article-list-page .article-list-table tbody tr:hover {
    background: #f8fafc;
}

.article-list-page .article-list-check-cell {
    width: 42px;
    text-align: center;
}

.article-list-page .article-list-date {
    width: 92px;
}

.article-list-page .article-list-date strong,
.article-list-page .article-list-date span {
    display: block;
    white-space: nowrap;
}

.article-list-page .article-list-title-cell {
    width: 420px;
}

.article-list-page .article-list-title-cell strong {
    display: block;
    color: #0f172a;
    font-size: 15px;
    font-weight: 900;
    line-height: 1.45;
}

.article-list-page .article-list-title-cell span {
    display: block;
    margin-top: 5px;
    color: #64748b;
    font-size: 13px;
    font-weight: 700;
}

.article-list-page .article-list-tags {
    width: 170px;
}

.article-list-page .article-list-tags span {
    display: inline-flex;
    margin: 0 4px 5px 0;
    padding: 4px 8px;
    border-radius: 999px;
    background: #ecfdf5;
    color: #047857;
    font-size: 12px;
    font-weight: 900;
}

.article-list-page .article-list-keywords {
    width: 180px;
    color: #475569;
    font-size: 13px;
    font-weight: 700;
}

.article-list-page .article-status-pill,
.article-list-page .article-list-category {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.article-list-page .article-status-pill {
    background: #eef2ff;
    color: #3730a3;
}

.article-list-page .article-list-category {
    background: #f1f5f9;
    color: #334155;
}

.article-list-page .article-list-muted,
.article-list-page .article-list-table em {
    color: #94a3b8;
    font-style: normal;
    font-weight: 700;
}

.article-list-page .article-row-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 32px;
    padding: 0 10px;
    border: 0;
    border-radius: 10px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
}

.article-list-page .article-row-action.is-edit {
    background: #eff6ff;
    color: #2563eb;
}

.article-list-page .article-row-action.is-delete {
    background: #fef2f2;
    color: #dc2626;
}

.article-list-page .article-row-action.is-view {
    background: #ecfdf5;
    color: #047857;
}

.article-list-page .article-row-action.is-disabled {
    background: #f1f5f9;
    color: #94a3b8;
    cursor: not-allowed;
}

.article-list-page .article-list-table td form {
    margin: 0;
}

.article-list-page .article-list-empty {
    padding: 36px !important;
    text-align: center;
    color: #64748b;
    font-weight: 900;
}

@media (max-width: 1280px) {
    .article-list-page .article-list-filter-form {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .article-list-page .article-list-search,
    .article-list-page .article-list-filter-actions {
        grid-column: 1 / -1;
    }
}


/* ======================================================
   NB article list compact repair - 2026.05.28 v2
   기사관리 목록 페이지 제목/요약 1줄 + 여백 축소
   ====================================================== */

.article-list-page .article-list-table {
    min-width: 1120px !important;
    table-layout: fixed !important;
}

.article-list-page .article-list-table th,
.article-list-page .article-list-table td {
    padding: 10px 10px !important;
    line-height: 1.35 !important;
}

.article-list-page .article-list-check-cell {
    width: 42px !important;
}

.article-list-page .article-list-table th:nth-child(2),
.article-list-page .article-list-table td:nth-child(2) {
    width: 110px !important;
}

.article-list-page .article-list-table th:nth-child(3),
.article-list-page .article-list-table td:nth-child(3) {
    width: 78px !important;
}

.article-list-page .article-list-table th:nth-child(4),
.article-list-page .article-list-table td:nth-child(4) {
    width: 74px !important;
}

.article-list-page .article-list-table th:nth-child(5),
.article-list-page .article-list-table td:nth-child(5) {
    width: 78px !important;
}

.article-list-page .article-list-table th:nth-child(7),
.article-list-page .article-list-table td:nth-child(7) {
    width: 146px !important;
}

.article-list-page .article-list-table th:nth-child(8),
.article-list-page .article-list-table td:nth-child(8) {
    width: 150px !important;
}

.article-list-page .article-list-table th:nth-child(9),
.article-list-page .article-list-table td:nth-child(9),
.article-list-page .article-list-table th:nth-child(10),
.article-list-page .article-list-table td:nth-child(10),
.article-list-page .article-list-table th:nth-child(11),
.article-list-page .article-list-table td:nth-child(11) {
    width: 72px !important;
    text-align: center !important;
}

.article-list-page .article-list-date strong,
.article-list-page .article-list-date span {
    white-space: nowrap !important;
}

.article-list-page .article-list-title-cell {
    width: auto !important;
}

.article-list-page .article-list-title-cell strong,
.article-list-page .article-list-title-cell span {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    word-break: normal !important;
}

.article-list-page .article-list-title-cell strong {
    margin-bottom: 4px !important;
    font-size: 15px !important;
    line-height: 1.3 !important;
}

.article-list-page .article-list-title-cell span {
    margin-top: 0 !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
}

.article-list-page .article-list-tags {
    white-space: nowrap !important;
    overflow: hidden !important;
}

.article-list-page .article-list-tags span {
    margin: 0 3px 3px 0 !important;
    padding: 3px 7px !important;
    font-size: 11px !important;
}

.article-list-page .article-list-keywords {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
}

.article-list-page .article-row-action {
    min-width: 50px !important;
    height: 30px !important;
    padding: 0 8px !important;
    font-size: 12px !important;
}

.article-list-page .article-list-category,
.article-list-page .article-status-pill {
    min-height: 26px !important;
    padding: 0 8px !important;
    font-size: 11px !important;
}

.article-list-page .article-list-filter-card,
.article-list-page .article-list-table-card {
    padding: 18px !important;
}

.article-list-page .article-bulk-download-toolbar {
    margin-bottom: 12px !important;
    padding: 14px 16px !important;
}


/* ======================================================
   NB article editor featured checkbox inline - 2026.05.29 v1
   기사 작성 화면: 주요기사 체크박스만 라벨 옆으로 정렬
   ====================================================== */

.article-editor-page .editor-side-panel .editor-field:has(input[name="is_featured"]) {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}

.article-editor-page .editor-side-panel .editor-field:has(input[name="is_featured"]) > label {
    margin: 0 !important;
    width: auto !important;
    flex: 0 0 auto !important;
}

.article-editor-page .editor-side-panel .editor-field:has(input[name="is_featured"]) input[type="checkbox"] {
    width: 16px !important;
    height: 16px !important;
    margin: 0 !important;
    flex: 0 0 auto !important;
}

.article-editor-page .editor-side-panel .editor-field:has(input[name="is_featured"]) .helptext,
.article-editor-page .editor-side-panel .editor-field:has(input[name="is_featured"]) .form-help,
.article-editor-page .editor-side-panel .editor-field:has(input[name="is_featured"]) small,
.article-editor-page .editor-side-panel .editor-field:has(input[name="is_featured"]) p {
    flex: 0 0 100% !important;
    width: 100% !important;
    margin-top: 6px !important;
}


/* ======================================================
   NB article editor manual tag input - 2026.05.29 v1
   기사 작성 화면: 태그 직접 입력 / 빈 하단 패널 제거
   ====================================================== */

.article-editor-page .article-tag-manual-input {
    display: block !important;
    width: 100% !important;
    min-height: 78px !important;
    padding: 12px 14px !important;
    border: 1px solid #dbe3ef !important;
    border-radius: 14px !important;
    background: #ffffff !important;
    color: #0f172a !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
    resize: vertical !important;
    box-sizing: border-box !important;
}

.article-editor-page .article-tag-manual-input:focus {
    border-color: #22c55e !important;
    outline: none !important;
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.12) !important;
}

.article-editor-page .editor-etc-panel {
    display: none !important;
}


/* ======================================================
   NB article editor savebar safe space - 2026.05.29 v1
   기사 작성 화면: 하단 제출바가 우측 입력영역을 가리지 않도록 여백 확보
   ====================================================== */

.article-editor-page .manager-page {
    padding-bottom: 170px !important;
}

.article-editor-page .editor-layout {
    padding-bottom: 150px !important;
}

.article-editor-page .editor-main-panel {
    margin-bottom: 120px !important;
}

.article-editor-page .editor-side-panel {
    padding-bottom: 170px !important;
    scroll-padding-bottom: 170px !important;
}

.article-editor-page .editor-side-panel::after {
    content: "";
    display: block;
    height: 130px;
}

.article-editor-page .editor-save-bar {
    left: auto !important;
    right: auto !important;
}


/* ======================================================
   NB article editor right panel unified scroll - 2026.05.29 v1
   기사작성 화면: 모바일 미리보기와 02·03·04를 우측 패널 안에서 함께 스크롤
   ====================================================== */

.article-editor-page {
    height: auto !important;
    min-height: 100vh !important;
    overflow: visible !important;
}

.article-editor-page .manager-page {
    height: auto !important;
    min-height: 100vh !important;
    overflow: visible !important;
    padding-bottom: 170px !important;
}

.article-editor-page .manager-page .editor-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 360px) !important;
    gap: 24px !important;
    align-items: start !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding-bottom: 150px !important;
}

.article-editor-page .manager-page .editor-main-panel {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    margin-bottom: 120px !important;
}

.article-editor-page .manager-page .editor-side-panel {
    grid-column: 2 !important;
    position: sticky !important;
    top: 24px !important;
    align-self: start !important;
    display: grid !important;
    gap: 18px !important;
    width: 100% !important;
    max-width: 360px !important;
    min-width: 0 !important;
    max-height: calc(100vh - 48px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-right: 6px !important;
    padding-bottom: 170px !important;
    scroll-padding-bottom: 170px !important;
    scrollbar-gutter: stable !important;
}

.article-editor-page .manager-page .editor-side-panel::-webkit-scrollbar {
    width: 8px !important;
}

.article-editor-page .manager-page .editor-side-panel::-webkit-scrollbar-track {
    background: transparent !important;
}

.article-editor-page .manager-page .editor-side-panel::-webkit-scrollbar-thumb {
    border-radius: 999px !important;
    background: rgba(15, 23, 42, 0.22) !important;
}

/* wrapper가 남아 있어도 별도 스크롤을 만들지 않고 우측 패널의 한 흐름으로 편입 */
.article-editor-page .editor-side-scroll {
    display: contents !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding: 0 !important;
}

.article-editor-page .editor-side-panel::after {
    display: none !important;
    height: 0 !important;
    content: none !important;
}

.article-editor-page .editor-mobile-preview-card {
    position: static !important;
    top: auto !important;
    z-index: 1 !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
    height: clamp(520px, 62vh, 680px) !important;
    min-height: 520px !important;
    max-height: 680px !important;
    padding: 18px !important;
    border-radius: 22px !important;
    background: #ffffff !important;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.10) !important;
    overflow: hidden !important;
}

.article-editor-page .editor-mobile-preview-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    margin-bottom: 10px !important;
    padding-bottom: 10px !important;
    border-bottom: 2px solid #111827 !important;
}

.article-editor-page .editor-mobile-preview-head span {
    display: inline-flex !important;
    align-items: center !important;
    height: 25px !important;
    padding: 0 9px !important;
    border-radius: 999px !important;
    background: #03c75a !important;
    color: #ffffff !important;
    font-size: 11px !important;
    font-weight: 1000 !important;
}

.article-editor-page .editor-mobile-preview-head strong {
    color: #111827 !important;
    font-size: 15px !important;
    font-weight: 1000 !important;
    letter-spacing: -0.05em !important;
}

.article-editor-page .editor-mobile-detail-frame {
    min-height: 0 !important;
    height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    border: 1px solid #dbe3ef !important;
    border-radius: 24px !important;
    background: #ffffff !important;
    scrollbar-gutter: stable !important;
}

.article-editor-page .editor-mobile-detail-frame::-webkit-scrollbar {
    width: 7px !important;
}

.article-editor-page .editor-mobile-detail-frame::-webkit-scrollbar-track {
    background: transparent !important;
}

.article-editor-page .editor-mobile-detail-frame::-webkit-scrollbar-thumb {
    border-radius: 999px !important;
    background: rgba(15, 23, 42, 0.22) !important;
}

.article-editor-page .editor-mobile-detail-top {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    height: 32px !important;
    border-bottom: 1px solid #edf2f7 !important;
    background: #ffffff !important;
}

.article-editor-page .editor-mobile-detail-top strong {
    color: #0f172a !important;
    font-size: 16px !important;
    font-weight: 1000 !important;
    letter-spacing: -0.06em !important;
}

.article-editor-page .editor-mobile-detail-top strong::first-letter {
    color: #03c75a !important;
}

.article-editor-page .editor-mobile-detail-top span {
    color: #0f172a !important;
    font-size: 9px !important;
    font-weight: 1000 !important;
}

.article-editor-page .editor-mobile-detail-nav {
    display: flex !important;
    justify-content: center !important;
    gap: 12px !important;
    height: 26px !important;
    border-bottom: 1px solid #edf2f7 !important;
    background: #ffffff !important;
    color: #111827 !important;
    font-size: 10px !important;
    font-weight: 1000 !important;
}

.article-editor-page .editor-mobile-detail-nav span {
    display: inline-flex !important;
    align-items: center !important;
}

.article-editor-page .editor-mobile-detail-hero {
    position: relative !important;
    display: grid !important;
    place-items: center !important;
    height: 118px !important;
    overflow: hidden !important;
    background: linear-gradient(135deg, #dbeafe, #dcfce7) !important;
    color: #64748b !important;
    font-size: 12px !important;
    font-weight: 1000 !important;
}

.article-editor-page .editor-mobile-detail-hero img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.article-editor-page .editor-mobile-detail-body {
    min-height: 360px !important;
    padding: 13px 14px 16px !important;
    background: #ffffff !important;
}

.article-editor-page .editor-mobile-detail-body em {
    display: inline-flex !important;
    width: fit-content !important;
    align-items: center !important;
    height: 22px !important;
    margin-bottom: 7px !important;
    padding: 0 8px !important;
    border-radius: 999px !important;
    background: #dcfce7 !important;
    color: #047857 !important;
    font-size: 10px !important;
    font-style: normal !important;
    font-weight: 1000 !important;
}

.article-editor-page .editor-mobile-detail-body h1 {
    display: -webkit-box !important;
    overflow: hidden !important;
    margin: 0 !important;
    color: #111827 !important;
    font-size: 18px !important;
    line-height: 1.28 !important;
    font-weight: 1000 !important;
    letter-spacing: -0.06em !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
}

.article-editor-page .editor-mobile-detail-meta {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    margin-top: 7px !important;
    color: #64748b !important;
    font-size: 10px !important;
    font-weight: 900 !important;
}

.article-editor-page .editor-mobile-detail-summary {
    display: -webkit-box !important;
    overflow: hidden !important;
    margin: 9px 0 0 !important;
    color: #334155 !important;
    font-size: 12px !important;
    line-height: 1.42 !important;
    font-weight: 900 !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
}

.article-editor-page .editor-mobile-detail-text {
    display: block !important;
    overflow: visible !important;
    max-height: none !important;
    margin-top: 9px !important;
    padding-top: 9px !important;
    border-top: 1px solid #edf2f7 !important;
    color: #475569 !important;
    font-size: 11px !important;
    line-height: 1.55 !important;
    font-weight: 700 !important;
    white-space: pre-line !important;
}

.article-editor-page .editor-mobile-preview-help {
    margin: 8px 0 0 !important;
    color: #64748b !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
    font-weight: 800 !important;
}

.article-editor-page .editor-save-bar {
    position: sticky !important;
    bottom: 18px !important;
    grid-column: 1 / -1 !important;
    z-index: 20 !important;
}

@media (max-width: 1100px) {
    .article-editor-page .manager-page .editor-layout {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .article-editor-page .manager-page .editor-main-panel,
    .article-editor-page .manager-page .editor-side-panel,
    .article-editor-page .manager-page .editor-save-bar {
        grid-column: 1 !important;
        max-width: 100% !important;
    }

    .article-editor-page .manager-page .editor-side-panel {
        position: static !important;
        max-height: none !important;
        overflow: visible !important;
        padding-right: 0 !important;
    }

    .article-editor-page .editor-mobile-preview-card {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
    }

    .article-editor-page .editor-mobile-detail-frame {
        max-height: 560px !important;
    }
}


/* ======================================================
   NB article editor autosave - 2026.05.29 v2
   기사 작성 화면: localStorage 자동저장 상태 / 복구 안내
   ====================================================== */

.article-editor-page .editor-panel-head-with-status {
    display: flex !important;
    align-items: center !important;
}

.article-editor-page .article-autosave-status {
    flex: 0 0 auto !important;
    margin-left: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 210px !important;
    min-height: 34px !important;
    padding: 0 13px !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: #64748b !important;
    border: 1px solid #dbe3ef !important;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06) !important;
    font-size: 12px !important;
    font-weight: 1000 !important;
    white-space: nowrap !important;
}

.article-editor-page .article-autosave-status[data-state="saving"] {
    background: #eff6ff !important;
    border-color: #bfdbfe !important;
    color: #1d4ed8 !important;
}

.article-editor-page .article-autosave-status[data-state="saved"],
.article-editor-page .article-autosave-status[data-state="restored"] {
    background: #dcfce7 !important;
    border-color: #86efac !important;
    color: #047857 !important;
}

.article-editor-page .article-autosave-status[data-state="error"] {
    background: #ffe4e6 !important;
    border-color: #fecdd3 !important;
    color: #be123c !important;
}

.article-editor-page .article-autosave-status[data-state="discarded"] {
    background: #f1f5f9 !important;
    border-color: #cbd5e1 !important;
    color: #475569 !important;
}

.article-editor-page .article-autosave-restore {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    margin-bottom: 16px !important;
    padding: 16px 18px !important;
    border-radius: 18px !important;
    background: #0f172a !important;
    color: #ffffff !important;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.18) !important;
}

.article-editor-page .article-autosave-restore strong {
    display: block !important;
    font-size: 15px !important;
    font-weight: 1000 !important;
}

.article-editor-page .article-autosave-restore span {
    display: block !important;
    margin-top: 4px !important;
    color: #cbd5e1 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
}

.article-editor-page .article-autosave-restore > div:last-child {
    display: flex !important;
    gap: 8px !important;
    flex: 0 0 auto !important;
}

.article-editor-page .article-autosave-restore button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 38px !important;
    padding: 0 14px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #03c75a !important;
    color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 1000 !important;
    cursor: pointer !important;
}

.article-editor-page .article-autosave-restore button:last-child {
    background: #334155 !important;
}

@media (max-width: 900px) {
    .article-editor-page .editor-panel-head-with-status {
        flex-wrap: wrap !important;
    }

    .article-editor-page .article-autosave-status {
        flex-basis: 100% !important;
        margin-left: 0 !important;
        margin-top: 10px !important;
        justify-content: flex-start !important;
    }

    .article-editor-page .article-autosave-restore {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .article-editor-page .article-autosave-restore > div:last-child {
        justify-content: stretch !important;
    }

    .article-editor-page .article-autosave-restore button {
        flex: 1 !important;
    }
}

/* ======================================================
   Press slug admin phase 1
   /p/<press_slug>/newsroom-admin/ 1차 대시보드 전용 보조 스타일
   ====================================================== */

.builder-nav-disabled {
    display: flex;
    align-items: center;
    min-height: 42px;
    border-radius: 14px;
    padding: 0 14px;
    color: rgba(255, 255, 255, 0.42);
    font-size: 14px;
    font-weight: 800;
    cursor: not-allowed;
}

.builder-primary-link.is-disabled {
    opacity: 0.58;
    cursor: not-allowed;
    pointer-events: none;
}

/* ======================================================
   Press slug category admin phase
   ====================================================== */

.manager-action-disabled,
.builder-light-link.is-disabled {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    border-radius: 999px;
    padding: 0 14px;
    background: #e2e8f0;
    color: #64748b;
    font-size: 13px;
    font-weight: 900;
    cursor: not-allowed;
}

/* ======================================================
   Press slug ads dashboard phase 1
   ====================================================== */

.ad-subnav-disabled {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    border-radius: 999px;
    padding: 0 14px;
    background: #e2e8f0;
    color: #64748b;
    font-size: 13px;
    font-weight: 900;
    cursor: not-allowed;
    white-space: nowrap;
}

.builder-primary-link.is-disabled {
    opacity: 0.58;
    cursor: not-allowed;
    pointer-events: none;
}

/* ======================================================
   Advertisement list layout fix
   광고관리 목록 화면 표/카드 레이아웃 보정
   ====================================================== */

.ad-product-list-panel {
    width: 100%;
    box-sizing: border-box;
    margin-top: 18px;
    padding: 24px;
    border-radius: 24px;
    background: #ffffff;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
}

.ad-product-list-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.ad-product-list-head span {
    display: block;
    margin-bottom: 8px;
    color: #03c75a;
    font-size: 12px;
    font-weight: 1000;
    letter-spacing: 0.08em;
}

.ad-product-list-head h2 {
    margin: 0;
    color: #0f172a;
    font-size: 24px;
    font-weight: 1000;
    letter-spacing: -0.05em;
}

.ad-product-list-head p {
    margin: 0;
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
}

.ad-list-search-form {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-width: min(520px, 100%);
}

.ad-list-search-form input {
    width: 280px;
    min-height: 42px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    padding: 0 14px;
    background: #ffffff;
    color: #0f172a;
    font-size: 13px;
    font-weight: 800;
}

.ad-list-search-form button,
.ad-list-search-form a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border: 0;
    border-radius: 14px;
    padding: 0 15px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 1000;
    cursor: pointer;
}

.ad-list-search-form button {
    background: #03c75a;
    color: #ffffff;
}

.ad-list-search-form a {
    background: #f1f5f9;
    color: #334155;
}

.ad-admin-list-table,
.ad-product-list-table {
    display: grid;
    gap: 10px;
    width: 100%;
}

.ad-admin-list-row,
.ad-product-list-row {
    display: grid;
    align-items: center;
    gap: 12px;
    min-height: 64px;
    box-sizing: border-box;
    border: 1px solid #edf1f7;
    border-radius: 18px;
    padding: 14px 16px;
    background: #ffffff;
    color: #172033;
    font-size: 13px;
    font-weight: 850;
}

.ad-admin-list-row.is-head,
.ad-product-list-row.is-head {
    min-height: 48px;
    border-color: transparent;
    background: #f8fafc;
    color: #475569;
    font-size: 12px;
    font-weight: 1000;
}

.ad-product-list-row {
    grid-template-columns:
        minmax(220px, 1.3fr)
        130px
        120px
        130px
        130px
        70px
        90px
        120px;
}

.ad-admin-list-row.is-advertiser {
    grid-template-columns:
        minmax(220px, 1.3fr)
        130px
        150px
        minmax(180px, 1fr)
        130px
        100px
        130px;
}

.ad-admin-list-row.is-contract {
    grid-template-columns:
        minmax(220px, 1.2fr)
        150px
        170px
        220px
        130px
        130px
        150px
        120px;
}

.ad-admin-list-row.is-creative {
    grid-template-columns:
        minmax(300px, 1.4fr)
        150px
        minmax(180px, 1fr)
        minmax(180px, 1fr)
        190px
        130px
        120px;
}

.ad-admin-list-row.is-off,
.ad-product-list-row.is-off {
    opacity: 0.62;
}

.ad-product-main-cell {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.ad-product-main-cell strong {
    display: block;
    overflow: hidden;
    color: #0f172a;
    font-size: 15px;
    font-weight: 1000;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ad-product-main-cell span,
.ad-inline-sub {
    display: block;
    margin-top: 4px;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

.ad-list-badge,
.ad-status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    margin: 2px 4px 2px 0;
    border-radius: 999px;
    padding: 0 10px;
    background: #eef2ff;
    color: #3730a3;
    font-size: 12px;
    font-weight: 1000;
    white-space: nowrap;
}

.ad-list-badge.is-muted {
    background: #f1f5f9;
    color: #64748b;
}

.ad-status-pill.is-on {
    background: #dcfce7;
    color: #047857;
}

.ad-status-pill.is-off {
    background: #fee2e2;
    color: #b91c1c;
}

.ad-product-list-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    justify-content: flex-start;
}

.ad-product-list-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    border-radius: 12px;
    padding: 0 12px;
    background: #03c75a;
    color: #ffffff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 1000;
    white-space: nowrap;
}

.ad-product-list-actions a:nth-child(n+2) {
    background: #f1f5f9;
    color: #334155;
}

.ad-creative-list-cell {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    min-width: 0;
}

.ad-creative-list-thumb {
    display: grid;
    place-items: center;
    width: 92px;
    height: 58px;
    border-radius: 14px;
    overflow: hidden;
    background: #f1f5f9;
}

.ad-creative-list-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ad-creative-list-thumb span {
    color: #64748b;
    font-size: 12px;
    font-weight: 1000;
}

.ad-url-cell {
    overflow: hidden;
    color: #475569;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.builder-table-wrap {
    overflow: auto;
    border: 1px solid #edf1f7;
    border-radius: 18px;
    background: #ffffff;
}

.builder-table th,
.builder-table td {
    border-bottom: 1px solid #edf1f7;
    padding: 13px 12px;
    text-align: left;
    vertical-align: middle;
}

.builder-table th {
    background: #f8fafc;
    color: #475569;
    font-size: 12px;
    font-weight: 1000;
}

.builder-table td {
    color: #172033;
    font-size: 13px;
    font-weight: 850;
}

@media (max-width: 1280px) {
    .ad-admin-list-table,
    .ad-product-list-table {
        overflow-x: auto;
        padding-bottom: 4px;
    }

    .ad-admin-list-row,
    .ad-product-list-row {
        min-width: 1120px;
    }

    .ad-admin-list-row.is-creative {
        min-width: 1240px;
    }
}

@media (max-width: 920px) {
    .ad-product-list-panel {
        padding: 18px;
    }

    .ad-product-list-head,
    .ad-list-search-form {
        display: grid;
        grid-template-columns: 1fr;
        justify-content: stretch;
    }

    .ad-list-search-form input {
        width: 100%;
    }
}

/* ======================================================
   Advertisement placement editor layout fix
   광고 배치편집기 레이아웃 보정
   ====================================================== */

.ad-placement-builder,
.ad-placement-editor,
.ad-placement-editor-wrap,
.ad-placement-builder-wrap,
.ad-placement-workspace {
    width: 100%;
    box-sizing: border-box;
}

.ad-placement-builder {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr);
    gap: 24px;
    align-items: start;
    margin-top: 24px;
}

.ad-placement-map,
.ad-placement-zone-board,
.ad-placement-visual-board,
.ad-placement-editor-map {
    display: grid;
    grid-template-columns: repeat(6, minmax(120px, 1fr));
    gap: 14px;
    align-items: end;
    width: 100%;
    box-sizing: border-box;
    padding: 24px;
    border-radius: 28px;
    background: #ffffff;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
}

.ad-placement-card,
.ad-placement-zone,
.ad-placement-visual-card,
.ad-placement-type-card {
    display: grid;
    place-items: center;
    min-height: 128px;
    box-sizing: border-box;
    border: 1px solid #dbe3ef;
    border-radius: 22px;
    padding: 16px 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    color: #0f172a;
    text-align: center;
    cursor: pointer;
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease, background 0.16s ease;
}

.ad-placement-card:hover,
.ad-placement-zone:hover,
.ad-placement-visual-card:hover,
.ad-placement-type-card:hover {
    transform: translateY(-3px);
    border-color: #03c75a;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.12);
}

.ad-placement-card.is-selected,
.ad-placement-zone.is-selected,
.ad-placement-visual-card.is-selected,
.ad-placement-type-card.is-selected,
.ad-placement-card.active,
.ad-placement-zone.active,
.ad-placement-visual-card.active,
.ad-placement-type-card.active {
    border-color: #03c75a;
    background: #ecfdf5;
    box-shadow: 0 18px 38px rgba(3, 199, 90, 0.16);
}

.ad-placement-card strong,
.ad-placement-zone strong,
.ad-placement-visual-card strong,
.ad-placement-type-card strong {
    display: block;
    color: #0f172a;
    font-size: 17px;
    font-weight: 1000;
    letter-spacing: -0.04em;
}

.ad-placement-card span,
.ad-placement-zone span,
.ad-placement-visual-card span,
.ad-placement-type-card span,
.ad-placement-card small,
.ad-placement-zone small,
.ad-placement-visual-card small,
.ad-placement-type-card small {
    display: block;
    margin-top: 6px;
    color: #64748b;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.45;
}

.ad-placement-card em,
.ad-placement-zone em,
.ad-placement-visual-card em,
.ad-placement-type-card em {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    margin-top: 8px;
    border-radius: 999px;
    padding: 0 9px;
    background: #f1f5f9;
    color: #334155;
    font-size: 11px;
    font-style: normal;
    font-weight: 1000;
}

.ad-contract-queue,
.ad-placement-contract-queue,
.ad-editor-contract-queue,
.ad-contract-list-panel,
.ad-placement-side-panel {
    width: 100%;
    box-sizing: border-box;
    border-radius: 28px;
    padding: 24px;
    background: #ffffff;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
}

.ad-contract-queue h2,
.ad-placement-contract-queue h2,
.ad-editor-contract-queue h2,
.ad-contract-list-panel h2,
.ad-placement-side-panel h2 {
    margin: 0 0 8px;
    color: #0f172a;
    font-size: 24px;
    font-weight: 1000;
    letter-spacing: -0.05em;
}

.ad-contract-queue p,
.ad-placement-contract-queue p,
.ad-editor-contract-queue p,
.ad-contract-list-panel p,
.ad-placement-side-panel p {
    margin: 0 0 18px;
    color: #64748b;
    font-size: 13px;
    font-weight: 850;
}

.ad-placement-filter,
.ad-contract-filter,
.ad-editor-filter,
.ad-placement-search-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 14px 0 18px;
}

.ad-placement-filter input,
.ad-placement-filter select,
.ad-contract-filter input,
.ad-contract-filter select,
.ad-editor-filter input,
.ad-editor-filter select,
.ad-placement-search-row input,
.ad-placement-search-row select {
    min-height: 38px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    padding: 0 12px;
    background: #ffffff;
    color: #0f172a;
    font-size: 13px;
    font-weight: 850;
}

.ad-placement-filter button,
.ad-contract-filter button,
.ad-editor-filter button,
.ad-placement-search-row button {
    min-height: 38px;
    border: 0;
    border-radius: 12px;
    padding: 0 13px;
    background: #03c75a;
    color: #ffffff;
    font-size: 13px;
    font-weight: 1000;
    cursor: pointer;
}

.ad-contract-card,
.ad-editor-contract-card,
.ad-placement-contract-card,
.ad-contract-queue-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    min-height: 72px;
    box-sizing: border-box;
    margin-top: 10px;
    border: 1px solid #edf1f7;
    border-radius: 20px;
    padding: 15px 16px;
    background: #ffffff;
    color: #0f172a;
}

.ad-contract-card.is-placed,
.ad-editor-contract-card.is-placed,
.ad-placement-contract-card.is-placed,
.ad-contract-queue-card.is-placed {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.ad-contract-card strong,
.ad-editor-contract-card strong,
.ad-placement-contract-card strong,
.ad-contract-queue-card strong {
    display: block;
    overflow: hidden;
    color: #0f172a;
    font-size: 15px;
    font-weight: 1000;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ad-contract-card span,
.ad-editor-contract-card span,
.ad-placement-contract-card span,
.ad-contract-queue-card span {
    display: block;
    margin-top: 5px;
    color: #64748b;
    font-size: 12px;
    font-weight: 850;
}

.ad-contract-card button,
.ad-editor-contract-card button,
.ad-placement-contract-card button,
.ad-contract-queue-card button,
.ad-contract-card a,
.ad-editor-contract-card a,
.ad-placement-contract-card a,
.ad-contract-queue-card a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    border: 0;
    border-radius: 12px;
    padding: 0 12px;
    background: #f1f5f9;
    color: #334155;
    text-decoration: none;
    font-size: 12px;
    font-weight: 1000;
    cursor: pointer;
    white-space: nowrap;
}

.ad-contract-card button.is-primary,
.ad-editor-contract-card button.is-primary,
.ad-placement-contract-card button.is-primary,
.ad-contract-queue-card button.is-primary,
.ad-contract-card a.is-primary,
.ad-editor-contract-card a.is-primary,
.ad-placement-contract-card a.is-primary,
.ad-contract-queue-card a.is-primary {
    background: #03c75a;
    color: #ffffff;
}

.ad-placement-form-panel,
.ad-editor-form-panel,
.ad-creative-editor-panel,
.ad-placement-modal,
.ad-editor-modal {
    width: 100%;
    box-sizing: border-box;
    border-radius: 28px;
    padding: 24px;
    background: #ffffff;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
}

.ad-placement-form-grid,
.ad-editor-form-grid,
.ad-creative-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.ad-placement-form-field,
.ad-editor-form-field,
.ad-creative-form-field,
.ad-placement-form-panel label,
.ad-editor-form-panel label,
.ad-creative-editor-panel label {
    display: grid;
    gap: 7px;
    color: #0f172a;
    font-size: 13px;
    font-weight: 1000;
}

.ad-placement-form-panel input,
.ad-placement-form-panel select,
.ad-placement-form-panel textarea,
.ad-editor-form-panel input,
.ad-editor-form-panel select,
.ad-editor-form-panel textarea,
.ad-creative-editor-panel input,
.ad-creative-editor-panel select,
.ad-creative-editor-panel textarea {
    width: 100%;
    min-height: 42px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    padding: 0 13px;
    background: #ffffff;
    color: #0f172a;
    font-size: 13px;
    font-weight: 850;
}

.ad-placement-form-panel textarea,
.ad-editor-form-panel textarea,
.ad-creative-editor-panel textarea {
    min-height: 96px;
    padding-top: 12px;
    resize: vertical;
}

.ad-placement-actions,
.ad-editor-actions,
.ad-creative-actions,
.ad-placement-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    margin-top: 18px;
}

.ad-placement-actions button,
.ad-editor-actions button,
.ad-creative-actions button,
.ad-placement-form-actions button,
.ad-placement-actions a,
.ad-editor-actions a,
.ad-creative-actions a,
.ad-placement-form-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border: 0;
    border-radius: 14px;
    padding: 0 16px;
    background: #f1f5f9;
    color: #334155;
    text-decoration: none;
    font-size: 13px;
    font-weight: 1000;
    cursor: pointer;
}

.ad-placement-actions button[type="submit"],
.ad-editor-actions button[type="submit"],
.ad-creative-actions button[type="submit"],
.ad-placement-form-actions button[type="submit"],
.ad-placement-actions .is-primary,
.ad-editor-actions .is-primary,
.ad-creative-actions .is-primary,
.ad-placement-form-actions .is-primary {
    background: #03c75a;
    color: #ffffff;
}

.ad-placement-empty,
.ad-editor-empty,
.ad-contract-empty {
    display: grid;
    place-items: center;
    min-height: 120px;
    border-radius: 22px;
    background: #f8fafc;
    color: #64748b;
    font-size: 14px;
    font-weight: 900;
    text-align: center;
}

.ad-placement-builder > section,
.ad-placement-builder > aside,
.ad-placement-builder > div {
    min-width: 0;
}

@media (max-width: 1280px) {
    .ad-placement-builder {
        grid-template-columns: 1fr;
    }

    .ad-placement-map,
    .ad-placement-zone-board,
    .ad-placement-visual-board,
    .ad-placement-editor-map {
        grid-template-columns: repeat(3, minmax(120px, 1fr));
    }
}

@media (max-width: 760px) {
    .ad-placement-map,
    .ad-placement-zone-board,
    .ad-placement-visual-board,
    .ad-placement-editor-map {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 18px;
    }

    .ad-placement-card,
    .ad-placement-zone,
    .ad-placement-visual-card,
    .ad-placement-type-card {
        min-height: 112px;
    }

    .ad-placement-form-grid,
    .ad-editor-form-grid,
    .ad-creative-form-grid {
        grid-template-columns: 1fr;
    }
}

/* ======================================================
   Restored advertisement placement editor CSS from backup
   Source: _backup/restore_contract_row_to_ad_setting_modal_20260526_053907/static/css/newsroom_builder.css
   ====================================================== */

.ad-mini-list {
    display: grid;
    gap: 10px;
}\n\n.ad-mini-list article {
    padding: 14px;
    border-radius: 14px;
    background: #f8fafc;
}\n\n.ad-mini-list strong {
    display: block;
    color: #111827;
    font-size: 14px;
    font-weight: 1000;
}\n\n.ad-mini-list span,
.empty-text {
    display: block;
    margin-top: 5px;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}\n\n/* ======================================================
   AD PLACEMENT BUILDER
   광고 배치 편집기 6카드 도식 UI
   ====================================================== */

.ad-placement-guide-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 22px;
}\n\n.ad-placement-guide-card,
.ad-product-card,
.ad-placement-control-panel {
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}\n\n.ad-placement-guide-card {
    padding: 18px;
}\n\n.ad-placement-guide-head {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 14px;
}\n\n.ad-placement-guide-head > span {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #03c75a;
    color: #ffffff;
    display: inline-grid;
    place-items: center;
    font-size: 13px;
    font-weight: 1000;
}\n\n.ad-placement-guide-head strong {
    display: block;
    color: #111827;
    font-size: 18px;
    font-weight: 1000;
    letter-spacing: -0.05em;
}\n\n.ad-placement-guide-head p {
    margin: 4px 0 0;
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
}\n\n.ad-layout-mini {
    min-height: 168px;
    padding: 12px;
    border: 1px solid #d9e1ea;
    border-radius: 16px;
    background: linear-gradient(180deg, #f8fafc, #eef2f7);
}\n\n.ad-mini-bar,
.ad-mini-side,
.ad-mini-mobile-banner,
.ad-mini-popup {
    border-radius: 9px;
    background: #cbd5e1;
    color: #334155;
    font-size: 11px;
    font-weight: 1000;
    text-align: center;
}\n\n.ad-mini-bar {
    min-height: 26px;
    display: grid;
    place-items: center;
    margin-bottom: 8px;
}\n\n.ad-mini-bar:last-child {
    margin-bottom: 0;
}\n\n.ad-mini-bar.is-active,
.ad-mini-side.is-active,
.ad-mini-mobile-banner.is-active,
.ad-mini-popup.is-active {
    background: #03c75a;
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(3, 199, 90, 0.24);
}\n\n.ad-mini-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 54px;
    gap: 8px;
    margin-bottom: 8px;
}\n\n.ad-mini-content,
.ad-mini-list,
.ad-mini-article-lines {
    display: grid;
    gap: 7px;
}\n\n.ad-mini-content span,
.ad-mini-list span,
.ad-mini-article-lines span,
.ad-layout-mobile span {
    display: block;
    height: 14px;
    border-radius: 999px;
    background: #dbe3ec;
}\n\n.ad-mini-content span:nth-child(2),
.ad-mini-list span:nth-child(2),
.ad-mini-article-lines span:nth-child(2) {
    width: 76%;
}\n\n.ad-mini-content span:nth-child(3),
.ad-mini-list span:nth-child(4),
.ad-mini-article-lines span:nth-child(5) {
    width: 58%;
}\n\n.ad-mini-side {
    display: grid;
    place-items: center;
    min-height: 104px;
    writing-mode: vertical-rl;
}\n\n.ad-mini-nav {
    height: 18px;
    margin-bottom: 8px;
    border-radius: 999px;
    background: #111827;
}\n\n.ad-mini-title {
    width: 72%;
    height: 20px;
    margin-bottom: 9px;
    border-radius: 999px;
    background: #111827;
}\n\n.ad-mini-phone {
    width: 116px;
    min-height: 154px;
    margin: 0 auto;
    padding: 10px;
    border: 3px solid #111827;
    border-radius: 20px;
    background: #ffffff;
}\n\n.ad-mini-phone-top {
    width: 38px;
    height: 5px;
    margin: 0 auto 10px;
    border-radius: 999px;
    background: #111827;
}\n\n.ad-mini-phone span {
    margin-bottom: 8px;
}\n\n.ad-mini-mobile-banner {
    display: grid;
    place-items: center;
    min-height: 30px;
    margin-top: 12px;
}\n\n.ad-mini-backdrop {
    min-height: 142px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background:
        linear-gradient(rgba(15, 23, 42, 0.62), rgba(15, 23, 42, 0.62)),
        repeating-linear-gradient(
            0deg,
            #ffffff,
            #ffffff 12px,
            #eef2f7 12px,
            #eef2f7 24px
        );
}\n\n.ad-mini-popup {
    width: 116px;
    min-height: 104px;
    padding: 12px;
}\n\n.ad-mini-popup strong {
    display: block;
    margin-bottom: 8px;
    color: #ffffff;
    font-size: 13px;
}\n\n.ad-mini-popup span {
    display: block;
    margin-top: 5px;
    padding: 4px 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.22);
    color: #ffffff;
    font-size: 10px;
}\n\n@media (max-width: 1180px) {
    .ad-placement-guide-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}\n\n@media (max-width: 860px) {
    .ad-placement-guide-grid,
    .ad-product-card-grid {
        grid-template-columns: 1fr;
    }

    .ad-product-info {
        grid-template-columns: 1fr;
    }
}\n\n/* ======================================================
   AD LIVE PLACEMENT EDITOR
   저장 전 미리보기 + 실제 저장 분리형 광고 편집기
   ====================================================== */

.ad-editor-type-grid button {
    width: 100%;
    border: 0;
    text-align: left;
    cursor: pointer;
}\n\n.ad-editor-type-card {
    transition: transform 0.16s ease, box-shadow 0.16s ease, outline 0.16s ease;
}\n\n.ad-editor-type-card:hover,
.ad-editor-type-card.is-selected {
    transform: translateY(-2px);
    outline: 3px solid rgba(3, 199, 90, 0.35);
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.14);
}\n\n.ad-editor-type-card em {
    display: inline-flex;
    margin-top: 12px;
    padding: 7px 10px;
    border-radius: 999px;
    background: #111827;
    color: #ffffff;
    font-size: 12px;
    font-style: normal;
    font-weight: 1000;
}\n\n.ad-live-editor-shell {
    margin-top: 22px;
}\n\n.ad-live-editor-empty,
.ad-live-editor-form,
.ad-position-map-card,
.ad-setting-card {
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}\n\n.ad-live-editor-empty {
    padding: 26px;
    text-align: center;
}\n\n.ad-live-editor-empty strong {
    display: block;
    color: #111827;
    font-size: 21px;
    font-weight: 1000;
    letter-spacing: -0.05em;
}\n\n.ad-live-editor-empty p {
    margin: 8px 0 0;
    color: #64748b;
    font-size: 14px;
    font-weight: 800;
}\n\n.ad-live-editor-form {
    padding: 20px;
}\n\n.ad-live-editor-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: end;
    margin-bottom: 18px;
    padding: 16px;
    border-radius: 16px;
    background: #f8fafc;
}\n\n.ad-live-editor-toolbar span,
.ad-setting-card label,
.ad-position-map-card .builder-card-head span {
    color: #64748b;
    font-size: 12px;
    font-weight: 1000;
}\n\n.ad-live-editor-toolbar strong {
    display: block;
    margin-top: 4px;
    color: #111827;
    font-size: 22px;
    font-weight: 1000;
    letter-spacing: -0.05em;
}\n\n.ad-live-editor-toolbar label {
    min-width: 320px;
    display: grid;
    gap: 6px;
    color: #334155;
    font-size: 12px;
    font-weight: 1000;
}\n\n.ad-live-editor-toolbar select,
.ad-setting-card select,
.ad-setting-card input[type="text"],
.ad-setting-card input[type="url"],
.ad-setting-card input[type="date"],
.ad-setting-card input[type="number"],
.ad-setting-card input[type="file"],
.ad-setting-card textarea {
    width: 100%;
    min-height: 42px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    padding: 9px 11px;
    background: #ffffff;
    color: #111827;
    font-size: 13px;
    font-weight: 800;
}\n\n.ad-setting-card textarea {
    resize: vertical;
    line-height: 1.6;
}\n\n.ad-live-editor-grid {
    display: grid;
    grid-template-columns: minmax(340px, 0.86fr) minmax(0, 1.14fr);
    gap: 18px;
    align-items: start;
}\n\n.ad-position-map-card,
.ad-setting-card {
    padding: 18px;
}\n\n.ad-position-map-card .builder-card-head,
.ad-setting-card .builder-card-head {
    margin-bottom: 14px;
}\n\n.ad-position-map-card .builder-card-head h2,
.ad-setting-card .builder-card-head h2 {
    margin: 4px 0 0;
    font-size: 21px;
    font-weight: 1000;
    letter-spacing: -0.05em;
}\n\n.ad-position-map-card .builder-card-head p,
.ad-setting-card .builder-card-head p {
    margin: 6px 0 0;
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
}\n\n.ad-editor-position-map {
    padding: 16px;
    border-radius: 18px;
    background: #eef2f7;
}\n\n.ad-map-site {
    position: relative;
    border-radius: 18px;
    background: #ffffff;
    padding: 14px;
    border: 1px solid #d9e1ea;
}\n\n.ad-map-header,
.ad-map-slot,
.ad-map-mobile,
.ad-map-popup,
.ad-map-body aside {
    min-height: 38px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #e5e7eb;
    color: #475569;
    font-size: 11px;
    font-weight: 1000;
}\n\n.ad-map-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 86px;
    gap: 10px;
    margin: 10px 0;
}\n\n.ad-map-body main {
    display: grid;
    gap: 8px;
}\n\n.ad-map-body aside {
    min-height: 360px;
    writing-mode: vertical-rl;
}\n\n.ad-map-lines {
    display: grid;
    gap: 6px;
    padding: 8px;
}\n\n.ad-map-lines span {
    display: block;
    height: 10px;
    border-radius: 999px;
    background: #dbe3ec;
}\n\n.ad-map-lines span:nth-child(2) {
    width: 74%;
}\n\n.ad-map-lines span:nth-child(3) {
    width: 58%;
}\n\n.ad-map-mobile {
    margin-top: 10px;
}\n\n.ad-map-popup {
    position: absolute;
    right: 24px;
    bottom: 70px;
    width: 112px;
    min-height: 74px;
    background: rgba(17, 24, 39, 0.82);
    color: #ffffff;
}\n\n.ad-editor-position-map[data-key="main_top"] [data-slot="main_top"],
.ad-editor-position-map[data-key="main_middle"] [data-slot="main_middle"],
.ad-editor-position-map[data-key="main_bottom"] [data-slot="main_bottom"],
.ad-editor-position-map[data-key="right_sidebar"] [data-slot="right_sidebar"],
.ad-editor-position-map[data-key="category_top"] [data-slot="category_top"],
.ad-editor-position-map[data-key="category_middle"] [data-slot="category_middle"],
.ad-editor-position-map[data-key="category_bottom"] [data-slot="category_bottom"],
.ad-editor-position-map[data-key="article_top"] [data-slot="article_top"],
.ad-editor-position-map[data-key="article_middle"] [data-slot="article_middle"],
.ad-editor-position-map[data-key="article_bottom"] [data-slot="article_bottom"],
.ad-editor-position-map[data-key="mobile_banner"] [data-slot="mobile_banner"],
.ad-editor-position-map[data-key="site_popup"] [data-slot~="site_popup"],
.ad-editor-position-map[data-key="category_popup"] [data-slot~="category_popup"],
.ad-editor-position-map[data-key="article_popup"] [data-slot~="article_popup"] {
    background: #03c75a;
    color: #ffffff;
    box-shadow: 0 10px 24px rgba(3, 199, 90, 0.26);
}\n\n.ad-setting-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}\n\n.ad-setting-grid label {
    display: grid;
    gap: 7px;
}\n\n.ad-setting-grid label.is-wide {
    grid-column: 1 / -1;
}\n\n.ad-contract-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 14px 0;
}\n\n.ad-contract-summary div {
    padding: 12px;
    border-radius: 14px;
    background: #f8fafc;
}\n\n.ad-contract-summary span {
    display: block;
    margin-bottom: 5px;
    color: #64748b;
    font-size: 11px;
    font-weight: 1000;
}\n\n.ad-contract-summary strong {
    display: block;
    color: #111827;
    font-size: 13px;
    font-weight: 1000;
    line-height: 1.35;
}\n\n.ad-option-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 14px 0;
}\n\n.ad-option-row label {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    padding: 9px 12px;
    border-radius: 999px;
    background: #f8fafc;
    color: #334155;
    font-size: 13px;
    font-weight: 1000;
}\n\n.ad-inline-preview-box {
    margin-top: 14px;
    padding: 14px;
    border-radius: 16px;
    background: #f8fafc;
}\n\n.ad-inline-preview-box > span {
    display: block;
    margin-bottom: 8px;
    color: #03c75a;
    font-size: 12px;
    font-weight: 1000;
}\n\n.ad-inline-preview {
    padding: 14px;
    border: 1px dashed #cbd5e1;
    border-radius: 14px;
    background: #ffffff;
}\n\n.ad-inline-preview strong {
    display: block;
    color: #111827;
    font-size: 16px;
    font-weight: 1000;
}\n\n.ad-inline-preview p {
    margin: 6px 0 0;
    color: #64748b;
    font-size: 13px;
    line-height: 1.6;
    font-weight: 800;
}\n\n.ad-preview-button {
    background: #111827;
    color: #ffffff;
}\n\n.ad-save-button {
    background: #03c75a;
    color: #ffffff;
}\n\n@media (max-width: 1120px) {
    .ad-live-editor-grid {
        grid-template-columns: 1fr;
    }

    .ad-contract-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}\n\n@media (max-width: 760px) {
    .ad-live-editor-toolbar,
    .ad-setting-grid,
    .ad-contract-summary {
        grid-template-columns: 1fr;
    }

    .ad-live-editor-toolbar {
        display: grid;
    }

    .ad-live-editor-toolbar label {
        min-width: 0;
    }

    .ad-map-body {
        grid-template-columns: 1fr;
    }

    .ad-map-body aside {
        min-height: 56px;
        writing-mode: initial;
    }
}\n\n/* ======================================================
   AD EDITOR FIX
   선택 위치 노랑 강조 + 드롭박스/계약 선택 보정
   ====================================================== */

.ad-editor-position-map[data-key="main_top"] [data-slot="main_top"],
.ad-editor-position-map[data-key="main_middle"] [data-slot="main_middle"],
.ad-editor-position-map[data-key="main_bottom"] [data-slot="main_bottom"],
.ad-editor-position-map[data-key="right_sidebar"] [data-slot="right_sidebar"],
.ad-editor-position-map[data-key="category_top"] [data-slot="category_top"],
.ad-editor-position-map[data-key="category_middle"] [data-slot="category_middle"],
.ad-editor-position-map[data-key="category_bottom"] [data-slot="category_bottom"],
.ad-editor-position-map[data-key="article_top"] [data-slot="article_top"],
.ad-editor-position-map[data-key="article_middle"] [data-slot="article_middle"],
.ad-editor-position-map[data-key="article_bottom"] [data-slot="article_bottom"],
.ad-editor-position-map[data-key="mobile_banner"] [data-slot="mobile_banner"],
.ad-editor-position-map[data-key="site_popup"] [data-slot~="site_popup"],
.ad-editor-position-map[data-key="category_popup"] [data-slot~="category_popup"],
.ad-editor-position-map[data-key="article_popup"] [data-slot~="article_popup"] {
    background: #ffe96a !important;
    color: #111827 !important;
    border: 2px solid #f59e0b !important;
    box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.18), 0 12px 26px rgba(245, 158, 11, 0.26) !important;
}\n\n.ad-live-editor-toolbar select,
.ad-setting-card select {
    cursor: pointer;
}\n\n.ad-setting-card select:disabled {
    cursor: not-allowed;
    background: #eef2f7;
    color: #94a3b8;
}\n\n.ad-editor-type-card.is-selected {
    outline: 3px solid #ffe96a !important;
    box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.14), 0 16px 38px rgba(15, 23, 42, 0.14) !important;
}\n\n/* ======================================================
   AD EDITOR VISUAL KEY FIX
   실제 DB placement_key와 화면 도식 표시용 key 분리 보정
   ====================================================== */

.ad-editor-position-map[data-key="main_top"] [data-slot="main_top"],
.ad-editor-position-map[data-key="main_middle"] [data-slot="main_middle"],
.ad-editor-position-map[data-key="main_bottom"] [data-slot="main_bottom"],
.ad-editor-position-map[data-key="right_sidebar"] [data-slot="right_sidebar"],
.ad-editor-position-map[data-key="category_top"] [data-slot="category_top"],
.ad-editor-position-map[data-key="category_middle"] [data-slot="category_middle"],
.ad-editor-position-map[data-key="category_bottom"] [data-slot="category_bottom"],
.ad-editor-position-map[data-key="article_top"] [data-slot="article_top"],
.ad-editor-position-map[data-key="article_middle"] [data-slot="article_middle"],
.ad-editor-position-map[data-key="article_bottom"] [data-slot="article_bottom"],
.ad-editor-position-map[data-key="mobile_banner"] [data-slot="mobile_banner"],
.ad-editor-position-map[data-key="site_popup"] [data-slot~="site_popup"],
.ad-editor-position-map[data-key="category_popup"] [data-slot~="category_popup"],
.ad-editor-position-map[data-key="article_popup"] [data-slot~="article_popup"] {
    background: #ffe96a !important;
    color: #111827 !important;
    border: 2px solid #f59e0b !important;
    box-shadow:
        0 0 0 4px rgba(245, 158, 11, 0.18),
        0 12px 26px rgba(245, 158, 11, 0.26) !important;
}\n\n.ad-editor-type-card.is-selected {
    outline: 3px solid #ffe96a !important;
    box-shadow:
        0 0 0 4px rgba(245, 158, 11, 0.16),
        0 16px 38px rgba(15, 23, 42, 0.14) !important;
}\n\n.ad-live-editor-toolbar select,
.ad-setting-card select {
    position: relative;
    z-index: 2;
    cursor: pointer;
}\n\n/* ======================================================
   AD EXISTING CREATIVE EDITOR
   배치 편집기 기존 배너 불러오기/수정 UI
   ====================================================== */

.ad-existing-creative-preview {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    margin: 14px 0;
    padding: 14px;
    border: 1px solid #d9e1ea;
    border-radius: 16px;
    background: #f8fafc;
}\n\n.ad-existing-creative-preview span {
    display: block;
    margin-bottom: 5px;
    color: #03c75a;
    font-size: 12px;
    font-weight: 1000;
}\n\n.ad-existing-creative-preview strong {
    display: block;
    color: #111827;
    font-size: 16px;
    font-weight: 1000;
    letter-spacing: -0.04em;
}\n\n.ad-existing-creative-preview p {
    margin: 6px 0 0;
    color: #64748b;
    font-size: 13px;
    line-height: 1.5;
    font-weight: 800;
}\n\n.ad-existing-creative-images {
    display: flex;
    gap: 10px;
    align-items: center;
}\n\n.ad-existing-creative-images figure {
    width: 118px;
    margin: 0;
}\n\n.ad-existing-creative-images img {
    width: 118px;
    height: 72px;
    object-fit: cover;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #ffffff;
}\n\n.ad-existing-creative-images figcaption {
    margin-top: 5px;
    color: #64748b;
    font-size: 11px;
    text-align: center;
    font-weight: 900;
}\n\n@media (max-width: 760px) {
    .ad-existing-creative-preview {
        grid-template-columns: 1fr;
    }

    .ad-existing-creative-images {
        flex-wrap: wrap;
    }
}\n\n/* ======================================================
   CONTRACT QUEUE THIRD COLUMN FIX
   광고유형 2열×3행 + 3번째 열 계약목록
   기존 K PRISM 카드 디자인 유지형
   ====================================================== */

.ad-placement-guide-grid.ad-editor-type-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: stretch;
}\n\n.ad-placement-guide-grid.ad-editor-type-grid > .ad-editor-type-card:nth-of-type(1) {
    grid-column: 1;
    grid-row: 1;
}\n\n.ad-placement-guide-grid.ad-editor-type-grid > .ad-editor-type-card:nth-of-type(2) {
    grid-column: 2;
    grid-row: 1;
}\n\n.ad-placement-guide-grid.ad-editor-type-grid > .ad-editor-type-card:nth-of-type(3) {
    grid-column: 1;
    grid-row: 2;
}\n\n.ad-placement-guide-grid.ad-editor-type-grid > .ad-editor-type-card:nth-of-type(4) {
    grid-column: 2;
    grid-row: 2;
}\n\n.ad-placement-guide-grid.ad-editor-type-grid > .ad-editor-type-card:nth-of-type(5) {
    grid-column: 1;
    grid-row: 3;
}\n\n.ad-placement-guide-grid.ad-editor-type-grid > .ad-editor-type-card:nth-of-type(6) {
    grid-column: 2;
    grid-row: 3;
}\n\n.ad-contract-queue-third-card {
    grid-column: 3;
    grid-row: 1 / span 3;
    min-height: 100%;
    padding: 18px;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}\n\n.ad-contract-third-head {
    display: grid;
    gap: 12px;
    margin-bottom: 14px;
}\n\n.ad-contract-third-head span {
    display: block;
    margin-bottom: 4px;
    color: #03c75a;
    font-size: 12px;
    font-weight: 1000;
}\n\n.ad-contract-third-head h2 {
    margin: 0;
    color: #111827;
    font-size: 22px;
    font-weight: 1000;
    letter-spacing: -0.05em;
}\n\n.ad-contract-third-head p {
    margin: 6px 0 0;
    color: #64748b;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 800;
}\n\n.ad-contract-third-tools {
    display: flex;
    gap: 8px;
}\n\n.ad-contract-third-tools select,
.ad-contract-third-tools button {
    min-height: 36px;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    padding: 0 11px;
    background: #ffffff;
    color: #334155;
    font-size: 12px;
    font-weight: 1000;
}\n\n.ad-contract-third-tools button {
    border: 0;
    background: #111827;
    color: #ffffff;
    cursor: pointer;
}\n\n.ad-contract-third-list {
    display: grid;
    gap: 10px;
    max-height: 650px;
    overflow: auto;
    padding-right: 2px;
}\n\n.ad-contract-third-row {
    position: relative;
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 8px 10px;
    padding: 13px;
    border: 1px solid #edf2f7;
    border-radius: 16px;
    background: #ffffff;
    cursor: pointer;
}\n\n.ad-contract-third-row.is-unplaced {
    border-color: #bfdbfe;
    background: #eff6ff;
}\n\n.ad-contract-third-row.is-unplaced .ad-contract-third-main strong,
.ad-contract-third-row.is-unplaced .ad-contract-third-placement strong {
    color: #1d4ed8;
}\n\n.ad-contract-third-row.is-placed {
    opacity: 0.58;
    background: #f8fafc;
}\n\n.ad-contract-third-check {
    grid-row: 1 / span 4;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 2px;
}\n\n.ad-contract-third-check input {
    width: 16px;
    height: 16px;
}\n\n.ad-contract-third-main,
.ad-contract-third-meta,
.ad-contract-third-placement,
.ad-contract-third-bottom {
    min-width: 0;
}\n\n.ad-contract-third-main strong,
.ad-contract-third-placement strong {
    display: block;
    color: #111827;
    font-size: 14px;
    font-weight: 1000;
    letter-spacing: -0.03em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}\n\n.ad-contract-third-main span,
.ad-contract-third-meta span,
.ad-contract-third-placement span {
    display: block;
    margin-top: 4px;
    color: #64748b;
    font-size: 11px;
    font-weight: 900;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}\n\n.ad-contract-third-meta {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 6px;
}\n\n.ad-contract-third-bottom {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: center;
    margin-top: 2px;
}\n\n.ad-contract-third-state {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 11px;
    font-style: normal;
    font-weight: 1000;
}\n\n.ad-contract-third-state.is-unplaced {
    background: #dbeafe;
    color: #1d4ed8;
}\n\n.ad-contract-third-state.is-placed {
    background: #e5e7eb;
    color: #64748b;
}\n\n.ad-contract-third-bottom button {
    min-height: 28px;
    border: 0;
    border-radius: 999px;
    padding: 0 10px;
    background: #111827;
    color: #ffffff;
    font-size: 11px;
    font-weight: 1000;
    cursor: pointer;
}\n\n.ad-contract-third-empty {
    padding: 22px;
    border-radius: 16px;
    background: #f8fafc;
    text-align: center;
}\n\n.ad-contract-third-empty strong {
    display: block;
    color: #111827;
    font-size: 16px;
    font-weight: 1000;
}\n\n.ad-contract-third-empty p {
    margin: 6px 0 0;
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
}\n\n@media (max-width: 1180px) {
    .ad-placement-guide-grid.ad-editor-type-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .ad-placement-guide-grid.ad-editor-type-grid > .ad-editor-type-card:nth-of-type(n) {
        grid-column: auto;
        grid-row: auto;
    }

    .ad-contract-queue-third-card {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    .ad-contract-third-list {
        max-height: none;
    }
}\n\n@media (max-width: 760px) {
    .ad-placement-guide-grid.ad-editor-type-grid {
        grid-template-columns: 1fr !important;
    }

    .ad-contract-third-tools,
    .ad-contract-third-meta {
        grid-template-columns: 1fr;
        display: grid;
    }
}\n\n.ad-live-editor-shell {
    display: none;
}\n\n.ad-live-editor-shell.is-editor-modal-open {
    position: fixed;
    inset: 0;
    z-index: 9998;
    display: grid;
    place-items: center;
    margin: 0;
    padding: 24px;
}\n\n.ad-live-editor-shell.is-editor-modal-open .ad-live-editor-form {
    position: relative;
    z-index: 1;
    width: min(1420px, calc(100vw - 42px));
    max-height: calc(100vh - 54px);
    overflow: auto;
    padding: 22px;
    border-radius: 24px;
    background: #ffffff;
    box-shadow: 0 24px 80px rgba(15, 23, 42, 0.28);
}\n\n/* 계약목록 리스트형 */
.ad-contract-third-tools {
    display: grid !important;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 8px !important;
}\n\n.ad-contract-third-list {
    gap: 6px !important;
    max-height: 610px !important;
}\n\n.ad-contract-third-row {
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) auto !important;
    gap: 6px 10px !important;
    align-items: center !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
    box-shadow: none !important;
}\n\n.ad-contract-third-check {
    grid-row: 1 / span 3 !important;
    grid-column: 1 !important;
    padding-top: 2px !important;
}\n\n.ad-contract-third-main {
    grid-column: 2 !important;
    grid-row: 1 !important;
}\n\n.ad-contract-third-meta {
    grid-column: 2 !important;
    grid-row: 2 !important;
    display: flex !important;
    gap: 8px !important;
}\n\n.ad-contract-third-placement {
    grid-column: 2 !important;
    grid-row: 3 !important;
}\n\n.ad-contract-third-bottom {
    grid-column: 3 !important;
    grid-row: 1 / span 3 !important;
    display: grid !important;
    gap: 6px !important;
    justify-items: end !important;
    align-content: center !important;
}\n\n.ad-contract-third-main strong,
.ad-contract-third-placement strong {
    font-size: 13px !important;
    font-weight: 760 !important;
}\n\n.ad-contract-third-main span,
.ad-contract-third-meta span,
.ad-contract-third-placement span {
    font-size: 11px !important;
    font-weight: 520 !important;
    color: #64748b !important;
}\n\n.ad-contract-third-state {
    min-height: 24px !important;
    padding: 0 9px !important;
    font-weight: 760 !important;
}\n\n.ad-contract-third-bottom button {
    min-height: 26px !important;
    font-weight: 760 !important;
}\n\n/* 보조 글씨 무게 완화 */
.ad-placement-guide-head p,
.ad-layout-mini,
.ad-contract-third-head p,
.ad-contract-third-meta,
.ad-contract-third-placement span,
.ad-live-editor-toolbar span,
.ad-live-editor-toolbar label,
.ad-setting-card .builder-card-head p,
.ad-position-map-card .builder-card-head p,
.ad-setting-card label,
.ad-contract-summary span,
.ad-inline-preview p,
.ad-existing-creative-preview p,
.ad-setting-card input,
.ad-setting-card select,
.ad-setting-card textarea {
    font-weight: 520 !important;
}\n\n.ad-contract-summary strong,
.ad-inline-preview strong,
.ad-existing-creative-preview strong {
    font-weight: 720 !important;
}\n\n.ad-setting-card .builder-card-head span,
.ad-position-map-card .builder-card-head span,
.ad-inline-preview-box > span,
.ad-existing-creative-preview span {
    font-weight: 760 !important;
}\n\n@media (max-width: 760px) {
    .ad-contract-third-tools {
        grid-template-columns: 1fr;
    }

    .ad-contract-detail-light-panel dl {
        grid-template-columns: 1fr;
    }
}\n\n/* 광고모달CSS완료 */

/* ======================================================
   CONTRACT QUEUE LIST MODE FIX
   3번째 열 계약목록 목록형 + 검색 + 짧은 삭제 버튼
   ====================================================== */

.ad-contract-queue-third-card {
    padding: 18px !important;
}\n\n.ad-contract-third-tools {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 112px 54px !important;
    gap: 8px !important;
    align-items: center !important;
}\n\n.ad-contract-third-tools input[type="search"] {
    width: 100%;
    min-height: 36px;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    padding: 0 12px;
    background: #ffffff;
    color: #111827;
    font-size: 12px;
    font-weight: 900;
}\n\n.ad-contract-third-tools button {
    min-width: 54px !important;
    width: 54px !important;
    padding: 0 !important;
}\n\n.ad-contract-third-list {
    gap: 6px !important;
    max-height: 660px;
}\n\n.ad-contract-third-row {
    display: grid !important;
    grid-template-columns: 22px minmax(110px, 1.35fr) minmax(90px, 0.95fr) minmax(95px, 1fr) 58px 62px !important;
    gap: 7px !important;
    align-items: center !important;
    padding: 8px 10px !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}\n\n.ad-contract-third-row.is-list-head {
    position: sticky;
    top: 0;
    z-index: 2;
    border: 1px solid #d9e1ea !important;
    background: #f1f5f9 !important;
    color: #334155 !important;
    font-size: 11px;
    font-weight: 1000;
    cursor: default;
}\n\n.ad-contract-third-row.is-list-head div {
    color: #334155 !important;
    font-size: 11px;
    font-weight: 1000;
}\n\n.ad-contract-third-row.is-unplaced {
    border-color: #bfdbfe !important;
    background: #eff6ff !important;
}\n\n.ad-contract-third-row.is-placed {
    opacity: 0.58 !important;
    background: #f8fafc !important;
}\n\n.ad-contract-third-check {
    grid-row: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding-top: 0 !important;
}\n\n.ad-contract-third-check input {
    width: 15px !important;
    height: 15px !important;
}\n\n.ad-contract-third-main,
.ad-contract-third-meta,
.ad-contract-third-placement,
.ad-contract-third-bottom {
    min-width: 0 !important;
}\n\n.ad-contract-third-main strong,
.ad-contract-third-placement strong {
    font-size: 12px !important;
    line-height: 1.2 !important;
}\n\n.ad-contract-third-main span,
.ad-contract-third-meta span,
.ad-contract-third-placement span {
    margin-top: 2px !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
}\n\n.ad-contract-third-meta {
    display: block !important;
}\n\n.ad-contract-third-bottom {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 4px !important;
    margin-top: 0 !important;
}\n\n.ad-contract-third-state {
    min-height: 22px !important;
    padding: 0 7px !important;
    font-size: 10px !important;
}\n\n.ad-contract-third-bottom button {
    min-height: 24px !important;
    padding: 0 7px !important;
    font-size: 10px !important;
}\n\n@media (max-width: 1320px) {
    .ad-contract-third-row {
        grid-template-columns: 22px minmax(0, 1.4fr) minmax(0, 1fr) 58px 62px !important;
    }

    .ad-contract-third-row > .ad-contract-third-placement,
    .ad-contract-third-row.is-list-head > div:nth-child(4) {
        display: none !important;
    }
}\n\n@media (max-width: 760px) {
    .ad-contract-third-tools {
        grid-template-columns: 1fr !important;
    }

    .ad-contract-third-tools button {
        width: 100% !important;
    }

    .ad-contract-third-row {
        grid-template-columns: 22px 1fr !important;
    }

    .ad-contract-third-row.is-list-head {
        display: none !important;
    }

    .ad-contract-third-meta,
    .ad-contract-third-placement,
    .ad-contract-third-bottom {
        grid-column: 2 !important;
    }
}\n\n/* ======================================================
   CONTRACT QUEUE REAL TABLE FIX
   3번째 열 광고계약 목록을 카드가 아닌 목록형으로 정렬
   ====================================================== */

.ad-contract-queue-third-card {
    overflow: hidden !important;
}\n\n.ad-contract-third-tools {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 86px 46px !important;
    gap: 7px !important;
    align-items: center !important;
}\n\n.ad-contract-third-tools input[type="search"] {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 36px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 999px !important;
    padding: 0 12px !important;
    background: #ffffff !important;
    color: #111827 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    outline: none !important;
}\n\n.ad-contract-third-tools input[type="search"]:focus {
    border-color: #03c75a !important;
    box-shadow: 0 0 0 3px rgba(3, 199, 90, 0.14) !important;
}\n\n.ad-contract-third-tools select {
    width: 86px !important;
    min-width: 0 !important;
}\n\n.ad-contract-third-tools button {
    width: 46px !important;
    min-width: 46px !important;
    padding: 0 !important;
}\n\n.ad-contract-table {
    display: grid !important;
    gap: 6px !important;
    max-height: 660px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-right: 2px !important;
}\n\n.ad-contract-table-row {
    width: 100% !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns:
        22px
        minmax(0, 1.25fr)
        minmax(0, 0.95fr)
        minmax(0, 1fr)
        48px
        42px !important;
    gap: 6px !important;
    align-items: center !important;
    padding: 8px 9px !important;
    border: 1px solid #edf2f7 !important;
    border-radius: 10px !important;
    background: #ffffff !important;
    box-shadow: none !important;
}\n\n.ad-contract-table-row.is-head {
    position: sticky !important;
    top: 0 !important;
    z-index: 3 !important;
    border-color: #d9e1ea !important;
    background: #f1f5f9 !important;
    color: #334155 !important;
    font-size: 11px !important;
    font-weight: 1000 !important;
}\n\n.ad-contract-table-row.is-head > div {
    color: #334155 !important;
    font-size: 11px !important;
    font-weight: 1000 !important;
    white-space: nowrap !important;
}\n\n.ad-contract-table-row.is-unplaced {
    border-color: #bfdbfe !important;
    background: #eff6ff !important;
}\n\n.ad-contract-table-row.is-unplaced .is-main strong,
.ad-contract-table-row.is-unplaced .is-place strong {
    color: #1d4ed8 !important;
}\n\n.ad-contract-table-row.is-placed {
    opacity: 0.58 !important;
    background: #f8fafc !important;
}\n\n.ad-contract-table-row > div {
    min-width: 0 !important;
}\n\n.ad-contract-table-row .is-check {
    display: grid !important;
    place-items: center !important;
}\n\n.ad-contract-table-row input[type="checkbox"] {
    width: 15px !important;
    height: 15px !important;
}\n\n.ad-contract-table-row strong {
    display: block !important;
    max-width: 100% !important;
    color: #111827 !important;
    font-size: 12px !important;
    font-weight: 1000 !important;
    line-height: 1.22 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}\n\n.ad-contract-table-row span {
    display: block !important;
    max-width: 100% !important;
    margin-top: 2px !important;
    color: #64748b !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    line-height: 1.22 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}\n\n.ad-contract-table-state {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 22px !important;
    width: 44px !important;
    border-radius: 999px !important;
    font-size: 10px !important;
    font-style: normal !important;
    font-weight: 1000 !important;
}\n\n.ad-contract-table-state.is-unplaced {
    background: #dbeafe !important;
    color: #1d4ed8 !important;
}\n\n.ad-contract-table-state.is-placed {
    background: #e5e7eb !important;
    color: #64748b !important;
}\n\n.ad-contract-table-row .is-action button {
    width: 38px !important;
    min-height: 24px !important;
    border: 0 !important;
    border-radius: 999px !important;
    padding: 0 !important;
    background: #111827 !important;
    color: #ffffff !important;
    font-size: 10px !important;
    font-weight: 1000 !important;
    cursor: pointer !important;
}\n\n.ad-contract-table-row .is-state,
.ad-contract-table-row .is-action {
    display: grid !important;
    place-items: center !important;
}\n\n/* 이전 카드형 계약목록 클래스가 남아도 화면에 영향 없도록 무력화 */
.ad-contract-third-row:not(.is-list-head) {
    display: none;
}\n\n@media (max-width: 1320px) {
    .ad-contract-table-row {
        grid-template-columns:
            22px
            minmax(0, 1.2fr)
            minmax(0, 0.85fr)
            48px
            42px !important;
    }

    .ad-contract-table-row > .is-place,
    .ad-contract-table-row.is-head > div:nth-child(4) {
        display: none !important;
    }
}\n\n@media (max-width: 760px) {
    .ad-contract-third-tools {
        grid-template-columns: 1fr !important;
    }

    .ad-contract-third-tools select,
    .ad-contract-third-tools button {
        width: 100% !important;
    }

    .ad-contract-table-row {
        grid-template-columns: 22px 1fr !important;
    }

    .ad-contract-table-row.is-head {
        display: none !important;
    }

    .ad-contract-table-row > .is-date,
    .ad-contract-table-row > .is-place,
    .ad-contract-table-row > .is-state,
    .ad-contract-table-row > .is-action {
        grid-column: 2 !important;
        justify-items: start !important;
    }
}\n\n/* ======================================================
   CONTRACT EXPIRE DAY TEXT
   광고계약목록 계약만료 D-day 적색 표시
   ====================================================== */

.ad-contract-table-row .ad-contract-expire-text {
    margin-top: 2px !important;
    color: #ef4444 !important;
    font-size: 10px !important;
    font-weight: 1000 !important;
    line-height: 1.2 !important;
}\n\n/* ======================================================
   CONTRACT TITLE EXPIRE BADGE
   광고계약 제목 옆 계약만료 D-day 표시
   ====================================================== */

.ad-contract-table-row .ad-contract-title-line {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    min-width: 0 !important;
    margin-top: 2px !important;
}\n\n.ad-contract-table-row .ad-contract-title-line span {
    min-width: 0 !important;
    flex: 1 1 auto !important;
    margin-top: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}\n\n.ad-contract-table-row .ad-contract-title-line em {
    flex: 0 0 auto !important;
    color: #ef4444 !important;
    font-size: 10px !important;
    font-style: normal !important;
    font-weight: 1000 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}\n\n/* ======================================================
   CONTRACT EXPIRE BADGE MODAL ONLY
   리스트 내 만료일 숨김, 계약확인 모달 제목 옆 표시
   ====================================================== */

.ad-contract-table-row .ad-contract-expire-text,
.ad-contract-table-row .ad-contract-title-line em {
    display: none !important;
}\n\n/* ======================================================
   CONTRACT EXPIRE TEXT TWO PLACES
   1) 리스트 계약일/상태 아래
   2) 계약확인 모달 제목 오른쪽
   ====================================================== */

.ad-contract-table-row .ad-contract-expire-inline {
    display: block !important;
    margin-top: 2px !important;
    color: #ef4444 !important;
    font-size: 10px !important;
    font-weight: 1000 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}\n\n.ad-contract-table-row .ad-contract-expire-inline {
    display: block !important;
    margin-top: 2px !important;
    color: #ef4444 !important;
    font-size: 10px !important;
    font-weight: 1000 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}\n

/* ======================================================
   Ad contract period order and autocalc polish
   ====================================================== */

.ad-modern-form [data-field-name="months"],
.ad-modern-form [data-field-name="monthly_price"] {
    border-color: #b7cdfc;
    box-shadow: inset 0 0 0 2px rgba(37, 99, 235, 0.12);
}

.ad-modern-form [data-field-name="start_date"],
.ad-modern-form [data-field-name="end_date"] {
    border-color: #dbe3ef;
}

.ad-modern-form .is-auto-calculated {
    background: #f1f5f9;
    color: #0f172a;
    font-weight: 1000;
}


/* ======================================================
   Staff organization screen
   회원사 조직관리 2단계
   ====================================================== */

.staff-org-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 20px 0;
}

.staff-org-summary article {
    border-radius: 22px;
    padding: 20px;
    background: #ffffff;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
}

.staff-org-summary span {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
}

.staff-org-summary strong {
    display: block;
    margin-top: 6px;
    color: #0f172a;
    font-size: 30px;
    font-weight: 1000;
    letter-spacing: -0.06em;
}

.staff-org-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 20px;
}

.staff-org-card {
    margin-top: 20px;
    border-radius: 26px;
    padding: 24px;
    background: #ffffff;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
}

.staff-org-card-head {
    margin-bottom: 18px;
}

.staff-org-card-head h2 {
    margin: 0;
    color: #0f172a;
    font-size: 23px;
    font-weight: 1000;
    letter-spacing: -0.05em;
}

.staff-org-card-head p {
    margin: 6px 0 0;
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
}

.staff-org-form {
    display: grid;
    gap: 12px;
}

.staff-org-form label {
    color: #0f172a;
    font-size: 13px;
    font-weight: 1000;
}

.staff-org-form input,
.staff-org-form select {
    width: 100%;
    min-height: 42px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    padding: 0 13px;
    background: #ffffff;
    color: #0f172a;
    font-size: 13px;
    font-weight: 850;
}

.staff-org-form button {
    min-height: 42px;
    border: 0;
    border-radius: 14px;
    padding: 0 16px;
    background: #03c75a;
    color: #ffffff;
    font-size: 13px;
    font-weight: 1000;
    cursor: pointer;
}

.staff-org-checkbox {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
}

.staff-org-checkbox input {
    width: auto !important;
    min-height: auto !important;
}

.staff-org-checkbox span {
    color: #334155;
    font-size: 13px;
    font-weight: 900;
}

.staff-org-department-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 12px;
}

.staff-org-department-card {
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    padding: 16px;
    background: #f8fafc;
}

.staff-org-department-card strong {
    display: block;
    color: #0f172a;
    font-size: 16px;
    font-weight: 1000;
}

.staff-org-department-card span,
.staff-org-department-card em {
    display: block;
    margin-top: 6px;
    color: #64748b;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
}

.staff-org-table {
    display: grid;
    gap: 8px;
}

.staff-org-row {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr 1fr 80px 90px;
    gap: 12px;
    align-items: center;
    min-height: 48px;
    border: 1px solid #edf1f7;
    border-radius: 16px;
    padding: 10px 14px;
    color: #172033;
    font-size: 13px;
    font-weight: 850;
}

.staff-org-row-head {
    background: #f8fafc;
    color: #475569;
    font-size: 12px;
    font-weight: 1000;
}

.staff-org-empty {
    border: 1px dashed #cbd5e1;
    border-radius: 18px;
    padding: 24px;
    background: #f8fafc;
    color: #64748b;
    font-size: 13px;
    font-weight: 900;
    text-align: center;
}

@media (max-width: 960px) {
    .staff-org-summary,
    .staff-org-grid {
        grid-template-columns: 1fr;
    }

    .staff-org-row {
        grid-template-columns: 1fr;
    }
}

/* Staff organization compact density patch */
/* 조직관리 화면 밀도 보정: 기존 디자인 유지 + 여백/입력칸/카드 높이 축소 */

.staff-org-summary {
    gap: 10px;
    margin: 12px 0;
}

.staff-org-summary article {
    border-radius: 16px;
    padding: 12px 16px;
}

.staff-org-summary span {
    font-size: 11px;
}

.staff-org-summary strong {
    margin-top: 2px;
    font-size: 22px;
}

.staff-org-grid {
    align-items: start;
    gap: 12px;
    margin-bottom: 12px;
}

.staff-org-card {
    margin-top: 12px;
    border-radius: 18px;
    padding: 16px;
}

.staff-org-card-head {
    margin-bottom: 10px;
}

.staff-org-card-head h2 {
    font-size: 19px;
}

.staff-org-card-head p {
    margin-top: 3px;
    font-size: 12px;
    line-height: 1.35;
}

.staff-org-form {
    gap: 8px;
}

.staff-org-form label {
    font-size: 12px;
}

.staff-org-form input,
.staff-org-form select {
    min-height: 34px;
    border-radius: 10px;
    padding: 0 10px;
    font-size: 12px;
}

.staff-org-form button {
    min-height: 34px;
    border-radius: 10px;
    font-size: 12px;
}

.staff-org-checkbox {
    gap: 6px;
    margin: 0;
}

.staff-org-checkbox span {
    font-size: 12px;
}

.staff-org-department-list {
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 8px;
}

.staff-org-department-card {
    border-radius: 14px;
    padding: 12px;
}

.staff-org-department-card strong {
    font-size: 14px;
}

.staff-org-department-card span,
.staff-org-department-card em {
    margin-top: 3px;
    font-size: 11px;
}

.staff-org-table {
    gap: 6px;
}

.staff-org-row {
    min-height: 38px;
    border-radius: 12px;
    padding: 8px 10px;
    font-size: 12px;
}

.staff-org-row-head {
    font-size: 11px;
}

.staff-org-empty {
    border-radius: 14px;
    padding: 14px;
    font-size: 12px;
}

/* Staff organization dense card layout patch */
/* 조직관리: 카드형 2x2 배치 + 우측 목록 스크롤 + 클릭 상세 */

.staff-org-dense-page {
    padding-top: 16px;
}

.staff-org-dense-topbar {
    margin-bottom: 10px;
}

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

.staff-org-mini-summary article {
    min-height: 52px;
    border-radius: 14px;
    padding: 10px 14px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

.staff-org-mini-summary span {
    display: block;
    color: #64748b;
    font-size: 11px;
    font-weight: 900;
}

.staff-org-mini-summary strong {
    display: block;
    margin-top: 2px;
    color: #0f172a;
    font-size: 22px;
    font-weight: 1000;
    letter-spacing: -0.06em;
}

.staff-org-board {
    display: grid;
    grid-template-columns: minmax(360px, 0.95fr) minmax(420px, 1.25fr);
    gap: 12px;
    align-items: start;
}

.staff-org-panel {
    min-width: 0;
    border-radius: 18px;
    padding: 14px;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.07);
}

.staff-org-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.staff-org-panel-head h2 {
    margin: 0;
    color: #0f172a;
    font-size: 18px;
    font-weight: 1000;
    letter-spacing: -0.05em;
}

.staff-org-panel-head p {
    margin: 3px 0 0;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
}

.staff-org-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 24px;
    border-radius: 999px;
    background: #e8fff2;
    color: #07883d;
    font-size: 12px;
    font-weight: 1000;
}

.staff-org-compact-form {
    display: grid;
    gap: 8px;
}

.staff-org-form-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(110px, 0.65fr);
    gap: 8px;
}

.staff-org-field {
    min-width: 0;
}

.staff-org-field label {
    display: block;
    margin-bottom: 4px;
    color: #172033;
    font-size: 12px;
    font-weight: 1000;
}

.staff-org-field input,
.staff-org-field select {
    width: 100%;
    height: 32px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 9px;
    padding: 0 9px;
    background: #ffffff;
    color: #0f172a;
    font-size: 12px;
    font-weight: 850;
}

.staff-org-field-small {
    max-width: 130px;
}

.staff-org-check-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    align-items: center;
    min-height: 26px;
}

.staff-org-check-group label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    color: #334155;
    font-size: 12px;
    font-weight: 900;
}

.staff-org-check-group input {
    width: 14px;
    height: 14px;
}

.staff-org-submit {
    height: 34px;
    border: 0;
    border-radius: 10px;
    background: #03c75a;
    color: #ffffff;
    font-size: 12px;
    font-weight: 1000;
    cursor: pointer;
}

.staff-org-list-panel {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    min-height: 230px;
}

.staff-org-selected-detail {
    display: grid;
    gap: 3px;
    min-height: 58px;
    margin-bottom: 8px;
    border: 1px solid #dbeafe;
    border-radius: 12px;
    padding: 10px 12px;
    background: #eff6ff;
    color: #1e3a8a;
}

.staff-org-selected-detail strong {
    color: #172554;
    font-size: 13px;
    font-weight: 1000;
}

.staff-org-selected-detail span {
    color: #1e40af;
    font-size: 11px;
    font-weight: 850;
    line-height: 1.35;
}

.staff-org-scroll-list {
    display: grid;
    gap: 7px;
    max-height: 210px;
    overflow-y: auto;
    padding-right: 4px;
}

.staff-org-scroll-list::-webkit-scrollbar {
    width: 7px;
}

.staff-org-scroll-list::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #cbd5e1;
}

.staff-org-list-item {
    display: grid;
    grid-template-columns: minmax(90px, 0.95fr) minmax(80px, 0.85fr) minmax(70px, 0.7fr);
    gap: 8px;
    align-items: center;
    width: 100%;
    min-height: 38px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 8px 10px;
    background: #f8fafc;
    color: #172033;
    text-align: left;
    cursor: pointer;
}

.staff-org-list-item:hover,
.staff-org-list-item.is-selected {
    border-color: #86efac;
    background: #f0fdf4;
}

.staff-org-list-item strong,
.staff-org-list-item span,
.staff-org-list-item em {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.staff-org-list-item strong {
    color: #0f172a;
    font-size: 12px;
    font-weight: 1000;
}

.staff-org-list-item span {
    color: #475569;
    font-size: 11px;
    font-weight: 850;
}

.staff-org-list-item em {
    color: #64748b;
    font-size: 11px;
    font-style: normal;
    font-weight: 850;
}

.staff-org-empty {
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    padding: 16px;
    background: #f8fafc;
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
    text-align: center;
}

/* 기존 조직관리 CSS 일부 무력화 */
.staff-org-summary,
.staff-org-grid,
.staff-org-card,
.staff-org-table,
.staff-org-row,
.staff-org-department-list,
.staff-org-department-card {
    all: unset;
}

@media (max-width: 1100px) {
    .staff-org-board {
        grid-template-columns: 1fr;
    }

    .staff-org-scroll-list {
        max-height: 240px;
    }
}

@media (max-width: 720px) {
    .staff-org-mini-summary {
        grid-template-columns: 1fr;
    }

    .staff-org-form-row,
    .staff-org-list-item {
        grid-template-columns: 1fr;
    }

    .staff-org-field-small {
        max-width: none;
    }
}

/* Staff organization font match with article list page */
/* 조직관리 글자 크기: 기사관리 페이지 기준으로 통일 */

.staff-org-dense-topbar p,
.staff-org-mini-summary span,
.staff-org-panel-head p,
.staff-org-field label,
.staff-org-count,
.staff-org-check-group label,
.staff-org-empty {
    font-size: 12px !important;
}

.staff-org-field input,
.staff-org-field select,
.staff-org-submit {
    font-size: 14px !important;
}

.staff-org-panel-head h2 {
    font-size: 18px !important;
    line-height: 1.25 !important;
}

.staff-org-mini-summary strong {
    font-size: 22px !important;
    line-height: 1.15 !important;
}

.staff-org-selected-detail strong {
    font-size: 15px !important;
    line-height: 1.3 !important;
}

.staff-org-selected-detail span {
    font-size: 13px !important;
    line-height: 1.35 !important;
}

.staff-org-list-item strong {
    font-size: 15px !important;
    line-height: 1.3 !important;
}

.staff-org-list-item span,
.staff-org-list-item em {
    font-size: 13px !important;
    line-height: 1.3 !important;
}

.staff-org-check-group span {
    font-size: 13px !important;
    line-height: 1.3 !important;
}

/* 글자 크기를 키우되, 화면 밀도는 유지 */
.staff-org-field input,
.staff-org-field select {
    height: 36px !important;
    padding: 0 10px !important;
}

.staff-org-submit {
    height: 36px !important;
}

.staff-org-list-item {
    min-height: 42px !important;
    padding: 8px 10px !important;
}

.staff-org-selected-detail {
    min-height: 62px !important;
}

/* Review settings dense screen */
/* 검토설정: 기사관리 폰트 체계 + 조직관리 고밀도 카드 기준 */

.review-settings-page {
    padding-top: 16px;
}

.review-settings-topbar {
    margin-bottom: 10px;
}

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

.review-settings-summary article {
    min-height: 52px;
    border-radius: 14px;
    padding: 10px 14px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

.review-settings-summary span {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
}

.review-settings-summary strong {
    display: block;
    margin-top: 2px;
    color: #0f172a;
    font-size: 18px;
    font-weight: 1000;
    letter-spacing: -0.04em;
}

.review-settings-board {
    display: grid;
    grid-template-columns: minmax(420px, 0.95fr) minmax(420px, 1.05fr);
    gap: 12px;
    align-items: start;
}

.review-settings-panel {
    min-width: 0;
    border-radius: 18px;
    padding: 14px;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.07);
}

.review-settings-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.review-settings-panel-head h2 {
    margin: 0;
    color: #0f172a;
    font-size: 18px;
    font-weight: 1000;
    letter-spacing: -0.05em;
}

.review-settings-panel-head p {
    margin: 3px 0 0;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
}

.review-settings-form {
    display: grid;
    gap: 9px;
}

.review-settings-field label {
    display: block;
    margin-bottom: 4px;
    color: #172033;
    font-size: 12px;
    font-weight: 1000;
}

.review-settings-field select,
.review-settings-field textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 9px;
    background: #ffffff;
    color: #0f172a;
    font-size: 14px;
    font-weight: 850;
}

.review-settings-field select {
    height: 36px;
    padding: 0 10px;
}

.review-settings-field textarea {
    min-height: 88px;
    padding: 10px;
    resize: vertical;
    line-height: 1.45;
}

.review-settings-check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.review-settings-check-grid label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    border: 1px solid #e2e8f0;
    border-radius: 11px;
    padding: 0 10px;
    background: #f8fafc;
    color: #334155;
    font-size: 13px;
    font-weight: 900;
}

.review-settings-check-grid input {
    width: 14px;
    height: 14px;
}

.review-settings-submit {
    height: 36px;
    border: 0;
    border-radius: 10px;
    background: #03c75a;
    color: #ffffff;
    font-size: 14px;
    font-weight: 1000;
    cursor: pointer;
}

.review-flow-scroll-list {
    display: grid;
    gap: 8px;
    max-height: 276px;
    overflow-y: auto;
    padding-right: 4px;
}

.review-flow-scroll-list::-webkit-scrollbar {
    width: 7px;
}

.review-flow-scroll-list::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #cbd5e1;
}

.review-flow-card {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid #e2e8f0;
    border-radius: 13px;
    padding: 10px 12px;
    background: #f8fafc;
}

.review-flow-card.is-selected {
    border-color: #86efac;
    background: #f0fdf4;
}

.review-flow-card strong {
    display: block;
    color: #0f172a;
    font-size: 15px;
    font-weight: 1000;
    line-height: 1.3;
}

.review-flow-card span {
    display: block;
    margin-top: 3px;
    color: #64748b;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.35;
}

.review-flow-card em {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 4px 8px;
    background: #03c75a;
    color: #ffffff;
    font-size: 11px;
    font-style: normal;
    font-weight: 1000;
}

.review-settings-note {
    display: grid;
    gap: 3px;
    margin-top: 10px;
    border: 1px solid #dbeafe;
    border-radius: 12px;
    padding: 10px 12px;
    background: #eff6ff;
}

.review-settings-note strong {
    color: #172554;
    font-size: 15px;
    font-weight: 1000;
}

.review-settings-note span {
    color: #1e40af;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.35;
}

@media (max-width: 1100px) {
    .review-settings-board {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .review-settings-summary,
    .review-settings-check-grid {
        grid-template-columns: 1fr;
    }
}

/* Review easy publishing UI */
/* 검토설정 쉬운 UI: 기사 발행 방식 카드 + 바로발행 기자 목록 */

.review-easy-page {
    padding-top: 16px;
}

.review-easy-topbar {
    margin-bottom: 10px;
}

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

.review-easy-summary article {
    min-height: 52px;
    border-radius: 14px;
    padding: 10px 14px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

.review-easy-summary span {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
}

.review-easy-summary strong {
    display: block;
    margin-top: 2px;
    color: #0f172a;
    font-size: 18px;
    font-weight: 1000;
    letter-spacing: -0.04em;
}

.review-easy-board {
    display: grid;
    grid-template-columns: minmax(620px, 1fr) minmax(320px, 0.42fr);
    gap: 12px;
    align-items: start;
}

.review-easy-panel {
    min-width: 0;
    border-radius: 18px;
    padding: 14px;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.07);
}

.review-easy-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.review-easy-panel-head.is-compact {
    margin-bottom: 8px;
}

.review-easy-panel-head h2 {
    margin: 0;
    color: #0f172a;
    font-size: 18px;
    font-weight: 1000;
    letter-spacing: -0.05em;
}

.review-easy-panel-head p {
    margin: 3px 0 0;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
}

.review-easy-panel-head a {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 30px;
    border-radius: 999px;
    padding: 0 11px;
    background: #03c75a;
    color: #ffffff;
    font-size: 12px;
    font-weight: 1000;
    text-decoration: none;
}

.review-easy-form {
    display: grid;
    gap: 10px;
}

.review-easy-flow-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.review-easy-flow-card {
    display: grid;
    gap: 6px;
    min-height: 154px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 10px;
    background: #f8fafc;
    cursor: pointer;
}

.review-easy-flow-card:hover,
.review-easy-flow-card.is-selected {
    border-color: #86efac;
    background: #f0fdf4;
}

.review-easy-flow-card input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.review-easy-flow-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.review-easy-flow-card strong {
    color: #0f172a;
    font-size: 15px;
    font-weight: 1000;
    line-height: 1.25;
}

.review-easy-flow-card em {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 3px 7px;
    background: #e2e8f0;
    color: #475569;
    font-size: 11px;
    font-style: normal;
    font-weight: 1000;
}

.review-easy-flow-card.is-selected em {
    background: #03c75a;
    color: #ffffff;
}

.review-easy-flow-card > span {
    color: #1e3a8a;
    font-size: 13px;
    font-weight: 1000;
    line-height: 1.3;
}

.review-easy-flow-card p {
    margin: 0;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
}

.review-easy-flow-card ol {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.review-easy-flow-card li {
    border-radius: 999px;
    padding: 3px 7px;
    background: #ffffff;
    color: #334155;
    font-size: 11px;
    font-weight: 900;
}

.review-easy-current-flow {
    display: grid;
    gap: 7px;
    border: 1px solid #dbeafe;
    border-radius: 13px;
    padding: 10px 12px;
    background: #eff6ff;
}

.review-easy-current-flow strong {
    color: #172554;
    font-size: 15px;
    font-weight: 1000;
}

.review-easy-current-flow div {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.review-easy-current-flow span {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    border-radius: 999px;
    padding: 0 10px;
    background: #ffffff;
    color: #1e40af;
    font-size: 13px;
    font-weight: 1000;
}

.review-easy-option-box {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 12px;
    background: #f8fafc;
}

.review-easy-check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.review-easy-check-grid label {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    min-height: 58px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 9px 10px;
    background: #ffffff;
}

.review-easy-check-grid input {
    width: 14px;
    height: 14px;
    margin-top: 2px;
}

.review-easy-check-grid strong {
    display: block;
    color: #0f172a;
    font-size: 13px;
    font-weight: 1000;
    line-height: 1.3;
}

.review-easy-check-grid small {
    display: block;
    margin-top: 2px;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
}

.review-easy-memo {
    display: grid;
    gap: 4px;
}

.review-easy-memo label {
    color: #172033;
    font-size: 12px;
    font-weight: 1000;
}

.review-easy-memo textarea {
    width: 100%;
    min-height: 72px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    padding: 10px;
    background: #ffffff;
    color: #0f172a;
    font-size: 14px;
    font-weight: 850;
    line-height: 1.45;
    resize: vertical;
}

.review-easy-submit {
    height: 38px;
    border: 0;
    border-radius: 10px;
    background: #03c75a;
    color: #ffffff;
    font-size: 14px;
    font-weight: 1000;
    cursor: pointer;
}

.review-easy-side-panel {
    display: grid;
    gap: 10px;
}

.review-easy-staff-list {
    display: grid;
    gap: 7px;
    max-height: 210px;
    overflow-y: auto;
    padding-right: 4px;
}

.review-easy-staff-list.is-short {
    max-height: 150px;
}

.review-easy-staff-list::-webkit-scrollbar {
    width: 7px;
}

.review-easy-staff-list::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #cbd5e1;
}

.review-easy-staff-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 9px 10px;
    background: #f8fafc;
}

.review-easy-staff-card strong {
    display: block;
    color: #0f172a;
    font-size: 15px;
    font-weight: 1000;
    line-height: 1.3;
}

.review-easy-staff-card span {
    display: block;
    margin-top: 2px;
    color: #64748b;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.3;
}

.review-easy-staff-card em {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 4px 8px;
    background: #e8fff2;
    color: #07883d;
    font-size: 11px;
    font-style: normal;
    font-weight: 1000;
}

.review-easy-empty {
    display: grid;
    gap: 4px;
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    padding: 14px;
    background: #f8fafc;
}

.review-easy-empty strong {
    color: #0f172a;
    font-size: 14px;
    font-weight: 1000;
}

.review-easy-empty span {
    color: #64748b;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.35;
}

.review-easy-reviewer-head {
    margin-top: 4px;
}

.review-easy-help {
    display: grid;
    gap: 3px;
    border: 1px solid #dbeafe;
    border-radius: 12px;
    padding: 10px 12px;
    background: #eff6ff;
}

.review-easy-help strong {
    color: #172554;
    font-size: 15px;
    font-weight: 1000;
}

.review-easy-help span {
    color: #1e40af;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.35;
}

/* 기존 review-settings 화면 CSS보다 우선 */
.review-settings-summary,
.review-settings-board,
.review-settings-panel,
.review-flow-scroll-list,
.review-flow-card,
.review-settings-note {
    all: unset;
}

@media (max-width: 1320px) {
    .review-easy-flow-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .review-easy-board {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 760px) {
    .review-easy-summary,
    .review-easy-flow-grid,
    .review-easy-check-grid {
        grid-template-columns: 1fr;
    }
}

/* Review easy font weight comfort patch */
/* 검토설정 화면: 과한 굵기 완화, 제목만 강조하고 설명문은 읽기 편하게 */

.review-easy-page {
    color: #172033;
}

/* 상단 작은 영문/요약 라벨 */
.review-easy-topbar p,
.review-easy-summary span,
.review-easy-panel-head p,
.review-easy-flow-card p,
.review-easy-check-grid small,
.review-easy-staff-card span,
.review-easy-empty span,
.review-easy-help span,
.review-easy-memo label {
    font-weight: 500 !important;
}

/* 페이지 제목과 큰 제목은 선명하되 과하지 않게 */
.review-easy-topbar h1,
.review-easy-panel-head h2 {
    font-weight: 760 !important;
}

/* 상단 요약값 */
.review-easy-summary strong {
    font-weight: 720 !important;
}

/* 발행 방식 카드 제목 */
.review-easy-flow-card strong {
    font-weight: 760 !important;
}

/* 카드 안 파란 핵심문구 */
.review-easy-flow-card > span {
    font-weight: 650 !important;
}

/* 배지와 단계 pill은 조금 가볍게 */
.review-easy-flow-card em,
.review-easy-flow-card li,
.review-easy-current-flow span,
.review-easy-staff-card em {
    font-weight: 650 !important;
}

/* 현재 적용 흐름 */
.review-easy-current-flow strong {
    font-weight: 720 !important;
}

/* 옵션 제목 */
.review-easy-check-grid strong {
    font-weight: 700 !important;
}

/* 우측 기자 목록 이름 */
.review-easy-staff-card strong {
    font-weight: 720 !important;
}

/* 빈 상태/도움말 제목 */
.review-easy-empty strong,
.review-easy-help strong {
    font-weight: 700 !important;
}

/* 버튼은 강조 유지하되 뭉개지지 않게 */
.review-easy-submit,
.review-easy-panel-head a {
    font-weight: 760 !important;
}

/* 입력 텍스트 */
.review-easy-memo textarea {
    font-weight: 500 !important;
}

/* 전체 카드 문장 가독성 */
.review-easy-flow-card p,
.review-easy-check-grid small,
.review-easy-help span,
.review-easy-empty span {
    color: #5f6f82 !important;
}

/* 선택된 카드도 과하게 두껍지 않게 */
.review-easy-flow-card.is-selected strong {
    font-weight: 780 !important;
}

.review-easy-flow-card.is-selected > span {
    font-weight: 700 !important;
}

/* Review easy selected feedback patch */
/* 검토설정: 발행 방식 선택 시 즉시 시각 표시 */

.review-easy-flow-card {
    position: relative !important;
    outline: 0 !important;
    transition:
        border-color 0.16s ease,
        background 0.16s ease,
        box-shadow 0.16s ease,
        transform 0.16s ease !important;
}

.review-easy-flow-card:hover {
    transform: translateY(-1px);
}

.review-easy-flow-card.is-selected {
    border-color: #22c55e !important;
    background: #f0fdf4 !important;
    box-shadow:
        0 0 0 3px rgba(34, 197, 94, 0.14),
        0 12px 26px rgba(15, 23, 42, 0.08) !important;
}

.review-easy-flow-card.is-selected::after {
    content: "선택됨";
    position: absolute;
    right: 10px;
    bottom: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 22px;
    border-radius: 999px;
    padding: 0 8px;
    background: #22c55e;
    color: #ffffff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
}

.review-easy-flow-card.is-just-selected {
    animation: reviewEasySelectedPulse 0.42s ease;
}

@keyframes reviewEasySelectedPulse {
    0% {
        box-shadow:
            0 0 0 0 rgba(34, 197, 94, 0.28),
            0 12px 26px rgba(15, 23, 42, 0.08);
    }

    100% {
        box-shadow:
            0 0 0 8px rgba(34, 197, 94, 0),
            0 12px 26px rgba(15, 23, 42, 0.08);
    }
}

.review-easy-current-flow {
    transition: border-color 0.16s ease, background 0.16s ease;
}

.review-easy-current-flow span {
    transition: background 0.16s ease, color 0.16s ease;
}

.review-easy-flow-card:focus-visible {
    box-shadow:
        0 0 0 3px rgba(37, 99, 235, 0.18),
        0 12px 26px rgba(15, 23, 42, 0.08) !important;
}

/* Staff organization edit interaction patch */
/* 조직관리: 임직원 클릭 수정 모드 시각화 */

.staff-org-reset-edit {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 30px;
    border: 0;
    border-radius: 999px;
    padding: 0 11px;
    background: #f1f5f9;
    color: #334155;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.staff-org-reset-edit:hover {
    background: #e2e8f0;
}

.staff-org-edit-notice {
    display: grid;
    gap: 3px;
    margin: 0 0 9px;
    border: 1px solid #dbeafe;
    border-radius: 12px;
    padding: 9px 11px;
    background: #eff6ff;
}

.staff-org-edit-notice strong {
    color: #172554;
    font-size: 14px;
    font-weight: 700;
}

.staff-org-edit-notice span {
    color: #1e40af;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
}

.staff-org-edit-notice.is-editing {
    border-color: #86efac;
    background: #f0fdf4;
}

.staff-org-edit-notice.is-editing strong {
    color: #166534;
}

.staff-org-edit-notice.is-editing span {
    color: #15803d;
}

.staff-org-list-item.is-editing-target {
    border-color: #22c55e !important;
    background: #f0fdf4 !important;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.14);
}

.staff-org-list-item.is-editing-target::after {
    content: "수정중";
    justify-self: end;
    border-radius: 999px;
    padding: 3px 7px;
    background: #22c55e;
    color: #ffffff;
    font-size: 11px;
    font-weight: 600;
}

.staff-org-list-item.is-editing-target {
    grid-template-columns: minmax(90px, 0.95fr) minmax(80px, 0.85fr) minmax(70px, 0.7fr) auto;
}

/* Staff organization list search scroll patch */
/* 조직관리: 부서/임직원 검색 가능한 리스트형 + 10개 이상 내부 스크롤 기준 */

.staff-org-field-help {
    display: block;
    margin: -1px 0 5px;
    color: #64748b;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
}

.staff-org-list-search {
    display: grid;
    gap: 4px;
    margin: 0 0 8px;
}

.staff-org-list-search label {
    color: #334155;
    font-size: 12px;
    font-weight: 650;
}

.staff-org-list-search input {
    width: 100%;
    height: 34px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    padding: 0 10px;
    background: #ffffff;
    color: #0f172a;
    font-size: 13px;
    font-weight: 500;
    outline: none;
}

.staff-org-list-search input:focus {
    border-color: #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.12);
}

.staff-org-list-head {
    display: grid;
    gap: 8px;
    align-items: center;
    min-height: 32px;
    margin-bottom: 6px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0 10px;
    background: #f1f5f9;
    color: #475569;
    font-size: 12px;
    font-weight: 700;
}

.staff-org-list-head.is-department-head {
    grid-template-columns: minmax(120px, 1fr) minmax(110px, 0.9fr) 70px;
}

.staff-org-list-head.is-staff-head {
    grid-template-columns: minmax(110px, 1fr) minmax(90px, 0.85fr) minmax(90px, 0.85fr) minmax(130px, 1fr);
}

.staff-org-list-panel .staff-org-scroll-list {
    display: grid !important;
    gap: 5px !important;
    max-height: 392px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-right: 4px !important;
    scrollbar-gutter: stable !important;
}

.staff-org-list-panel .staff-org-scroll-list::-webkit-scrollbar {
    width: 7px;
}

.staff-org-list-panel .staff-org-scroll-list::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #cbd5e1;
}

.staff-org-list-panel .staff-org-list-item {
    display: grid !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    min-height: 36px !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 9px !important;
    padding: 7px 10px !important;
    background: #ffffff !important;
    color: #172033 !important;
    text-align: left !important;
    box-shadow: none !important;
}

.staff-org-list-panel [data-detail-kind="department"].staff-org-list-item {
    grid-template-columns: minmax(120px, 1fr) minmax(110px, 0.9fr) 70px !important;
}

.staff-org-list-panel [data-detail-kind="staff"].staff-org-list-item {
    grid-template-columns: minmax(110px, 1fr) minmax(90px, 0.85fr) minmax(90px, 0.85fr) minmax(130px, 1fr) !important;
}

.staff-org-list-panel .staff-org-list-item:hover,
.staff-org-list-panel .staff-org-list-item.is-selected,
.staff-org-list-panel .staff-org-list-item.is-editing-target {
    border-color: #22c55e !important;
    background: #f0fdf4 !important;
}

.staff-org-list-panel .staff-org-list-item strong,
.staff-org-list-panel .staff-org-list-item span,
.staff-org-list-panel .staff-org-list-item em,
.staff-org-permission-mini {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.staff-org-list-panel .staff-org-list-item strong {
    color: #0f172a;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}

.staff-org-list-panel .staff-org-list-item span,
.staff-org-list-panel .staff-org-list-item em,
.staff-org-permission-mini {
    color: #475569;
    font-size: 12px !important;
    font-style: normal;
    font-weight: 500 !important;
    line-height: 1.25 !important;
}

.staff-org-permission-mini {
    display: block;
}

.staff-org-list-panel .staff-org-list-item.is-editing-target::after {
    content: none !important;
}

.staff-org-list-panel .staff-org-list-item.is-hidden-by-search {
    display: none !important;
}

.staff-org-selected-detail {
    min-height: 54px !important;
    padding: 8px 10px !important;
}

.staff-org-selected-detail strong {
    font-size: 14px !important;
    font-weight: 700 !important;
}

.staff-org-selected-detail span {
    font-size: 12px !important;
    font-weight: 500 !important;
}

@media (max-width: 760px) {
    .staff-org-list-head {
        display: none;
    }

    .staff-org-list-panel [data-detail-kind="department"].staff-org-list-item,
    .staff-org-list-panel [data-detail-kind="staff"].staff-org-list-item {
        grid-template-columns: 1fr !important;
    }
}

/* Staff organization no account select patch */
/* 조직관리: 직원계정 선택 제거 후 성명 기반 등록 */

.staff-org-field-help:empty {
    display: none !important;
}

.staff-org-edit-notice strong {
    font-weight: 700 !important;
}

.staff-org-edit-notice span {
    font-weight: 500 !important;
}

.staff-org-list-panel [data-detail-kind="staff"].staff-org-list-item {
    grid-template-columns: minmax(110px, 1fr) minmax(90px, 0.85fr) minmax(90px, 0.85fr) minmax(130px, 1fr) !important;
}

/* Article review status step4 patch */
/* 기사목록 검토상태 표시 + 새 컬럼 폭 보정 */

.article-list-page .article-list-table {
    min-width: 1240px !important;
}

.article-list-page .article-list-table th:nth-child(2),
.article-list-page .article-list-table td:nth-child(2) {
    width: 110px !important;
}

.article-list-page .article-list-table th:nth-child(3),
.article-list-page .article-list-table td:nth-child(3) {
    width: 78px !important;
}

.article-list-page .article-list-table th:nth-child(4),
.article-list-page .article-list-table td:nth-child(4) {
    width: 74px !important;
}

.article-list-page .article-list-table th:nth-child(5),
.article-list-page .article-list-table td:nth-child(5) {
    width: 78px !important;
}

.article-list-page .article-list-table th:nth-child(6),
.article-list-page .article-list-table td:nth-child(6) {
    width: 118px !important;
}

.article-list-page .article-list-table th:nth-child(8),
.article-list-page .article-list-table td:nth-child(8) {
    width: 146px !important;
}

.article-list-page .article-list-table th:nth-child(9),
.article-list-page .article-list-table td:nth-child(9) {
    width: 150px !important;
}

.article-list-page .article-list-table th:nth-child(10),
.article-list-page .article-list-table td:nth-child(10),
.article-list-page .article-list-table th:nth-child(11),
.article-list-page .article-list-table td:nth-child(11),
.article-list-page .article-list-table th:nth-child(12),
.article-list-page .article-list-table td:nth-child(12) {
    width: 72px !important;
    text-align: center !important;
}

.article-review-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    border-radius: 999px;
    padding: 0 8px;
    background: #f1f5f9;
    color: #334155;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.article-review-pending {
    background: #fff7ed;
    color: #c2410c;
}

.article-review-approved,
.article-review-auto_published {
    background: #dcfce7;
    color: #047857;
}

.article-review-rejected {
    background: #fee2e2;
    color: #b91c1c;
}

.article-review-not_requested {
    background: #f1f5f9;
    color: #64748b;
}

.article-review-target {
    display: block;
    max-width: 110px;
    margin-top: 3px;
    overflow: hidden;
    color: #64748b;
    font-size: 10px;
    font-style: normal;
    font-weight: 500;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Review inbox step45 patch */
/* 검토함: 검토대기 기사 리스트 + 승인/반려 */

.review-inbox-page {
    padding-top: 16px;
}

.review-inbox-topbar {
    margin-bottom: 10px;
}

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

.review-inbox-summary article {
    min-height: 52px;
    border-radius: 14px;
    padding: 10px 14px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

.review-inbox-summary span {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 500;
}

.review-inbox-summary strong {
    display: block;
    margin-top: 2px;
    color: #0f172a;
    font-size: 22px;
    font-weight: 720;
    letter-spacing: -0.04em;
}

.review-inbox-board {
    display: grid;
    grid-template-columns: minmax(680px, 1fr) minmax(360px, 0.48fr);
    gap: 12px;
    align-items: start;
}

.review-inbox-panel {
    min-width: 0;
    border-radius: 18px;
    padding: 14px;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.07);
}

.review-inbox-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.review-inbox-panel-head h2 {
    margin: 0;
    color: #0f172a;
    font-size: 18px;
    font-weight: 760;
    letter-spacing: -0.04em;
}

.review-inbox-panel-head p {
    margin: 3px 0 0;
    color: #64748b;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
}

.review-inbox-panel-head > span {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 24px;
    border-radius: 999px;
    padding: 0 9px;
    background: #e8fff2;
    color: #07883d;
    font-size: 12px;
    font-weight: 650;
}

.review-inbox-search {
    display: grid;
    gap: 4px;
    margin-bottom: 8px;
}

.review-inbox-search label {
    color: #334155;
    font-size: 12px;
    font-weight: 650;
}

.review-inbox-search input {
    width: 100%;
    height: 34px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    padding: 0 10px;
    background: #ffffff;
    color: #0f172a;
    font-size: 13px;
    font-weight: 500;
    outline: none;
}

.review-inbox-search input:focus {
    border-color: #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.12);
}

.review-inbox-list-head {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) minmax(150px, 0.65fr) 110px 178px;
    gap: 8px;
    align-items: center;
    min-height: 32px;
    margin-bottom: 6px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0 10px;
    background: #f1f5f9;
    color: #475569;
    font-size: 12px;
    font-weight: 700;
}

.review-inbox-list {
    display: grid;
    gap: 6px;
    max-height: 430px;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 4px;
    scrollbar-gutter: stable;
}

.review-inbox-list.is-recent {
    max-height: 300px;
}

.review-inbox-list::-webkit-scrollbar {
    width: 7px;
}

.review-inbox-list::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #cbd5e1;
}

.review-inbox-item {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) minmax(150px, 0.65fr) 110px 178px;
    gap: 8px;
    align-items: center;
    min-height: 54px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 9px 10px;
    background: #ffffff;
}

.review-inbox-title strong,
.review-inbox-target strong,
.review-inbox-recent-item strong {
    display: block;
    overflow: hidden;
    color: #0f172a;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.review-inbox-title span,
.review-inbox-target span,
.review-inbox-recent-item span,
.review-inbox-date {
    display: block;
    margin-top: 2px;
    overflow: hidden;
    color: #64748b;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.review-inbox-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
}

.review-inbox-actions a,
.review-inbox-actions button,
.review-inbox-recent-item a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 28px;
    border: 0;
    border-radius: 8px;
    padding: 0 9px;
    background: #f1f5f9;
    color: #334155;
    font-size: 12px;
    font-weight: 650;
    text-decoration: none;
    cursor: pointer;
}

.review-inbox-actions button.is-approve {
    background: #03c75a;
    color: #ffffff;
}

.review-inbox-actions button.is-reject {
    background: #fee2e2;
    color: #b91c1c;
}

.review-inbox-recent-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 46px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 8px 10px;
    background: #ffffff;
}

.review-inbox-empty {
    display: grid;
    gap: 4px;
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    padding: 18px;
    background: #f8fafc;
    color: #64748b;
    text-align: center;
}

.review-inbox-empty strong {
    color: #0f172a;
    font-size: 14px;
    font-weight: 700;
}

.review-inbox-empty span {
    color: #64748b;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.35;
}

.review-inbox-help {
    display: grid;
    gap: 3px;
    margin-top: 10px;
    border: 1px solid #dbeafe;
    border-radius: 12px;
    padding: 10px 12px;
    background: #eff6ff;
}

.review-inbox-help strong {
    color: #172554;
    font-size: 14px;
    font-weight: 700;
}

.review-inbox-help span {
    color: #1e40af;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
}

.review-inbox-item.is-hidden-by-search {
    display: none !important;
}

@media (max-width: 1200px) {
    .review-inbox-board {
        grid-template-columns: 1fr;
    }
}

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

    .review-inbox-list-head {
        display: none;
    }

    .review-inbox-item {
        grid-template-columns: 1fr;
    }

    .review-inbox-actions {
        justify-content: flex-start;
    }
}

/* Staff signup approval step44 patch */
/* 직원 가입신청 공개 화면 + 조직관리 승인 목록 */

.staff-signup-public-body {
    min-height: 100vh;
    margin: 0;
    background:
        radial-gradient(circle at top left, rgba(125, 211, 252, 0.22), transparent 34%),
        linear-gradient(135deg, #05072f 0%, #111827 100%);
    color: #0f172a;
}

.staff-signup-public-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    box-sizing: border-box;
    padding: 28px;
}

.staff-signup-public-card {
    width: min(760px, 100%);
    border-radius: 24px;
    padding: 24px;
    background: #ffffff;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
}

.staff-signup-public-head {
    margin-bottom: 16px;
}

.staff-signup-public-head p {
    margin: 0;
    color: #03c75a;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.staff-signup-public-head h1 {
    margin: 4px 0 6px;
    color: #0f172a;
    font-size: 25px;
    font-weight: 760;
    letter-spacing: -0.05em;
}

.staff-signup-public-head span,
.staff-signup-public-note span,
.staff-signup-done span {
    color: #64748b;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.45;
}

.staff-signup-public-form {
    display: grid;
    gap: 12px;
}

.staff-signup-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.staff-signup-public-form label,
.staff-signup-reason {
    display: grid;
    gap: 5px;
}

.staff-signup-public-form label span,
.staff-signup-reason span {
    color: #334155;
    font-size: 12px;
    font-weight: 650;
}

.staff-signup-public-form input,
.staff-signup-public-form select,
.staff-signup-public-form textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #ffffff;
    color: #0f172a;
    font-size: 14px;
    font-weight: 500;
}

.staff-signup-public-form input,
.staff-signup-public-form select {
    height: 38px;
    padding: 0 10px;
}

.staff-signup-public-form textarea {
    min-height: 78px;
    padding: 10px;
    resize: vertical;
    line-height: 1.45;
}

.staff-signup-public-form button {
    height: 40px;
    border: 0;
    border-radius: 11px;
    background: #03c75a;
    color: #ffffff;
    font-size: 14px;
    font-weight: 760;
    cursor: pointer;
}

.staff-signup-public-note,
.staff-signup-done {
    display: grid;
    gap: 3px;
    margin-top: 14px;
    border: 1px solid #dbeafe;
    border-radius: 13px;
    padding: 11px 12px;
    background: #eff6ff;
}

.staff-signup-public-note strong,
.staff-signup-done strong {
    color: #172554;
    font-size: 14px;
    font-weight: 700;
}

.staff-join-request-board {
    margin: 0 0 12px;
}

.staff-join-public-link {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 30px;
    border-radius: 999px;
    padding: 0 11px;
    background: #03c75a;
    color: #ffffff;
    font-size: 12px;
    font-weight: 650;
    text-decoration: none;
}

.staff-join-request-head,
.staff-join-request-row {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) minmax(100px, 0.7fr) minmax(90px, 0.65fr) 116px 126px;
    gap: 8px;
    align-items: center;
}

.staff-join-request-head {
    min-height: 32px;
    margin-bottom: 6px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0 10px;
    background: #f1f5f9;
    color: #475569;
    font-size: 12px;
    font-weight: 700;
}

.staff-join-request-list {
    display: grid;
    gap: 6px;
    max-height: 308px;
    overflow-y: auto;
    padding-right: 4px;
}

.staff-join-request-row {
    min-height: 46px;
    border: 1px solid #e2e8f0;
    border-radius: 11px;
    padding: 8px 10px;
    background: #ffffff;
}

.staff-join-request-row strong {
    display: block;
    color: #0f172a;
    font-size: 13px;
    font-weight: 700;
}

.staff-join-request-row span {
    overflow: hidden;
    color: #64748b;
    font-size: 12px;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.staff-join-request-actions {
    display: flex;
    gap: 5px;
    justify-content: flex-end;
}

.staff-join-request-actions button {
    height: 28px;
    border: 0;
    border-radius: 8px;
    padding: 0 9px;
    font-size: 12px;
    font-weight: 650;
    cursor: pointer;
}

.staff-join-request-actions .is-approve {
    background: #03c75a;
    color: #ffffff;
}

.staff-join-request-actions .is-reject {
    background: #fee2e2;
    color: #b91c1c;
}

.staff-join-recent {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 9px;
}

.staff-join-recent strong,
.staff-join-recent span {
    border-radius: 999px;
    padding: 4px 8px;
    background: #f1f5f9;
    color: #475569;
    font-size: 11px;
    font-weight: 500;
}

.staff-join-recent strong {
    color: #0f172a;
    font-weight: 700;
}

@media (max-width: 780px) {
    .staff-signup-form-grid {
        grid-template-columns: 1fr;
    }

    .staff-join-request-head {
        display: none;
    }

    .staff-join-request-row {
        grid-template-columns: 1fr;
    }

    .staff-join-request-actions {
        justify-content: flex-start;
    }
}

/* Staff delete button only patch */
/* 조직관리: 임직원 삭제 버튼. 실제 삭제가 아니라 is_active=False 숨김 처리 */

.staff-org-delete-form {
    display: flex;
    justify-content: flex-end;
    margin: -2px 0 8px;
}

.staff-org-delete-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 30px;
    border: 0;
    border-radius: 999px;
    padding: 0 11px;
    background: #fee2e2;
    color: #b91c1c;
    font-size: 12px;
    font-weight: 650;
    cursor: pointer;
}

.staff-org-delete-button:hover:not(:disabled) {
    background: #fecaca;
}

.staff-org-delete-button:disabled {
    background: #f1f5f9;
    color: #94a3b8;
    cursor: not-allowed;
}

.staff-org-list-item.is-delete-target {
    border-color: #ef4444 !important;
    background: #fff1f2 !important;
}

/* Press auto dispatch settings step2 */
/* 회원사 관리자: 자동송고 설정 */

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

.auto-dispatch-summary article {
    min-height: 52px;
    border-radius: 14px;
    padding: 10px 14px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

.auto-dispatch-summary span {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 500;
}

.auto-dispatch-summary strong {
    display: block;
    margin-top: 2px;
    color: #0f172a;
    font-size: 22px;
    font-weight: 720;
    letter-spacing: -0.04em;
}

.auto-dispatch-help {
    display: grid;
    gap: 4px;
    margin-bottom: 12px;
    border: 1px solid #dbeafe;
    border-radius: 14px;
    padding: 10px 12px;
    background: #eff6ff;
}

.auto-dispatch-help strong {
    color: #172554;
    font-size: 14px;
    font-weight: 700;
}

.auto-dispatch-help span {
    color: #1e40af;
    font-size: 12px;
    font-weight: 500;
}

.auto-dispatch-list {
    display: grid;
    gap: 12px;
}

.auto-dispatch-card,
.auto-dispatch-empty {
    border-radius: 18px;
    padding: 14px;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.07);
}

.auto-dispatch-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.auto-dispatch-card-head h2 {
    margin: 0;
    color: #0f172a;
    font-size: 18px;
    font-weight: 760;
    letter-spacing: -0.04em;
}

.auto-dispatch-card-head p {
    margin: 3px 0 0;
    color: #64748b;
    font-size: 12px;
    font-weight: 500;
}

.auto-dispatch-switch {
    min-width: 74px;
    height: 30px;
    border: 0;
    border-radius: 999px;
    background: #e2e8f0;
    color: #475569;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.auto-dispatch-switch.is-on {
    background: #03c75a;
    color: #ffffff;
}

.auto-dispatch-switch:disabled {
    opacity: 0.58;
    cursor: not-allowed;
}

.auto-dispatch-setting-form {
    display: grid;
    gap: 10px;
}

.auto-dispatch-grid {
    display: grid;
    grid-template-columns: 160px 160px minmax(150px, 1fr) minmax(170px, 1fr);
    gap: 8px;
    align-items: end;
}

.auto-dispatch-grid label,
.auto-dispatch-memo {
    display: grid;
    gap: 4px;
}

.auto-dispatch-grid span,
.auto-dispatch-memo span {
    color: #334155;
    font-size: 12px;
    font-weight: 650;
}

.auto-dispatch-grid select,
.auto-dispatch-memo textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #ffffff;
    color: #0f172a;
    font-size: 13px;
    font-weight: 500;
}

.auto-dispatch-grid select {
    height: 34px;
    padding: 0 9px;
}

.auto-dispatch-memo textarea {
    min-height: 54px;
    padding: 8px 10px;
    resize: vertical;
}

.auto-dispatch-checkline {
    display: inline-flex !important;
    grid-template-columns: none !important;
    align-items: center;
    gap: 6px;
    min-height: 34px;
}

.auto-dispatch-checkline input {
    width: 14px;
    height: 14px;
}

.auto-dispatch-region-box,
.auto-dispatch-category-box {
    display: grid;
    gap: 7px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 10px;
    background: #f8fafc;
}

.auto-dispatch-region-box > strong,
.auto-dispatch-category-box > strong {
    color: #0f172a;
    font-size: 14px;
    font-weight: 720;
}

.auto-dispatch-region-list {
    display: grid;
    max-height: 230px;
    overflow-y: auto;
    gap: 8px;
    padding-right: 4px;
}

.auto-dispatch-sigungu-group {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.auto-dispatch-sigungu-group b {
    flex: 0 0 70px;
    color: #0f172a;
    font-size: 12px;
    font-weight: 800;
}

.auto-dispatch-sigungu-group label,
.auto-dispatch-category-list label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 27px;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    padding: 0 8px;
    background: #ffffff;
    color: #334155;
    font-size: 12px;
    font-weight: 600;
}

.auto-dispatch-sigungu-group input,
.auto-dispatch-category-list input {
    width: 13px;
    height: 13px;
}

.auto-dispatch-category-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.auto-dispatch-category-list label.is-missing-category {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #c2410c;
}

.auto-dispatch-category-list label.is-force-category {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: #1e40af;
}

.auto-dispatch-save-button {
    justify-self: end;
    height: 34px;
    border: 0;
    border-radius: 10px;
    padding: 0 14px;
    background: #03c75a;
    color: #ffffff;
    font-size: 13px;
    font-weight: 760;
    cursor: pointer;
}

.auto-dispatch-empty {
    display: grid;
    gap: 4px;
    color: #64748b;
}

.auto-dispatch-empty strong {
    color: #0f172a;
    font-size: 15px;
    font-weight: 760;
}

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

    .auto-dispatch-grid {
        grid-template-columns: 1fr;
    }

    .auto-dispatch-card-head {
        display: grid;
    }

    .auto-dispatch-save-button {
        justify-self: stretch;
    }
}

/* Auto dispatch region initial hide patch */

.auto-dispatch-region-hint,
.auto-dispatch-license-guide {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
}

.auto-dispatch-license-guide {
    margin-top: 4px;
    color: #1e40af;
}

/* Auto dispatch newsroom hidden override fix */
/* 시도 선택 전 시군구 그룹이 펼쳐지는 문제 방지 */

.auto-dispatch-sigungu-group[hidden],
.auto-dispatch-sigungu-group.is-hidden {
    display: none !important;
}

.auto-dispatch-region-list.is-empty .auto-dispatch-sigungu-group {
    display: none !important;
}

/* Article origin badge patch */
/* 기사관리: 직접작성/API공급/본사송고 구분 배지 */

.article-origin-pill {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    border-radius: 999px;
    padding: 0 9px;
    background: #f1f5f9;
    color: #475569;
    font-size: 12px;
    font-weight: 750;
    line-height: 1;
    white-space: nowrap;
}

.article-origin-manual {
    background: #ecfeff;
    color: #0369a1;
}

.article-origin-api {
    background: #f0fdf4;
    color: #15803d;
}

.article-origin-platform {
    background: #eff6ff;
    color: #1d4ed8;
}

.article-origin-rss {
    background: #fff7ed;
    color: #c2410c;
}

.article-origin-ai_draft {
    background: #f5f3ff;
    color: #6d28d9;
}

.article-origin-source {
    display: block;
    margin-top: 3px;
    color: #64748b;
    font-size: 11px;
    font-style: normal;
    font-weight: 600;
    line-height: 1.2;
}

.article-title-source-url {
    display: inline-flex;
    margin-top: 4px;
    border-radius: 999px;
    padding: 2px 7px;
    background: #f8fafc;
    color: #2563eb;
    font-size: 11px;
    font-weight: 700;
    text-decoration: none;
}


/* API collect to article dispatch patch */
.auto-dispatch-collect-form {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #e2e8f0;
}

.auto-dispatch-collect-form span {
    color: #64748b;
    font-size: 12px;
    font-weight: 500;
}

.auto-dispatch-collect-button {
    height: 34px;
    border: 0;
    border-radius: 10px;
    padding: 0 14px;
    background: #2563eb;
    color: #ffffff;
    font-size: 13px;
    font-weight: 760;
    cursor: pointer;
}

.auto-dispatch-collect-button:disabled {
    background: #cbd5e1;
    cursor: not-allowed;
}

/* API article card safety patch */
.nb-plus-home article,
.nb-plus-home .nb-card,
.nb-plus-home .nb-news-card,
.nb-plus-home .nb-article-card,
.nb-plus-home .nb-card-item {
    overflow: hidden;
}

.nb-plus-home article h2,
.nb-plus-home article h3,
.nb-plus-home .nb-card-title,
.nb-plus-home .nb-news-title,
.nb-plus-home .nb-article-title {
    line-height: 1.34;
    word-break: keep-all;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    max-height: 2.8em;
}

.nb-plus-home article p,
.nb-plus-home .nb-card-summary,
.nb-plus-home .nb-news-summary,
.nb-plus-home .nb-article-summary {
    line-height: 1.35;
    word-break: keep-all;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    max-height: 2.8em;
}

.nb-plus-home article img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* API article cleanup final patch */
.nb-plus-home .nb-news-card h3,
.nb-plus-home .nb-news-card h3 a,
.nb-plus-home .nb-news-card-image span,
.nb-plus-home .nb-rank-list a,
.nb-plus-home .nb-side-news-list a {
    word-break: keep-all;
    overflow-wrap: anywhere;
}

.nb-plus-home .nb-news-card h3 a,
.nb-plus-home .nb-news-card-image span {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.main-figure figcaption {
    display: grid;
    gap: 4px;
    text-align: center;
}

.main-figure figcaption .image-caption-text {
    color: #475569;
}

.main-figure figcaption .image-source {
    color: #64748b;
    font-size: 12px;
}

/* Auto dispatch compact provider list patch */
.auto-dispatch-provider-panel {
    display: block;
}

.auto-dispatch-provider-list {
    display: grid;
    gap: 8px;
}

.auto-dispatch-provider-item {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #ffffff;
    overflow: hidden;
}

.auto-dispatch-provider-summary {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto auto;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding: 10px 12px;
    cursor: pointer;
    list-style: none;
}

.auto-dispatch-provider-summary::-webkit-details-marker {
    display: none;
}

.auto-dispatch-provider-main {
    display: grid;
    gap: 2px;
}

.auto-dispatch-provider-main strong {
    font-size: 15px;
    font-weight: 760;
    color: #0f172a;
}

.auto-dispatch-provider-main small {
    color: #64748b;
    font-size: 12px;
}

.auto-dispatch-provider-badges {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.auto-dispatch-provider-badges em,
.auto-dispatch-provider-open {
    border-radius: 999px;
    padding: 4px 8px;
    background: #f1f5f9;
    color: #334155;
    font-size: 11px;
    font-style: normal;
    font-weight: 700;
}

.auto-dispatch-provider-open {
    color: #2563eb;
    background: #dbeafe;
}

.auto-dispatch-provider-item[open] .auto-dispatch-provider-open {
    color: #047857;
    background: #d1fae5;
}

.auto-dispatch-provider-detail {
    border-top: 1px solid #e2e8f0;
    padding: 12px;
    background: #fbfdff;
}

.auto-dispatch-provider-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.auto-dispatch-provider-actions .auto-dispatch-collect-form {
    margin: 0;
    padding: 0;
    border-top: 0;
}

@media (max-width: 900px) {
    .auto-dispatch-provider-summary {
        grid-template-columns: 1fr;
        align-items: flex-start;
    }

    .auto-dispatch-provider-badges {
        justify-content: flex-start;
    }
}

/* Auto dispatch realtime progress patch */
.auto-dispatch-progress-box {
    display: grid;
    grid-template-columns: auto minmax(180px, 1fr);
    align-items: center;
    gap: 8px 10px;
    min-width: min(100%, 420px);
}

.auto-dispatch-progress-status {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    color: #475569;
    font-size: 12px;
}

.auto-dispatch-progress-status strong {
    color: #2563eb;
    font-size: 13px;
    font-weight: 800;
}

.auto-dispatch-progress-status small {
    color: #64748b;
    font-size: 12px;
}

.auto-dispatch-progress-track {
    grid-column: 1 / -1;
    height: 8px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.auto-dispatch-progress-track i {
    display: block;
    height: 100%;
    width: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, #2563eb, #7c3aed);
    transition: width 0.18s ease;
}

@media (max-width: 760px) {
    .auto-dispatch-progress-box {
        grid-template-columns: 1fr;
    }
}

/* Article list title and SEO width expansion patch */
.article-list-page .article-list-table {
    min-width: 1580px !important;
    table-layout: fixed !important;
}

/* 제목 */
.article-list-page .article-list-table th:nth-child(8),
.article-list-page .article-list-table td:nth-child(8) {
    width: 330px !important;
}

/* 태그 */
.article-list-page .article-list-table th:nth-child(9),
.article-list-page .article-list-table td:nth-child(9) {
    width: 210px !important;
}

/* SEO키워드 */
.article-list-page .article-list-table th:nth-child(10),
.article-list-page .article-list-table td:nth-child(10) {
    width: 260px !important;
    text-align: left !important;
}

/* 수정 */
.article-list-page .article-list-table th:nth-child(11),
.article-list-page .article-list-table td:nth-child(11),
/* 삭제 */
.article-list-page .article-list-table th:nth-child(12),
.article-list-page .article-list-table td:nth-child(12),
/* 보기 */
.article-list-page .article-list-table th:nth-child(13),
.article-list-page .article-list-table td:nth-child(13) {
    width: 72px !important;
    text-align: center !important;
}

.article-list-page .article-list-title-cell strong {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.32 !important;
    max-height: 2.64em !important;
}

.article-list-page .article-list-title-cell span {
    display: -webkit-box !important;
    -webkit-line-clamp: 1 !important;
    -webkit-box-orient: vertical !important;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.article-list-page .article-list-tags {
    white-space: normal !important;
    overflow: visible !important;
}

.article-list-page .article-list-tags span {
    margin: 0 4px 5px 0 !important;
}

.article-list-page .article-list-keywords {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.35 !important;
    max-height: 2.7em !important;
    text-align: left !important;
}

/* Auto dispatch live sync notice patch */
.auto-dispatch-live-sync {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: 10px 0;
    border: 1px solid #bfdbfe;
    border-radius: 14px;
    padding: 12px 14px;
    background: #eff6ff;
    color: #1e3a8a;
}

.auto-dispatch-live-sync[hidden] {
    display: none !important;
}

.auto-dispatch-live-sync strong {
    font-size: 13px;
    font-weight: 800;
}

.auto-dispatch-live-sync span {
    color: #334155;
    font-size: 13px;
}

.auto-dispatch-live-sync button {
    margin-left: auto;
    border: 0;
    border-radius: 999px;
    padding: 7px 12px;
    background: #2563eb;
    color: #ffffff;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

/* Article bulk delete button patch */
.article-list-page .article-bulk-download-toolbar .article-bulk-delete-button {
    background: #dc2626;
    color: #ffffff;
}

.article-list-page .article-bulk-download-toolbar .article-bulk-delete-button:hover:not(:disabled) {
    background: #b91c1c;
}

.article-list-page .article-bulk-download-toolbar .article-bulk-delete-button:disabled {
    background: #cbd5e1;
    color: #64748b;
}



/* 기사 상세 대표이미지 잘림 방지 */
.article-detail img,
.article-body img,
.news-article-detail img,
.article-main-image img,
.article-featured-image img,
.article-content img,
.article-detail__image img,
.article-detail__body img,
.article-photo img,
.figure-image img,
figure img {
    max-width: 100% !important;
    width: auto !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
}

.article-main-image,
.article-featured-image,
.article-detail__image,
.article-photo,
.figure-image,
.article-body figure,
.article-content figure {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    background: #fff;
}

.article-main-image img,
.article-featured-image img,
.article-photo img,
.figure-image img {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* 보도자료 첨부 이미지처럼 세로가 긴 이미지도 전체 노출 */
.article-body .main-image,
.article-content .main-image,
.article-detail .main-image,
.news-article-detail .main-image {
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
}


/* NewsBuilder article detail watermark final kill-switch */
.article-detail .main-figure::before,
.article-detail .main-figure::after,
.article-detail .main-figure.has-watermark::before,
.article-detail .main-figure.has-watermark::after,
.article-detail .main-figure.nb-watermark-figure::before,
.article-detail .main-figure.nb-watermark-figure::after {
    content: none !important;
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
}

.article-detail .main-figure > .article-image-watermark {
    display: none !important;
}

.article-detail .main-image-wrap > .article-image-watermark,
.article-detail .nb-watermark-box > .article-image-watermark {
    display: block !important;
}



/* =========================================================
   Auto Dispatch Provider Detail 6-Column Sections v4
   서울_보도자료 메인카드는 가로 유지, 내부는 1행 6열 서브섹션
   ========================================================= */

.auto-dispatch-page {
    --ad-line: #dbe4f0;
    --ad-soft-line: #e8eef6;
    --ad-card: #ffffff;
    --ad-soft: #f8fafc;
    --ad-text: #071225;
    --ad-muted: #64748b;
    --ad-green: #03c75a;
    --ad-navy: #020617;
    --ad-blue: #2563eb;
}

/* 제공처 카드 자체는 전체 폭 유지 */
.auto-dispatch-page .auto-dispatch-provider-item {
    width: 100%;
}

.auto-dispatch-page .auto-dispatch-provider-detail {
    padding: 12px !important;
    background: #ffffff;
}

/* 1행 6열 핵심 보드 */
.auto-dispatch-page .auto-dispatch-section-board {
    display: grid;
    grid-template-columns:
        minmax(150px, 0.8fr)
        minmax(180px, 0.95fr)
        minmax(220px, 1.15fr)
        minmax(220px, 1.1fr)
        minmax(260px, 1.35fr)
        minmax(190px, 0.95fr);
    gap: 10px;
    align-items: start;
    width: 100%;
}

/* form이 grid child들을 직접 6열에 올리도록 */
.auto-dispatch-page .auto-dispatch-section-form {
    display: contents;
}

/* 서브섹션 카드 */
.auto-dispatch-page .ad-section-card {
    min-width: 0;
    padding: 11px;
    border: 1px solid var(--ad-line);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.035);
}

.auto-dispatch-page .ad-section-card > header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 9px;
    padding-bottom: 7px;
    border-bottom: 1px solid var(--ad-soft-line);
}

.auto-dispatch-page .ad-section-card > header strong {
    color: var(--ad-text);
    font-size: 13px;
    font-weight: 950;
    letter-spacing: -0.035em;
    white-space: nowrap;
}

.auto-dispatch-page .ad-section-card > header span {
    color: var(--ad-muted);
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

/* 공통 입력 */
.auto-dispatch-page .ad-field,
.auto-dispatch-page .auto-dispatch-mode-field,
.auto-dispatch-page .auto-dispatch-memo {
    display: grid;
    gap: 5px;
    min-width: 0;
    margin-bottom: 8px;
}

.auto-dispatch-page .ad-field > span,
.auto-dispatch-page .auto-dispatch-mode-field > span {
    color: var(--ad-text);
    font-size: 11px;
    font-weight: 900;
}

.auto-dispatch-page .ad-field select,
.auto-dispatch-page .ad-field input[type="number"],
.auto-dispatch-page .auto-dispatch-time-row input,
.auto-dispatch-page .auto-dispatch-memo textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #ffffff;
    color: var(--ad-text);
    font-size: 12px;
    font-weight: 800;
}

.auto-dispatch-page .ad-field select,
.auto-dispatch-page .ad-field input[type="number"],
.auto-dispatch-page .auto-dispatch-time-row input {
    height: 32px;
    padding: 0 9px;
}

/* 반영 설정 */
.auto-dispatch-page .auto-dispatch-apply-form {
    margin: 0 0 8px;
}

.auto-dispatch-page .auto-dispatch-switch,
.auto-dispatch-page .auto-dispatch-collect-button,
.auto-dispatch-page .auto-dispatch-save-button {
    height: 32px;
    min-height: 32px;
    border: 0;
    border-radius: 999px;
    padding: 0 13px;
    font-size: 11px;
    font-weight: 950;
    cursor: pointer;
}

.auto-dispatch-page .auto-dispatch-switch {
    width: 100%;
    background: #e2e8f0;
    color: #475569;
}

.auto-dispatch-page .auto-dispatch-switch.is-on {
    background: var(--ad-green);
    color: #ffffff;
}

.auto-dispatch-page .auto-dispatch-collect-button {
    width: 100%;
    background: var(--ad-navy);
    color: #ffffff;
}

.auto-dispatch-page .auto-dispatch-switch:disabled,
.auto-dispatch-page .auto-dispatch-collect-button:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.auto-dispatch-page .auto-dispatch-progress-box {
    display: grid;
    gap: 7px;
}

.auto-dispatch-page .auto-dispatch-progress-box[hidden] {
    display: none !important;
}

.auto-dispatch-page .auto-dispatch-progress-status {
    display: grid;
    gap: 1px;
    color: var(--ad-muted);
    font-size: 11px;
    line-height: 1.25;
}

.auto-dispatch-page .auto-dispatch-progress-status strong {
    color: var(--ad-blue);
    font-size: 15px;
    font-weight: 950;
}

.auto-dispatch-page .auto-dispatch-progress-track {
    height: 7px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.auto-dispatch-page .auto-dispatch-progress-track i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #2563eb, #7c3aed);
}

/* 수동/자동 토글 */
.auto-dispatch-page .auto-dispatch-mode-toggle {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 3px;
    border: 1px solid #d9e2ef;
    border-radius: 999px;
    background: #eef2f7;
}

.auto-dispatch-page .auto-dispatch-mode-toggle label {
    cursor: pointer;
}

.auto-dispatch-page .auto-dispatch-mode-toggle input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.auto-dispatch-page .auto-dispatch-mode-toggle span {
    display: grid;
    place-items: center;
    height: 28px;
    border-radius: 999px;
    color: #64748b;
    font-size: 12px;
    font-weight: 950;
}

.auto-dispatch-page .auto-dispatch-mode-toggle label.is-active span {
    background: var(--ad-navy);
    color: #ffffff;
}

/* 체크라인 */
.auto-dispatch-page .auto-dispatch-checkline {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 28px;
    margin: 0 0 6px;
}

.auto-dispatch-page .auto-dispatch-checkline input {
    width: 14px;
    height: 14px;
}

.auto-dispatch-page .auto-dispatch-checkline span {
    color: #334155;
    font-size: 11px;
    font-weight: 900;
}

/* 자동 예약 */
.auto-dispatch-page .auto-dispatch-auto-panel[hidden] {
    display: none !important;
}

.auto-dispatch-page .ad-mini-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
}

.auto-dispatch-page .ad-input-unit {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 5px;
}

.auto-dispatch-page .ad-input-unit b,
.auto-dispatch-page .auto-dispatch-time-row b {
    color: var(--ad-muted);
    font-size: 11px;
    font-weight: 900;
}

.auto-dispatch-page .auto-dispatch-time-row {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto;
    align-items: center;
    gap: 5px;
}

.auto-dispatch-page .auto-dispatch-auto-status {
    display: grid;
    gap: 3px;
    margin-top: 7px;
    padding: 7px 8px;
    border: 1px dashed #cbd5e1;
    border-radius: 10px;
    background: #f8fafc;
    color: var(--ad-muted);
    font-size: 11px;
    font-weight: 800;
}

/* 시군구 */
.auto-dispatch-page .auto-dispatch-region-list {
    max-height: 205px;
    overflow-y: auto;
    padding-right: 3px;
}

.auto-dispatch-page .auto-dispatch-sigungu-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.auto-dispatch-page .auto-dispatch-sigungu-group[hidden],
.auto-dispatch-page .auto-dispatch-sigungu-group.is-hidden {
    display: none !important;
}

.auto-dispatch-page .auto-dispatch-sigungu-group b {
    flex: 0 0 100%;
    color: var(--ad-text);
    font-size: 11px;
    font-weight: 950;
}

.auto-dispatch-page .auto-dispatch-sigungu-group label,
.auto-dispatch-page .auto-dispatch-category-list label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 26px;
    padding: 0 8px;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    background: #ffffff;
    color: #334155;
    font-size: 11px;
    font-weight: 850;
    white-space: nowrap;
}

.auto-dispatch-page .auto-dispatch-sigungu-group label.is-sigungu-all {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: #1e40af;
    font-weight: 950;
}

.auto-dispatch-page .auto-dispatch-sigungu-group input,
.auto-dispatch-page .auto-dispatch-category-list input {
    width: 13px;
    height: 13px;
}

/* 카테고리 */
.auto-dispatch-page .auto-dispatch-category-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    max-height: 205px;
    overflow-y: auto;
    padding-right: 3px;
}

.auto-dispatch-page .auto-dispatch-category-list label.is-missing-category {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #c2410c;
}

.auto-dispatch-page .auto-dispatch-category-list label.is-force-category {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: #1e40af;
}

/* 메모 */
.auto-dispatch-page .auto-dispatch-memo textarea {
    min-height: 120px;
    padding: 9px;
    resize: vertical;
    line-height: 1.45;
}

.auto-dispatch-page .auto-dispatch-save-button {
    width: 100%;
    background: var(--ad-green);
    color: #ffffff;
}

/* 화면 폭이 좁으면 3열, 더 좁으면 1열 */
@media (max-width: 1500px) {
    .auto-dispatch-page .auto-dispatch-section-board {
        grid-template-columns:
            minmax(150px, 0.8fr)
            minmax(180px, 0.95fr)
            minmax(220px, 1.15fr);
    }
}

@media (max-width: 980px) {
    .auto-dispatch-page .auto-dispatch-section-board {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   Auto Dispatch Grid v7
   자동반영 예약 카드 높이를 기준으로 메인섹션/서브섹션 높이 정렬
   ========================================================= */

.auto-dispatch-page .auto-dispatch-provider-detail {
    padding: 12px !important;
    background: #ffffff !important;
}

/* 메인 내부는 다시 1행 6열.
   row 높이는 가장 큰 카드, 즉 자동반영 예약 카드 기준으로 잡히게 한다. */
.auto-dispatch-page .auto-dispatch-section-board {
    display: grid !important;
    grid-template-columns:
        minmax(170px, 0.76fr)
        minmax(210px, 0.9fr)
        minmax(290px, 1.14fr)
        minmax(280px, 1.05fr)
        minmax(320px, 1.2fr)
        minmax(230px, 0.9fr) !important;
    grid-template-areas:
        "run basic auto region category memo" !important;
    gap: 10px !important;
    align-items: stretch !important;
    width: 100% !important;
}

/* form은 grid 자식 section만 보드에 직접 올라오도록 유지 */
.auto-dispatch-page .auto-dispatch-section-form {
    display: contents !important;
}

/* 위치 지정 */
.auto-dispatch-page .ad-section-run {
    grid-area: run !important;
}

.auto-dispatch-page .ad-section-basic {
    grid-area: basic !important;
}

.auto-dispatch-page .ad-section-auto {
    grid-area: auto !important;
}

.auto-dispatch-page .ad-section-region {
    grid-area: region !important;
}

.auto-dispatch-page .ad-section-category {
    grid-area: category !important;
}

.auto-dispatch-page .ad-section-memo {
    grid-area: memo !important;
}

/* 카드 외곽만 같은 높이로 맞춘다.
   내부 요소는 절대 늘리지 않는다. */
.auto-dispatch-page .ad-section-card {
    height: 100% !important;
    min-height: 0 !important;
    align-self: stretch !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
}

/* 카드 내부 요소는 위에서부터 자연스럽게 쌓고 늘리지 않음 */
.auto-dispatch-page .ad-section-card > * {
    flex-grow: 0 !important;
}

/* 자동반영 예약 카드가 기준 높이가 되도록 내부는 자연 높이 유지 */
.auto-dispatch-page .ad-section-auto {
    height: auto !important;
}

/* 지역/카테고리는 자동반영 예약보다 커지면 내부 스크롤 */
.auto-dispatch-page .ad-section-region .auto-dispatch-region-list,
.auto-dispatch-page .ad-section-category .auto-dispatch-category-list {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: 245px !important;
    overflow-y: auto !important;
    align-content: flex-start !important;
    align-items: flex-start !important;
}

/* 칩은 커지지 않게 고정 */
.auto-dispatch-page .auto-dispatch-sigungu-group label,
.auto-dispatch-page .auto-dispatch-category-list label {
    flex: 0 0 auto !important;
    height: 26px !important;
    min-height: 26px !important;
    max-height: 26px !important;
    padding: 0 8px !important;
    border-radius: 999px !important;
    box-sizing: border-box !important;
    line-height: 1 !important;
}

.auto-dispatch-page .auto-dispatch-sigungu-group label span,
.auto-dispatch-page .auto-dispatch-category-list label span {
    line-height: 1 !important;
    white-space: nowrap !important;
}

/* 관리 메모는 자동반영 예약 기준 높이를 넘기지 않음 */
.auto-dispatch-page .ad-section-memo .auto-dispatch-memo {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    margin-bottom: 8px !important;
}

.auto-dispatch-page .ad-section-memo .auto-dispatch-memo textarea {
    height: 100% !important;
    min-height: 150px !important;
    max-height: 245px !important;
}

/* 저장 버튼은 메모 카드 하단 */
.auto-dispatch-page .ad-section-memo .auto-dispatch-save-button {
    margin-top: auto !important;
}

/* 자동반영 예약의 상태 박스는 아래쪽 */
.auto-dispatch-page .ad-section-auto .auto-dispatch-auto-status {
    margin-top: auto !important;
}

/* 카드 헤더 과도한 높이 방지 */
.auto-dispatch-page .ad-section-card > header {
    flex: 0 0 auto !important;
}

/* 반영 설정 진행률 compact 유지 */
.auto-dispatch-page .ad-section-run .auto-dispatch-progress-box {
    margin-top: 8px !important;
}

/* 1500px 이하에서는 3열로 안전하게 접기 */
@media (max-width: 1500px) {
    .auto-dispatch-page .auto-dispatch-section-board {
        grid-template-columns:
            minmax(180px, 0.8fr)
            minmax(240px, 1fr)
            minmax(300px, 1.15fr) !important;
        grid-template-areas:
            "run basic auto"
            "region category memo" !important;
    }
}

/* 좁은 화면 안전장치 */
@media (max-width: 980px) {
    .auto-dispatch-page .auto-dispatch-section-board {
        grid-template-columns: 1fr !important;
        grid-template-areas:
            "run"
            "basic"
            "auto"
            "region"
            "category"
            "memo" !important;
    }

    .auto-dispatch-page .ad-section-card {
        height: auto !important;
    }

    .auto-dispatch-page .ad-section-memo .auto-dispatch-memo textarea {
        min-height: 100px !important;
    }
}


/* ======================================================
   Category list admin
   ====================================================== */

.manager-hero-list {
    align-items: center;
}

.category-list-panel {
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 24px;
    box-shadow: 0 20px 55px rgba(15, 23, 42, 0.08);
    margin-top: 24px;
    overflow: hidden;
}

.category-list-toolbar {
    align-items: center;
    border-bottom: 1px solid rgba(148, 163, 184, 0.18);
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 24px;
}

.category-list-toolbar strong {
    color: #0f172a;
    display: block;
    font-size: 18px;
    font-weight: 950;
}

.category-list-toolbar span {
    color: #64748b;
    display: block;
    font-size: 13px;
    font-weight: 750;
    margin-top: 5px;
}

.category-delete-selected {
    background: #fef2f2;
    border: 0;
    border-radius: 14px;
    color: #dc2626;
    cursor: pointer;
    font-size: 13px;
    font-weight: 950;
    padding: 12px 16px;
    white-space: nowrap;
}

.category-list-table-wrap {
    overflow-x: auto;
}

.category-list-table {
    border-collapse: collapse;
    min-width: 1280px;
    width: 100%;
}

.category-list-table th {
    background: #f8fafc;
    border-bottom: 1px solid rgba(148, 163, 184, 0.22);
    color: #334155;
    font-size: 12px;
    font-weight: 950;
    padding: 13px 14px;
    text-align: left;
    white-space: nowrap;
}

.category-list-table td {
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
    color: #0f172a;
    font-size: 13px;
    font-weight: 750;
    padding: 14px;
    vertical-align: middle;
}

.category-list-table tr:hover td {
    background: #fbfdff;
}

.category-list-table tr.is-off td {
    background: #f8fafc;
    color: #94a3b8;
}

.category-list-table .col-check,
.category-list-table .col-order {
    text-align: center;
    width: 62px;
}

.category-list-table .col-actions {
    text-align: right;
    width: 230px;
}

.category-list-title {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 210px;
}

.category-list-title strong {
    color: #0f172a;
    font-size: 14px;
    font-weight: 950;
}

.category-list-title span {
    color: #64748b;
    font-size: 12px;
    font-weight: 750;
}

.category-list-table code {
    background: #f1f5f9;
    border-radius: 999px;
    color: #475569;
    display: inline-flex;
    font-size: 12px;
    font-weight: 850;
    padding: 5px 9px;
    white-space: nowrap;
}

.category-list-badges,
.category-list-mapping,
.category-list-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.category-list-badges span,
.category-list-mapping span {
    background: #f1f5f9;
    border-radius: 999px;
    color: #64748b;
    font-size: 11px;
    font-weight: 950;
    padding: 5px 8px;
    white-space: nowrap;
}

.category-list-badges span.on,
.category-list-mapping span {
    background: #ecfdf5;
    color: #047857;
}

.category-list-count {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.category-list-count strong {
    color: #0f172a;
    font-size: 16px;
    font-weight: 950;
}

.category-list-count span,
.category-list-muted {
    color: #64748b;
    font-size: 12px;
    font-weight: 850;
}

.category-list-status {
    border-radius: 999px;
    display: inline-flex;
    font-size: 11px;
    font-weight: 950;
    padding: 5px 8px;
    white-space: nowrap;
}

.category-list-status.can-delete {
    background: #dcfce7;
    color: #047857;
}

.category-list-status.blocked {
    background: #fef2f2;
    color: #dc2626;
}

.category-list-table small {
    color: #ef4444;
    display: block;
    font-size: 11px;
    font-weight: 850;
    margin-top: 6px;
    max-width: 180px;
}

.category-list-actions {
    justify-content: flex-end;
}

.category-list-actions a,
.category-list-actions button,
.category-list-actions span {
    border: 0;
    border-radius: 12px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 950;
    line-height: 1;
    padding: 9px 11px;
    text-decoration: none;
    white-space: nowrap;
}

.category-list-actions button {
    cursor: pointer;
}

.category-list-actions .edit {
    background: #eff6ff;
    color: #2563eb;
}

.category-list-actions .view {
    background: #f8fafc;
    color: #475569;
}

.category-list-actions .view-disabled {
    background: #f1f5f9;
    color: #94a3b8;
}

.category-list-actions .delete {
    background: #fef2f2;
    color: #dc2626;
}

.category-list-actions .delete:disabled {
    cursor: not-allowed;
    opacity: 0.35;
}

.category-list-empty {
    padding: 46px 20px !important;
    text-align: center !important;
}

.category-list-empty strong {
    color: #0f172a;
    display: block;
    font-size: 17px;
    font-weight: 950;
    margin-bottom: 8px;
}

.category-list-empty span {
    color: #64748b;
    font-size: 13px;
    font-weight: 750;
}

/* === REVIEW CONTROL CENTER PATCH 260613 === */

.review-control-page {
    background: linear-gradient(135deg, #eef5f8 0%, #e9f3ef 100%);
}

.review-control-summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.review-control-summary article {
    background: #fff;
    border-radius: 16px;
    padding: 16px;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .07);
}

.review-control-summary span {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
}

.review-control-summary strong {
    display: block;
    margin-top: 5px;
    font-size: 28px;
    letter-spacing: -.05em;
}

.review-control-summary .is-warning {
    background: #fff7ed;
    color: #9a3412;
}

.review-control-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
    gap: 16px;
    align-items: start;
}

.review-control-card {
    background: #fff;
    border: 1px solid #dbe4ee;
    border-radius: 18px;
    padding: 16px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .07);
    margin-bottom: 16px;
}

.review-control-card-head {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 14px;
}

.review-control-card-head h2 {
    margin: 0;
    font-size: 18px;
    letter-spacing: -.05em;
}

.review-control-card-head p {
    margin: 4px 0 0;
    color: #64748b;
    font-size: 13px;
    font-weight: 700;
}

.review-control-card-head > strong,
.review-control-card-head > span {
    padding: 7px 11px;
    border-radius: 999px;
    background: #ecfdf5;
    color: #047857;
    font-size: 12px;
    font-weight: 1000;
    white-space: nowrap;
}

.review-flow-select-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.review-flow-mini-card {
    position: relative;
    display: block;
    border: 1px solid #d8e2eb;
    border-radius: 14px;
    padding: 12px;
    background: #f8fafc;
    cursor: pointer;
}

.review-flow-mini-card.is-selected {
    border-color: #03c75a;
    box-shadow: inset 0 0 0 2px rgba(3, 199, 90, .12);
    background: #f3fff8;
}

.review-flow-mini-card input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.review-flow-mini-card strong {
    display: block;
    font-size: 14px;
}

.review-flow-mini-card span {
    display: block;
    margin-top: 4px;
    min-height: 32px;
    color: #475569;
    font-size: 11px;
    line-height: 1.35;
}

.review-flow-mini-card em {
    display: inline-block;
    margin-top: 8px;
    padding: 2px 6px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
    font-style: normal;
    font-size: 10px;
    font-weight: 900;
}

.review-flow-mini-card ol {
    margin: 8px 0 0;
    padding-left: 16px;
    color: #64748b;
    font-size: 10px;
    line-height: 1.45;
}

.review-policy-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 12px;
}

.review-policy-options label {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 10px;
    font-size: 12px;
    font-weight: 900;
    color: #334155;
    background: #fff;
}

.review-memo-label {
    display: grid;
    gap: 6px;
    margin-top: 12px;
    font-size: 12px;
    font-weight: 900;
    color: #475569;
}

.review-memo-label textarea {
    width: 100%;
    min-height: 70px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    padding: 11px;
    resize: vertical;
}

.review-control-save-button {
    width: 100%;
    margin-top: 12px;
    border: 0;
    border-radius: 13px;
    padding: 12px 14px;
    background: #03c75a;
    color: #fff;
    font-weight: 1000;
    cursor: pointer;
}

.review-permission-table-wrap,
.review-monitor-table-wrap {
    overflow: auto;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
}

.review-permission-table,
.review-monitor-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 760px;
    background: #fff;
}

.review-permission-table th,
.review-permission-table td,
.review-monitor-table th,
.review-monitor-table td {
    border-bottom: 1px solid #e5e7eb;
    padding: 10px 9px;
    text-align: left;
    vertical-align: middle;
    font-size: 12px;
}

.review-permission-table th,
.review-monitor-table th {
    background: #f8fafc;
    color: #334155;
    font-size: 11px;
    font-weight: 1000;
}

.review-permission-table td:nth-child(n+3) {
    text-align: center;
}

.review-permission-table strong {
    display: block;
    font-size: 13px;
}

.review-permission-table span,
.review-permission-table em {
    color: #64748b;
    font-size: 11px;
    font-style: normal;
}

.review-permission-table input[type='checkbox'] {
    width: 18px;
    height: 18px;
    accent-color: #03c75a;
}

.review-monitor-date strong,
.review-monitor-date span {
    display: block;
    white-space: nowrap;
}

.review-monitor-date span {
    color: #64748b;
}

.review-monitor-title a {
    color: #0f172a;
    font-weight: 900;
    text-decoration: none;
}

.review-monitor-title em {
    display: inline-block;
    margin-left: 6px;
    padding: 2px 6px;
    border-radius: 999px;
    background: #fed7aa;
    color: #9a3412;
    font-style: normal;
    font-size: 10px;
    font-weight: 1000;
}

.review-status-badge {
    display: inline-block;
    padding: 5px 8px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
    font-size: 11px;
    font-weight: 1000;
    white-space: nowrap;
}

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

.review-status-badge.status-approved {
    background: #dbeafe;
    color: #1d4ed8;
}

.review-status-badge.status-rejected {
    background: #fee2e2;
    color: #b91c1c;
}

.review-status-badge.status-auto_published {
    background: #dcfce7;
    color: #15803d;
}

.review-monitor-table tr.is-delayed {
    background: #fff7ed;
}

.review-reviewer-button {
    border: 0;
    background: #eff6ff;
    color: #1d4ed8;
    border-radius: 999px;
    padding: 6px 9px;
    font-size: 11px;
    font-weight: 1000;
    cursor: pointer;
}

.review-muted {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

.review-action-cell {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    min-width: 250px;
}

.review-action-cell form {
    margin: 0;
}

.review-action-cell button {
    border: 0;
    border-radius: 8px;
    padding: 6px 8px;
    color: #fff;
    font-size: 11px;
    font-weight: 1000;
    cursor: pointer;
}

.review-action-cell .is-reject {
    background: #ef4444;
}

.review-action-cell .is-approve {
    background: #2563eb;
}

.review-action-cell .is-publish {
    background: #03c75a;
}

.review-action-cell .is-instant {
    background: #111827;
}

.review-empty-cell {
    padding: 22px !important;
    text-align: center !important;
    color: #64748b;
    font-weight: 900;
}

.review-event-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.review-event-list article {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 11px;
    background: #f8fafc;
}

.review-event-list strong {
    display: block;
    font-size: 13px;
}

.review-event-list span {
    color: #64748b;
    font-size: 11px;
    font-weight: 800;
}

.review-event-list p {
    margin: 6px 0 0;
    color: #334155;
    font-size: 12px;
    line-height: 1.45;
}

.review-message-modal {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, .48);
    z-index: 9999;
    padding: 20px;
}

.review-message-modal.is-open {
    display: flex;
}

.review-message-panel {
    position: relative;
    width: min(520px, 100%);
    border-radius: 18px;
    background: #fff;
    padding: 20px;
    box-shadow: 0 30px 80px rgba(15, 23, 42, .28);
}

.review-message-panel h2 {
    margin: 0;
    font-size: 20px;
    letter-spacing: -.05em;
}

.review-message-panel p {
    margin: 8px 0 12px;
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
}

.review-message-panel textarea {
    width: 100%;
    min-height: 130px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    padding: 12px;
    resize: vertical;
}

.review-message-panel button[type='submit'] {
    width: 100%;
    margin-top: 10px;
    border: 0;
    border-radius: 12px;
    padding: 12px;
    background: #03c75a;
    color: #fff;
    font-weight: 1000;
    cursor: pointer;
}

.review-message-close {
    position: absolute;
    right: 12px;
    top: 12px;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: #f1f5f9;
    color: #0f172a;
    font-size: 22px;
    font-weight: 900;
    cursor: pointer;
}

@media (max-width: 1280px) {
    .review-control-grid {
        grid-template-columns: 1fr;
    }

    .review-flow-select-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .review-control-summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .review-event-list {
        grid-template-columns: 1fr;
    }
}

/* === REVIEW FLOW SIMPLIFY DASHBOARD PATCH 260613 === */

.review-flow-select-grid.flow-count-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.review-flow-mini-card {
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease, transform .15s ease;
}

.review-flow-mini-card:hover {
    transform: translateY(-1px);
}

.review-flow-mini-card.is-selected {
    border-color: #03c75a !important;
    box-shadow: inset 0 0 0 2px rgba(3, 199, 90, .16), 0 12px 24px rgba(3, 199, 90, .08);
    background: #f2fff7 !important;
}

.review-flow-example {
    margin: 10px 0 0;
    padding: 9px;
    border-radius: 10px;
    background: #ffffff;
    color: #334155;
    font-size: 11px;
    line-height: 1.45;
    font-weight: 800;
}

.review-flow-selected-box {
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid #bbf7d0;
    border-radius: 14px;
    background: #f0fdf4;
    color: #14532d;
    font-size: 13px;
    font-weight: 900;
}

.review-flow-selected-box b {
    display: block;
    margin-bottom: 5px;
    color: #047857;
}

.dashboard-stats article.is-review-hot {
    background: #fff7ed;
    color: #9a3412;
}

.dashboard-review-card {
    border: 1px solid #bbf7d0;
}

.dashboard-review-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
    padding: 10px 12px;
    border-radius: 14px;
    background: #f8fafc;
}

.dashboard-review-toolbar label {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    color: #334155;
    font-size: 13px;
    font-weight: 1000;
}

.dashboard-review-toolbar button,
.dashboard-review-actions button,
.dashboard-review-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 9px;
    padding: 8px 10px;
    background: #03c75a;
    color: #fff;
    font-size: 12px;
    font-weight: 1000;
    text-decoration: none;
    cursor: pointer;
}

.dashboard-review-toolbar button.is-danger,
.dashboard-review-actions button.is-danger {
    background: #ef4444;
}

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

.dashboard-review-list > article {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 12px;
    background: #fff;
}

.dashboard-review-check input {
    width: 18px;
    height: 18px;
    accent-color: #03c75a;
}

.dashboard-review-main strong {
    display: block;
    color: #0f172a;
    font-size: 15px;
    letter-spacing: -.03em;
}

.dashboard-review-main span {
    display: block;
    margin-top: 4px;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

.dashboard-review-main p {
    margin: 5px 0 0;
    color: #2563eb;
    font-size: 12px;
    font-weight: 900;
}

.dashboard-review-actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.dashboard-review-actions form {
    margin: 0;
}

@media (max-width: 1280px) {
    .review-flow-select-grid.flow-count-3 {
        grid-template-columns: 1fr;
    }

    .dashboard-review-list > article {
        grid-template-columns: 28px minmax(0, 1fr);
    }

    .dashboard-review-actions {
        grid-column: 2;
        justify-content: flex-start;
    }
}


/* === UNIVERSAL LOGOUT SIDEBAR PATCH 260613 === */

.sidebar-logout-wrap {
    margin-top: auto;
    padding-top: 18px;
}

.sidebar-logout-form {
    margin: 0;
}

.sidebar-logout-button {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 14px;
    padding: 12px 14px;
    background: rgba(255, 255, 255, .06);
    color: #e5edf5;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
    transition: background .15s ease, transform .15s ease, border-color .15s ease;
}

.sidebar-logout-button:hover {
    background: rgba(239, 68, 68, .18);
    border-color: rgba(248, 113, 113, .35);
    transform: translateY(-1px);
}

.sidebar-logout-icon {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(248, 113, 113, .18);
    color: #fecaca;
    font-weight: 1000;
}


/* === UNIVERSAL LOGOUT ALL SURFACES PATCH 260613 === */
.sidebar-logout-wrap {
    margin-top: auto;
    padding-top: 18px;
}

.sidebar-logout-form {
    margin: 0;
}

.sidebar-logout-button {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 14px;
    padding: 12px 14px;
    background: rgba(255, 255, 255, .06);
    color: #e5edf5;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.sidebar-logout-button:hover {
    background: rgba(239, 68, 68, .18);
    border-color: rgba(248, 113, 113, .35);
}

.sidebar-logout-icon {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(248, 113, 113, .18);
    color: #fecaca;
    font-weight: 1000;
}



/* === LOGOUT GET LINK CSRF FIX 260613 === */
.sidebar-logout-button,
.kpa-logout-button,
.newsroom-admin-logout-button,
.public-logout-button {
    text-decoration: none;
}


/* === STAFF REVIEW FLOW FIX PATCH 260613 === */
.review-action-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    padding: 6px 8px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 11px;
    font-weight: 1000;
    text-decoration: none;
}

.review-action-link.is-edit {
    background: #eff6ff;
    color: #1d4ed8;
}

.dashboard-message-card {
    border: 1px solid #bfdbfe;
}

.review-status-badge.status-not_requested {
    background: #e5e7eb;
    color: #374151;
}


/* === REVIEW MESSAGE INBOX PATCH 260613 === */

.review-message-inbox-card {
    border: 1px solid #bfdbfe;
}

.review-message-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
    padding: 10px 12px;
    border-radius: 14px;
    background: #f8fafc;
}

.review-message-toolbar label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #334155;
    font-size: 13px;
    font-weight: 1000;
}

.review-message-toolbar input,
.review-message-check input {
    width: 17px;
    height: 17px;
    accent-color: #03c75a;
}

.review-message-toolbar button {
    border: 0;
    border-radius: 9px;
    padding: 8px 11px;
    background: #2563eb;
    color: #fff;
    font-size: 12px;
    font-weight: 1000;
    cursor: pointer;
}

.review-message-toolbar button.is-danger {
    background: #ef4444;
}

.review-message-list {
    display: grid;
    gap: 10px;
}

.review-message-list article {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 12px;
    background: #fff;
}

.review-message-list article.is-unread {
    border-color: #93c5fd;
    background: #eff6ff;
}

.review-message-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.review-message-meta strong {
    color: #0f172a;
    font-size: 13px;
    font-weight: 1000;
}

.review-message-meta span {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

.review-message-meta em {
    border-radius: 999px;
    padding: 2px 7px;
    font-style: normal;
    font-size: 11px;
    font-weight: 1000;
}

.review-message-meta em.is-read {
    background: #e5e7eb;
    color: #475569;
}

.review-message-meta em.is-unread {
    background: #dbeafe;
    color: #1d4ed8;
}

.review-message-body p {
    margin: 7px 0 0;
    color: #334155;
    font-size: 13px;
    line-height: 1.55;
    font-weight: 700;
}

.review-message-body b {
    color: #111827;
}


/* === REVIEW ACTION GET LINK PATCH 260613 === */

.review-action-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 8px;
    padding: 6px 8px;
    color: #fff;
    font-size: 11px;
    font-weight: 1000;
    text-decoration: none;
    cursor: pointer;
}

.review-action-link.is-edit {
    background: #eff6ff;
    color: #1d4ed8;
}

.review-action-link.is-approve {
    background: #2563eb;
}

.review-action-link.is-reject {
    background: #ef4444;
}

.review-action-link.is-publish {
    background: #03c75a;
}

