/* 편집기 전용 */
.tabs{display:flex;gap:4px;margin-left:16px}
.tab{height:32px;padding:0 12px;border-radius:8px;border:0;background:transparent;color:var(--ink-3);font-weight:600}
.tab.on{background:var(--accent-weak);color:var(--accent-2)}
.rail-head{display:flex;align-items:center;justify-content:space-between;margin:0 4px 10px}
.rail-head b{font-size:13px;color:var(--ink-2)}
.rail-help{font-size:12px;color:var(--ink-4);margin:14px 6px}
.tree,.tree ul{list-style:none;margin:0;padding:0}
.tree ul{padding-left:14px}
.node{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:7px;cursor:pointer;font-size:14px;color:var(--ink-2);border:1px solid transparent;user-select:none}
.node:hover{background:var(--hair-2)}
.node.on{background:var(--accent-weak);color:var(--accent-2);font-weight:600}
.node .k{font-family:var(--f-mono);font-size:10.5px;color:var(--ink-4);width:22px;flex:none}
.node .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.node .s{width:7px;height:7px;border-radius:50%;flex:none;background:var(--ink-4)}
.node .s.pub{background:var(--accent)}
.node .s.dirty{background:var(--tip)}
.node.drop-in{border-color:var(--accent);background:var(--accent-weak)}
.node.drop-before{box-shadow:inset 0 2px 0 var(--accent)}
.node.drop-after{box-shadow:inset 0 -2px 0 var(--accent)}
.ed-main{padding:22px clamp(20px,4vw,56px) 120px;max-width:1080px;width:100%}
.ed-bar{position:sticky;top:var(--top);z-index:10;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 0;background:#fff;border-bottom:1px solid var(--hair-2);margin-bottom:18px}
.ed-bar .grow{flex:1}
.ed-title{width:100%;border:0;font-size:34px;font-weight:700;letter-spacing:-.015em;padding:6px 0;outline:none}
.pop{position:absolute;right:0;top:38px;background:#fff;border:1px solid var(--hair);border-radius:10px;box-shadow:0 8px 24px rgb(0 0 0/.1);padding:6px;display:grid;z-index:20}
.pop button{border:0;background:none;text-align:left;padding:8px 12px;border-radius:6px;font-size:14px}
.pop button:hover{background:var(--hair-2)}
.pop .danger{color:var(--warn)}
.ed-bar{position:sticky}
.props{border:1px solid var(--hair);border-radius:10px;margin:8px 0 18px;background:var(--paper)}
.props summary{cursor:pointer;padding:10px 14px;font-size:13px;font-weight:600;color:var(--ink-2)}
.props-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;padding:4px 14px 14px}
.props-grid label{display:grid;gap:4px;font-size:12.5px;color:var(--ink-3)}
.props-grid .wide{grid-column:1/-1}
.props-grid input,.props-grid select,.props-grid textarea{border:1px solid var(--hair);border-radius:7px;padding:6px 8px;background:#fff;font-size:14px;color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips label{display:flex;gap:6px;align-items:center;background:#fff;border:1px solid var(--hair);border-radius:999px;padding:4px 10px;color:var(--ink-2);font-size:13px}
.editor{font-size:17px;line-height:1.75;min-height:400px}
.editor .ce-block__content,.editor .ce-toolbar__content{max-width:none}
.editor .ce-header{font-weight:700;padding:.6em 0 .2em}
.editor h2.ce-header{font-size:1.4em}.editor h3.ce-header{font-size:1.15em}.editor h4.ce-header{font-size:1em}
.ed-callout{position:relative}
.ed-callout-head{display:flex;gap:8px;margin-bottom:6px}
.ed-select,.ed-input{border:1px solid rgb(0 0 0/.1);border-radius:6px;background:rgb(255 255 255/.7);padding:4px 8px;font-size:13px}
.ed-input{flex:1}
.ed-text{outline:none;min-height:1.6em}
.ed-text:empty::before{content:attr(data-placeholder);color:var(--ink-4)}
.ed-toggle,.ed-prompt{border:1px dashed var(--hair);border-radius:10px;padding:10px 12px;margin:6px 0;display:grid;gap:6px}
.ed-toggle-mark,.ed-prompt-mark{font-size:11px;font-family:var(--f-mono);color:var(--accent);letter-spacing:.06em}
.ed-toggle-sum{font-weight:600}
.ed-area{width:100%;border:1px solid var(--hair);border-radius:7px;padding:8px 10px;font-size:15px;line-height:1.6;resize:vertical}
.ed-code{font-family:var(--f-mono);font-size:14px;background:var(--code-bg);color:var(--code-ink);border-color:var(--code-bg)}
.ed-check{display:grid;gap:2px;margin:4px 0}
.ed-check-row{display:flex;gap:8px;align-items:flex-start}
.ed-check-box{color:var(--accent);line-height:1.75}
.panel{max-width:1000px;padding:28px clamp(20px,4vw,56px) 80px}
.panel h2{margin:0 0 6px}
.code-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;align-items:end;margin:20px 0;padding:16px;border:1px solid var(--hair);border-radius:12px;background:var(--paper)}
.code-form label{display:grid;gap:5px;font-size:13px;font-weight:600;color:var(--ink-2)}
.code-form small{font-weight:400;color:var(--ink-4)}
.code-form select[multiple]{height:auto;padding:6px}
.new-code{margin:0 0 20px;padding:16px;border-radius:12px;background:var(--accent-weak);border:1px solid var(--accent)}
.new-code b{font-family:var(--f-mono);font-size:22px;letter-spacing:.1em;color:var(--accent-2)}
.list{width:100%;border-collapse:collapse;font-size:14px;margin-top:10px}
.list th,.list td{border-bottom:1px solid var(--hair);padding:9px 8px;text-align:left;vertical-align:top}
.list th{font-size:12.5px;color:var(--ink-3)}
.conf{display:flex;gap:10px;margin:14px 0}
.modal{position:fixed;inset:0;background:rgb(20 26 23/.35);display:grid;place-items:center;z-index:50;padding:24px}
.modal-box{background:#fff;border-radius:14px;width:min(900px,100%);max-height:88vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgb(0 0 0/.2)}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--hair)}
.modal-body{overflow:auto;padding:18px 22px}
.vlist{display:grid;grid-template-columns:260px 1fr;gap:16px;min-height:50vh}
.vlist .items{border-right:1px solid var(--hair);overflow:auto;max-height:65vh}
.vlist .items button{display:block;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:7px;font-size:13px}
.vlist .items button.on,.vlist .items button:hover{background:var(--hair-2)}
.vlist .items small{display:block;color:var(--ink-3)}

.ed-actions{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;position:relative;margin-left:auto}
.ed-area{overflow:hidden;min-height:44px}
.ed-bar .chip{display:inline-flex;align-items:center;height:26px;padding:0 9px;border-radius:4px;background:var(--hair-2);color:var(--ink-2);font-size:12.5px}
.ed-bar .chip.asof{background:var(--accent-weak);color:var(--accent-2)}

.ed-diagram{border:1px dashed var(--hair);border-radius:10px;padding:10px;margin:6px 0}
.ed-hint{font-size:12px;color:var(--ink-3)}
.ed-dg-preview{margin-top:8px;font-size:15px}
.ed-dg-preview .dg{margin:0}
/* 내 계정 */
.acct{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin:12px 0 22px}
.acct div{border:1px solid var(--hair,#ddd);border-radius:8px;padding:10px 12px}
.acct dt{font-size:12px;opacity:.65;margin-bottom:3px}
.acct dd{margin:0;font-weight:600;word-break:break-all}
.brand-mark{width:24px;height:24px;border-radius:5px;flex:none;vertical-align:middle}

/* 동의 명단 (2026-10-25): 칸이 많아 가로로 넘김 */
.panel-wide{max-width:none}
.cs-warn{font-size:12.5px;color:var(--ink-3);background:var(--paper-2,rgb(0 0 0/.04));border-radius:8px;padding:8px 10px;margin:8px 0}
.cs-scroll{overflow-x:auto}
.cs-table{font-size:13px;min-width:1200px}
.cs-table td,.cs-table th{white-space:nowrap}
