.active-row td:first-child{border-left:4px solid #e96666}.closed-row td:first-child{border-left:4px solid #27a876}.status-active{color:#bd3838}.status-closed{color:#197951}.column-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.column-grid label{padding:8px;border-bottom:1px solid var(--line);color:var(--muted)}
.finance-chart{height:300px;display:flex;align-items:end;gap:10px;padding:28px 22px 35px;border-top:1px solid var(--line);position:relative}.month-group{height:100%;flex:1;min-width:45px;display:flex;align-items:end;justify-content:center;gap:3px;position:relative}.month-group:after{content:attr(data-month);position:absolute;top:calc(100% + 8px);font-size:10px;color:var(--muted)}.metric-bar{width:11px;min-height:2px;border-radius:3px 3px 0 0;cursor:pointer}.revenue-plan{background:#769bc8}.revenue-fact{background:#19c9bd}.cash-plan{background:#d18a2d}.cash-fact{background:#62b58e}.chart-tip{position:absolute;display:none;z-index:4;background:#081416;color:#fff;border-radius:8px;padding:10px;font-size:12px;box-shadow:0 8px 20px #0008;pointer-events:none}.legend{padding:0 18px 14px;color:var(--muted);font-size:12px}.legend i{display:inline-block;width:12px;height:12px;margin:0 4px 0 12px}.fact-inputs{background:#13cfc10d;border:1px solid #65d1cb;border-radius:12px;padding:12px;margin-top:12px}
.combo-chart{height:265px;position:relative;border-top:1px solid var(--line);display:flex;align-items:end;padding:25px 28px 32px;gap:8px}.combo-month{height:100%;flex:1;position:relative;display:flex;align-items:end;justify-content:center}.combo-month:after{content:attr(data-month);position:absolute;top:calc(100% + 8px);font-size:10px;color:var(--muted)}.combo-bar{width:16px;background:#19c9bd;border-radius:3px 3px 0 0;z-index:2;cursor:pointer}.cash-combo .combo-bar{background:#62b58e}.plan-svg{position:absolute;inset:25px 28px 32px;z-index:3;pointer-events:none}.plan-svg polyline{fill:none;stroke:#d18a2d;stroke-width:3}.cash-combo .plan-svg polyline{stroke:#7563d7}.date-filter{display:flex;gap:8px;align-items:center}.date-filter.hidden{display:none}
.combo-chart{overflow:hidden}.plan-svg{width:calc(100% - 56px);height:calc(100% - 57px)}.combo-chart .combo-bar{max-height:190px}.project-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}.filter-card{padding:14px;cursor:pointer}.filter-card strong{font-size:24px;display:block;margin-top:8px}@media(max-width:900px){.project-cards{grid-template-columns:repeat(2,1fr)}}
.event.plan{border-left-color:#7563d7;background:#f8f6ff}.event.actual{border-left-color:#27a876;background:#effaf5}.axis-labels{position:absolute;right:4px;top:25px;bottom:32px;display:flex;flex-direction:column;justify-content:space-between;font-size:10px;color:var(--muted);z-index:4;background:linear-gradient(90deg,transparent,var(--card) 30%);padding-left:12px}.blocked{opacity:.62}.blocked-note{padding:13px;border-radius:9px;background:#fff3d8;color:#916100;margin:12px 0}
.axis-labels{left:4px;right:auto;padding:0 8px 0 0;background:linear-gradient(90deg,var(--card) 70%,transparent)}.combo-chart{padding-left:65px}.plan-svg{left:65px!important;width:calc(100% - 93px)}
.kpi-card{min-height:178px;position:relative;padding:20px}.kpi-card .kpi-head{display:flex;justify-content:space-between;align-items:flex-start;color:var(--muted);font-weight:700}.kpi-card .kpi-icon{width:34px;height:34px;border-radius:9px;background:#13cfc11c;color:#007d83;display:grid;place-items:center;font-size:19px}.kpi-card strong{font-size:30px;margin:26px 0 5px}.kpi-card .kpi-note{display:block;color:var(--muted);font-size:12px}.kpi-card .modal-actions{margin-top:10px;justify-content:flex-start}.kpi-card .modal-actions button{padding:6px 9px;font-size:11px}
.kpi-card{min-height:94px;padding:14px 15px}.kpi-card strong{font-size:23px;margin:10px 0 2px}.kpi-card .kpi-note{font-size:11px;line-height:1.25}.kpi-card .kpi-icon.kpi-action{border:0;padding:0;cursor:pointer;width:32px;height:32px;flex:0 0 32px}.kpi-card .kpi-icon.kpi-action:hover{filter:brightness(.93);transform:translateY(-1px)}
.combo-chart{padding-left:62px}.combo-chart .axis-labels{left:7px;top:10px;bottom:30px;width:53px;justify-content:space-between;align-items:flex-start;color:var(--muted);font-size:10px}.combo-chart .axis-labels span{white-space:nowrap}.theme-dark{--bg:#122123;--card:#1b3032;--text:#f5fbfb;--muted:#c0d0d2;--line:#3d6265;--shadow:0 8px 22px #06101066}.theme-dark header{background:#20383a}.theme-dark .table th{background:#264347;color:#e8f5f5}.theme-dark nav button{color:#c7d7d8}.theme-dark .notice{color:#172426}.theme-dark input,.theme-dark select,.theme-dark button{background:#213b3d;color:#f5fbfb;border-color:#548184}.theme-dark .primary{background:linear-gradient(100deg,#19d8c9,#62dbe4);color:#072529;border-color:transparent}.theme-dark .kpi-icon{color:#08383d!important;background:#6ce4e03b!important}.theme-dark .sub,.theme-dark small{color:#c0d0d2}.theme-dark .badge{color:#0c494b}.theme-dark .danger{color:#ff9a9a;background:#5b3033}.theme-dark .warning{color:#ffe1a4;background:#604c2a}
.quarter-switch{display:flex;gap:5px;padding-left:4px;border-left:1px solid var(--line)}.quarter-switch button{padding:8px 10px;font-size:12px}.timeline .event.plan{background:#f1edff;color:#332461;border-left:4px solid #7865da;border-top:1px solid #d3c9ff}.timeline .event.actual{background:#e7f8ef;color:#125d42;border-left:4px solid #20a66e;border-top:1px solid #b2e8ce}.timeline .event b{font-size:11px}.timeline .event span{font-size:10px;color:inherit;opacity:.8}.theme-dark .timeline .event.plan{background:#3a315c;color:#f1edff;border-color:#af9fff}.theme-dark .timeline .event.actual{background:#1e4f40;color:#e7fff3;border-color:#53d39b}.theme-dark .timeline>*,.theme-dark .timeline{border-color:#4b7275}.theme-dark .timeline b{color:#f4fbfb}.theme-dark .timeline small{color:#c4d9db}.theme-dark .quarter-switch button.active{background:#1dd5c9;color:#06282b}.fact-inputs{color:var(--text)}
