:root{color-scheme:light;--bg:#f5f7f8;--surface:#ffffff;--surface-2:#edf2f1;--text:#17211f;--muted:#5f6f6b;--line:#d8e0de;--accent:#19715f;--accent-2:#c25a2c;--danger:#b42318;--warning:#b7791f;--ok:#19715f}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{display:grid;grid-template-columns:248px minmax(0,1fr);height:100vh;overflow:hidden}.shell.shell-collapsed{grid-template-columns:84px minmax(0,1fr)}.sidebar{background:#11231f;color:#ecf4f1;padding:22px 18px;overflow-y:auto;position:relative}.sidebar.sidebar-collapsed{padding-inline:12px}.brand-row{min-height:32px;margin-bottom:26px;padding-right:42px}.brand,.brand-row{display:flex;align-items:center}.brand{gap:10px;font-weight:760;min-width:0}.sidebar-toggle{position:absolute;top:20px;right:14px;width:32px;height:32px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.04);color:#d5e2de;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.sidebar-toggle:hover{background:rgba(255,255,255,.1);color:#fff}.sidebar-text{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.nav{display:grid;grid-gap:6px;gap:6px}.nav a,.nav button{border:0;width:100%;background:transparent;color:#d5e2de;display:flex;align-items:center;gap:10px;min-height:40px;padding:9px 10px;border-radius:6px;cursor:pointer;text-align:left;position:relative}.nav a:hover,.nav button:hover{background:rgba(255,255,255,.08);color:#fff}.sidebar-collapsed .brand-row{justify-content:center;padding-right:0}.sidebar-collapsed .brand{justify-content:center}.sidebar-collapsed .sidebar-text{display:none}.sidebar-collapsed .nav a,.sidebar-collapsed .nav button{justify-content:center;padding-inline:0}.sidebar-collapsed .nav a:after,.sidebar-collapsed .nav button:after{content:attr(data-label);position:absolute;left:calc(100% + 14px);top:50%;transform:translateY(-50%);background:#11231f;color:#ecf4f1;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:6px 10px;white-space:nowrap;pointer-events:none;opacity:0;box-shadow:0 12px 24px rgba(7,14,13,.22)}.sidebar-collapsed .nav a:hover:after,.sidebar-collapsed .nav button:hover:after{opacity:1}.main{padding:28px;max-width:1480px;width:100%;height:100vh;overflow-y:auto}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:22px}h1,h2,h3{margin:0}h1{font-size:clamp(1.6rem,2.6vw,2.4rem)}h2{font-size:1.15rem}h3{font-size:1rem}.muted{color:var(--muted)}.grid{display:grid;grid-gap:14px;gap:14px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px}.metric{display:grid;grid-gap:4px;gap:4px}.metric strong{font-size:1.45rem}.section{margin-top:18px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface)}table{width:100%;border-collapse:collapse;min-width:760px}td,th{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;white-space:nowrap}th{background:var(--surface-2);color:#31433f;font-weight:700}tr:last-child td{border-bottom:0}.pill{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;background:var(--surface-2);color:#31433f;font-size:.82rem;font-weight:650}.pill.ok{background:#dff3eb;color:var(--ok)}.pill.warn{background:#fff1cf;color:var(--warning)}.pill.bad{background:#fee4e2;color:var(--danger)}.form-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px}.form-grid,.toolbar{display:grid;gap:10px;align-items:end}.toolbar{grid-template-columns:2fr repeat(5,minmax(0,1fr));grid-gap:10px}.table-header-button{border:0;background:transparent;color:inherit;padding:0;display:inline-flex;align-items:center;gap:6px;font-weight:750;cursor:pointer}.inline-form{grid-template-columns:minmax(120px,1fr) minmax(140px,1fr) auto;min-width:420px}.inline-form,.transactions-rule-cell{display:grid;grid-gap:6px;gap:6px}.transactions-rule-cell .inline-form{grid-template-columns:minmax(170px,1fr) auto auto;min-width:520px}.inline-form input{min-height:34px;padding:6px 8px}.inline-form .button{min-height:34px;padding:6px 10px}.pager{display:flex;justify-content:flex-end;align-items:center;gap:12px}label{display:grid;grid-gap:6px;gap:6px;color:#32423f;font-size:.9rem;font-weight:650}input,select,textarea{border:1px solid var(--line);border-radius:6px;padding:9px 10px;background:#fff;color:var(--text);min-width:0}textarea{min-height:82px}.button{min-height:40px;border:0;border-radius:6px;padding:9px 13px;background:var(--accent);color:white;font-weight:720;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.button.secondary{background:#e7eeee;color:#20312d}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:24px}.plan-layout{display:flex;flex-direction:column;min-height:calc(100vh - 56px)}.sticky-toolbar{position:-webkit-sticky;position:sticky;top:0;z-index:8;background:var(--bg);padding-bottom:8px}.month-nav,.plan-toolbar{align-items:center}.month-nav{display:inline-flex;gap:8px}.month-nav input[type=month]{min-height:40px;min-width:180px}.icon-button{width:40px;padding:0}.plan-actions{display:inline-flex;gap:10px}.month-card{display:flex;flex-direction:column;min-height:0;flex:1 1}.plan-grid-wrap{flex:1 1;min-height:0;max-height:calc(100vh - 290px);overflow:auto}.plan-grid-wrap thead th{position:-webkit-sticky;position:sticky;top:0;z-index:2}.plan-grid-wrap tfoot td{position:-webkit-sticky;position:sticky;bottom:0;z-index:2;background:#e8efed;border-top:1px solid var(--line)}.compact-list{margin:0;padding-left:18px;display:grid;grid-gap:4px;gap:4px;white-space:normal}.danger-strong{color:#b42318;font-weight:760}.plan-row-impossible td{background:#fee4e2}.transactions-layout{display:flex;flex-direction:column;min-height:calc(100vh - 180px)}.transactions-toolbar{top:0;z-index:7}.transactions-grid-wrap{flex:1 1;min-height:0;max-height:calc(100vh - 275px);overflow:auto}.transactions-grid-wrap thead th{position:-webkit-sticky;position:sticky;top:0;z-index:2}.harmonogram-layout{display:flex;flex-direction:column;min-height:calc(100vh - 140px)}.harmonogram-toolbar{top:0;z-index:7}.harmonogram-grid-wrap{flex:1 1;min-height:0;max-height:calc(100vh - 250px);overflow:auto}.harmonogram-grid-wrap thead th{position:-webkit-sticky;position:sticky;top:0;z-index:2}.realization-layout{display:flex;flex-direction:column;min-height:calc(100vh - 140px)}.realization-toolbar{top:0;z-index:7}.realization-tabs{display:inline-flex;gap:10px}.realization-grid-wrap{flex:1 1;min-height:0;max-height:calc(100vh - 320px);overflow:auto}.realization-grid-wrap thead th{position:-webkit-sticky;position:sticky;top:0;z-index:2}.realization-cell-stack{display:grid;grid-gap:4px;gap:4px;white-space:normal}.realization-row-over td{background:#fff1ef}.realization-row-unplanned td{background:#fff7e8}.realization-row-missing td{background:#f7f3e8}.debt-row-over td{background:#fff1ef}.progress-cell{display:grid;grid-gap:6px;gap:6px;min-width:150px}.progress-track{width:100%;height:10px;border-radius:999px;background:#e7eeee;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#19715f,#2c9d86)}.progress-fill.over{background:linear-gradient(90deg,#c25a2c,#b42318)}.progress-label{font-size:.82rem;font-weight:700;color:#31433f}.modal-overlay{position:fixed;inset:0;z-index:20;background:rgba(12,20,18,.52);display:grid;place-items:center;padding:18px}.modal-card{width:min(960px,100%);max-height:88vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-form{grid-template-columns:repeat(3,minmax(0,1fr))}.debt-description-field{grid-column:1/-1}@media (max-width:1040px){.topbar.plan-toolbar{align-items:flex-start;flex-direction:column}.plan-actions{width:100%;flex-wrap:wrap}.plan-grid-wrap{max-height:calc(100vh - 360px)}.transactions-grid-wrap{max-height:calc(100vh - 340px)}.harmonogram-grid-wrap{max-height:calc(100vh - 330px)}.realization-grid-wrap{max-height:calc(100vh - 400px)}.modal-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.main{padding:16px}.month-nav{width:100%;justify-content:flex-start}.month-nav input[type=month]{min-width:0;width:100%}.plan-actions{display:grid;width:100%}.transactions-layout{min-height:calc(100vh - 230px)}.harmonogram-grid-wrap,.transactions-grid-wrap{max-height:calc(100vh - 380px)}.realization-grid-wrap{max-height:calc(100vh - 430px)}.modal-form{grid-template-columns:1fr}}.alert-list{display:grid;grid-gap:8px;gap:8px}.alert{border-left:4px solid var(--warning);background:#fff8e6;padding:10px 12px;border-radius:6px}.alert.bad{border-left-color:var(--danger);background:#feeceb}@media (max-width:980px){.shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:100vh;overflow:hidden}.sidebar{position:-webkit-sticky;position:sticky;top:0;z-index:4;max-height:38vh;overflow-y:auto}.shell.shell-collapsed{grid-template-columns:1fr}.sidebar.sidebar-collapsed{padding-inline:18px}.sidebar-collapsed .brand-row{align-items:center;justify-content:flex-start;padding-right:42px}.sidebar-collapsed .sidebar-text{display:inline}.nav{grid-template-columns:repeat(3,minmax(0,1fr))}.sidebar-collapsed .nav a,.sidebar-collapsed .nav button{justify-content:flex-start;padding-inline:10px}.sidebar-collapsed .nav a:after,.sidebar-collapsed .nav button:after{display:none}.main{padding:18px;height:auto;min-height:0;overflow-y:auto}.form-grid,.grid.cols-2,.grid.cols-3,.grid.cols-4,.inline-form,.toolbar{grid-template-columns:1fr}.topbar{display:grid}}