:root{--teal: #0f94a4;--teal-b: #0c8c9b;--side: #13a29a;--head: #eff4f4;--line: #e3e3e3;--sel: #f2f9f9;--req: #fffbef;--blue: #1a8bd8;--red: #e53935;--amber: #f08c00;--text: #333}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--side)}body{color:var(--text);font:14px Noto Sans KR,Malgun Gothic,sans-serif}button{font:inherit;cursor:pointer}input,select{font:inherit;color:#555}a{cursor:pointer}.grow{flex:1}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:#e3e3e3}::-webkit-scrollbar-thumb{background:#a3a3a3}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-corner{background:#e3e3e3}@supports not selector(::-webkit-scrollbar){*{scrollbar-color:#a3a3a3 #e3e3e3}.side-scroll{scrollbar-color:#096860 #029589}}.side-scroll::-webkit-scrollbar{width:9px}.side-scroll::-webkit-scrollbar-track{background:#029589}.side-scroll::-webkit-scrollbar-thumb{background:#096860}.top{position:fixed;top:0;left:0;right:0;height:38px;background:var(--side);color:#fff;display:flex;align-items:center;justify-content:flex-end;gap:14px;padding-right:12px;font-size:14px;z-index:2}.top .user{display:flex;align-items:center;gap:8px}.top .bar{opacity:.5}.top .bell{position:relative;display:flex}.top .bell b{position:absolute;top:-6px;right:-12px;background:#e53935;font-size:9px;border-radius:8px;padding:0 4px}.top .logout{opacity:.85;font-size:13px}.side{position:fixed;top:0;left:0;bottom:86px;width:269px;background:linear-gradient(180deg,#15a59c,#109a95);color:#fff;z-index:3;display:flex;flex-direction:column}.side>.side-scroll{flex:1;min-height:0;overflow-y:auto}.side>*{flex:none}.logo{height:88px;display:flex;align-items:center;gap:10px;padding-left:24px}.logo small{display:block;font-size:13px}.logo b{font-size:17px;font-weight:500;letter-spacing:-.5px}nav{padding:12px 25px 0}.mi{display:flex;align-items:center;gap:14px;height:64px;font-size:16px;font-weight:500;cursor:pointer}.mi-ico{width:42px;height:42px;border-radius:8px;background:#fff;display:grid;place-items:center}.mi.open{background:#0000001f;border-radius:8px;height:44px;margin:10px 0 8px;padding-left:8px}.mi.open .mi-ico{width:30px;height:30px;background:none}.mi.open .mi-ico svg{stroke:#fff}.chev{margin-left:auto;margin-right:12px;width:10px;height:10px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg);display:inline-block}.chev.up{transform:rotate(-135deg);margin-top:6px}.chev.dark{border-color:#555;width:8px;height:8px}.sub{background:#fff;color:#333;border-radius:6px;padding:8px 14px 6px;margin-bottom:10px}.sub-h,.sub-h2{display:flex;align-items:center;font-size:14px;height:36px}.sub-h{border-bottom:2px solid var(--teal)}.sub-h2{border-top:1px solid #eee;color:#555}.sub ul{list-style:none;margin:6px 0;padding:0 8px;background:#f7f9f9}.sub li{font-size:13.5px;color:#444;height:31px;display:flex;align-items:center}.sub li.on{color:var(--teal);font-weight:500}.dev{margin:14px 0;background:#fff;color:#555;text-align:center;height:42px;line-height:42px;border-radius:4px;font-size:14px}.tiles{display:flex;gap:10px;padding:14px 26px;border-top:1px dashed rgba(255,255,255,.35)}.tile{width:103px;height:88px;background:#fff;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:500}.tile.gis{color:#f08a1c}.tile.kgeo{color:#1d8fd0}.help{padding:12px 28px 16px;display:flex;flex-direction:column}.help small{font-size:13px;opacity:.9}.help b{font-size:27px}.help span{font-size:11px;background:#0000001f;padding:3px 8px;margin-top:4px}.content{position:fixed;top:38px;left:269px;right:0;bottom:86px;background:#fff;border-top-left-radius:40px;display:flex;flex-direction:column;overflow:hidden}.side-tab{position:absolute;left:4px;top:59px;width:13px;height:32px;background:#87bdc4;color:#fff;border-radius:0 4px 4px 0;display:grid;place-items:center;font-size:12px}.pagetabs{flex:none;display:flex;align-items:center;height:50px;margin:14px 73px 0 90px;border-bottom:1px solid #ddd}.pagetabs .home{width:32px;height:32px;border:1px solid #ddd;border-radius:4px;display:grid;place-items:center;margin-right:2px;background:#fafafa}.ptab{height:36px;display:flex;align-items:center;gap:44px;padding:0 12px 0 14px;border:2px solid var(--teal);border-bottom:none;border-radius:4px 4px 0 0;font-size:14px}.ptab .x{font-style:normal;width:16px;height:16px;border-radius:50%;background:#999;color:#fff;display:grid;place-items:center;font-size:12px}.closeall{width:26px;height:26px;border:1px solid #aaa;border-radius:3px;display:grid;place-items:center;color:#777}.page{flex:1;min-height:0;display:flex;flex-direction:column;margin:0 73px 0 90px}.q-open .pagetabs,.q-open .page{margin-right:310px}.page-body{flex:1;min-height:0;overflow-y:auto;padding:0 4px 30px 0}.title-row{flex:none;display:flex;align-items:center;justify-content:space-between;margin:26px 0;border-bottom:2px solid #ececec}.title-row h2{margin:0 0 -2px;font-size:22px;font-weight:700;color:#222;padding-bottom:6px;border-bottom:3px solid #0ea89b}.b-refresh{white-space:nowrap;background:#069b86;border:none;color:#fff;font-weight:500;border-radius:4px;height:28px;padding:0 16px;font-size:13.5px;margin-bottom:8px}.foot{position:fixed;left:0;right:0;bottom:0;height:86px;background:#4b4b4b;color:#ccc;font-size:14px;display:flex;align-items:center;gap:24px;padding:0 20px;z-index:4}.foot .cnt{background:#fff;color:#888;border-radius:22px;padding:10px 18px;font-size:13px}.foot .cnt b{color:#555;font-weight:500}.foot .cnt i{display:inline-block;width:1px;height:14px;background:#ddd;margin:0 12px;vertical-align:middle}.b-teal{white-space:nowrap;background:var(--teal);border:1px solid var(--teal-b);color:#fff;border-radius:3px;height:30px;padding:0 16px;font-size:13px;margin-left:6px}.b-blue{background:var(--blue);border:1px solid #157bc0;color:#fff;border-radius:3px;height:32px;padding:0 20px;font-size:14px;margin-left:8px;min-width:88px}.b-blue.big{height:38px;min-width:140px;font-size:15px}.b-blue:disabled{opacity:.5}.b-line{white-space:nowrap;background:#fff;border:1px solid #bbb;color:#888;border-radius:3px;height:30px;padding:0 14px;font-size:13px;margin-left:6px}.b-line.teal{border-color:var(--teal);color:var(--teal);width:94px;height:28px;margin-bottom:8px}.b-dark{white-space:nowrap;background:#666;border:1px solid #555;color:#fff;border-radius:3px;height:28px;padding:0 12px;font-size:13px;margin-left:6px}.btns{display:flex;margin-top:20px}.btns.right{justify-content:flex-end}.inp,.sel{display:inline-flex;align-items:center;position:relative;height:28px;border:1px solid #d2d2d2;border-radius:3px;background:#fff;vertical-align:middle}.inp input,.sel select{border:none;outline:none;background:transparent;width:100%;height:100%;padding:0 10px;font-size:14px}.sel select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:22px;cursor:pointer}.sel:after{content:"";position:absolute;right:10px;top:11px;border:5px solid transparent;border-width:6px 5px 0;border-top-color:#555;pointer-events:none}.inp.r input{text-align:right}.inp.date input{padding-right:28px}.cal{position:absolute;right:7px;top:7px;width:14px;height:12px;border:1.5px solid #888;border-top-width:3px;border-radius:1px}.inp.ro{background:#f6f6f6}.inp.ro input{color:#777}.req{background:var(--req)}.m-error{border:2px solid var(--red)!important;background:#fff4f4}.m-warn{border:2px solid var(--amber)!important;background:#fffaf0}.grid.m-error,.grid.m-warn{padding:2px}.flash{animation:flash 1.4s ease-out}@keyframes flash{0%,40%{box-shadow:0 0 0 4px #0f94a473}to{box-shadow:0 0 #0f94a400}}.fwrap{display:inline-flex;align-items:center;gap:0}.unit{margin-left:8px;color:#555}.src{margin-left:8px;font-size:11px;line-height:18px;padding:0 7px;border-radius:9px;background:#e3f3f4;color:#0b7d8a;border:1px solid #bfe2e5;white-space:nowrap;cursor:default}.inl-label{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 16px;margin:-4px 10px;background:var(--head);font-size:14px}em{color:var(--red);font-style:normal;margin-right:1px}.chk{display:inline-flex;align-items:center;gap:6px;color:#555}.tabs{display:flex;gap:5px;border-bottom:1px solid #ccc}.tabs button{position:relative;height:42px;min-width:128px;padding:0 22px;border:1px solid #ccc;border-bottom:none;background:#fff;color:#444;border-radius:6px 6px 0 0;font-size:15px}.tabs button.on{background:var(--teal);border-color:var(--teal);color:#fff}.tabs button.on:after{content:"";position:absolute;left:50%;bottom:-6px;margin-left:-6px;border:6px solid transparent;border-bottom:none;border-top-color:var(--teal)}.tabs.big{margin-bottom:8px}.tabs.small button{height:38px;min-width:120px;font-size:14.5px}.badge{display:inline-block;margin-left:6px;min-width:18px;height:18px;line-height:18px;border-radius:9px;background:var(--red);color:#fff;font-size:11px;font-weight:500}.form{padding-top:2px}.ftable{width:100%;border-collapse:collapse;border-top:1px solid var(--teal)}.ftable th{background:var(--head);font-weight:400;color:#333;height:37px;font-size:14px;border-bottom:1px solid var(--line);text-align:center}.ftable td{border-bottom:1px solid var(--line);padding:4px 10px;height:37px}.ftable td.nodata{text-align:center;color:#555;border-left:1px solid var(--line)}.ftable td.split{white-space:nowrap}.ftable.compact th{height:34px}.filterbar{display:flex;align-items:center;gap:8px;background:#f5f7f7;border:1px solid #edf0f0;border-radius:4px;padding:7px 12px;margin:10px 0}.filterbar .fl{color:#333;white-space:nowrap}.sec-head{display:flex;align-items:center;justify-content:space-between;margin:22px 0 8px}.sec-head h3,.sec-head h4{margin:0;font-weight:500;display:flex;align-items:center;gap:8px}.sec-head h3{font-size:18px;font-weight:700;color:#222}.sec-head h4{font-size:15px}.sec-head.plain{margin-top:24px}.leaf:before{content:"";width:28px;height:24px;display:inline-block;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 24'%3E%3Cpath d='M12 22C11 12 17 4 27 2c1 10-5 19-15 20z' fill='%23d4e7a1'/%3E%3Cpath d='M15 23C5 23 0 15 1 6c10 0 16 7 14 17z' fill='%2328b8a4'/%3E%3C/svg%3E") no-repeat center / contain}.textbox{height:70px;border:1px solid #ddd;background:#fafafa}.grid{border-top:1px solid #bfd9dc;overflow-x:auto}.grid table{width:100%;border-collapse:collapse;table-layout:fixed}.grid th{background:var(--head);color:#666;font-weight:500;font-size:14px;height:35px;border-bottom:1px solid #dde4e4;border-right:1px solid #f0f3f3}.grid td{height:35px;text-align:center;font-size:14px;border-bottom:1px solid #eee;padding:0 6px;color:#333}.grid td.l{text-align:left}.grid td.r{text-align:right}.grid td.ell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid tr.cur td{background:var(--sel)}.grid tr.empty td{color:#666;height:110px}.grid tr.sum td{background:#fff8e8}.grid.list{max-height:387px;overflow-y:auto}.grid.list th{position:sticky;top:0;z-index:1}.grid.list tbody tr{cursor:default}.grid.list tbody tr:hover td{background:#f7fbfb}.grid.list tr.new td{animation:newrow 2.5s ease-out}@keyframes newrow{0%{background:#c9ecef}to{background:var(--sel)}}.link{color:#333;text-decoration:underline}.grid.result{margin-top:14px}.search{background:#f7f7f7;border-radius:6px;padding:12px 20px}.srow{display:grid;grid-template-columns:90px minmax(0,1.1fr) 98px minmax(0,1fr) 78px minmax(0,1.15fr) 78px minmax(0,1.15fr);align-items:center;gap:0 12px;margin-bottom:10px}.srow>label{font-size:14px;color:#333;white-space:nowrap;display:flex;align-items:center;gap:7px;padding-left:4px}.srow>label:before{content:"";width:4px;height:4px;border-radius:50%;background:#0596a8}.srow .inp,.srow .sel{width:100%}.srow .span3{grid-column:span 3}.dates{display:flex;align-items:center;gap:10px}.dates .inp{width:146px;flex:none}.s-foot{margin:12px -20px 0;padding:10px 20px 0;border-top:1px dashed #d3d3d3;display:flex;justify-content:flex-end}.search-btn{width:88px;height:32px;background:#048c9d;border:none;border-radius:4px;color:#fff;font-size:14px;font-weight:500}.mine{display:inline-flex;align-items:center;gap:8px;font-size:14px;white-space:nowrap;margin-left:10px;color:#555}.mine input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;margin:0;border:1px solid #ccc;border-radius:2px;background:#fff;cursor:pointer}.mine input:checked{background:#0596a8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8l3 3 7-7' stroke='white' stroke-width='2' fill='none'/%3E%3C/svg%3E") center / 14px no-repeat;border-color:#0596a8}.list-head{margin-top:26px;justify-content:flex-start;gap:22px}.hint{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:#2a73b8;border:1px dashed #6fb9c9;border-radius:16px;padding:3px 60px 3px 12px}.hint i{color:#19a3b4}.hint i,.q-info i{font-style:normal;width:16px;height:16px;border:1.5px solid currentColor;border-radius:50%;display:inline-grid;place-items:center;font-size:11px;font-weight:700}.pager{display:flex;align-items:center;margin-top:12px;font-size:13px;color:#555}.pager .total b{color:#e53935;font-weight:400}.pager .pages{flex:1;display:flex;justify-content:center;gap:14px;color:#888}.pager .pages a.on{border:1px solid var(--teal);color:var(--teal);padding:0 7px;border-radius:2px}.pager .per{display:flex;align-items:center;gap:8px}.quick{position:fixed;top:88px;right:0;width:232px;z-index:5}.quick.closed{width:0}.q-toggle{position:absolute;left:-15px;top:0;width:15px;height:34px;border:none;background:#87bdc4;color:#fff;border-radius:4px 0 0 4px;padding:0;font-size:13px}.q-body{background:#f7f7f7;border-left:1px solid #e3e8e8;border-bottom-left-radius:14px;padding-bottom:12px;max-height:calc(100vh - 184px);overflow-y:auto}.q-head{height:34px;background:#0596a8;color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700;letter-spacing:7px;padding-left:7px}.q-sec{display:flex;align-items:center;gap:8px;margin:14px 12px 8px;font-size:14px;font-weight:500;color:#333}.q-sec i{font-style:normal;width:17px;height:17px;border:1.5px solid #19a3b4;color:#19a3b4;border-radius:50%;display:inline-grid;place-items:center;font-size:11px;font-weight:700;cursor:help}.q-card{margin:0 8px;padding:12px 10px;background:#fff;border-radius:6px}.q-info{margin:0 0 10px;font-size:12px;line-height:1.5;color:#666}.drop{height:78px;border:1.5px dashed #9fcfd6;background:#fbfdfd;border-radius:4px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12.5px;line-height:1.5;color:#555;cursor:pointer}.drop.drag{background:#e7f5f6;border-color:var(--teal)}.drop .up{color:var(--teal);font-size:20px;font-weight:700}.drop a{color:var(--teal);text-decoration:underline}.q-files{margin-top:10px;border:1px solid #e2e6e6;border-radius:4px}.q-files-h{display:flex;justify-content:space-between;padding:6px 8px;font-size:12px;border-bottom:1px solid #eee;color:#555}.q-files-h a{color:#888;text-decoration:underline}.q-files ul{list-style:none;margin:0;padding:4px 0;max-height:260px;overflow-y:auto}.q-files li{display:flex;align-items:center;gap:6px;padding:3px 6px 3px 8px;font-size:12px}.q-files .fname{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.q-files .fsize{color:#999;font-size:11px}.q-files li button{border:none;background:none;color:#aaa;font-size:15px;padding:0 2px}.q-err{margin-top:8px;color:var(--red);font-size:12px}.q-foot{margin:12px -10px 0;padding-top:12px;border-top:1px dashed #ddd;display:flex;justify-content:center}.q-run{min-width:104px;height:30px;padding:0 14px;background:var(--teal);border:1px solid var(--teal-b);color:#fff;font-size:13px;border-radius:3px}.q-run:disabled{background:#a9cfd4;border-color:#a9cfd4}.q-row{display:flex;align-items:center;gap:8px;font-size:13px}.q-row label{white-space:nowrap;color:#333}.q-row label:first-letter{color:var(--teal)}.q-row input{flex:1;min-width:0;height:30px;border:1px solid #ccc;border-radius:3px;padding:0 6px}.dim{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e2073;z-index:50;display:grid;place-items:center}.modal{width:min(1560px,96vw);height:min(940px,94vh);background:#fff;border:2px solid var(--teal);border-radius:4px;display:flex;flex-direction:column;box-shadow:0 12px 40px #00000040}.m-head{height:46px;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 20px;font-size:18px;font-weight:500}.m-head button{background:none;border:none;color:#fff;font-size:24px}.m-body{flex:1;display:flex;min-height:0}.m-main{flex:1;display:flex;flex-direction:column;padding:16px 20px 0;min-width:0}.m-form{flex:1;overflow-y:auto;padding:4px 4px 20px 2px}.m-side{width:340px;border-left:1px solid #e3e6e6;background:#fafbfb;display:flex;flex-direction:column;min-height:0}.chk-h{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 10px;border-bottom:1px solid #e3e6e6}.chk-h h4{margin:0;font-size:16px;font-weight:500}.chk-h .cnt{display:flex;gap:6px}.chk-h .cnt b{font-size:12px;font-weight:500;padding:2px 8px;border-radius:10px}.chk-h .cnt .e{background:#fde8e8;color:var(--red)}.chk-h .cnt .w{background:#fff1db;color:#b86a00}.chk-list{list-style:none;margin:0;padding:6px 0;overflow-y:auto;flex:1}.chk-list .grp{padding:10px 16px 4px;font-size:12.5px;color:#888}.chk{display:flex;gap:8px;padding:7px 14px 7px 16px;cursor:pointer;font-size:13px;line-height:1.45}.chk:hover{background:#eef6f7}.chk .lv{flex:none;font-size:11px;height:18px;line-height:16px;padding:0 6px;border-radius:3px;border:1px solid;margin-top:1px}.chk.error .lv{color:var(--red);border-color:#f3b4b4;background:#fff}.chk.warn .lv{color:#b86a00;border-color:#f2cf96;background:#fff}.chk.done{color:#9aa}.chk.done .msg{text-decoration:line-through}.chk.done .lv{color:#2e9d62;border-color:#a9dcbf}.chk-list .none{padding:20px 16px;color:#2e9d62}.files-h{display:flex;align-items:center;padding:10px 16px;border-top:1px solid #e3e6e6;font-size:13.5px;cursor:pointer;color:#555}.file-list{list-style:none;margin:0;padding:0 12px 10px 16px;max-height:240px;overflow-y:auto;font-size:12px}.file-list li{display:grid;grid-template-columns:62px 1fr;gap:0 6px;padding:4px 0;border-bottom:1px dashed #e5e5e5}.file-list .k{color:var(--teal)}.file-list .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-list .note{grid-column:2;color:#888}.m-foot{height:62px;border-top:1px solid #e3e6e6;display:flex;align-items:center;justify-content:flex-end;padding:0 20px}.loading{height:300px}
