@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Sans+KR:wght@400;500;600;700&display=swap";:root{color:#18322b;font-synthesis:none;text-rendering:optimizelegibility;--forest-950:#102a23;--forest-900:#17382f;--forest-800:#1f4b3d;--forest-700:#28634e;--forest-600:#347c61;--forest-100:#dfece5;--forest-50:#eef5f0;--ink:#18322b;--muted:#687a73;--line:#dce2dc;--paper:#fff;--canvas:#f5f6f1;--amber:#c98418;--red:#b6534c;--blue:#4375a5;background:#f5f6f1;font-family:Noto Sans KR,Malgun Gothic,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 92% -10%, #347c611f, transparent 28rem), var(--canvas);min-width:1180px;min-height:100vh;margin:0}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:2px;outline:3px solid #347c613d}ul{margin:0;padding:0;list-style:none}.mono,pre{font-family:DM Mono,Consolas,monospace}.app-shell{min-height:100vh}.app-header{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;border-bottom:1px solid #102a2326;grid-template-columns:320px 1fr 320px;align-items:center;height:72px;padding:0 26px;display:grid;position:sticky;top:0}.brand{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:11px;align-items:center;gap:12px;width:fit-content;padding:0;display:flex}.brand:hover .brand-mark{background:var(--forest-700);transform:translateY(-1px)}.brand-mark{color:#fff;background:var(--forest-900);letter-spacing:-.06em;border-radius:11px;place-items:center;width:40px;height:40px;font-family:DM Mono,monospace;font-size:13px;font-weight:500;transition:background .15s,transform .15s;display:grid;box-shadow:0 7px 16px #102a232e}.brand>span:last-child{align-items:baseline;gap:8px;display:flex}.brand strong{letter-spacing:.04em;font-size:15px}.brand small{color:var(--muted);font-size:12px;font-weight:600}.top-nav{justify-content:center;align-items:stretch;gap:26px;height:100%;display:flex}.top-nav button{color:#718079;cursor:pointer;background:0 0;border:0;padding:3px 2px 0;font-size:14px;font-weight:600;position:relative}.top-nav button:after{content:"";background:0 0;border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:0;right:0}.top-nav button:hover,.top-nav button.active{color:var(--forest-900)}.top-nav button.active:after{background:var(--forest-700)}.top-nav button span{color:#8a4b08;background:#fff0ce;border-radius:9px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;display:grid;position:absolute;top:16px;right:-14px}.header-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.header-actions button,.create-actions button,.export-actions button,.json-preview .panel-head button{cursor:pointer;background:#fff;border:1px solid #d3dbd5;border-radius:9px;height:38px;padding:0 15px;font-size:12px;font-weight:700}button.primary{border-color:var(--forest-800);color:#fff;background:var(--forest-800);box-shadow:0 6px 14px #1f4b3d29}button.primary:hover{background:var(--forest-900)}.save-state{color:#75837d;align-items:center;gap:6px;margin-right:4px;font-size:11px;display:flex}.save-state i{background:#51a176;border-radius:50%;width:6px;height:6px}.save-state.connecting i,.save-state.saving i{background:#d29a34;animation:1.2s ease-in-out infinite save-pulse}.save-state.error{color:#a95750}.save-state.error i{background:#bd5b54}.save-state.locked{color:#7d8782}.save-state.locked i{background:#929c97}@keyframes save-pulse{0%,to{opacity:.45}50%{opacity:1}}.app-body{min-height:calc(100vh - 72px)}.app-body:has(.sidebar){grid-template-columns:292px minmax(0,1fr);display:grid}.is-read-only .row-menu{display:none}.sidebar{background:#f7f9f6f0;border-right:1px solid #dae1dc;height:calc(100vh - 72px);padding:23px 16px 40px;position:sticky;top:72px;overflow:auto}.sidebar::-webkit-scrollbar{width:6px;height:6px}.outline-list::-webkit-scrollbar{width:6px;height:6px}.file-list::-webkit-scrollbar{width:6px;height:6px}.json-preview pre::-webkit-scrollbar{width:6px;height:6px}.sidebar::-webkit-scrollbar-thumb{background:#c4cec7;border-radius:6px}.outline-list::-webkit-scrollbar-thumb{background:#c4cec7;border-radius:6px}.file-list::-webkit-scrollbar-thumb{background:#c4cec7;border-radius:6px}.json-preview pre::-webkit-scrollbar-thumb{background:#c4cec7;border-radius:6px}.sidebar-head{justify-content:space-between;align-items:flex-end;padding:0 7px 18px;display:flex}.eyebrow{color:var(--forest-600);letter-spacing:.12em;margin-bottom:5px;font-family:DM Mono,monospace;font-size:10px;font-weight:500;display:block}.sidebar-head h2,.page-toolbar h1,.panel-head h2,.mapping-tester h2,.review-detail h2{color:var(--forest-950);letter-spacing:-.035em;margin:0}.sidebar-head h2{font-size:24px}.count-badge{min-width:28px;height:25px;color:var(--forest-700);background:#fff;border:1px solid #d7e1da;border-radius:13px;place-items:center;padding:0 8px;font:500 11px DM Mono,monospace;display:grid}.search-box{background:#fff;border:1px solid #d8e0da;border-radius:10px;align-items:center;gap:9px;height:40px;margin:0 4px 19px;padding:0 12px;display:flex;box-shadow:0 2px 4px #102a2306}.search-box>span{color:#7e8f87;font-size:19px;transform:rotate(-18deg)}.search-box input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;font-size:12px}.search-box input::placeholder{color:#9ba8a1}.nav-section{margin-bottom:10px}.section-toggle{color:#697870;text-align:left;letter-spacing:.02em;cursor:pointer;background:0 0;border:0;border-radius:8px;grid-template-columns:18px 1fr auto;align-items:center;width:100%;height:37px;padding:0 7px;font-size:11px;font-weight:700;display:grid}.section-toggle:hover{color:var(--ink);background:#edf2ee}.section-toggle small{font:500 10px DM Mono,monospace}.chevron{font-size:18px;line-height:1;display:inline-block;transform:translateY(-1px)}.tree-row{min-height:35px;padding-left:calc(var(--depth) * 14px + 3px);border-radius:8px;grid-template-columns:23px minmax(0,1fr) 26px;align-items:center;display:grid;position:relative}.tree-row:hover{background:#edf2ee}.tree-row.selected{box-shadow:inset 3px 0 var(--forest-700);background:#dfece4}.disclosure{color:#76877f;cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;width:23px;height:29px;display:grid}.disclosure:hover{color:var(--forest-800);background:#ffffffb8}.disclosure-spacer{width:23px}.tree-select{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;height:35px;padding:0 7px 0 1px;display:grid}.node-dot{background:#6ca083;border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}.node-dot.code_concept{background:#8d9b94;width:5px;height:5px}.node-dot.derived_group{background:#b58643;border-radius:2px;width:7px;height:7px;transform:rotate(45deg)}.tree-name{color:#30463e;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.selected .tree-name{color:var(--forest-900);font-weight:700}.tree-code{color:#8b9992;font:500 9px DM Mono,monospace}.row-menu{place-items:center;width:26px;height:30px;display:grid;position:relative}.row-menu-button{color:#8b9892;opacity:0;cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;width:24px;height:28px;padding:0 0 4px;font-size:18px;line-height:1;display:grid}.tree-row:hover .row-menu-button,.tree-row.selected .row-menu-button,.row-menu-button[aria-expanded=true],.search-result-wrap:hover .row-menu-button{opacity:1}.row-menu-button:hover,.row-menu-button[aria-expanded=true]{color:var(--forest-900);background:#ffffffd6}.row-menu-popover{z-index:30;background:#fff;border:1px solid #d7dfd9;border-radius:9px;width:158px;padding:5px;position:absolute;top:29px;right:-3px;box-shadow:0 12px 28px #1430272e}.row-menu-popover button{color:#41564e;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;width:100%;min-height:32px;padding:0 8px;font-size:10.5px;display:flex}.row-menu-popover button:hover{background:#edf3ef}.row-menu-popover button.delete{color:#a24f49}.row-menu-popover button.delete:hover{background:#fff0ef}.row-menu-popover small{color:#929e98;font:400 8.5px DM Mono,monospace}.menu-separator{background:#e4e8e5;height:1px;margin:4px 2px}.derived-section{border-top:1px solid #e0e5e1;margin-top:15px;padding-top:10px}.member-tree{border-left:1px solid #d9e0db;margin-left:22px}.member-row{color:#5c6e66;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:0 7px 7px 0;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:5px;width:calc(100% - 5px);min-height:30px;padding:0 6px 0 9px;display:grid}.member-row:hover,.member-row.selected{color:var(--forest-900);background:#e7eee9}.member-row span:not(.member-line){text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.member-row small{color:#94a099;font:400 8.5px DM Mono,monospace}.member-line{background:#c5cec8;width:7px;height:1px}.search-results .section-label{color:#6f7e77;justify-content:space-between;margin:0 7px 8px;font-size:11px;font-weight:700;display:flex}.search-result{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:9px 36px 9px 10px;display:flex}.search-result-wrap{position:relative}.search-result-wrap>.row-menu{position:absolute;top:3px;right:5px}.search-result:hover,.search-result.selected{background:#dfece4}.search-result span{font-size:12px;font-weight:600}.search-result small{color:#819087;font:400 9px DM Mono,monospace}.empty-small{color:#8c9892;padding:15px 8px;font-size:11px}.page-content{width:min(100%,1500px);margin:0 auto;padding:34px 38px 70px}.edit-page{width:min(100%,1240px)}.page-toolbar{justify-content:space-between;align-items:flex-end;gap:22px;min-height:58px;margin-bottom:22px;display:flex}.page-toolbar h1{font-size:26px}.create-actions,.export-actions{gap:8px;display:flex}.create-actions button:hover,.export-actions button:hover,.header-actions button:hover{border-color:#aebeb3}.dataset-bar{background:#fffc;border:1px solid #dce3dd;border-radius:12px;margin-bottom:16px;overflow:hidden}.dataset-bar summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:55px;padding:0 17px;list-style:none;display:flex}.dataset-bar summary::-webkit-details-marker{display:none}.dataset-bar summary>span:first-child{align-items:baseline;gap:10px;display:flex}.dataset-bar summary strong{font-size:13px}.dataset-bar summary small,.dataset-bar summary>span:last-child{color:#7f8d86;font-size:10px}.dataset-bar[open] summary{border-bottom:1px solid #e1e6e2}.dataset-fields{background:#fafbf9;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px;display:grid}.editor-card{background:#fff;border:1px solid #dbe2dc;border-radius:15px;overflow:hidden;box-shadow:0 12px 32px #1c3a300e}.editor-title{background:linear-gradient(115deg,#e7f1ebc7,#0000 48%),#fff;border-bottom:1px solid #e3e7e4;justify-content:space-between;align-items:flex-start;padding:25px 27px 23px;display:flex}.title-meta{gap:6px;margin-bottom:9px;display:flex}.kind-pill,.code-pill{height:22px;color:var(--forest-700);background:#e3efe8;border-radius:5px;align-items:center;padding:0 8px;font-size:9px;font-weight:700;display:inline-flex}.kind-pill.derived_group{color:#86590f;background:#f7ebd1}.code-pill{color:#586a62;background:#eef1ef;font:500 9px DM Mono,monospace}.editor-title h2{color:var(--forest-950);letter-spacing:-.04em;margin:0 0 5px;font-size:24px}.editor-title p{color:#738179;margin:0;font-size:12px}.danger-ghost{color:#a1524b;cursor:pointer;background:#ffffffb3;border:1px solid #ead7d5;border-radius:8px;height:34px;padding:0 11px;font-size:11px}.danger-ghost:hover{background:#fff1ef}.issue-strip{background:#fffaf0;border-bottom:1px solid #eee4cf;flex-wrap:wrap;gap:7px;padding:11px 27px;display:flex}.issue-strip span{font-size:10px}.issue-strip .error{color:var(--red)}.issue-strip .warning{color:#a46a0d}.form-section{border-bottom:1px solid #e7eae8;padding:24px 27px 27px}.form-section:last-child{border-bottom:0}.section-heading{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:17px;display:flex}.section-heading h3{color:#294139;margin:0;font-size:14px}.section-heading span{color:#89958f;font-size:10px}.field-grid{grid-template-columns:repeat(2,1fr);gap:14px 16px;display:grid}.field-grid label,.dataset-fields label{gap:7px;display:grid}.field-grid label>span,.dataset-fields label>span{color:#61726a;font-size:10px;font-weight:700}.field-grid input,.field-grid select,.dataset-fields input{color:#263e36;background:#fbfcfb;border:1px solid #d7dfd9;border-radius:8px;outline:none;width:100%;height:42px;padding:0 12px;font-size:12px}.field-grid input:focus,.field-grid select:focus,.dataset-fields input:focus{background:#fff;border-color:#75a18c;box-shadow:0 0 0 3px #347c6114}.span-2{grid-column:span 2}.member-picker{background:#f8faf8;border:1px solid #dfe5e0;border-radius:10px;grid-template-columns:repeat(3,1fr);gap:6px;max-height:255px;padding:7px;display:grid;overflow:auto}.member-picker label{cursor:pointer;background:#fff;border:1px solid #0000;border-radius:7px;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0;min-height:38px;padding:0 9px;display:grid}.member-picker label.checked{background:#eaf4ed;border-color:#a5c3b1}.member-picker input{accent-color:var(--forest-700)}.member-picker span{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.member-picker small{color:#788880;font:400 9px DM Mono,monospace}.alias-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.alias-card{background:#fcfdfc;border:1px solid #dce3de;border-top:3px solid #56876f;border-radius:10px;min-height:178px;padding:15px}.alias-card.context{border-top-color:var(--blue)}.alias-card.ambiguous{border-top-color:var(--amber)}.alias-card.excluded{border-top-color:var(--red)}.alias-card-head{justify-content:space-between;gap:10px;margin-bottom:13px;display:flex}.alias-card-head h4{margin:0 0 3px;font-size:12px}.alias-card-head p{color:#87938d;margin:0;font-size:9px}.alias-card-head>span{color:#547160;background:#eaf2ed;border-radius:10px;place-items:center;min-width:22px;height:20px;padding:0 6px;font:500 9px DM Mono,monospace;display:grid}.chips{flex-wrap:wrap;align-content:flex-start;gap:6px;min-height:58px;display:flex}.chip{color:#385347;background:#eef5f0;border:1px solid #d6e1da;border-radius:6px;align-items:center;gap:5px;min-height:26px;padding:4px 4px 4px 8px;font-size:10px;line-height:1.35;display:inline-flex}.context .chip{color:#3f6385;background:#f0f5fa;border-color:#d9e4ef}.ambiguous .chip{color:#835b19;background:#fff8e8;border-color:#eadbbd}.excluded .chip{color:#8f514c;background:#fff5f4;border-color:#ead9d7}.chip button{width:19px;height:19px;color:inherit;cursor:pointer;background:#ffffff8c;border:0;border-radius:4px;place-items:center;display:grid}.empty-chip{color:#a1aaa5;padding:5px 0;font-size:10px}.alias-add{grid-template-columns:1fr auto;gap:6px;margin-top:11px;display:grid}.alias-add input{background:#fff;border:1px solid #dbe2dd;border-radius:7px;outline:0;min-width:0;height:34px;padding:0 9px;font-size:10px}.alias-add input:focus{border-color:#8cb19d}.alias-add button{cursor:pointer;background:#fff;border:1px solid #d6dfd9;border-radius:7px;width:45px;font-size:10px;font-weight:700}.alias-add button:hover{color:#fff;border-color:var(--forest-700);background:var(--forest-700)}.quality-summary{gap:8px;display:flex}.quality-summary span{color:#7d7564;background:#fffdf7;border:1px solid #e4ded0;border-radius:8px;align-items:center;gap:6px;height:34px;padding:0 11px;font-size:10px;display:flex}.quality-summary strong{color:#a4620e;font:500 11px DM Mono,monospace}.mapping-tester{background:linear-gradient(115deg,#e2efe6d6,#0000 36%),#fff;border:1px solid #d9e2dc;border-radius:14px;grid-template-columns:180px minmax(260px,.75fr) minmax(430px,1.25fr);align-items:center;gap:22px;margin-bottom:18px;padding:22px 23px;display:grid;box-shadow:0 9px 24px #1c3a300a}.mapping-tester h2{font-size:18px}.mapping-tester>label{background:#fff;border:1px solid #bdcec3;border-radius:9px;grid-template-columns:1fr auto;align-items:center;height:45px;padding:0 12px;display:grid;box-shadow:0 4px 10px #2245390f}.mapping-tester>label input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-size:12px}.mapping-tester>label span{color:#7e9087;font:500 13px DM Mono,monospace}.match-results{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;min-width:0;display:grid}.match-results button{text-align:left;cursor:pointer;background:#fbfcfb;border:1px solid #e0e5e1;border-radius:8px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;min-height:52px;padding:6px 9px;display:grid}.match-results button.best{background:#eff7f1;border-color:#97b6a4}.match-score{color:#fff;background:#4b896b;border-radius:50%;place-items:center;width:32px;height:32px;font:500 9px DM Mono,monospace;display:grid}.match-score.context{background:#527ea5}.match-score.ambiguous{background:#bc852e}.match-score.excluded{background:#b35b55}.match-results button>span:nth-child(2){gap:2px;min-width:0;display:grid}.match-results strong,.match-results small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.match-results strong{font-size:10.5px}.match-results small{color:#7c8983;font-size:8.5px}.match-results em{color:#75867e;font:400 8.5px DM Mono,monospace}.no-match{color:#839089;grid-column:span 2;margin:0;padding:14px;font-size:10px}.review-workspace{grid-template-columns:minmax(480px,.9fr) minmax(500px,1.1fr);align-items:start;gap:16px;display:grid}.outline-panel,.review-detail,.file-panel,.json-preview{background:#fff;border:1px solid #dbe2dd;border-radius:13px;overflow:hidden;box-shadow:0 8px 22px #1c3a300a}.panel-head{border-bottom:1px solid #e4e8e5;justify-content:space-between;align-items:center;min-height:65px;padding:14px 17px;display:flex}.panel-head h2{font-size:16px}.panel-head>span{color:#829087;font:400 10px DM Mono,monospace}.outline-header{color:#8c9892;background:#f8faf8;border-bottom:1px solid #e7ebe8;grid-template-columns:1fr 60px 42px;align-items:center;height:33px;padding:0 14px 0 18px;font-size:8px;font-weight:700;display:grid}.outline-header span:not(:first-child){text-align:right}.outline-list{max-height:650px;overflow:auto}.outline-list>button{text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #f0f2f0;grid-template-columns:1fr 60px 42px;align-items:center;width:100%;min-height:35px;padding:0 14px 0 18px;display:grid}.outline-list>button:hover{background:#f5f8f6}.outline-list>button.selected{box-shadow:inset 3px 0 var(--forest-700);background:#e5f0e8}.outline-list>button>span{padding-left:calc(var(--review-depth,0) * 18px);color:#40544c;align-items:center;gap:8px;font-size:10.5px;font-weight:600;display:flex}.outline-list small{color:#7c8b83;text-align:right;font:400 8.5px DM Mono,monospace}.outline-divider{color:#7b8982;letter-spacing:.04em;background:#f6f8f6;border-top:1px solid #dfe5e0;border-bottom:1px solid #e7ebe8;align-items:center;height:30px;padding:0 18px;font-size:8.5px;font-weight:700;display:flex}.review-detail{min-height:540px}.review-detail-head{background:linear-gradient(115deg,#e2f0e7eb,#0000 52%),#fff;border-bottom:1px solid #e2e7e3;justify-content:space-between;align-items:flex-start;min-height:127px;padding:22px;display:flex}.review-detail h2{margin-bottom:4px;font-size:22px}.review-detail-head p{color:#728079;margin:0;font-size:10.5px}.large-code{color:var(--forest-700);background:#ffffffbf;border:1px solid #ccdad1;border-radius:7px;padding:8px 10px;font:500 13px DM Mono,monospace}.fact-grid{border-bottom:1px solid #e4e8e5;grid-template-columns:2fr repeat(3,.6fr);display:grid}.fact-grid>div{border-right:1px solid #e8ebe9;gap:4px;min-width:0;padding:14px 16px;display:grid}.fact-grid>div:last-child{border-right:0}.fact-grid span{color:#849089;font-size:8.5px}.fact-grid strong{color:#385047;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.fact-grid>div:not(:first-child) strong{font:500 15px DM Mono,monospace}.review-block{border-bottom:1px solid #e8ebe9;padding:18px 20px}.review-block:last-child{border-bottom:0}.review-block h3{margin:0 0 12px;font-size:11px}.included-list{flex-wrap:wrap;gap:6px;display:flex}.included-list span{background:#f6f9f7;border:1px solid #dbe3dd;border-radius:6px;align-items:center;gap:7px;min-height:28px;padding:5px 8px;font-size:9.5px;display:inline-flex}.included-list small{color:#778880;font:400 8px DM Mono,monospace}.review-aliases{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.review-aliases>div{border:1px solid #e0e5e1;border-left:3px solid #56876f;border-radius:6px;min-height:60px;padding:9px 10px}.review-aliases>div.context{border-left-color:var(--blue)}.review-aliases>div.ambiguous{border-left-color:var(--amber)}.review-aliases>div.excluded{border-left-color:var(--red)}.review-aliases>div>span{color:#78867f;margin-bottom:6px;font-size:8px;font-weight:700;display:block}.review-aliases>div>div{flex-wrap:wrap;gap:4px;display:flex}.review-aliases small{color:#435a50;background:#eef3ef;border-radius:4px;padding:3px 5px;font-size:8px}.review-aliases small.empty{color:#9ca6a1;background:0 0}.review-issues{gap:6px;display:grid}.review-issues p{color:#725d31;background:#fff8e8;border-radius:6px;gap:8px;margin:0;padding:8px 10px;font-size:9px;display:flex}.review-issues p.error{color:#8c4944;background:#fff1ef}.review-issues p span{font-weight:700}.pass-message{color:#3b7057;background:#edf6f0;border-radius:6px;margin:0;padding:10px;font-size:9.5px}.export-summary{background:#fff;border:1px solid #dbe3dd;border-radius:13px;grid-template-columns:130px 130px minmax(0,1fr);gap:10px;min-height:112px;margin-bottom:17px;padding:16px;display:grid}.export-summary>div:not(.category-filters){background:#f1f6f2;border-radius:9px;grid-template-columns:1fr auto;align-items:end;padding:12px 15px;display:grid}.export-summary>div:nth-child(2){background:#fff8e9}.export-summary>div>span{color:#7a8981;grid-column:1/-1;font-size:9px}.export-summary>div>strong{color:var(--forest-800);font:500 24px DM Mono,monospace}.export-summary>div:nth-child(2)>strong{color:#a96911}.export-summary>div>small{color:#87938d;font-size:8.5px}.category-filters{padding:6px 7px 6px 12px}.category-filters>span{margin-bottom:8px;display:block}.category-filters>div{flex-wrap:wrap;gap:6px;display:flex}.category-filters label{color:#718078;cursor:pointer;background:#fbfcfb;border:1px solid #dfe5e1;border-radius:6px;align-items:center;gap:5px;height:29px;padding:0 8px;font-size:9px;display:flex}.category-filters label.active{color:var(--forest-800);background:#edf5ef;border-color:#9dbca9}.category-filters input{width:12px;height:12px;accent-color:var(--forest-700)}.category-filters small{color:#89968f;font:400 8px DM Mono,monospace}.export-workspace{grid-template-columns:minmax(620px,1.18fr) minmax(430px,.82fr);align-items:start;gap:16px;display:grid}.file-panel-head{padding:14px 16px}.file-panel-head h2{margin:0 0 3px}.file-panel-head span{color:#849088;font-size:9px}.file-panel-head button,.json-preview .panel-head button{cursor:pointer;background:#fff;border:1px solid #d5ddd7;border-radius:7px;height:31px;padding:0 10px;font-size:9px}.file-list{max-height:680px;overflow:auto}.file-list article{cursor:pointer;border-bottom:1px solid #edf0ee;grid-template-columns:24px 34px minmax(0,1fr) auto 46px;align-items:center;gap:9px;min-height:61px;padding:8px 12px;display:grid}.file-list article:hover{background:#f8faf8}.file-list article.previewing{box-shadow:inset 3px 0 var(--forest-700);background:#edf5ef}.file-list input{accent-color:var(--forest-700)}.file-icon{width:31px;height:31px;color:var(--forest-700);background:#e7f0ea;border-radius:7px;place-items:center;font:500 9px DM Mono,monospace;display:grid}.file-info{gap:3px;min-width:0;display:grid}.file-info strong,.file-info small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-info strong{font-size:10.5px}.file-info small{color:#8b9791;font-size:8px}.file-category{color:#587063;background:#edf3ef;border-radius:5px;padding:4px 6px;font-size:8px}.file-category.derived,.file-category.group{color:#805f28;background:#faf1dd}.file-category.cancer{color:#4b6883;background:#edf3f8}.download-one{cursor:pointer;background:#fff;border:1px solid #d7dfd9;border-radius:6px;height:28px;font-size:8.5px;font-weight:700}.download-one:hover{color:#fff;border-color:var(--forest-700);background:var(--forest-700)}.empty-files{color:#89968f;text-align:center;padding:40px;font-size:10px}.json-preview{position:sticky;top:89px}.json-preview .panel-head{min-height:65px}.json-preview .panel-head h2{text-overflow:ellipsis;white-space:nowrap;max-width:270px;font-size:13px;overflow:hidden}.preview-path{color:#8faaa0;text-overflow:ellipsis;white-space:nowrap;background:#20372f;border-bottom:1px solid #2d463d;align-items:center;height:29px;padding:0 14px;font:400 8px DM Mono,monospace;display:flex;overflow:hidden}.json-preview pre{color:#d7e8de;white-space:pre;background:#172b24;height:586px;margin:0;padding:17px;font-size:9px;line-height:1.75;overflow:auto}.visualization-page{width:min(100%,1540px)}.visualization-toolbar{align-items:center}.visual-mode-switch{background:#eef2ef;border:1px solid #d6ded8;border-radius:10px;gap:3px;padding:4px;display:flex}.visual-mode-switch button{color:#718079;cursor:pointer;background:0 0;border:0;border-radius:7px;height:34px;padding:0 14px;font-size:10.5px;font-weight:700}.visual-mode-switch button.active{color:#fff;background:var(--forest-800);box-shadow:0 4px 10px #1f4b3d2e}.visual-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:15px;display:grid}.visual-metrics>div{background:#ffffffd1;border:1px solid #dbe2dd;border-radius:10px;justify-content:space-between;align-items:center;min-height:63px;padding:10px 14px;display:flex}.visual-metrics span{color:#74837b;font-size:9.5px;font-weight:600}.visual-metrics strong{color:var(--forest-800);font:500 21px DM Mono,monospace}.visualization-workspace{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:15px;display:grid}.graph-panel,.visual-inspector{background:#fff;border:1px solid #d9e1db;border-radius:13px;overflow:hidden;box-shadow:0 9px 25px #1c3a300b}.graph-panel-head{border-bottom:1px solid #e2e7e3;justify-content:space-between;align-items:center;min-height:67px;padding:13px 17px;display:flex}.graph-panel-head>div:first-child{gap:3px;display:grid}.graph-panel-head>div:first-child span{color:var(--forest-600);letter-spacing:.08em;font:500 9px DM Mono,monospace}.graph-panel-head>div:first-child strong{color:#31483f;font-size:12px}.graph-legend{gap:13px;display:flex}.graph-legend span{color:#74827b;align-items:center;gap:5px;font-size:8.5px;display:flex}.graph-legend i{background:#6a9a80;border-radius:2px;width:7px;height:7px}.graph-legend i.code{background:#96a39c;border-radius:50%}.graph-legend i.derived{background:#b68135;transform:rotate(45deg)}.graph-scroll{background-color:#fbfcfa;background-image:linear-gradient(#f6f8f5 1px,#0000 1px),linear-gradient(90deg,#f6f8f5 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;width:100%;padding:8px;overflow:auto}.structure-svg{width:100%;min-width:900px;height:auto;display:block}.hierarchy-svg{min-height:430px}.derived-svg{min-width:840px}.graph-links path{fill:none;stroke:#cbd5ce;stroke-width:2px;transition:stroke .15s,stroke-width .15s}.graph-links path.active{stroke:var(--forest-600);stroke-width:3px}.graph-node,.derived-group-node,.derived-member-node{color:#344a41;cursor:pointer;background:#fff;border:1px solid #d1dad4;border-radius:9px;width:100%;height:100%;transition:border-color .15s,box-shadow .15s,transform .15s;box-shadow:0 4px 10px #1f3a3114}.graph-node{text-align:center;place-content:center;gap:3px;padding:7px 8px;display:grid}.graph-node:hover,.derived-group-node:hover,.derived-member-node:hover{border-color:#8fad9c;transform:translateY(-1px);box-shadow:0 7px 15px #1f3a3121}.graph-node.selected,.derived-group-node.selected,.derived-member-node.selected{border-color:var(--forest-700);box-shadow:0 0 0 3px #347c6124,0 7px 16px #1f3a3121}.graph-node.group{background:#e8f2eb;border-color:#9fb9aa}.graph-node strong,.derived-group-node strong{text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:700;overflow:hidden}.graph-node small,.derived-group-node small{color:#718178;font:400 8px DM Mono,monospace}.graph-column-label{fill:#74847b;letter-spacing:.08em;font:500 10px DM Mono,monospace}.derived-links path{fill:none;stroke-width:2.2px;opacity:.65;transition:opacity .16s,stroke-width .16s}.derived-links path.muted{stroke:#d6ddd8;stroke-width:1.2px;opacity:.28}.derived-links path.active{stroke-width:2.7px;opacity:.82}.derived-links path.series-0{stroke:#4e876d}.derived-links path.series-1{stroke:#48799d}.derived-links path.series-2{stroke:#b47f31}.derived-links path.series-3{stroke:#806da0}.derived-links path.series-4{stroke:#b66259}.derived-group-node{text-align:left;border-left:4px solid #4e876d;place-content:center start;gap:3px;padding:7px 12px 7px 14px;display:grid}.derived-group-node.series-1{border-left-color:#48799d}.derived-group-node.series-2{border-left-color:#b47f31}.derived-group-node.series-3{border-left-color:#806da0}.derived-group-node.series-4{border-left-color:#b66259}.derived-member-node{text-align:left;border-radius:7px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:0 8px 0 10px;display:grid}.derived-member-node span{text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:600;overflow:hidden}.derived-member-node small{color:#697a72;font:400 8px DM Mono,monospace}.derived-member-node i{color:#7f643d;background:#f6ead6;border-radius:8px;place-items:center;min-width:16px;height:16px;font:500 7px DM Mono,monospace;display:grid}.visual-inspector{position:sticky;top:89px}.visual-inspector-head{background:linear-gradient(135deg,#e2f0e7f2,#0000 65%),#fff;border-bottom:1px solid #e0e5e1;min-height:137px;padding:19px 18px;position:relative}.visual-inspector-head>span{color:var(--forest-600);letter-spacing:.08em;margin-bottom:7px;font:500 8px DM Mono,monospace;display:block}.visual-inspector-head h2{color:var(--forest-950);letter-spacing:-.035em;margin:0 0 4px;font-size:18px}.visual-inspector-head p{color:#718078;max-width:230px;margin:0;font-size:9px;line-height:1.55}.visual-inspector-head>strong{color:var(--forest-700);background:#ffffffb8;border:1px solid #bfd0c5;border-radius:6px;padding:5px 7px;font:500 9px DM Mono,monospace;position:absolute;top:18px;right:17px}.visual-inspector section{border-bottom:1px solid #e7ebe8;padding:17px 18px}.visual-inspector section h3{color:#3d5149;margin:0 0 11px;font-size:10px}.relation-list{gap:5px;max-height:264px;display:grid;overflow:auto}.relation-list>div{background:#f6f8f6;border-radius:6px;grid-template-columns:33px minmax(0,1fr) auto;align-items:center;gap:5px;min-height:31px;padding:0 7px;display:grid}.relation-list span{color:#819088;font-size:8px}.relation-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.relation-list small{color:#7b8a82;font:400 7.5px DM Mono,monospace}.relation-list p{color:#87938d;margin:0;font-size:9px}.alias-bars{gap:9px;display:grid}.alias-bars>div{grid-template-columns:31px minmax(0,1fr) 18px;align-items:center;gap:7px;display:grid}.alias-bars span{color:#74837b;font-size:8px}.alias-bars i{background:#edf0ee;border-radius:3px;height:5px;overflow:hidden}.alias-bars b{width:var(--bar-width);border-radius:inherit;background:#56876f;height:100%;display:block}.alias-bars b.context{background:var(--blue)}.alias-bars b.ambiguous{background:var(--amber)}.alias-bars b.excluded{background:var(--red)}.alias-bars strong{color:#53675e;text-align:right;font:500 9px DM Mono,monospace}.visual-edit-button{border:1px solid var(--forest-800);color:#fff;background:var(--forest-800);cursor:pointer;border-radius:8px;width:calc(100% - 36px);height:36px;margin:16px 18px;font-size:10px;font-weight:700}.visual-edit-button:hover{background:var(--forest-900)}.locked-editor{place-items:center;min-height:calc(100vh - 72px);display:grid}.locked-editor-card{background:#ffffffe0;border:1px solid #d8e0da;border-radius:16px;grid-template-columns:58px minmax(0,1fr);align-items:start;gap:20px;width:min(520px,100% - 64px);padding:34px;display:grid;box-shadow:0 16px 40px #18322b12}.lock-symbol{width:58px;height:58px;color:var(--forest-700);background:var(--forest-50);border-radius:16px;place-items:center;font-size:26px;display:grid}.locked-editor-card h1{color:var(--forest-950);letter-spacing:-.035em;margin:0 0 8px;font-size:22px}.locked-editor-card p{color:#718079;margin:0;font-size:11px;line-height:1.75}.unlock-backdrop{z-index:100;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0a1f197a;place-items:center;display:grid;position:fixed;inset:0}.unlock-dialog{background:#fff;border:1px solid #ffffffb3;border-radius:18px;width:390px;padding:34px;position:relative;box-shadow:0 28px 70px #0a1f194d}.unlock-close{color:#708078;cursor:pointer;background:#f1f4f2;border:0;border-radius:8px;width:32px;height:32px;font-size:20px;position:absolute;top:14px;right:14px}.unlock-mark{color:#fff;background:var(--forest-900);border-radius:13px;place-items:center;width:46px;height:46px;margin-bottom:19px;font:500 13px DM Mono,monospace;display:grid;box-shadow:0 9px 18px #102a2333}.unlock-dialog h2{color:var(--forest-950);letter-spacing:-.035em;margin:0 0 8px;font-size:21px}.unlock-dialog>p{color:#718079;margin:0 0 22px;font-size:11px;line-height:1.65}.unlock-dialog form{gap:10px;display:grid}.unlock-dialog input{width:100%;height:44px;color:var(--ink);background:#fbfcfb;border:1px solid #cfd9d2;border-radius:9px;padding:0 13px;font-size:12px}.unlock-dialog form button{cursor:pointer;border-radius:9px;height:43px;font-size:12px;font-weight:700}.unlock-dialog input:disabled,.unlock-dialog button:disabled{cursor:not-allowed;opacity:.55}.unlock-error{color:#ad5049;font-size:10px;line-height:1.5}.fatal-empty{place-content:center;justify-items:center;gap:20px;min-height:100vh;display:grid}.fatal-empty button{color:#fff;background:var(--forest-800);border:0;border-radius:8px;height:40px;padding:0 16px}@media (width<=1280px){.app-header{grid-template-columns:270px 1fr 280px}.mapping-tester{grid-template-columns:160px 260px 1fr}.match-results{grid-template-columns:1fr}.match-results button:nth-child(n+3){display:none}.review-workspace{grid-template-columns:minmax(440px,.9fr) minmax(460px,1.1fr)}}
