:root{color:#1f2933;background:#eef2f6;font-family:Segoe UI,Malgun Gothic,Arial,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{color:#fff;cursor:pointer;white-space:nowrap;background:#1f6feb;border:0;border-radius:6px;min-height:32px;padding:0 12px}button:disabled{cursor:not-allowed;background:#c6d1dd}button.ghost{color:#263442;background:#eef3f8;border:1px solid #cbd6e2}input,select,textarea{color:#1f2933;background:#fff;border:1px solid #c9d3df;border-radius:5px;width:100%;min-height:32px;padding:6px 8px}input[type=checkbox]{accent-color:#1f6feb;cursor:pointer;border-radius:3px;width:16px;height:16px;min-height:0;margin:0;padding:0}textarea{resize:vertical;min-height:100px}table{border-collapse:collapse;table-layout:fixed;width:100%}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #e4e9ef;padding:9px 10px}th{z-index:1;color:#637083;background:#f7f9fc;font-size:12px;font-weight:700;position:sticky;top:0}.sort-header{width:100%;min-width:0;height:auto;min-height:0;color:inherit;font:inherit;text-align:left;background:0 0;border-radius:4px;justify-content:flex-start;align-items:center;gap:5px;padding:0;display:inline-flex}.sort-header:hover{color:#1f6feb;background:0 0}.sort-header.right{text-align:right;justify-content:flex-end}.sort-header span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sort-header i{color:#97a6b8;flex:none;font-size:10px;font-style:normal}.sort-header.active i{color:#1f6feb}td{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-shell{grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#fff;background:#17212f;flex-direction:column;gap:18px;padding:20px;display:flex}.brand{align-items:center;gap:12px;min-height:48px;display:flex}.brand-mark{background:#2f80ed;border-radius:8px;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.brand strong{white-space:nowrap}.brand span,.user-box span{color:#b7c5d5;margin-top:3px;font-size:12px;display:block}.sidebar nav{gap:6px;display:grid}.sidebar nav button{color:#cbd6e2;text-align:left;background:0 0;justify-content:flex-start;width:100%}.sidebar nav button:disabled{color:#718096;opacity:.55;background:0 0}.sidebar nav button.active,.sidebar nav button:hover{color:#fff;background:#223149}.user-box{border-top:1px solid #33445c;margin-top:auto;padding-top:16px}.full-button,.login-link{border-radius:6px;place-items:center;width:100%;min-height:32px;margin-top:10px;text-decoration:none;display:grid}.login-link{color:#17212f;background:#fff;font-weight:700}.login-page{background:#101821;align-content:center;justify-items:start;gap:18px;min-height:100vh;padding:clamp(28px,7vw,116px);display:grid;position:relative;overflow:hidden}.login-page:before{content:"";opacity:.46;filter:blur(2px)saturate(.72);background-image:url(/assets/login-hero-N8canwhX.png);background-position:100%;background-size:cover;position:absolute;inset:0;transform:scale(1.01)}.login-page:after{content:"";background:linear-gradient(90deg,#080d14f0 0%,#080d14c7 38%,#080d145c 72%,#080d146b 100%),linear-gradient(#080d142e,#080d1494);position:absolute;inset:0}.login-brand{z-index:1;color:#fff;text-shadow:0 2px 12px #00000047;align-items:center;gap:12px;display:flex;position:relative}.login-brand strong,.login-brand span{display:block}.login-brand strong{white-space:nowrap;font-size:clamp(18px,2.5vw,24px)}.login-brand span{color:#64748b;margin-top:3px;font-size:13px}.login-gate{z-index:1;background:#fffffffa;border:1px solid #ffffff29;border-radius:8px;gap:12px;width:min(430px,100%);max-width:430px;padding:26px;display:grid;position:relative;box-shadow:0 22px 64px #00000057}.login-gate strong{font-size:22px}.login-gate p{color:#64748b;margin:0}.login-denied{border-color:#dc262629;gap:14px}.login-denied-mark{color:#b91c1c;background:#fee2e2;border-radius:8px;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.login-actions{gap:8px;margin-top:2px;display:flex}.login-gate .login-link{color:#fff;background:#1f6feb;width:180px;margin-top:6px}.main{min-width:0;padding:22px}.page-title{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-title h1{letter-spacing:0;margin:0;font-size:24px}.page-title p{color:#64748b;margin:5px 0 0}.kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:12px;display:grid}.kpi,.panel{background:#fff;border:1px solid #d8e0ea;border-radius:8px}.kpi{padding:16px}.kpi span{color:#64748b;font-size:12px}.kpi strong{margin-top:8px;font-size:22px;display:block}.dashboard-grid{grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:12px;display:grid}.dashboard-grid .panel:first-child{flex-direction:column;grid-row:span 3;display:flex}.dashboard-grid .panel:first-child .table-wrap{flex:auto;min-height:320px;max-height:none}.panel{min-width:0;overflow:hidden}.panel-head{border-bottom:1px solid #e4e9ef;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.panel-head strong{font-size:15px;display:block}.panel-head span{color:#64748b;margin-top:2px;font-size:12px;display:block}.panel-actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.work-modal-head .panel-actions button{border:1px solid #b9c8d8;font-weight:700;box-shadow:0 1px 2px #0f172a14}.work-modal-head .panel-actions button.ghost{background:#fff}.grid-filter{width:180px;min-width:120px;display:block}.grid-filter input{height:32px;min-height:32px}.modal-filter{border-bottom:1px solid #e4e9ef;justify-content:flex-end;align-items:center;gap:10px;padding:10px 14px;display:flex}.table-wrap{overflow:auto}.table-wrap.tall{max-height:calc(100vh - 220px)}.revision-history-table th:first-child{width:72px}.revision-history-table th:nth-child(2){width:96px}.revision-history-table th:nth-child(4){width:98px}.revision-history-table th:nth-child(5){width:96px}.revision-history-table th:nth-child(6){width:132px}.history-reason{white-space:pre-wrap;min-width:260px}.wide-name{width:32%}.strong-cell{font-weight:700}.num{text-align:right;font-variant-numeric:tabular-nums}td.num{cursor:cell;-webkit-user-select:none;user-select:none}td.amount-selected{box-shadow:inset 0 0 0 1px #2f80ed;background:#d9ebff!important}.amount-selection-summary{z-index:1300;color:#fff;background:#17212f;border:1px solid #b8c9dc;border-radius:8px;grid-template-columns:auto auto auto;align-items:center;gap:10px;padding:10px 14px;display:grid;position:fixed;bottom:18px;right:18px;box-shadow:0 14px 32px #0f172a40}.amount-selection-summary span,.amount-selection-summary small{color:#c8d3df;font-size:12px}.amount-selection-summary strong{font-size:16px}.pill{border-radius:999px;place-items:center;min-width:42px;height:24px;padding:0 9px;font-size:12px;font-weight:700;display:inline-grid}.pill.ok{color:#137346;background:#dff7ea}.pill.warn{color:#9a6500;background:#fff3cf}.pill.danger{color:#bd2d23;background:#ffe0df}.progress{background:#e8edf3;border-radius:999px;min-width:108px;height:24px;position:relative;overflow:hidden}.progress i{border-radius:inherit;background:#2f80ed;height:100%;display:block}.progress span{color:#17212f;place-items:center;font-size:12px;font-weight:700;display:grid;position:absolute;inset:0}.progress.no-budget{background:#fff1d6}.progress.no-budget span{color:#9a6500;font-size:11px}.bar-list{gap:12px;padding:14px;display:grid}.bar-row{grid-template-columns:84px minmax(0,1fr) 120px;align-items:center;gap:10px;display:grid}.bar-row div{background:#e6edf5;border-radius:999px;height:10px;overflow:hidden}.bar-row i{border-radius:inherit;background:#23a6a6;height:100%;display:block}.bar-row strong{text-align:right;font-size:12px}.donut-panel{grid-template-columns:150px minmax(0,1fr);align-items:center;gap:14px;padding:14px;display:grid}.donut-chart{border-radius:999px;place-items:center;width:140px;height:140px;display:grid}.donut-chart>div{background:#fff;border-radius:999px;place-items:center;width:86px;height:86px;display:grid;box-shadow:inset 0 0 0 1px #e4e9ef}.donut-chart strong,.donut-chart span{display:block}.donut-chart strong{font-size:20px}.donut-chart span{color:#64748b;font-size:12px}.donut-legend{gap:9px;display:grid}.donut-legend div{grid-template-columns:10px 56px minmax(0,1fr);align-items:center;gap:8px;display:grid}.donut-legend i{border-radius:999px;width:10px;height:10px}.donut-legend span{color:#64748b;font-size:12px}.donut-legend strong{text-align:right;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sync-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px;display:grid}.sync-grid .kpi{padding:12px}.sync-grid .kpi strong{font-size:16px}.sync-foot{border-top:1px solid #e4e9ef;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.sync-foot>span:last-child{color:#64748b;font-size:12px;font-weight:700}.status-grid{grid-template-columns:repeat(3,1fr);gap:10px;padding:14px;display:grid}.status-tile{text-align:center;border:1px solid #dfe7f0;border-radius:8px;padding:14px}.status-tile span{color:#64748b}.status-tile strong{margin-top:6px;font-size:24px;display:block}.planning-layout{grid-template-columns:minmax(280px, var(--project-pane-width,34%)) 8px minmax(0, 1fr);gap:8px;height:calc(100vh - 106px);display:grid}.right-stack{grid-template-rows:minmax(180px, var(--dev-pane-height,43%)) 8px minmax(220px, 1fr);gap:8px;min-height:0;display:grid}.planning-layout>.panel,.right-stack>.panel{flex-direction:column;min-height:0;display:flex}.planning-layout>.panel .panel-head,.right-stack>.panel .panel-head{flex:none}.planning-layout>.panel .table-wrap,.right-stack>.panel .table-wrap{flex:auto;min-height:0;max-height:none}.pane-resizer{z-index:2;background:0 0;border-radius:6px;position:relative}.pane-resizer:after{content:"";opacity:0;background:#cbd5e1;border-radius:999px;transition:opacity .15s,background .15s;position:absolute}.pane-resizer-x{cursor:col-resize}.pane-resizer-x:after{width:2px;top:10px;bottom:10px;left:3px}.pane-resizer-y{cursor:row-resize}.pane-resizer-y:after{height:2px;top:3px;left:10px;right:10px}.pane-resizer:hover:after,.is-resizing-pane .pane-resizer:after{opacity:1;background:#1f6feb}.is-resizing-pane{-webkit-user-select:none;user-select:none}.is-resizing-project{cursor:col-resize}.is-resizing-dev{cursor:row-resize}.search{width:calc(100% - 28px);margin:12px 14px 6px}.search.compact{width:220px;margin:0}.hint{color:#64748b;margin:0 14px 10px;font-size:12px}.notice{color:#1558a8;background:#eef6ff;border:1px solid #b8d8ff;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-weight:700}.draft-alert{justify-content:space-between;align-items:center;gap:12px;display:flex}.danger-text{color:#b42318!important}button.danger-text{background:#fff5f3;border-color:#f0b4ad}.save-status{color:#64748b;font-size:12px;font-weight:700}.list-grid-header{background:#f8fafc;border-top:1px solid #edf1f6;border-bottom:1px solid #edf1f6;align-items:center;gap:10px;padding:7px 10px;display:grid}.planning-layout>.panel .list-grid-header{grid-template-columns:minmax(0,1fr) 88px 106px;margin-top:6px}.right-stack .list-grid-header{grid-template-columns:minmax(0,1fr) 150px}.list-grid-header button{color:#637083;text-align:left;background:0 0;align-items:center;gap:5px;min-width:0;height:auto;min-height:0;padding:0;font-size:12px;font-weight:700;display:inline-flex}.list-grid-header button:hover:not(:disabled){color:#1f6feb;background:0 0}.list-grid-header button:disabled{cursor:default;opacity:1}.list-grid-header button.num{text-align:right;justify-content:flex-end}.list-grid-header button.actions{text-align:center;justify-content:center}.list-grid-header span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.list-grid-header i{color:#97a6b8;flex:none;font-size:10px;font-style:normal}.list-scroll{scrollbar-gutter:stable;align-content:start;gap:6px;max-height:calc(100vh - 260px);padding:0 10px 10px;display:grid;overflow:hidden auto}.planning-layout>.panel .list-scroll{flex:auto;min-height:0;max-height:none}.planning-layout>.panel .search,.planning-layout>.panel .hint{flex:none}.list-row,.dev-card{color:#1f2933;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:10px;width:100%;display:grid}.list-row{grid-template-columns:minmax(0,1fr) auto;min-height:58px;padding:9px 10px}.list-row-main{min-width:0}.list-row-main strong,.list-row-main span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.project-name-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.list-row-main span{color:#64748b;font-variant-numeric:tabular-nums;margin-top:5px;font-size:12px}.revision-badge{display:none!important}.row-action{min-height:26px;padding:0 9px;font-size:12px}.row-actions{flex:none;justify-content:flex-end;align-items:center;gap:6px;display:flex}.list-row.selected,.list-row:hover,.dev-card.selected,.dev-card:hover{background:#edf5ff}.list-row.selected,.dev-card.selected{border-color:#b9d7ff;box-shadow:inset 3px 0 #1f6feb}.dev-grid{scrollbar-gutter:stable;flex:auto;grid-template-columns:1fr;align-content:start;gap:6px;min-height:0;max-height:none;padding:10px 12px 12px;display:grid;overflow:hidden auto}.dev-card{grid-template-columns:minmax(0,1fr) auto;min-width:0;min-height:44px;padding:8px 10px;overflow:hidden}.dev-card strong,.dev-card span{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;display:block;overflow:hidden}.dev-card strong{font-size:13px;font-weight:600}.dev-card span{text-align:right;font-variant-numeric:tabular-nums;color:#1f2933;font-size:13px}.budget-lines{max-height:calc(100vh - 484px)}.budget-lines td{padding:6px}.budget-lines input,.budget-lines select{min-height:30px}.auto-account{color:#334155;text-overflow:ellipsis;white-space:nowrap;max-width:100%;min-height:30px;padding:6px 0;display:block;overflow:hidden}.auto-account.missing{color:#b45309}.num-input{text-align:right}.draft-row{background:#f9fbfe}.work-modal-head{border-bottom:1px solid #e4e9ef;justify-content:space-between;align-items:center;gap:10px;padding:8px 14px;display:flex}.work-modal-head strong,.work-modal-head span{display:block}.work-modal-head strong{font-size:15px}.work-modal-head span{color:#64748b;margin-top:3px;font-size:12px}.previous-toggle{color:#263442;align-items:center;gap:7px;font-size:13px;font-weight:800;display:inline-flex}.previous-toggle input{flex:none;width:16px;height:16px;min-height:0}.input-with-previous,.compare-after{position:relative;overflow:visible}.previous-bubble{z-index:8;color:#5f4700;pointer-events:none;white-space:normal;background:#ffec60;border:1px solid #d9a931;border-radius:7px;max-width:min(320px,90vw);padding:6px 9px;font-size:12px;font-weight:700;line-height:1.35;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 10px 24px #0f172a1a}.previous-bubble:before{content:"";background:#ffec60;border-top:1px solid #d9a931;border-left:1px solid #d9a931;width:8px;height:8px;position:absolute;top:-5px;left:12px;transform:rotate(45deg)}.modal-notice{z-index:5;margin:12px 14px 0;position:sticky;top:0}.project-work-sections{max-height:calc(100vh - 160px);display:grid;overflow:auto}.work-section{border-bottom:1px solid #e4e9ef;padding:14px 16px}.work-section:last-child{border-bottom:0}.compare-work-layout{background:#f3f6fa;gap:12px;padding:12px}.compare-panel{background:#fff;border:1px solid #d8e2ed;border-radius:8px;overflow:hidden}.compare-panel .work-section-head{border-bottom:1px solid #e4e9ef;min-height:42px;margin:0;padding:8px 14px}.project-compare-panel{padding:0}.compare-grid{grid-template-columns:116px minmax(190px,1fr) 116px minmax(190px,1fr);align-items:stretch;padding:0 14px 10px;display:grid}.compare-grid-head{z-index:1;color:#64748b;background:#f8fafc;border-bottom:1px solid #e4e9ef;padding:6px 8px;font-size:12px;font-weight:800;position:sticky;top:0}.compare-row{display:contents}.compare-label,.compare-after{border-bottom:1px solid #edf1f6;min-width:0;padding:5px 8px}.compare-label{color:#475569;white-space:nowrap;font-weight:700}.compare-after input,.compare-after textarea{min-height:28px}.compare-row.changed .compare-label,.compare-row.changed .compare-after{background:#fff7df}.reason-row .compare-after{grid-column:2/-1}.reason-row textarea{min-height:46px}.compare-main-area{grid-template-columns:1fr;gap:12px;min-height:0;display:grid}.dev-inline-selector{background:#fbfdff;border-bottom:1px solid #e4e9ef;padding:10px 12px}.dev-list-selector{background:#fbfdff;border-bottom:1px solid #e4e9ef}.dev-list-head{background:#f4f9ff;border-bottom:1px solid #dfebf6;align-items:center;min-height:40px;padding:0 12px;display:flex}.dev-list-head strong{font-size:13px}.dev-edit-table{align-content:start;max-height:348px;padding:9px 12px 8px;display:grid;overflow:hidden auto}.dev-edit-row{border-bottom:1px solid #edf1f6;grid-template-columns:78px minmax(0,1fr) 58px;align-items:center;gap:4px;min-height:38px;padding:5px 2px 5px 6px;display:grid;position:relative;overflow:visible}.dev-edit-row:hover{background:#f8fbff}.dev-edit-row.selected{background:#eef6ff;border-color:#bfdbfe}.dev-edit-row.changed{background:#fff7df}.dev-edit-head{z-index:1;color:#64748b;background:#f8fafc;border-top:1px solid #edf1f6;border-bottom:1px solid #dfe7f1;min-height:30px;font-size:12px;font-weight:800;position:sticky;top:0}.dev-edit-row input{min-width:0;height:28px;padding:4px 8px}.row-action-button{white-space:nowrap;min-height:28px;padding:0 8px}.icon-only-button{place-items:center;width:30px;min-width:30px;height:28px;padding:0;display:inline-grid}.icon-only-button svg{pointer-events:none}.dev-edit-row .icon-only-button{justify-self:end}.dev-edit-add{border-top:1px solid #e4e9ef;padding:9px 14px 12px 18px}.dev-edit-add .dev-quick-add{grid-template-columns:78px minmax(0,1fr) 58px;gap:4px;max-width:none}.dev-edit-add .dev-quick-add button{white-space:nowrap;width:100%;min-width:0;min-height:28px;padding:0 4px}.dev-inline-grid{grid-template-columns:minmax(360px,.95fr) minmax(420px,1.05fr);grid-template-areas:"list edit""list add";gap:10px;padding:9px 12px 12px;display:grid}.dev-inline-list{grid-area:list;grid-template-columns:1fr;align-content:start;gap:6px;min-width:0;min-height:92px;max-height:368px;padding-right:4px;display:grid;overflow-y:auto}.dev-list-item{color:#1f2933;text-align:left;background:#fff;border:1px solid #dde7f2;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-content:center;gap:2px 8px;width:100%;min-height:38px;padding:7px 9px;display:grid;position:relative}.dev-list-item.selected{background:#eaf3ff;border-color:#8bb9ff}.dev-list-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dev-list-item strong{color:#52657a;font-size:12px;font-weight:800}.dev-list-item em{color:#9a6700;background:#fff1c2;border-radius:999px;grid-column:1/-1;width:fit-content;padding:1px 7px;font-size:11px;font-style:normal;font-weight:800}.dev-list-empty{align-items:center;min-height:44px;margin:0;display:grid}.dev-quick-editor,.dev-quick-add{grid-template-columns:minmax(0,.78fr) minmax(0,1.2fr);gap:6px;min-width:0;display:grid}.dev-quick-editor{grid-area:edit;align-self:start}.dev-quick-add{grid-area:add;grid-template-columns:minmax(0,.75fr) minmax(0,1fr) auto;align-self:start}.dev-quick-editor.changed{background:#fff7df;border-radius:7px}.dev-quick-editor label{gap:3px;display:grid}.dev-quick-editor label span{color:#64748b;font-size:11px;font-weight:800}.dev-target-row{grid-template-columns:96px minmax(260px,1fr) 140px;align-items:center;gap:8px;display:grid}.dev-target-row label{color:#475569;font-size:12px;font-weight:800}.dev-target-budget{color:#475569;text-align:right;font-weight:800}.inline-empty{margin:8px 0 0}.dev-details{margin-top:8px}.dev-details summary{color:#1f6feb;cursor:pointer;width:fit-content;font-size:12px;font-weight:800}.dev-details>div{background:#fff;border:1px solid #e4e9ef;border-radius:7px;gap:6px;margin-top:8px;padding:8px;display:grid}.dev-details.changed>div{background:#fffaf0}.dev-details .compare-row{grid-template-columns:70px minmax(0,.9fr) minmax(0,1.2fr);align-items:center;display:grid}.dev-details .compare-label,.dev-details .compare-before,.dev-details .compare-after{border-bottom:0;padding:5px 6px}.dev-add-row.compact{border-top:1px solid #edf1f6;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) auto;margin-top:8px;padding:10px 0 0;display:grid}.budget-compare-panel{min-width:0}.budget-compare-panel .grid-filter{width:220px}.work-side-by-side{background:#eef3f8;border-top:1px solid #e4e9ef;grid-template-columns:minmax(300px,.7fr) minmax(0,1.3fr);align-items:stretch;gap:12px;min-height:440px;padding:12px;display:grid}.approval-warning{color:#765400;background:#fff7dc;border:1px solid #e6b84a;border-radius:7px;margin:10px 14px 0;padding:9px 11px;font-size:12px;font-weight:700}.approval-warning.compact{margin:0}.work-side-by-side>.dev-list-selector{background:#fbfdff;border:1px solid #cfddea;border-radius:8px;min-width:0;overflow:hidden}.work-side-by-side>.budget-edit-panel{background:#fff;border:1px solid #cfddea;border-radius:8px;min-width:0;overflow:hidden}.workspace-loading{color:#64748b;background:#fff;border:1px solid #d8e2ed;border-radius:8px;grid-column:1/-1;place-items:center;min-height:420px;font-size:13px;font-weight:700;display:grid}.workspace-load-error{align-content:center;gap:10px}.workspace-load-error button{justify-self:center}.work-side-by-side .dev-edit-table{max-height:456px}.budget-edit-panel-head{background:#fffaf0;border-bottom:1px solid #e4e9ef;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.budget-edit-panel-head strong{font-size:13px}.budget-edit-panel-head span{color:#475569;white-space:nowrap;font-size:12px;font-weight:800}.budget-compare-table{max-height:430px}.table-wrap.budget-compare-table table{min-width:880px}.budget-compare-table th:first-child{width:72px}.budget-compare-table th:nth-child(4),.budget-compare-table th:nth-child(5),.budget-compare-table th:nth-child(6){width:116px}.budget-compare-table th:nth-child(8){width:112px}.budget-edit-table{scrollbar-gutter:stable;max-height:492px}.budget-edit-table td{padding:5px 6px;overflow:visible}.new-row-anchor{position:relative}.new-row-emoji{z-index:9;pointer-events:none;font-size:13px;line-height:1;position:absolute;top:1px;left:2px}.table-wrap.budget-edit-table table{table-layout:fixed;width:calc(100% - 8px);min-width:0;margin-right:8px}.budget-edit-table th:first-child,.budget-edit-table .year-col{width:62px}.budget-edit-table th:nth-child(2){width:148px}.budget-edit-table th:nth-child(4){width:106px}.budget-edit-table th:nth-child(5){width:86px}.budget-edit-table th:nth-child(6){width:116px}.budget-edit-table th:nth-child(7){width:78px}.budget-edit-table th:nth-child(5),.budget-edit-table td:nth-child(5){text-align:right;padding-left:4px;padding-right:6px}.budget-edit-table td:nth-child(7) .icon-only-button{margin-left:auto}.budget-edit-table input,.budget-edit-table select{min-height:28px;padding:4px 6px}.budget-edit-table .auto-account{min-height:28px;padding:5px 0}.draft-note-cell{align-items:center;gap:4px;display:flex}.draft-note-cell input{flex:auto;min-width:0}.draft-action-cell button{white-space:nowrap;width:100%;min-width:0;min-height:28px;padding:0 4px}.current-amount{color:#64748b}.changed-line{background:#fffaf0}.diff.up{color:#0f766e;font-weight:800}.diff.down{color:#dc2626;font-weight:800}.dev-add-row{align-items:center;gap:8px;padding:4px 16px;display:flex}.dev-add-row input{flex:auto;min-width:0}.dev-add-row button{flex:none}.work-section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.work-section-head strong,.work-section-head span{display:block}.work-section-head strong{font-size:14px}.work-section-head span{color:#64748b;margin-top:3px;font-size:12px}.button-pair{white-space:normal;gap:6px;display:flex;overflow:visible}.button-pair button{flex:1;min-width:48px;padding:0 8px}.context-menu{z-index:30;background:#fff;border:1px solid #c9d3df;border-radius:7px;min-width:120px;padding:6px;display:grid;position:fixed;box-shadow:0 12px 28px #0f172a2e}.context-menu button{color:#1f2933;text-align:left;background:#fff}.context-menu button:hover{background:#edf5ff}.inline-filters{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.inline-filters select{width:128px}.toggle-col{width:52px}.voucher-col{text-align:center;width:116px}.execution-row-actions{justify-content:center;align-items:center;gap:4px;display:flex;overflow:visible}.execution-row-actions .row-action{min-width:46px;padding:0 7px}td:last-child:has(>button[aria-label$=전표\ 조회]){text-align:center;overflow:visible}.icon-button{border-radius:6px;place-items:center;width:30px;min-width:30px;height:30px;min-height:30px;padding:0;display:inline-grid}.tree-cell{align-items:center;gap:8px;min-width:0;display:flex}.tree-cell span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tree-cell.dev-level{margin-left:-10px}.tree-cell.category-level{padding-left:34px}.child-toggle{border-radius:5px;width:26px;min-width:26px;height:26px;min-height:26px}.sub-row{background:#f3f8fc}.sub-row td{border-bottom-color:#d8e6f2}.category-row{background:#edf4ec}.category-row td{border-bottom-color:#d4e4d1}.indent{padding-left:34px}.indent-deep{padding-left:66px}.history-list{max-height:calc(100vh - 180px);display:grid;overflow:auto}.history-row{border-bottom:1px solid #e4e9ef;grid-template-columns:48px 132px minmax(0,1fr) 92px;align-items:center;gap:12px;padding:12px 14px;display:grid}.history-badge{color:#1f6feb;text-align:center;background:#e8f1ff;border-radius:999px;place-items:center;width:36px;height:36px;font-size:13px;font-weight:800;display:grid}.history-date{color:#64748b;font-variant-numeric:tabular-nums}.history-body{min-width:0}.history-body strong,.history-body span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.history-body span{color:#64748b;margin-top:3px;font-size:12px}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.settings-section{color:#344657;border-bottom:1px solid #d8e0ea;grid-column:1/-1;margin:10px 0 0;padding-bottom:6px;font-size:14px;font-weight:800}.settings-section:first-child{margin-top:0}.settings-grid>.settings-wide{grid-column:1/-1}.approval-list{max-height:360px;display:grid;overflow:auto}.approval-row{border-bottom:1px solid #e4e9ef;grid-template-columns:minmax(0,1fr) 92px 138px;align-items:center;gap:10px;padding:12px 14px;display:grid}.approval-row strong,.approval-row span,.approval-row p{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.approval-row span,.approval-row p,.empty{color:#64748b;font-size:12px}.approval-row p{margin:4px 0 0}.step-list{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.step-chip{color:#526173;background:#eef3f8;border-radius:999px;place-items:center;min-height:22px;padding:0 8px;font-size:11px;font-weight:700;display:inline-grid}.step-chip.approved{color:#137346;background:#dff7ea}.step-chip.rejected{color:#bd2d23;background:#ffe0df}.line-editor{gap:8px;padding:14px;display:grid}.line-step{grid-template-columns:28px minmax(0,1fr) 58px;align-items:center;gap:8px;display:grid}.line-step>span{color:#1f6feb;background:#e8f1ff;border-radius:999px;place-items:center;width:26px;height:26px;font-weight:800;display:grid}.user-admin-table{max-height:360px}.user-create-form{border-bottom:1px solid #e4e9ef;grid-template-columns:minmax(180px,1.5fr) repeat(3,minmax(100px,1fr)) 110px 68px;align-items:end;gap:8px;padding:12px 14px;display:grid}.user-create-form label{color:#64748b;gap:4px;min-width:0;font-size:11px;font-weight:700;display:grid}.user-add-button{align-self:end}.user-create-form input,.user-create-form select{min-width:0}.map-create-form{border-bottom:1px solid #e4e9ef;grid-template-columns:minmax(160px,1.4fr) minmax(220px,2fr) 120px 80px;gap:8px;padding:12px 14px;display:grid}.map-create-form select{min-width:0}.map-use-toggle{white-space:nowrap;align-items:center;gap:6px;display:flex}.map-use-toggle input{width:16px}.use-cell{text-align:center}.user-admin-table input,.user-admin-table select{width:100%;min-width:0}.user-admin-table td:nth-child(2){white-space:normal;overflow-wrap:anywhere}.user-admin-table th:first-child{width:120px}.user-admin-table th:nth-child(5){width:112px}.user-admin-table th:nth-child(6){width:132px}.user-admin-table td:nth-child(6){overflow:visible}.user-admin-table .button-pair.compact{min-width:112px}.user-admin-table .button-pair.compact button{min-width:50px;padding:0 7px}.diagnostic-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:14px;display:grid}.diagnostic-grid .kpi{padding:12px}.diagnostic-grid .kpi strong{font-size:18px}.mini-table{max-height:240px}.empty{margin:0;padding:14px}.empty-cell{color:#64748b;text-align:center;padding:18px}.profile-form{gap:10px;padding:14px;display:grid}.profile-form label,.modal-grid label{color:#64748b;gap:5px;font-size:12px;font-weight:700;display:grid}.settings-table{max-height:320px}.settings-table .toggle-col{width:76px}.settings-table td:first-child,.settings-table td:nth-child(3){white-space:normal}.mapping-missing-head{border-top:1px solid #e4e9ef;justify-content:space-between;align-items:center;gap:12px;padding:14px 14px 8px;display:flex}.mapping-missing-head strong{font-size:14px}.mapping-missing-head span{color:#64748b;white-space:nowrap;font-size:12px;font-weight:700}.missing-map-table{max-height:340px}.missing-map-table th:first-child{width:110px}.missing-map-table th:nth-child(2){width:92px}.missing-map-table th:nth-child(5){width:82px}.missing-map-table th:nth-child(7){width:120px}.missing-map-table th:nth-child(8){width:156px}.loading-kpis,.loading-content{gap:12px;display:grid}.loading-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}.loading-content{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.loading-block{background:#f7f9fc;border:1px solid #d8e0ea;border-radius:8px;position:relative;overflow:hidden}.loading-block:after{content:"";background:linear-gradient(90deg,#0000,#ffffffe6,#0000);animation:1.25s infinite loading-sweep;position:absolute;inset:0;transform:translate(-100%)}.loading-kpi{min-height:88px}.loading-table,.loading-side{min-height:390px}@keyframes loading-sweep{to{transform:translate(100%)}}.modal-backdrop{z-index:20;background:#0f172a61;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{resize:both;background:#fff;border-radius:10px;flex-direction:column;width:min(720px,100%);min-width:420px;max-width:calc(100vw - 24px);min-height:220px;max-height:calc(100vh - 40px);display:flex;overflow:hidden;box-shadow:0 24px 70px #0f172a3d}.wide-modal{width:min(1180px,100vw - 56px)}.modal-body{flex-direction:column;flex:auto;min-height:0;padding-bottom:10px;display:flex;overflow:auto}.modal-body>*{flex:none}.modal-body>.table-wrap,.modal-body>.project-work-sections{flex:auto;min-height:120px;max-height:none}.modal header{z-index:4;background:#fff;border-bottom:1px solid #e4e9ef;flex:none;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.confirm-backdrop{z-index:40;background:#0f172a52;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.confirm-dialog{background:#fff;border:1px solid #d8e2ed;border-radius:10px;width:min(420px,100%);padding:18px;box-shadow:0 22px 64px #0f172a3d}.confirm-dialog strong{color:#1f2933;margin-bottom:8px;font-size:16px;display:block}.confirm-dialog p{color:#64748b;margin:0 0 16px;line-height:1.45}.confirm-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.modal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;display:grid}.modal-grid .wide{grid-column:1/-1}.modal-actions{border-top:1px solid #e4e9ef;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.slip-start td{border-top:2px solid #94a3b8}.shared-line{background:#fdf6ec}.shared-mark{color:#7a5200;cursor:help;background:#f3d9a4;border-radius:4px;margin-left:6px;padding:0 5px;font-size:.72rem;font-weight:700;display:inline-block}.shared-total-row{color:#7a5200;background:#fdf6ec;font-weight:600}.negative-amount{color:#c2410c}.amount-tag{color:#9a3412;cursor:help;background:#ffe4d5;border-radius:3px;margin-left:5px;padding:0 4px;font-size:.7rem;font-weight:700;display:inline-block}.voucher-basis{color:#475569;background:#f8fafc;border-bottom:1px solid #e4e9ef;flex-wrap:wrap;align-items:baseline;gap:6px 22px;padding:10px 16px;font-size:.85rem;display:flex}.voucher-basis strong{color:#17212f;font-variant-numeric:tabular-nums}.voucher-basis i{color:#94a3b8;font-size:.85em;font-style:normal}.voucher-basis-note{color:#7a5200;flex-basis:100%;line-height:1.45}.sort-note{margin-right:auto}.table-wrap table{font-size:.82rem}.table-wrap table th{white-space:nowrap}.table-wrap table td.num,.table-wrap table th.num{font-variant-numeric:tabular-nums}.table-wrap table{table-layout:auto;width:max-content;min-width:100%}.table-wrap table td,.table-wrap table th{white-space:nowrap}.table-wrap.form-grid table{table-layout:fixed;width:100%;min-width:0}.table-wrap table td.wrap-cell,.table-wrap table th.wrap-cell{white-space:normal;min-width:180px;max-width:420px;overflow:visible}.table-wrap .sort-header span{min-width:auto;overflow:visible}.table-wrap.wide-grid table td.strong-cell,.table-wrap.wide-grid table th.wide-name{z-index:2;background:#fff;position:sticky;left:0}.table-wrap.wide-grid table th.wide-name{z-index:3;background:#f7f9fc}.table-wrap.wide-grid tr.sub-row td.strong-cell{background:#fbfcfe}.table-wrap.wide-grid tr.category-row td.strong-cell{background:#f7f9fc}.dashboard-filters{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.segmented{border:1px solid #cbd5e1;border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{color:#334155;cursor:pointer;background:#fff;border:0;border-right:1px solid #e2e8f0;align-items:center;gap:6px;padding:6px 14px;font-size:.85rem;display:inline-flex}.segmented button:last-child{border-right:0}.segmented button.active{color:#fff;background:#2563eb}.segmented-count{opacity:.7;font-size:.75em}.segmented.compact button{gap:4px;padding:5px 9px;font-size:.8rem}.filter-note{color:#64748b;margin:0 0 12px;font-size:.82rem}.pill.muted{color:#475569;background:#e2e8f0}.cell-hint{color:#64748b;font-size:.85em}.voucher-total-row{background:#f1f5f9;border-top:2px solid #cbd5e1;font-weight:700}.voucher-total-row td{background:#f1f5f9;position:sticky;bottom:0}@media (width<=1180px){.dashboard-grid,.planning-layout,.settings-grid{grid-template-columns:1fr;height:auto}.dashboard-grid .panel:first-child{grid-row:auto}.app-shell{grid-template-columns:220px minmax(0,1fr)}.sidebar{padding:16px}.main{padding:18px}.kpi-grid,.loading-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.loading-content{grid-template-columns:1fr}.loading-side{min-height:220px}.right-stack{grid-template-rows:auto auto}.pane-resizer{display:none}.list-scroll,.dev-grid,.budget-lines{max-height:360px}.planning-layout>.panel .list-scroll,.planning-layout>.panel .dev-grid,.right-stack>.panel .table-wrap{flex:0 auto;max-height:360px}}@media (width<=760px){.app-shell{grid-template-columns:1fr}.sidebar{position:static}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.main{padding:14px}.kpi-grid,.loading-kpis,.status-grid,.diagnostic-grid,.modal-grid{grid-template-columns:1fr}.compare-grid{grid-template-columns:104px minmax(0,1fr)}.compare-grid-head:nth-child(3),.compare-grid-head:nth-child(4){display:none}.user-create-form{grid-template-columns:1fr}}.delta{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.delta.up{color:#b91c1c}.delta.down{color:#1d4ed8}.delta.same{color:#94a3b8;font-weight:400}.delta.new{color:#047857;font-size:.85em}.readonly-note{color:#64748b;margin:0;padding:8px 10px;font-size:.85rem}.revision-project{background:#f8fafc;border:1px solid #e4e9ef;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px;margin-bottom:12px;padding:12px 14px;display:grid}.revision-project span{color:#64748b;font-size:12px;display:block}.revision-project strong{margin-top:2px;display:block}.revision-reason{color:#475569;white-space:pre-line;border-left:3px solid #cbd5e1;margin:0 0 12px;padding:10px 12px}.attachment-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.attachment-list li{border:1px solid #e4e9ef;border-radius:6px;align-items:center;gap:10px;padding:6px 10px;display:flex}.attachment-list a{color:#1f6feb;font-weight:600}.attachment-list li button{margin-left:auto}.attachment-upload{align-items:center;gap:10px;margin-top:10px;display:flex}.attachment-upload input[type=file]{width:auto}.tree-name{flex-direction:column;gap:3px;min-width:0;display:flex}.tree-name>span{text-overflow:ellipsis;overflow:hidden}.tree-name small{color:#64748b;align-items:center;gap:6px;font-size:11px;font-weight:400;display:flex}.tree-name small .pill{padding:1px 6px;font-size:10px}.sub-meta{color:#cbd5e1}
