:root{--plane:#f9f9f7;--surface:#fff;--surface-2:#fcfcfb;--ink:#0b0b0b;--ink-2:#52514e;--muted:#898781;--grid:#e8e7e1;--baseline:#c3c2b7;--border:#0b0b0b1a;--sales:#2a78d6;--sales-soft:#d7e6fa;--profit:#1baf7a;--profit-soft:#d3f0e5;--target:#b9b7ae;--good:#0ca30c;--warn:#e0951a;--crit:#d03b3b;--c1:#2a78d6;--c2:#1baf7a;--c3:#eda100;--c4:#008300;--c5:#4a3aa7;--c6:#e34948;--c7:#e87ba4;--c8:#eb6834;--shadow:0 1px 2px #0b0b0b0a,0 4px 16px #0b0b0b0d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--plane:#0d0d0d;--surface:#171716;--surface-2:#1a1a19;--ink:#fff;--ink-2:#c3c2b7;--muted:#918f88;--grid:#2c2c2a;--baseline:#383835;--border:#ffffff1a;--sales:#3987e5;--sales-soft:#173458;--profit:#22b986;--profit-soft:#123b2c;--target:#4a4944;--good:#0ca30c;--warn:#fab219;--crit:#e05555;--c1:#3987e5;--c2:#22b986;--c3:#c98500;--c4:#0a9a0a;--c5:#9085e9;--c6:#e66767;--c7:#d55181;--c8:#d95926;--shadow:0 1px 2px #0000004d,0 4px 16px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--plane);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Malgun Gothic,sans-serif;font-size:14px;line-height:1.5}.wrap{max-width:1240px;margin:0 auto;padding:26px 22px 80px}.tnum{font-variant-numeric:tabular-nums}h1{letter-spacing:-.01em;margin:0;font-size:22px}h2{letter-spacing:-.01em;margin:0 0 2px;font-size:15px}.sub{color:var(--muted);font-size:12.5px}a{color:var(--sales);text-decoration:none}button{font-family:inherit}header.top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}h1.page-title{letter-spacing:-.02em;align-items:center;gap:11px;font-size:24px;font-weight:800;line-height:1.25;display:flex}h1.page-title:before{content:"";background:linear-gradient(180deg,var(--sales),var(--profit));border-radius:99px;flex:none;width:5px;height:24px}.src{color:var(--muted);max-width:640px;margin-top:6px;font-size:12px}.toggle{background:var(--surface);border:1px solid var(--border);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.toggle button{color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:600}.toggle button.on{background:var(--ink);color:var(--surface)}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:18px}section{margin-top:22px}.sec-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin:0 0 12px;display:flex}.kpis{grid-template-columns:repeat(5,1fr);gap:14px;display:grid}.kpi .lab{color:var(--muted);font-size:12px;font-weight:600}.kpi .val{letter-spacing:-.02em;margin-top:6px;font-size:25px;font-weight:700}.kpi .val small{color:var(--ink-2);font-size:14px;font-weight:600}.kpi .meta{color:var(--ink-2);margin-top:7px;font-size:12px}.bar{background:var(--grid);border-radius:99px;height:7px;margin-top:9px;overflow:hidden}.bar>i{border-radius:99px;height:100%;display:block}table{border-collapse:collapse;width:100%}.qt th,.qt td{text-align:right;border-bottom:1px solid var(--grid);white-space:nowrap;padding:11px 10px}.qt th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:11.5px;font-weight:600}.qt th:first-child,.qt td:first-child{text-align:left}.qt td:first-child{font-weight:600}.qt tr.sum td{border-top:2px solid var(--baseline);background:var(--surface-2);font-weight:700}.mini{justify-content:flex-end;align-items:center;gap:9px;display:flex}.mini .track{background:var(--grid);border-radius:99px;flex:none;width:96px;height:7px;overflow:hidden}.mini .track>i{border-radius:99px;height:100%;display:block}.mini .p{text-align:right;width:52px;font-weight:700}.grid2{grid-template-columns:1.5fr 1fr;gap:22px;display:grid}.grid2b{grid-template-columns:1fr 1fr;gap:22px;display:grid}.chart{width:100%}.axis-lab{fill:var(--muted);font-size:11px}.legend{color:var(--ink-2);flex-wrap:wrap;gap:16px;margin-top:2px;font-size:12px;display:flex}.legend b{vertical-align:-1px;border-radius:3px;width:11px;height:11px;margin-right:6px;display:inline-block}.hbar-row{grid-template-columns:130px 1fr auto;align-items:center;gap:10px;padding:5px 0;display:grid}.hbar-row .nm{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.hbar-track{background:var(--grid);border-radius:5px;height:16px;overflow:hidden}.hbar-track>i{border-radius:5px;height:100%;display:block}.hbar-row .amt{text-align:right;white-space:nowrap;font-size:12px;font-weight:700}.repcards{grid-template-columns:1fr 1fr;gap:14px;display:grid}.repcard{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:14px}.repcard .rn{font-size:14px;font-weight:700}.repcard .rr{color:var(--ink-2);justify-content:space-between;margin-top:8px;font-size:12.5px;display:flex}.repcard .rr b{color:var(--ink);font-weight:700}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.filters select,.filters input{background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:9px;padding:8px 11px;font-family:inherit;font-size:12.5px}.filters input[type=search]{flex:1;min-width:190px}.dt{font-size:12.5px}.dt th,.dt td{border-bottom:1px solid var(--grid);text-align:right;white-space:nowrap;padding:9px 10px}.dt th{background:var(--surface);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:2;font-size:11px;font-weight:700;position:sticky;top:0}.dt th.l,.dt td.l{text-align:left}.dt td.prod{white-space:normal;max-width:240px;color:var(--ink-2)}.dt tbody tr:hover{background:var(--surface-2)}.dt tbody tr{cursor:pointer}.tag{border-radius:6px;padding:2px 7px;font-size:10.5px;font-weight:700}.tag.c{background:color-mix(in srgb,var(--sales) 15%,transparent);color:var(--sales)}.tag.p{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}.tag.new{background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--good);margin-left:5px}.catdot{vertical-align:0;border-radius:2px;width:8px;height:8px;margin-right:6px;display:inline-block}.neg{color:var(--crit)}.scroll{border:1px solid var(--border);border-radius:12px;max-height:620px;overflow:auto}.tblmeta{color:var(--muted);margin-top:10px;font-size:12px}.clearlink{color:var(--crit);cursor:pointer;font-weight:600}.btn-primary{background:var(--sales);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:10px;padding:9px 16px;font-size:13px;font-weight:700}.btn-primary:hover{filter:brightness(1.06)}.btn-primary:disabled{opacity:.5;cursor:default}.btn-ghost{border:1px solid var(--border);color:var(--ink-2);cursor:pointer;background:0 0;border-radius:10px;padding:9px 16px;font-weight:600}.btn-ghost:hover{background:var(--surface-2)}.modal-bg{z-index:100;background:#00000073;justify-content:center;align-items:flex-start;padding:44px 16px;display:flex;position:fixed;inset:0;overflow:auto}.modal{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;width:100%;max-width:580px;max-height:calc(100vh - 76px);padding:24px;position:relative;overflow:auto}.modal.wide{max-width:760px}.modal h3{letter-spacing:-.01em;margin:0 0 3px;font-size:18px}.modal .msub{color:var(--muted);margin-bottom:18px;font-size:12.5px;line-height:1.5}.form-grid{grid-template-columns:1fr 1fr;gap:13px 14px;display:grid}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field.full{grid-column:1/-1}.field label{color:var(--ink-2);font-size:12px;font-weight:600}.field label .req{color:var(--crit)}.field input,.field select{background:var(--surface-2);color:var(--ink);border:1px solid var(--border);border-radius:9px;width:100%;min-width:0;padding:9px 11px;font-family:inherit;font-size:13px}.field input:focus,.field select:focus{outline:2px solid var(--sales);outline-offset:-1px}.field .calc{color:var(--muted);min-height:14px;font-size:11px}.formErr{color:var(--crit);min-height:16px;margin-top:12px;font-size:12px;font-weight:600}.modal-foot{justify-content:space-between;align-items:center;gap:10px;margin-top:14px;display:flex}.modal-foot .hint{color:var(--muted);font-size:11.5px}.close-x{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:20px;line-height:1;position:absolute;top:14px;right:16px}.del{border:1px solid var(--border);color:var(--crit);cursor:pointer;background:0 0;border-radius:6px;width:24px;height:24px;padding:0;font-size:14px;line-height:1}.del:hover{background:color-mix(in srgb,var(--crit) 12%,transparent)}.pager{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;margin-top:14px;display:flex}.pager button{border:1px solid var(--border);background:var(--surface);min-width:32px;height:32px;color:var(--ink-2);cursor:pointer;border-radius:8px;padding:0 8px;font-size:12.5px;font-weight:600}.pager button:hover:not(:disabled){background:var(--surface-2)}.pager button.cur{background:var(--sales);border-color:var(--sales);color:#fff}.pager button:disabled{opacity:.35;cursor:default}.pager .pinfo{color:var(--muted);margin:0 8px;font-size:12px}.info-grid{grid-template-columns:1fr 1fr;gap:11px 20px;margin:14px 0;display:grid}.info-grid .ig{flex-direction:column;gap:2px;display:flex}.info-grid .ig.full{grid-column:1/-1}.info-grid .ig .k{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:11px;font-weight:700}.info-grid .ig .v{color:var(--ink);word-break:break-all;font-size:13.5px}.info-grid .ig .v.big{font-size:19px;font-weight:700}.divider{border:0;border-top:1px solid var(--grid);margin:16px 0}.subcard{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;margin-top:10px;padding:14px}.subcard h4{margin:0 0 8px;font-size:13px}.timeline{max-height:300px;margin-top:6px;padding-right:4px;overflow:auto}.tl-item{grid-template-columns:14px 1fr;gap:10px;padding-bottom:14px;display:grid;position:relative}.tl-item:before{content:"";background:var(--grid);width:2px;position:absolute;top:14px;bottom:0;left:5.5px}.tl-item:last-child:before{display:none}.tl-dot{background:var(--sales);border:3px solid var(--surface);width:13px;height:13px;box-shadow:0 0 0 1.5px var(--sales);border-radius:50%;margin-top:2px}.tl-item.first .tl-dot{background:var(--good);box-shadow:0 0 0 1.5px var(--good)}.tl-date{color:var(--ink-2);font-size:11.5px;font-weight:700}.tl-text{color:var(--ink);white-space:pre-wrap;margin-top:2px;font-size:13px}.log-form{gap:8px;margin-top:12px;display:flex}.log-form input[type=date]{background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:9px;padding:8px 10px;font-family:inherit;font-size:12.5px}.log-form input[type=text]{background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:9px;flex:1;padding:8px 11px;font-family:inherit;font-size:13px}.prob-pill{background:color-mix(in srgb,var(--sales) 14%,transparent);color:var(--sales);border-radius:99px;padding:2px 9px;font-size:11px;font-weight:700;display:inline-block}.stale-badge{border-radius:99px;align-items:center;gap:4px;padding:2px 8px;font-size:10.5px;font-weight:700;display:inline-flex}.stale-badge.w15{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}.stale-badge.w30{background:color-mix(in srgb,var(--crit) 15%,transparent);color:var(--crit)}.nav-badge{background:var(--crit);color:#fff;border-radius:99px;justify-content:center;align-items:center;min-width:17px;height:17px;margin-left:6px;padding:0 4px;font-size:10.5px;font-weight:800;display:inline-flex}.banner{border-radius:12px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:13px;font-weight:600;display:flex}.banner.warn{background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}.banner.crit{background:color-mix(in srgb,var(--crit) 12%,transparent);color:var(--crit);border:1px solid color-mix(in srgb,var(--crit) 30%,transparent)}.tabs{background:var(--surface);border:1px solid var(--border);border-radius:999px;gap:2px;margin-bottom:14px;padding:3px;display:inline-flex}.tabs button{color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:600}.tabs button.on{background:var(--ink);color:var(--surface)}.deal-status{background:var(--grid);color:var(--ink-2);border-radius:99px;padding:2px 9px;font-size:11px;font-weight:700}.deal-status.s진행중{background:color-mix(in srgb,var(--sales) 14%,transparent);color:var(--sales)}.deal-status.s수주{background:color-mix(in srgb,var(--good) 15%,transparent);color:var(--good)}.deal-status.s보류{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}.deal-status.s중단{background:color-mix(in srgb,var(--crit) 13%,transparent);color:var(--crit)}.empty{text-align:center;color:var(--muted);padding:44px 0;font-size:13.5px}.shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--grid);z-index:80;flex-direction:column;flex:none;width:222px;height:100vh;transition:width .15s;display:flex;position:sticky;top:0}.sidebar.collapsed{width:64px}.side-logo{border-bottom:1px solid var(--grid);justify-content:center;align-items:center;min-height:64px;padding:20px 18px 16px;display:flex}.side-logo img{width:100%;max-width:140px;display:block}.sidebar.collapsed .side-logo img{display:none}.sidebar nav{flex-direction:column;flex:1;gap:2px;padding:10px 8px;display:flex;overflow-y:auto}.nav-item{color:var(--ink-2);white-space:nowrap;border-radius:9px;align-items:center;gap:10px;padding:10px 12px;font-size:13.5px;font-weight:600;text-decoration:none;display:flex}.nav-item:hover{background:var(--surface-2)}.nav-item.on{background:color-mix(in srgb,var(--sales) 12%,transparent);color:var(--sales)}.ni-icon{text-align:center;flex:none;width:20px}.sidebar.collapsed .ni-label{display:none}.sidebar.collapsed .nav-item{justify-content:center;padding:10px 0}.collapse-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;margin:10px;padding:8px;font-size:12px;font-weight:600}.collapse-btn:hover{background:var(--surface-2)}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:70;background:color-mix(in srgb,var(--plane) 78%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--grid);align-items:center;gap:8px;height:50px;padding:0 16px;display:flex;position:sticky;top:0}.topbar .btn-ghost{padding:6px 11px;font-size:12.5px}.hamburger{display:none}.drawer-bg{z-index:75;background:#0006;position:fixed;inset:0}@media (max-width:940px){.sidebar{width:222px;transition:transform .18s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:none}.sidebar.collapsed{width:222px}.sidebar.collapsed .ni-label{display:inline}.sidebar.collapsed .side-logo img{display:block}.collapse-btn{display:none}.hamburger{display:inline-flex}}.ev-chip{white-space:nowrap;border-radius:99px;align-items:center;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.rep-card{cursor:pointer;margin-bottom:7px;padding:0;transition:border-color .1s;display:flex;overflow:hidden}.rep-card:hover{border-color:color-mix(in srgb,var(--sales) 35%,var(--border))}.rep-band{color:#fff;letter-spacing:.02em;text-align:center;word-break:break-word;text-shadow:0 1px 2px #0000002e;flex:none;justify-content:center;align-items:center;width:94px;padding:6px;font-size:11.5px;font-weight:800;display:flex}.rep-content{flex:1;min-width:0;padding:9px 14px}.rep-line1{flex-wrap:wrap;align-items:center;gap:7px;min-width:0;display:flex}.rep-line1 .chev{color:var(--muted);flex:none;width:12px;font-size:11px}.rep-cat{white-space:nowrap;border-radius:99px;flex:none;padding:2px 8px;font-size:10.5px;font-weight:800}.rep-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:60%;font-size:13.5px;overflow:hidden}.rep-title b{font-size:13.5px}.rep-dash{color:var(--muted)}.rep-detail-btn{flex:none;padding:3px 10px;font-size:11.5px}.rep-line2{align-items:baseline;gap:8px;min-width:0;margin:3px 0 0 19px;display:flex}.rep-date{color:var(--muted);flex:none;font-size:11px;font-weight:700}.rep-latest{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.rep-card.open .rep-latest{white-space:normal}.rep-body{cursor:default;margin:9px 0 2px 19px}.rep-info{color:var(--ink-2);flex-wrap:wrap;gap:6px 16px;font-size:12.5px;display:flex}.rep-info b{color:var(--ink)}.wbs-grid{border-top:1px solid var(--grid);min-width:860px;display:grid}.wbs-head{color:var(--muted);text-align:center;border-bottom:2px solid var(--baseline);white-space:nowrap;padding:8px 6px;font-size:11px;font-weight:700}.wbs-head.l{text-align:left;padding-left:8px}.wbs-head.cur{color:var(--sales)}.wbs-label{border-bottom:1px solid var(--grid);cursor:pointer;flex-direction:column;gap:1px;min-width:0;padding:8px;font-size:12px;line-height:1.35;display:flex}.wbs-label b{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.wbs-label span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.wbs-label:hover{background:var(--surface-2)}.wbs-cell{border-bottom:1px solid var(--grid);align-items:center;min-height:40px;display:flex;position:relative}.wbs-cell.cur{background:color-mix(in srgb,var(--sales) 6%,transparent)}.wbs-bar{cursor:pointer;align-items:center;width:100%;height:18px;display:flex;overflow:hidden}.wbs-bar.first{border-top-left-radius:9px;border-bottom-left-radius:9px;margin-left:3px}.wbs-bar.last{border-top-right-radius:9px;border-bottom-right-radius:9px;margin-right:3px}.wbs-bar:hover{filter:brightness(1.1)}.wbs-bar-label{color:#fff;white-space:nowrap;padding-left:7px;font-size:10px;font-weight:800}.task-line{border-bottom:1px solid var(--grid);align-items:center;gap:10px;min-height:38px;padding:9px 4px;display:flex}.task-line .task-no{text-align:right;width:22px;color:var(--ink-2);flex:none;font-size:12.5px;font-weight:700}.task-line .task-text{word-break:break-word;flex:1;min-width:0;font-size:13.5px}.task-line .task-del{color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:0;flex:none;padding:0 6px;font-size:15px;line-height:1;transition:opacity .1s}.task-line:hover .task-del{opacity:1}.task-line .task-del:hover{color:var(--crit)}.task-line.input{border-bottom:1px solid var(--baseline)}.task-input{color:var(--ink);background:0 0;border:0;outline:0;flex:1;padding:0;font-family:inherit;font-size:13.5px}.task-input::placeholder{color:var(--muted);opacity:.7}.ci-logo{mix-blend-mode:multiply}:root[data-theme=dark] .ci-logo{filter:invert()hue-rotate(180deg);mix-blend-mode:screen}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px;width:100%;max-width:380px;padding:32px}.login-card h1{margin-bottom:4px;font-size:20px}.login-card .sub{margin-bottom:22px}.login-card .field{margin-bottom:14px}.tip{pointer-events:none;background:var(--ink);color:var(--surface);box-shadow:var(--shadow);opacity:0;z-index:200;border-radius:8px;max-width:240px;padding:7px 10px;font-size:11.5px;line-height:1.45;transition:opacity 80ms;position:fixed}.tip.show{opacity:1}@media (max-width:940px){.kpis{grid-template-columns:repeat(2,1fr)}.grid2,.grid2b,.repcards,.form-grid{grid-template-columns:1fr}}
