*{box-sizing:border-box}body{margin:0;background:#f1f5f9;color:#172033;font-family:"Malgun Gothic",Arial,sans-serif}.admin-shell{width:min(1180px,calc(100% - 32px));margin:28px auto}.admin-header{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#202b37,#354454);color:#fff;padding:26px 30px;border-radius:18px}.admin-header p{margin:0 0 6px;color:#b8c6d5;font-size:13px}.admin-header h1{margin:0;font-size:27px}.admin-header nav{display:flex;gap:10px;flex-wrap:wrap}.admin-header a{color:#e8eef5;text-decoration:none;border:1px solid rgba(255,255,255,.2);padding:10px 13px;border-radius:9px}.admin-header .primary-link{background:#2563eb;border-color:#2563eb}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;margin:20px 0;background:#fff;padding:16px;border-radius:12px}.admin-toolbar form{display:flex;gap:8px}.admin-toolbar input{width:320px;max-width:60vw;padding:11px;border:1px solid #ccd5df;border-radius:8px}.admin-toolbar button,.login-card button{padding:11px 18px;border:0;border-radius:8px;background:#2563eb;color:#fff;font-weight:700}.table-wrap{overflow:auto;background:#fff;border-radius:14px}table{width:100%;border-collapse:collapse}th,td{padding:14px;border-bottom:1px solid #e5eaf0;text-align:center;white-space:nowrap}th{background:#f8fafc;color:#526174;font-size:13px}.title-cell{text-align:left;min-width:320px}.actions{display:flex;justify-content:center;gap:8px}.actions a,.actions button{border:0;background:none;color:#2563eb;text-decoration:none;cursor:pointer;font:inherit}.actions form{display:inline}.status{padding:5px 8px;border-radius:999px;font-size:12px}.published{background:#dcfce7;color:#166534}.draft{background:#e5e7eb;color:#4b5563}.alert{margin:18px 0;padding:14px;border-radius:10px}.alert.success{background:#dcfce7;color:#166534}.alert.error{background:#fee2e2;color:#991b1b}.form-shell{max-width:1120px}.question-form{background:#fff;padding:26px;margin-top:20px;border-radius:16px}.form-grid{display:grid;gap:14px}.metadata-grid{grid-template-columns:repeat(6,1fr)}label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;color:#526174}input,select{font:inherit;padding:11px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.full-label{margin-top:18px}.editor-section{margin-top:24px}.editor-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.editor-heading h2{font-size:17px}.editor-toolbar{display:flex;gap:5px;flex-wrap:wrap}.editor-toolbar button{border:1px solid #cbd5e1;background:#fff;padding:7px 9px;border-radius:6px;cursor:pointer}.wysiwyg{min-height:220px;border:1px solid #cbd5e1;border-radius:10px;padding:18px;line-height:1.8;outline:none}.wysiwyg:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.option-row{display:flex;gap:25px;align-items:center;margin-top:24px;padding:16px;background:#f8fafc;border-radius:10px}.option-row label{flex-direction:row;align-items:center}.option-row input[type=number]{width:80px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.form-actions a,.form-actions button{padding:11px 18px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;text-decoration:none;color:#334155;font-weight:700;cursor:pointer}.form-actions .save-button{background:#2563eb;border-color:#2563eb;color:#fff}.preview-modal{position:fixed;inset:0;background:rgba(15,23,42,.65);padding:5vh 20px;z-index:1000}.preview-dialog{position:relative;max-width:900px;max-height:90vh;overflow:auto;margin:auto;background:#fff;padding:30px;border-radius:16px}.preview-close{position:absolute;right:16px;top:12px;border:0;background:none;font-size:30px;cursor:pointer}.admin-login-body{min-height:100vh;display:grid;place-items:center}.login-card{width:min(420px,calc(100% - 32px));background:#fff;padding:32px;border-radius:18px;box-shadow:0 20px 60px rgba(15,23,42,.15)}.login-card h1{margin:0}.login-card p{color:#64748b}.login-card label{margin-top:16px}.login-card button{width:100%;margin-top:22px}.login-card>a{display:block;text-align:center;margin-top:18px;color:#64748b}@media(max-width:900px){.metadata-grid{grid-template-columns:repeat(2,1fr)}.admin-header{align-items:flex-start;gap:20px}.editor-heading{align-items:flex-start;flex-direction:column}}@media(max-width:600px){.admin-shell{width:calc(100% - 16px);margin:8px}.admin-header{padding:20px;flex-direction:column}.metadata-grid{grid-template-columns:1fr 1fr}.question-form{padding:16px}.option-row{align-items:flex-start;flex-direction:column}.form-actions{flex-wrap:wrap}.title-cell{min-width:230px}}

/* 전자기능장 특화 CKEditor */
.editor-help{margin:4px 0 0;color:#7a8796;font-size:12px;font-weight:400}.editor-preview-button{border:1px solid #aebaca;background:#fff;padding:8px 12px;border-radius:8px;color:#334155;font-weight:700;cursor:pointer}.special-toolbar{display:flex;flex-direction:column;gap:8px;margin:10px 0 8px;padding:12px;border:1px solid #d7dfe8;border-radius:10px;background:#f8fafc}.tool-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tool-group-title{min-width:42px;color:#526174;font-size:12px;font-weight:800}.special-toolbar button{border:1px solid #cbd5e1;background:#fff;padding:7px 9px;border-radius:7px;color:#334155;font-size:12px;font-weight:700;cursor:pointer}.special-toolbar button:hover{border-color:#2563eb;color:#2563eb;background:#eff6ff}.ckeditor-source{width:100%;min-height:260px}.ck-editor__editable_inline{min-height:270px;padding:18px 22px!important;line-height:1.85}.ck.ck-editor{border-radius:10px;overflow:hidden}.ck-content blockquote{font-style:normal;border:2px solid #4b5563!important;border-left:2px solid #4b5563!important;background:#fff!important;padding:16px 18px!important;margin:18px 0!important}.ck-content table{font-size:14px}.preview-content{min-height:180px}.equation-modal{position:fixed;inset:0;z-index:1100;background:rgba(15,23,42,.68);padding:8vh 20px}.equation-dialog{position:relative;width:min(720px,100%);margin:auto;background:#fff;border-radius:16px;padding:26px;box-shadow:0 24px 70px rgba(0,0,0,.24)}.equation-dialog h2{margin:0 0 8px}.equation-dialog p{margin:0 0 14px;color:#64748b}.equation-dialog code{background:#eef2f7;padding:2px 5px;border-radius:5px}.equation-close{position:absolute;right:14px;top:10px;border:0;background:none;font-size:30px;cursor:pointer}.equation-dialog textarea{width:100%;resize:vertical;padding:12px;border:1px solid #bdc8d5;border-radius:9px;font-family:Consolas,monospace;line-height:1.6}.equation-display-option{display:flex;flex-direction:row;align-items:center;margin-top:10px}.equation-live-preview{min-height:90px;margin-top:14px;padding:18px;border:1px dashed #aebaca;border-radius:10px;background:#fbfdff;text-align:center}.equation-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.equation-actions button{padding:10px 16px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font-weight:700;cursor:pointer}.equation-actions .equation-insert{background:#2563eb;border-color:#2563eb;color:#fff}
@media(max-width:600px){.special-toolbar{padding:9px}.tool-group-title{width:100%;min-width:0}.special-toolbar button{flex:1 1 auto}.ck-editor__editable_inline{min-height:220px;padding:14px!important}}

.native-editor{border:1px solid #cbd5e1;border-radius:12px;overflow:hidden;background:#fff}
.native-toolbar{padding:10px;background:#f8fafc;border-bottom:1px solid #dbe3ec}
.native-toolbar .tool-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 8px}
.native-toolbar .tool-group:last-child{margin-bottom:0}
.native-toolbar button{border:1px solid #cbd5e1;background:#fff;padding:7px 10px;border-radius:7px;cursor:pointer;font-weight:700;color:#334155}
.native-toolbar button:hover{border-color:#2563eb;color:#2563eb;background:#eff6ff}
.native-editable{min-height:280px;padding:20px;outline:none;line-height:1.85;background:#fff}
.native-editable:focus{box-shadow:inset 0 0 0 2px rgba(37,99,235,.28)}
.native-editable:empty:before{content:"내용을 입력하세요.";color:#94a3b8}
.equation-modal{position:fixed;inset:0;z-index:1100;background:rgba(15,23,42,.68);padding:5vh 20px}
.equation-dialog{position:relative;max-width:760px;margin:auto;background:#fff;border-radius:16px;padding:26px}
.equation-dialog textarea{width:100%;font-family:Consolas,monospace}
.equation-close{position:absolute;right:14px;top:10px;border:0;background:none;font-size:28px}
.equation-live-preview{min-height:90px;margin:16px 0;padding:18px;border:1px solid #dbe3ec;border-radius:10px;background:#f8fafc}
.equation-display-option{flex-direction:row;align-items:center;margin-top:12px}
.equation-actions{display:flex;justify-content:flex-end;gap:8px}
.equation-actions button{padding:10px 16px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}
.equation-actions .equation-insert{background:#2563eb;border-color:#2563eb;color:#fff}

.optional-label{font-size:11px;font-weight:400;color:#94a3b8}
.required-mark{display:inline-block;margin-left:5px;padding:2px 6px;border-radius:999px;background:#fee2e2;color:#b91c1c;font-size:11px;vertical-align:middle}
.native-editor.is-invalid{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.13)}
.native-editor.is-invalid .native-editable{background:#fffafa}

.field-label-line{display:flex;align-items:center;gap:5px;min-height:18px;white-space:nowrap}
.field-label-line .optional-label{display:inline;flex:0 0 auto}
.native-editable{color:#172033}
.native-editable font{color:inherit;font-family:inherit}

/* 작성 포인트·해설 에디터만 높이 축소 */
.editor-section[data-editor-name="explanation_content"] .native-editable {
    min-height: 140px;
}


/* 회차 + 문제번호 실시간 중복 확인 */
.question-number-field .duplicate-status{
    display:block;
    min-height:17px;
    margin-top:1px;
    font-size:11px;
    font-weight:700;
    line-height:1.35;
}
.duplicate-status.is-checking{color:#64748b}
.duplicate-status.is-available{color:#15803d}
.duplicate-status.is-duplicate,
.duplicate-status.is-error{color:#dc2626}
.save-button:disabled{
    opacity:.5;
    cursor:not-allowed;
    filter:none!important;
}


/* 관리자 문제 목록: 긴 제목 때문에 관리 메뉴가 밀리지 않도록 */
.table-wrap {
    overflow-x: auto;
}

.table-wrap table {
    width: 100%;
    table-layout: fixed;
}

.table-wrap th:nth-child(1),
.table-wrap td:nth-child(1) {
    width: 70px;
}

.table-wrap th:nth-child(2),
.table-wrap td:nth-child(2) {
    width: 65px;
}

.table-wrap th:nth-child(3),
.table-wrap td:nth-child(3) {
    width: 110px;
}

.table-wrap th:nth-child(5),
.table-wrap td:nth-child(5) {
    width: 70px;
}

.table-wrap th:nth-child(6),
.table-wrap td:nth-child(6) {
    width: 80px;
}

.table-wrap th:nth-child(7),
.table-wrap td:nth-child(7) {
    width: 170px;
}

.table-wrap .title-cell {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: keep-all;
    line-height: 1.5;
}

.table-wrap .actions {
    white-space: nowrap;
    flex-wrap: nowrap;
}

@media (max-width: 800px) {
    .table-wrap table {
        min-width: 820px;
    }
}
