:root{--bg: #edf0f6;--surface: #ffffff;--ink: #1a2238;--muted: #667391;--line: #e3e8f1;--line-strong: #ccd4e3;--nav: #1b2a4e;--brand: #2c5fe0;--brand-hover: #214fc4;--brand-soft: #e7eefc;--danger: #d1344b;--s-lead: #6b7893;--s-lead-bg: #e8ecf3;--s-prospect: #c27700;--s-prospect-bg: #fdf0d3;--s-client: #11875a;--s-client-bg: #dcf4e8;--s-reject: #c4314b;--s-reject-bg: #fde4e8;--radius-s: 6px;--radius-m: 10px;--radius-l: 16px;--font: "Pretendard Variable", Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.5;background:var(--bg);color:var(--ink)}body.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{height:36px;padding:0 11px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;transition:border-color .12s,box-shadow .12s}textarea{height:auto;padding:9px 11px;resize:vertical;line-height:1.55}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}input[type=checkbox],input[type=radio]{height:auto;accent-color:var(--brand)}button{height:36px;padding:0 14px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s}button:hover:not(:disabled){background:#f2f5fb}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--brand);border-color:var(--brand);color:#fff}button.primary:hover:not(:disabled){background:var(--brand-hover)}button.link-danger{border:0;background:none;height:auto;padding:4px 0;color:var(--danger);font-weight:500}button.link-danger:hover{background:none;text-decoration:underline}.error{color:var(--danger);font-size:13px;margin:0 0 8px}.hint{font-size:12.5px;color:var(--muted)}.num{text-align:right;font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.right{text-align:right}.center{text-align:center}.appbar{position:sticky;top:0;z-index:40;background:var(--nav);color:#fff}.appbar-in{max-width:1720px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.appbar h1{font-size:19px;font-weight:800;letter-spacing:-.02em;margin-right:8px}.crumb{font-size:15px;font-weight:600;margin-right:auto;opacity:.9}.appbar input.search{flex:1;min-width:200px;max-width:520px}.appbar input,.appbar select{background:#ffffff1a;border-color:#fff3;color:#fff}.appbar input::placeholder{color:#fff9}.appbar input:focus,.appbar select:focus{background:#ffffff29;border-color:#fff;box-shadow:none}.appbar select option{color:var(--ink);background:#fff}.appbar select.on{background:#fff;color:var(--brand);border-color:#fff;font-weight:700}.appbar .menu-btn,.appbar button.ghost{background:#ffffff1a;border-color:#fff3;color:#fff}.appbar .menu-btn:hover,.appbar button.ghost:hover{background:#fff3!important}button.add{width:40px;padding:0;font-size:24px;font-weight:400;line-height:1;background:#4f86ff;border-color:#4f86ff;color:#fff;margin-left:auto}button.add:hover:not(:disabled){background:#6b9bff}.menu{position:relative}.menu-btn{width:40px;padding:0;font-size:18px}.menu-pop{position:absolute;top:calc(100% + 8px);left:0;z-index:50;min-width:200px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px #1420462e;padding:6px}.menu-item{display:flex;justify-content:space-between;align-items:center;width:100%;height:auto;text-align:left;border:0;background:transparent;padding:9px 12px;border-radius:8px;font-weight:500}.menu-item:hover:not(:disabled){background:var(--brand-soft)}.menu-item.sub{padding-left:28px;font-size:13.5px}.menu-item:disabled{color:#9aa3b8}.caret{color:var(--muted);font-size:11px}.menu-ver{margin-top:4px;padding:8px 12px 4px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.page{max-width:1720px;margin:0 auto;padding:16px 20px 40px}.summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.stat{height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-weight:500;color:var(--muted)}.stat b{color:var(--ink);font-variant-numeric:tabular-nums}.stat .dot{width:8px;height:8px;border-radius:50%;background:var(--c)}.stat.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:700}.stat.on b{color:var(--brand)}.stat.st-lead{--c: var(--s-lead)}.stat.st-prospect{--c: var(--s-prospect)}.stat.st-client{--c: var(--s-client)}.stat.st-reject{--c: var(--s-reject)}.sum-prem{margin-left:auto;color:var(--muted)}.sum-prem b{margin-left:4px;font-size:16px;color:var(--ink);font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.badge.dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.st-lead.badge{background:var(--s-lead-bg);color:var(--s-lead)}.st-prospect.badge{background:var(--s-prospect-bg);color:var(--s-prospect)}.st-client.badge{background:var(--s-client-bg);color:var(--s-client)}.st-reject.badge{background:var(--s-reject-bg);color:var(--s-reject)}.src-direct{background:#e5ecfd;color:#2c5fe0}.src-intro{background:#eee8fb;color:#7048d0}.src-take{background:#dcf1f4;color:#0b8294}.src-etc{background:#ebeef3;color:#6b7893}.split{display:flex;gap:16px;align-items:flex-start}.list-pane{flex:1;min-width:0}.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:0 1px 2px #18274b0a}.count{margin-top:8px;padding-left:4px;font-size:12.5px;color:var(--muted)}table{width:100%;border-collapse:separate;border-spacing:0}th,td{padding:0 14px;text-align:left;border-bottom:1px solid var(--line)}th{height:42px;background:#f4f6fb;font-size:12.5px;font-weight:700;color:var(--muted);-webkit-user-select:none;user-select:none;cursor:pointer}tbody tr:last-child td{border-bottom:0}th.num{text-align:right}.grid-table{table-layout:fixed}.grid-table th,.grid-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-table th{position:relative}.grid-table td{height:48px}.grid-table td:first-child{box-shadow:inset 4px 0 0 var(--rail, transparent)}.grid-table tbody tr{cursor:pointer}.grid-table tbody tr:hover td{background:#f6f9ff}.grid-table tbody tr.sel td{background:var(--brand-soft)}tr.st-lead{--rail: var(--s-lead)}tr.st-prospect{--rail: var(--s-prospect)}tr.st-client{--rail: var(--s-client)}tr.st-reject{--rail: var(--s-reject)}.nm{font-weight:700}td:not(.num){font-variant-numeric:tabular-nums}.grid-table td[title]{color:#2a3350}.grid-table td.num{font-weight:600}.empty{text-align:center;color:var(--muted);padding:48px 16px!important;height:auto!important;white-space:normal!important}tr.empty-row td{box-shadow:none!important}.th-in{display:flex;align-items:center;gap:4px;min-width:0}.th-label{overflow:hidden;text-overflow:ellipsis}th.num .th-in{justify-content:flex-end}.sort-ind{color:var(--brand);font-size:10px}.th-btn{height:18px;width:18px;padding:0;border:0;background:transparent;font-size:10px;color:var(--muted);border-radius:4px;opacity:0;flex:none}th:hover .th-btn{opacity:1}.th-btn:hover:not(:disabled){background:#e1e7f5;color:var(--danger)}th.drag{cursor:grab}th.over{box-shadow:inset 3px 0 0 var(--brand);background:var(--brand-soft)}.rz{position:absolute;right:0;top:0;bottom:0;width:10px;cursor:col-resize}.rz:after{content:"";position:absolute;right:4px;top:11px;bottom:11px;width:1px;background:var(--line-strong);transition:background .12s}.rz:hover:after{background:var(--brand);width:2px}@media (hover: none){.th-btn{opacity:1}}.panel{width:470px;flex:none;position:sticky;top:72px;max-height:calc(100vh - 88px);overflow-y:auto;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:0 14px 40px #18274b1f;animation:panel-in .18s ease-out}@keyframes panel-in{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.panel{animation:none}}.panel-top{padding:18px 20px 14px;background:var(--tint, var(--brand-soft));border-bottom:1px solid var(--line)}.panel-top.st-lead{--tint: var(--s-lead-bg)}.panel-top.st-prospect{--tint: var(--s-prospect-bg)}.panel-top.st-client{--tint: var(--s-client-bg)}.panel-top.st-reject{--tint: var(--s-reject-bg)}.name-input{width:100%;height:42px;padding:0 8px;margin-left:-8px;font-size:22px;font-weight:800;letter-spacing:-.02em;background:transparent;border-color:transparent}.name-input:hover{background:#ffffff8c}.name-input:focus{background:#fff}.panel-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.panel-meta .meta{font-size:13px;color:#3c4764}.panel-meta .meta b{font-variant-numeric:tabular-nums}.panel-body{padding:18px 20px 12px;flex:1}.panel h3{margin:22px 0 10px;font-size:15px;font-weight:800}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px}.grid label,.modal label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--muted);min-width:0}.grid label.wide{grid-column:1 / -1}.grid input,.grid select,.grid textarea{width:100%;font-weight:400;color:var(--ink)}.checks{display:flex;flex-wrap:wrap;gap:6px 14px}.check{display:flex!important;flex-direction:row!important;align-items:center;gap:6px!important;font-size:14px!important;font-weight:500!important;color:var(--ink)!important}.check input{width:auto;margin:0}.contracts{display:flex;flex-direction:column;gap:4px}.k-row{display:grid;grid-template-columns:1fr 124px 44px;gap:6px;align-items:center}.k-row input{width:100%;min-width:0;border-color:transparent;background:transparent}.k-row input:hover{border-color:var(--line-strong)}.k-row input:focus{background:#fff}.k-row button{width:44px;padding:0;font-size:12.5px;font-weight:500;border-color:transparent;background:transparent;color:var(--muted)}.k-row button:hover:not(:disabled){color:var(--danger);background:#fdecef}.k-head{font-size:12px;color:var(--muted);font-weight:600;padding:0 2px}.k-new{margin-top:4px;padding:6px;border:1px dashed var(--line-strong);border-radius:10px;background:#f8faff}.k-new input{border-color:var(--line-strong);background:#fff}.k-new button.primary{color:#fff;font-size:20px;line-height:1}.k-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:8px;padding:12px 14px;background:var(--brand-soft);border-radius:10px;color:var(--brand);font-weight:600}.k-total b{font-size:19px;font-weight:800;font-variant-numeric:tabular-nums}.panel-foot{margin-top:22px;text-align:right}.bar{position:sticky;bottom:0;z-index:2;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px;background:#fffffff5;border-top:1px solid var(--line);border-radius:0 0 var(--radius-l) var(--radius-l)}.bar .dirty{margin-right:auto;font-size:12.5px;font-weight:600;color:var(--s-prospect)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#141e3c73;display:flex;align-items:center;justify-content:center;padding:16px}.modal{width:100%;max-width:460px;max-height:92vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:22px;background:#fff;border-radius:var(--radius-l);box-shadow:0 24px 60px #0a14324d}.modal h2{font-size:18px;font-weight:800}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.settings{max-width:980px}.settings h2{font-size:20px;font-weight:800;margin-bottom:6px}.settings h3{margin:24px 0 10px;font-size:15px;font-weight:800}.settings .hint{margin-bottom:14px;max-width:70ch}.settings table th{height:40px;cursor:default}.settings table td{height:52px}.settings tbody tr:last-child td{border-bottom:0}tr.dim td{opacity:.5}tr.dim td:last-child{opacity:1}.row{display:flex;gap:8px}.row input{flex:1;min-width:0}.tag{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:600;background:var(--brand-soft);color:var(--brand)}.tag.gray{background:#ebeef3;color:var(--muted)}.add-field{display:flex;flex-wrap:wrap;gap:8px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m)}.add-field input{flex:1;min-width:180px}@media (max-width: 900px){.appbar-in{padding:10px 12px}.page{padding:12px 12px 32px}.sum-prem{margin-left:0;width:100%}.split{display:block}.panel{position:fixed;right:0;bottom:0;left:0;z-index:45;width:auto;max-height:none;border-radius:0;border:0;top:0}.bar{border-radius:0}}.grid-table th.no,.grid-table td.no{padding:0 6px;text-align:center;color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}.grid-table th.no.on{color:var(--brand)}.grid-table th.tight,.grid-table td.tight{padding-left:10px;padding-right:8px}th.center,td.center{text-align:center}th.center .th-in{justify-content:center}.tick{color:var(--s-client);font-weight:800}.memo-cell{display:block;overflow:hidden;text-overflow:ellipsis;color:#46506b;cursor:pointer}.memo-cell:hover{color:var(--brand);text-decoration:underline}.ph{color:#a2abc0;font-style:normal}.fld{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--muted);min-width:0}.grid .fld.wide{grid-column:1 / -1}.memo-count{font-style:normal;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:11.5px}.memo-box{width:100%;height:auto;min-height:64px;padding:9px 12px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;font-weight:400;background:#fbfcff;border:1px dashed var(--line-strong);border-radius:10px}.memo-box:hover:not(:disabled){background:var(--brand-soft);border-color:var(--brand)}.memo-box:disabled{cursor:default}.memo-text{color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}.memo-date{font-size:11.5px;font-weight:600;color:var(--brand);font-variant-numeric:tabular-nums}.memo-modal{max-width:560px}.memo-modal textarea{width:100%}.memo-list{display:flex;flex-direction:column;gap:10px;max-height:46vh;overflow-y:auto;padding-top:4px;border-top:1px solid var(--line)}.memo-item{padding:10px 12px;background:#f7f9fd;border-radius:10px;border-left:3px solid var(--brand)}.memo-head{display:flex;justify-content:space-between;align-items:center}.memo-head .link-danger{font-size:12px}.memo-body{margin-top:4px;white-space:pre-wrap;word-break:break-word}.x-group{display:flex;flex-direction:column;gap:8px}.x-head{display:flex;justify-content:space-between;align-items:baseline}.x-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;padding:12px;background:#f7f9fd;border:1px solid var(--line);border-radius:10px;max-height:38vh;overflow-y:auto}button.link{height:auto;padding:2px 6px;border:0;background:none;color:var(--brand);font-weight:600;font-size:12.5px}button.link:hover:not(:disabled){background:var(--brand-soft)}.cb{width:17px;height:17px;margin:0;cursor:pointer;vertical-align:middle}.cb-e{accent-color:#2c5fe0}.cb-m{accent-color:#e0701c}.rrn-box{display:flex;align-items:center;gap:8px;min-height:40px;padding:4px 6px 4px 12px;background:#fbfcff;border:1px solid var(--line-strong);border-radius:10px}.rrn-box input{flex:1;min-width:0;border:0;background:transparent;padding:0;letter-spacing:.04em;font-variant-numeric:tabular-nums}.rrn-box input:focus{box-shadow:none}.rrn-box:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.rrn-val{flex:1;font-size:15px;font-weight:700;letter-spacing:.05em;color:var(--ink);font-variant-numeric:tabular-nums}.rrn-box button{height:30px;padding:0 10px;font-size:13px}.rrn-box .icon-btn{width:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:var(--brand)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--nav)}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px;padding:32px 28px;background:#fff;border-radius:var(--radius-l);box-shadow:0 24px 60px #00000059}.login-card h1{font-size:28px;font-weight:800;letter-spacing:-.03em;color:var(--nav)}.login-sub{margin-top:-10px;color:var(--muted)}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;color:var(--muted)}.login-card input{height:42px}.login-card button{height:42px;font-size:15px}.login-notice{padding:10px 12px;background:var(--s-prospect-bg);color:#8a5800;border-radius:8px;font-size:13px}.login-setup{display:flex;flex-direction:column;gap:8px;font-size:13.5px}.login-setup code{display:block;padding:10px 12px;background:#eef1f7;border-radius:8px;font-size:13px}
