@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap');

body { font-family:'Noto Sans KR',sans-serif; background:#f4f6f8; margin:0; padding:0; color:#333; -webkit-font-smoothing:antialiased; min-width:1200px; }
input:focus, button:focus, textarea:focus { outline:none; }
.manager-wrap { max-width:1200px; margin:40px auto; background:#fff; border-radius:8px; box-shadow:0 4px 20px rgba(0,0,0,0.04); overflow:hidden; }

.header { padding:20px 40px; border-bottom:1px solid #eee; display:flex; justify-content:space-between; align-items:center; background:#fff; }
.header-left { display:flex; align-items:center; gap:20px; }
.header-logo { display:flex; align-items:center; gap:10px; cursor:pointer; }
.header-logo img { height:26px; object-fit:contain; }
.header-logo span { font-size:18px; font-weight:700; color:#222; letter-spacing:-0.5px; }
.header-logo a { font-size:0; }
.header-menu { display:flex; align-items:center; gap:5px; }
.btn-header-link { background:#f8f9fa; border:none; font-size:13px; font-weight:500; color:#666; cursor:pointer; padding:8px 12px; border-radius:4px; transition:0.2s; text-decoration:none; }
.btn-header-link:hover { background:#f8f9fa; color:#0d6efd; }
.btn-script-modal { background:#333; color:#fff; border:none; padding:9px 16px; border-radius:4px; font-size:13px; font-weight:600; cursor:pointer; display:flex; align-items:center; gap:8px; margin-left:15px; transition:0.2s; }
.btn-script-modal:hover { background:#555; }
.btn-script-modal i { color:#ffd43b; }

.modal-overlay { display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.5); z-index:1000; align-items:center; justify-content:center; }
.modal-overlay.open { display:flex; }
.modal-box { background:#fff; width:600px; border-radius:8px; box-shadow:0 10px 25px rgba(0,0,0,0.2); overflow:hidden; animation:slideUp 0.3s ease-out; }
.modal-header { padding:20px 25px; border-bottom:1px solid #eee; display:flex; justify-content:space-between; align-items:center; background:#fbfbfb; }
.modal-header h3 { margin:0; font-size:16px; font-weight:700; color:#333; }
.btn-close-modal { background:none; border:none; font-size:18px; color:#999; cursor:pointer; }
.btn-close-modal:hover { color:#333; }
.modal-body { padding:30px 25px; }
.modal-desc { font-size:13px; color:#666; margin-bottom:15px; line-height:1.5; }
.code-box { background:#282c34; color:#abb2bf; padding:20px; border-radius:6px; font-family:'Courier New', monospace; font-size:13px; line-height:1.6; position:relative; overflow-x:auto; }
.code-comment { color:#5c6370; font-style:italic; }
.code-tag { color:#e06c75; }
.code-attr { color:#d19a66; }
.code-val { color:#98c379; }
.modal-footer { padding:20px 25px; border-top:1px solid #eee; background:#fff; text-align:right; }
.btn-copy-code { background:#0d6efd; color:#fff; border:none; padding:10px 20px; border-radius:4px; font-weight:bold; cursor:pointer; font-size:14px; }
.btn-copy-code:hover { background:#0b5ed7; }
@keyframes slideUp { from { transform:translateY(20px); opacity:0; } to { transform:translateY(0); opacity:1; } }

.tab-nav { display:flex; background:#fbfbfb; padding:0 40px; border-bottom:1px solid #eee; }
.tab-item { padding:18px 25px; cursor:pointer; font-size:15px; font-weight:600; color:#888; border-bottom:3px solid transparent; transition:0.3s; }
.tab-item:hover { color:#555; }
.tab-item.active { color:#0d6efd; border-bottom-color:#0d6efd; }
.tab-content { display:none; padding:40px; }
.tab-content.active { display:block; }

.group-section { background:#fff; border:1px solid #e1e4e8; border-radius:8px; margin-bottom:30px; box-shadow:0 2px 8px rgba(0,0,0,0.02); transition:0.3s; overflow:hidden; }
.group-section:hover { border-color:#d1d5da; box-shadow:0 5px 15px rgba(0,0,0,0.05); }
.group-header { padding:25px 30px; background:#fff; border-bottom:1px solid #f0f0f0; display:flex; justify-content:space-between; align-items:flex-start; }
.group-info { flex:1; }
.group-title-row { display:flex; align-items:center; gap:12px; margin-bottom:8px; }
.input-group-name { font-size:18px; font-weight:700; color:#222; border:1px solid transparent; padding:5px 10px; border-radius:4px; width:300px; transition:0.2s; }
.input-group-name:focus { border-color:#0d6efd; background:#f8fbff; }
.input-group-name:hover { background:#f9f9f9; }

.btn { padding:8px 16px; border-radius:4px; font-size:13px; font-weight:500; cursor:pointer; border:1px solid; transition:0.2s; display:inline-flex; align-items:center; gap:5px; }
.btn-outline { background:#fff; border-color:#d1d5da; color:#555; }
.btn-outline:hover { background:#f8f9fa; border-color:#999; color:#333; }
.btn-code-view { background:#fff; border-color:#d1d5da; color:#0d6efd; font-weight:600; }
.btn-code-view:hover { background:#f0f7ff; border-color:#0d6efd; }
.btn-danger { background:#fff; border-color:#ffdbdb; color:#ff4d4d; }
.btn-danger:hover { background:#fff5f5; border-color:#ff4d4d; }
.btn-save-group { background:#e9ecef; color:#adb5bd; border:none; font-weight:700; cursor:not-allowed; }
.btn-save-group.active { background:#0d6efd; color:#fff; cursor:pointer; box-shadow:0 2px 5px rgba(13,110,253,0.3); }
.btn-save-group.active:hover { background:#0b5ed7; }
.btn-add-big { width:100%; padding:20px; border:2px dashed #e1e4e8; background:#fdfdfd; color:#888; font-weight:600; border-radius:8px; cursor:pointer; transition:0.2s; margin-bottom:20px; display:flex; justify-content:center; align-items:center; gap:8px; }
.btn-add-big:hover { border-color:#0d6efd; background:#f0f7ff; color:#0d6efd; }

.list-table { width:100%; border-collapse:collapse; }
.list-header { background:#f8f9fa; font-size:12px; color:#666; font-weight:600; text-align:left; }
.list-header th { padding:12px 20px; border-bottom:1px solid #eee; }
.list-item td { padding:20px; border-bottom:1px solid #f0f0f0; vertical-align:middle; }
.list-item:last-child td { border-bottom:none; }
.list-item { background:#fff; transition:0.2s; }
.list-item:hover { background:#fafbfc; }

.form-input { width:100%; padding:8px 12px; border:1px solid #e1e4e8; border-radius:4px; font-size:13px; transition:0.2s; box-sizing:border-box; background:#fff; }
.form-input:focus { border-color:#0d6efd; box-shadow:0 0 0 3px rgba(13,110,253,0.1); }
textarea.form-input { min-height:38px; height:auto; overflow-y:hidden; resize:none; line-height:1.5; font-family:inherit; padding:8px 12px; }
.date-input { font-family:'Noto Sans KR'; width:100%; padding:8px 10px; border:1px solid #e1e4e8; border-radius:4px; font-size:12px; color:#555; box-sizing:border-box; background:#fff; }

.field-stack { display:flex; flex-direction:column; gap:10px; }
.field-row { display:flex; align-items:flex-start; gap:12px; }
.field-label { flex:0 0 64px; padding-top:9px; font-size:12px; font-weight:600; color:#666; line-height:1.4; }
.field-row .form-input { flex:1; }
.row-text, .row-text2 { width:100%; }

.date-stack { display:flex; flex-direction:column; gap:8px; }
.check-row { display:inline-flex; align-items:center; gap:7px; font-size:13px; color:#444; cursor:pointer; user-select:none; }
.check-row input[type="checkbox"] { width:16px; height:16px; accent-color:#0d6efd; cursor:pointer; }

.text-var-code { font-family:'Courier New', monospace; font-size:13px; color:#555; background:transparent; border:none; padding:0; font-weight:600; cursor:pointer; transition:0.2s; }
.text-var-code:hover { color:#0d6efd; background:transparent; }

.sort-control { display:flex; flex-direction:column; gap:4px; align-items:center; }
.sort-btn { border:none; background:none; color:#bbb; cursor:pointer; font-size:14px; padding:2px; }
.sort-btn:hover { color:#0d6efd; }

.thumb-box { width:120px; height:120px; background:#f4f6f8; border-radius:6px; overflow:visible; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; border:1px solid #eee; position:relative; margin:10px; cursor:pointer; transition:0.2s; }
.thumb-box:hover { border-color:#0d6efd; background:#f7fbff; }
.thumb-box i { font-size:20px; color:#d1d5da; }
.drag-msg { font-size:10px; color:#aaa; text-align:center; line-height:1.2; font-weight:500; padding:0 8px; }
.thumb-box img.preview-img { width:100%; height:100%; object-fit:cover; border-radius:6px; display:none; position:absolute; top:0; left:0; }
.thumb-box.has-image i, .thumb-box.has-image .drag-msg { display:none; }
.thumb-box.has-image img.preview-img { display:block; }
.badge-num { position:absolute; top:-8px; left:-8px; background:#333; color:#fff; font-size:14px; font-weight:700; width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 5px rgba(0,0,0,0.2); z-index:10; border:2px solid #fff; }
.thumb-upload-state { position:absolute; inset:0; background:rgba(255,255,255,0.74); backdrop-filter:blur(1px); display:flex; align-items:center; justify-content:center; border-radius:6px; opacity:0; pointer-events:none; transition:0.2s; z-index:4; }
.thumb-upload-text { display:inline-flex; align-items:center; justify-content:center; min-width:74px; height:28px; padding:0 10px; border-radius:999px; background:rgba(17,24,39,0.86); color:#fff; font-size:11px; font-weight:700; letter-spacing:-0.2px; }
.thumb-box.is-uploading .thumb-upload-state { opacity:1; }

.switch { position:relative; display:inline-block; width:42px; height:24px; }
.switch input { opacity:0; width:0; height:0; }
.slider { position:absolute; cursor:pointer; inset:0; background-color:#e9ecef; transition:.25s; border-radius:999px; box-shadow:inset 0 0 0 1px rgba(0,0,0,0.04); }
.slider:before { position:absolute; content:""; height:18px; width:18px; left:3px; top:3px; background-color:#fff; transition:.25s; border-radius:50%; box-shadow:0 2px 4px rgba(0,0,0,0.18); }
.switch input:checked + .slider { background-color:#0d6efd; }
.switch input:checked + .slider:before { transform:translateX(18px); }

.more-area { text-align:center; padding:12px; border-top:1px solid #f0f0f0; background:#fcfcfc; color:#777; font-size:12px; font-weight:600; cursor:pointer; transition:0.2s; }
.more-area:hover { background:#f5f5f5; color:#333; }
.collapsed .list-item:nth-child(n+2) { display:none; }

#toast { visibility:hidden; min-width:250px; background-color:#333; color:#fff; text-align:center; border-radius:4px; padding:12px; position:fixed; z-index:9999; left:50%; bottom:30px; transform:translateX(-50%); font-size:14px; }
#toast.show { visibility:visible; animation:fadein 0.5s, fadeout 0.5s 2.5s; }
@keyframes fadein { from { bottom:0; opacity:0; } to { bottom:30px; opacity:1; } }
@keyframes fadeout { from { bottom:30px; opacity:1; } to { bottom:0; opacity:0; } }

.color-input-wrap { display:flex; align-items:center; gap:5px; position:relative; }
.color-preview { width:36px; height:36px; border-radius:4px; border:1px solid #ddd; cursor:pointer; background:#333; box-shadow:0 1px 3px rgba(0,0,0,0.1); }
.color-picker-hidden { position:absolute; top:0; left:0; opacity:0; width:36px; height:36px; cursor:pointer; }
.input-color-code { width:90px; padding:8px; border:1px solid #ddd; border-radius:4px; font-size:13px; font-family:'Courier New', monospace; text-transform:uppercase; }

.manual-container { display:block; width:100%; margin:20px 0 0 0; padding:20px; border:1px solid #e1e1e1; background:#fff; }
.upload-area { display:flex; align-items:center; justify-content:center; width:100%; height:150px; margin:10px 0 0 0; border:2px dashed #ccc; cursor:pointer; }
.btn-save { display:inline-block; padding:10px 20px; background:#000; color:#fff; text-decoration:none; border-radius:4px; margin:15px 0 0 0; }


.date-stack { display:flex; flex-direction:column; gap:8px; padding:5px 0 }
.date-mode-row { display:flex; gap:15px; align-items:center }
.date-mode-row label { display:flex; align-items:center; gap:5px; cursor:pointer; font-size:13px; color:#333 }
.date-mode-row input[type="radio"] { margin:0; width:16px; height:16px; cursor:pointer }
.date-input-row { display:flex; gap:4px; align-items:center }
.date-input { width:110px; padding:6px; border:1px solid #ddd; border-radius:4px; font-size:12px }

