:root{color-scheme:light;--bg: #f4f7fb;--surface: #ffffff;--surface2: #f0f4f9;--surface3: #e8eff8;--border: #d8e1ed;--text: #1c2633;--muted: #6e7d90;--accent: #26b36b;--accent-dim: #1f9b5c;--focus: #47a7ff;--warn: #c9a227;--danger: #c44c4c;--info: #4b84cf;--neutral: #6c7584;--ok: #3d9a6a;--space-1: .5rem;--space-2: .75rem;--space-3: 1rem;--space-4: 1.25rem;--app-header-h: 56px;--sidebar-w: 240px;--sidebar-rail: 72px;font-family:DM Sans,system-ui,sans-serif;line-height:1.5;font-weight:400;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text)}a{color:var(--accent)}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:block;min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--border);padding:0 1rem 1.25rem;display:flex;flex-direction:column;gap:.5rem;transition:width .25s ease,transform .25s ease;width:var(--sidebar-w);z-index:30;position:fixed;left:0;top:0;height:100vh;height:100dvh;min-height:0;max-height:100dvh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.sidebar-overlay{display:none}.sidebar-header{flex-shrink:0;margin:0 -1rem .65rem;padding:0 .65rem 0 .75rem;min-height:var(--app-header-h);display:flex;align-items:center;gap:.5rem;color:var(--text);background:#fff;border:none;border-bottom:1px solid var(--border);box-sizing:border-box}.brand-mark{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:auto;height:auto;border:none;border-radius:0;background:transparent;overflow:visible;box-shadow:none}.brand-logo-mark{width:32px;height:32px;object-fit:contain;display:block}.brand-title{flex:1;min-width:0;font-size:.8rem;font-weight:800;letter-spacing:.06em;color:#2d3748;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-header-toggle{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:none;border-radius:8px;background:transparent;color:#7a8799;cursor:pointer;box-shadow:none}.sidebar-header-toggle:hover{background:#1c26330f;color:var(--text)}.sidebar-header-toggle:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.sidebar-footer{margin-top:auto;padding-top:1rem;display:flex;flex-direction:column;gap:.5rem}.sidebar-user-pill{margin-bottom:0}.sidebar-user-card{display:flex;align-items:center;gap:.6rem;padding:.55rem .65rem;border-radius:10px;background:#f4f7fb;border:1px solid #e3e9f1;text-decoration:none;color:inherit;transition:background .15s ease,border-color .15s ease;min-width:0}.sidebar-user-card:hover,.sidebar-user-card.active{background:#eaf2ff;border-color:#cfe0fa}.sidebar-user-avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#fff;color:#2f72c5;border:1px solid #d8e3f1;flex:0 0 auto}.sidebar-user-meta{display:flex;flex-direction:column;min-width:0;line-height:1.15}.sidebar-user-email{font-size:.82rem;font-weight:600;color:#2c3e57;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-role{font-size:.72rem;color:#7588a2;margin-top:.1rem}.quick-link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.85rem;margin-top:1rem}.quick-link-card{display:flex;align-items:flex-start;gap:.75rem;padding:.95rem 1rem;border-radius:12px;background:#fff;border:1px solid #e3e9f1;text-decoration:none;color:inherit;box-shadow:0 1px 2px #0f172a0a;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.quick-link-card:hover{transform:translateY(-1px);border-color:#cfe0fa;box-shadow:0 6px 16px #2f72c51f}.quick-link-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:#eaf2ff;color:#2f72c5;flex:0 0 auto}.quick-link-body{display:flex;flex-direction:column;min-width:0}.quick-link-title{font-size:.95rem;font-weight:600;color:#1f2d3d}.quick-link-desc{font-size:.8rem;color:#7588a2;margin-top:.15rem;line-height:1.35}.nav-link{display:flex;align-items:center;gap:.55rem;padding:.5rem .65rem;border-radius:8px;color:#5f6f82;text-decoration:none;font-size:.9rem}.nav-icon{min-width:1.1rem;display:inline-flex;justify-content:center}@media(min-width:1025px){.sidebar.collapsed{width:var(--sidebar-rail);transform:none;padding-left:.45rem;padding-right:.45rem}.app-shell.sidebar-collapsed main{margin-left:var(--sidebar-rail)}.app-shell.sidebar-collapsed .top-header{left:var(--sidebar-rail)}.sidebar.collapsed .sidebar-header{flex-direction:column;justify-content:center;align-items:center;gap:.45rem;margin-left:-.45rem;margin-right:-.45rem;padding:.5rem .35rem;min-height:auto}.sidebar.collapsed .brand-title{display:none}.sidebar.collapsed .brand-mark{width:auto;height:auto}.sidebar.collapsed .brand-logo-mark{width:28px;height:28px}.sidebar.collapsed .sidebar-header-toggle{width:38px;height:38px}.sidebar.collapsed .nav-link{justify-content:center;padding-left:.4rem;padding-right:.4rem}.sidebar.collapsed .sidebar-logout{justify-content:center;width:100%;padding-left:.35rem;padding-right:.35rem}}.top-header{background:#fff;border:1px solid var(--border);border-top:none;border-right:none;border-left:none;border-radius:0;min-height:var(--app-header-h);padding:0 .8rem;margin-bottom:.9rem;display:flex;justify-content:space-between;align-items:center;position:fixed;top:0;left:var(--sidebar-w);right:0;z-index:25;box-shadow:0 1px #122b460f;box-sizing:border-box;transition:left .25s ease}.top-header-left,.top-header-right{display:flex;align-items:center;gap:.5rem}.top-header .btn-ghost{border:none;background:transparent;box-shadow:none}.top-header .btn-ghost:hover{background:#1c26330f;color:var(--text)}.mobile-only{display:none}.header-lang{position:relative;flex-shrink:0}.header-lang-trigger{display:inline-flex;align-items:center;gap:.4rem;border:none;border-radius:999px;padding:.35rem .55rem .35rem .5rem;background:transparent;cursor:pointer;font:inherit;color:inherit;box-shadow:none}.header-lang-trigger:hover{background:#1c26330f}.header-lang-trigger:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.header-lang-icon{color:var(--muted);flex-shrink:0}.header-lang-flag{display:inline-flex;align-items:center;line-height:0;border-radius:3px;overflow:hidden}.header-lang-chevron{color:#47586d;flex-shrink:0;transition:transform .2s ease}.header-lang-chevron.open{transform:rotate(180deg)}.header-lang-menu{position:absolute;top:calc(100% + 6px);right:0;margin:0;padding:.35rem;list-style:none;min-width:11rem;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 40px #122b461f;z-index:50}.header-lang-option{display:flex;align-items:center;gap:.6rem;width:100%;padding:.45rem .55rem;border:none;border-radius:8px;background:transparent;cursor:pointer;font:inherit;text-align:left;color:var(--text)}.header-lang-option:hover{background:#f3f7fc}.header-lang-option.active{background:#e8f7ef;color:#1d9b5c}.header-lang-option-label{font-size:.875rem;font-weight:500}.header-icon-link{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;border:none;background:transparent;color:#47586d;text-decoration:none;box-shadow:none}.header-icon-link:hover{background:#1c26330f;color:var(--text)}.header-icon-link.active{background:#e8f7ef;color:#1d9b5c}.header-notify-badge{position:absolute;top:4px;right:4px;min-width:1rem;height:1rem;padding:0 .25rem;font-size:.65rem;font-weight:700;line-height:1rem;text-align:center;color:#fff;background:#e53935;border-radius:999px;box-sizing:border-box}.desktop-only{display:inline-flex}.nav-link:hover{background:#eef4fb;color:#1f2c3a}.nav-link.active{background:#e8f7ef;color:#1d9b5c;font-weight:600}main{margin-left:var(--sidebar-w);padding:calc(var(--app-header-h) + .9rem) 2rem 1.5rem;overflow:visible;transition:margin-left .25s ease}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;margin-bottom:1rem;box-shadow:0 2px 10px #122b460a}h1{font-size:1.5rem;margin:0 0 1rem;font-weight:700}h2{font-size:1.1rem;margin:0 0 .75rem}.row{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end}.field{display:flex;flex-direction:column;gap:.25rem}.field label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}input,textarea,select{background:#fbfdff;border:1px solid var(--border);border-radius:8px;padding:.5rem .65rem;color:var(--text);min-width:160px}input:focus,textarea:focus,select:focus{outline:2px solid var(--focus);outline-offset:1px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;border:1px solid transparent;border-radius:8px;padding:.5rem 1rem;min-height:36px;min-width:80px;font-weight:600;font-size:.875rem;background:var(--accent);color:#fff;cursor:pointer;transition:opacity .15s ease,background .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}.btn:hover:not(:disabled){background:var(--accent-dim);color:#fff;opacity:1}.btn:disabled{opacity:.55;cursor:not-allowed}.btn svg{flex-shrink:0}.btn-primary{background:var(--accent);color:#fff;border-color:transparent}.btn-primary:hover:not(:disabled){background:var(--accent-dim)}.btn-secondary,.btn-ghost{background:#fff;color:#47586d;border:1px solid var(--border)}.btn-secondary:hover:not(:disabled),.btn-ghost:hover:not(:disabled){color:#243445;background:#f3f7fc}.btn-warning{background:#fff8e1;color:#8a5a00;border-color:#f0c878}.btn-warning:hover:not(:disabled){background:#fff1c4;color:#6e4600}.btn-danger{background:#fde8e6;color:#b53b3b;border-color:#f3b9b3}.btn-danger:hover:not(:disabled){background:#fbd5d1;color:#93281f}.btn-success{background:#e6f4ea;color:#1f6f3a;border-color:#a7d8b5}.btn-success:hover:not(:disabled){background:#d2ecdb;color:#134d27}.row-actions{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.btn-with-icon{display:inline-flex;align-items:center;gap:.35rem}.btn-with-icon svg{flex-shrink:0}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;border-radius:8px;flex-shrink:0;gap:0}.btn-icon svg{width:18px;height:18px;flex-shrink:0}.btn-icon-danger{color:#c74f4f}.btn-icon-danger:hover{background:#fdecec;color:#b53b3b}.entry-fullscreen{position:fixed;top:var(--app-header-h, 56px);left:var(--sidebar-w);right:0;bottom:0;z-index:1100;background:var(--bg, #f7f8fb);padding:1rem 1.25rem;overflow:auto;display:flex;flex-direction:column;gap:.5rem;transition:left .25s ease}.app-shell.sidebar-collapsed .entry-fullscreen{left:var(--sidebar-rail)}.entry-fullscreen .excel-wrap{flex:1;overflow:auto}.entry-report-title-wrap,.entry-report-title-edit{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap}.entry-report-name-input{min-width:0;width:min(280px,42vw);max-width:320px}@media(min-width:1024px){.entry-fullscreen{padding:1.25rem 2rem}}@media(max-width:1024px){.entry-fullscreen{left:0}}.entry-fullscreen-overlay{position:fixed;top:var(--app-header-h, 56px);left:var(--sidebar-w);right:0;bottom:0;z-index:1200;background:#04080c73;transition:left .25s ease}.app-shell.sidebar-collapsed .entry-fullscreen-overlay{left:var(--sidebar-rail)}@media(max-width:1024px){.entry-fullscreen-overlay{left:0}}.materials-templates-entry-panel{position:fixed;top:var(--app-header-h, 56px);left:var(--sidebar-w);right:0;bottom:0;z-index:1201;width:auto;min-width:0;max-width:none;height:auto;background:var(--surface);border:none;padding:1rem 1.25rem;overflow:auto;display:flex;flex-direction:column;transition:left .25s ease}.app-shell.sidebar-collapsed .materials-templates-entry-panel{left:var(--sidebar-rail)}@media(min-width:1024px){.materials-templates-entry-panel{padding:1.25rem 2rem}}@media(max-width:1024px){.materials-templates-entry-panel{left:0}}.table-action-stack{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}.table-wrap{overflow:auto;border-radius:8px;border:1px solid var(--border)}table{width:100%;border-collapse:collapse;font-size:.875rem}thead th{position:sticky;top:0;z-index:2;background:var(--surface)}th,td{text-align:left;padding:.5rem .65rem;border-bottom:1px solid var(--border)}table.table-cols-divided th,table.table-cols-divided td{border-right:1px solid var(--border)}table.table-cols-divided th:last-child,table.table-cols-divided td:last-child{border-right:none}th.col-select,td.col-select{width:2.75rem;min-width:2.75rem;max-width:2.75rem;padding:.35rem .25rem;text-align:center;vertical-align:middle;overflow:visible;box-sizing:border-box}th.col-select input[type=checkbox],td.col-select input[type=checkbox]{display:block;margin:0 auto;width:1.125rem;height:1.125rem;min-width:0;padding:0;border:2px solid #8fa3b8;border-radius:4px;background:#fff;cursor:pointer;flex-shrink:0;opacity:1;accent-color:#26b36b;-webkit-appearance:checkbox;-moz-appearance:auto;appearance:auto}th.col-select input[type=checkbox]:focus,td.col-select input[type=checkbox]:focus{outline:2px solid var(--focus);outline-offset:1px}th.col-select input[type=checkbox]:disabled,td.col-select input[type=checkbox]:disabled{opacity:.55;cursor:not-allowed}th.col-actions,td.col-actions{width:auto;min-width:4.5rem;white-space:nowrap;vertical-align:middle}.session-row-actions{display:inline-flex;align-items:center;gap:.35rem}.session-report-name-btn{display:inline;margin:0;padding:0;border:none;background:none;color:var(--accent);font:inherit;font-weight:600;text-align:left;cursor:pointer;word-break:break-word;text-decoration:underline;text-underline-offset:2px}.session-report-name-btn:hover{color:var(--accent-dim)}.action-menu-wrap{position:relative;display:inline-flex}.action-menu-dropdown{position:absolute;top:calc(100% + .25rem);right:0;z-index:50;min-width:11rem;padding:.35rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0f172a1f}.action-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.45rem .55rem;border:none;border-radius:8px;background:transparent;color:var(--text);font-size:.875rem;text-align:left;cursor:pointer}.action-menu-item:hover:not(:disabled){background:var(--surface2)}.action-menu-item:disabled{opacity:.55;cursor:not-allowed}tbody tr:nth-child(2n){background:#fbfdff}tbody tr:hover{background:#eef6ff}th{color:var(--muted);font-weight:600;font-size:.72rem;text-transform:uppercase}.audit-add{border-left:3px solid var(--ok);background:#3d9a6a14}.audit-update{border-left:3px solid var(--warn);background:#c9a2271a}.audit-delete{border-left:3px solid var(--danger);background:#c44c4c1a}.audit-toolbar{display:grid;grid-template-columns:1fr 220px 220px;gap:.5rem;margin:.75rem 0 .5rem}.audit-toolbar select{height:42px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);padding:0 .75rem;font-size:.9rem}.audit-search{position:relative;display:flex;align-items:center}.audit-search svg{position:absolute;left:.75rem;color:var(--muted);pointer-events:none}.audit-search input{width:100%;height:42px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);padding:0 .75rem 0 2.25rem;font-size:.9rem}.audit-search input:focus{outline:none;border-color:var(--accent)}.audit-legend{display:flex;gap:1.25rem;justify-content:flex-end;color:var(--muted);font-size:.8rem;margin:.5rem 0}.audit-legend-item{display:inline-flex;align-items:center;gap:.4rem}.dot{width:8px;height:8px;border-radius:999px;display:inline-block}.dot-green{background:#1f8b4c}.dot-yellow{background:#b87900}.dot-red{background:#c1392b}.audit-card{padding:0;overflow:hidden}.audit-table{width:100%;border-collapse:collapse}.audit-table thead th{background:var(--panel);color:var(--muted);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600;padding:.85rem 1rem;border-bottom:1px solid var(--border);text-align:left}.audit-table tbody td{padding:.9rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}.audit-row{position:relative}.audit-row>td:first-child{border-left:3px solid transparent}.audit-row-added>td:first-child{border-left-color:#1f8b4c}.audit-row-updated>td:first-child{border-left-color:#b87900}.audit-row-deleted>td:first-child{border-left-color:#c1392b}.audit-actor{display:inline-flex;align-items:center;gap:.6rem}.audit-avatar{width:28px;height:28px;border-radius:999px;font-size:.72rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;letter-spacing:.02em}.audit-actor-email{font-size:.88rem;color:var(--text)}.audit-table .status-pill{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;padding:.2rem .6rem;border-radius:999px;font-weight:600}.audit-table .pill{font-size:.82rem}.btn-sm{font-size:.82rem;padding:.3rem .7rem;min-height:30px;min-width:64px;border-radius:8px;display:inline-flex;align-items:center;gap:.3rem}.audit-diff-row>td{background:var(--bg);padding:0!important}.audit-diff-container{padding:.85rem 1.1rem;background:linear-gradient(180deg,rgba(0,0,0,.025),transparent);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:.6rem}.audit-diff-meta{display:flex;justify-content:space-between;align-items:center}.audit-diff-table{width:100%;border-collapse:collapse;font-size:.86rem;background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden}.audit-diff-table thead th{background:#00000006;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:.55rem .75rem;text-align:left}.audit-diff-table tbody td{padding:.55rem .75rem;border-top:1px solid var(--border);vertical-align:top;word-break:break-word}.audit-row-added{background:#1f8b4c14}.audit-row-updated{background:#b8790014}.audit-row-deleted{background:#c1392b14}@media(max-width:720px){.audit-toolbar{grid-template-columns:1fr}.audit-legend{justify-content:flex-start;flex-wrap:wrap}}.backup-banner{background:linear-gradient(90deg,#c9a22733,#c44c4c26);border:1px solid var(--warn);border-radius:10px;padding:.75rem 1rem;margin-bottom:1rem;font-size:.9rem}.pill{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.7rem;font-weight:600;background:#eef3f8;color:#5b6b7e}.status-pill{display:inline-flex;border-radius:999px;padding:.2rem .6rem;font-size:.72rem;font-weight:700}.status-open,.status-active{background:#e8f7ef;color:#1e9f5f}.status-progress{background:#eaf2ff;color:#2f72c5}.status-closed{background:#edf1f6;color:#627288}.status-paused{background:#fff4e0;color:#b87600}.status-cancelled,.status-overbudget{background:#fdecec;color:#c74f4f}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3)}.page-title{margin:0;font-size:24px;line-height:1.2}.page-subtitle{margin:.35rem 0 0;color:var(--muted);font-size:14px}.page-actions{display:flex;gap:.5rem;flex-wrap:wrap}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-bottom:1rem}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.9rem}a.kpi-card-link{display:block;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}a.kpi-card-link:hover{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.kpi-value{margin-top:.35rem;font-size:1.6rem;font-weight:700}.kpi-value-empty{color:#9aa6b5;font-weight:600}.kpi-empty-hint{margin-top:.4rem;font-size:.78rem;color:#6b7a90;line-height:1.35}.kpi-empty-link{color:#2f72c5;font-weight:600;text-decoration:none;white-space:nowrap}.kpi-empty-link:hover{text-decoration:underline}.kpi-card-warning{background:#fff8e6;border-color:#f5cb56}.kpi-card-warning .kpi-value{color:#b87900}.kpi-card-danger{background:#fff0ee;border-color:#e6603f}.kpi-card-danger .kpi-value{color:#c1392b}.kpi-card-success{background:#ebf7ee;border-color:#5bb579}.kpi-card-success .kpi-value{color:#1f8b4c}.empty-chart{text-align:center;padding:2rem 1rem;color:#6b7a90}.empty-chart-icon{font-size:2.5rem;margin-bottom:.5rem;opacity:.6}.empty-chart h3{margin:0 0 .35rem;color:#2c3e57;font-size:1.05rem}.empty-chart p{margin:0 0 1rem;font-size:.88rem;max-width:460px;margin-left:auto;margin-right:auto}.nav-link-toggle{background:transparent;border:none;width:100%;text-align:left;cursor:pointer;font:inherit;display:flex;align-items:center;gap:.55rem;padding:.5rem .65rem;border-radius:8px;color:#5f6f82}.nav-link-toggle:hover{background:#f0f4f9}.nav-link-toggle.active{color:#2c3e57}.nav-sub-group{margin-left:.5rem;padding-left:.5rem;border-left:2px solid #e3e9f1;display:flex;flex-direction:column;gap:.15rem;flex-shrink:0}body.sidebar-drawer-open{overflow:hidden;touch-action:none}body.sidebar-drawer-open .app-shell{touch-action:none}body.sidebar-drawer-open .sidebar,body.sidebar-drawer-open .sidebar-overlay{touch-action:auto}.nav-sub-link{font-size:.85rem}.table-toolbar{display:flex;gap:.6rem;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:.65rem}.table-search{min-width:220px}.investors-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}@media(max-width:960px){.investors-two-col{grid-template-columns:1fr}}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;align-items:stretch}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.75rem;min-height:100%;box-shadow:0 1px 3px #0f172a0f;transition:box-shadow .15s ease,border-color .15s ease}.project-card:hover{border-color:#c5d4e6;box-shadow:0 6px 18px #0f172a14}.project-card-title{margin:0;font-size:1.05rem;font-weight:700;line-height:1.35;color:var(--text)}.project-card-meta{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.project-card-stats{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;font-size:.8rem}.project-card-stat{background:var(--surface2);border-radius:8px;padding:.45rem .55rem;color:var(--muted)}.project-card-stat strong{display:block;margin-top:.15rem;font-size:.95rem;font-weight:600;color:var(--text)}.project-card-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:auto;padding-top:.35rem}.excel-wrap{width:100%;overflow-x:auto}.excel-like-table{width:100%;min-width:1180px;table-layout:fixed;border-collapse:collapse;border-spacing:0}.excel-like-table th,.excel-like-table td{vertical-align:middle;padding:0;border:1px solid var(--border);background:#fff}.excel-like-table thead th{padding:.4rem .45rem;background:var(--surface2);position:static}.excel-like-table tbody td{height:48px}.excel-like-table tbody td:first-child{text-align:center;font-weight:600}.excel-cell-input{width:100%;min-width:0;height:100%;border:none;border-radius:0;background:transparent;padding:.45rem .5rem}.excel-cell-input.excel-cell-readonly,.excel-cell-input[readonly]{background:var(--bg-subtle, #f3f6fa);cursor:default;color:inherit}.excel-like-table tr.entry-row-editing td{background:#fffbe6}.excel-cell-input:focus{outline:2px solid var(--focus);outline-offset:-2px}.chip-row{display:flex;gap:.35rem;flex-wrap:wrap}.chip{border:1px solid var(--border);background:transparent;color:var(--muted);border-radius:999px;padding:.25rem .6rem;font-size:.75rem}.chip.active{background:var(--surface3);color:var(--text)}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#04080c8c;z-index:40}.drawer{position:fixed;right:0;top:0;height:100vh;width:min(620px,100vw);z-index:41;background:var(--surface);border-left:1px solid var(--border);padding:1rem;overflow:auto}.drawer.edit-drawer{width:30vw;min-width:360px}.kassa-movement-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem;margin-top:1rem;align-items:start}.kassa-movement-form .field-full{grid-column:1 / -1}.kassa-movement-form .field-hint{grid-column:1 / -1;margin:-.15rem 0 0;font-size:.88rem;color:var(--muted)}.kassa-movement-form .field input,.kassa-movement-form .field select,.kassa-movement-form .field textarea{width:100%;min-width:0;box-sizing:border-box}.kassa-movement-form .field-hint strong{color:var(--text)}.kassa-movement-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;padding-top:.25rem}.drawer.materials-templates-drawer{width:min(50vw,720px);max-width:100vw}.drawer-header{display:flex;justify-content:space-between;align-items:center}.skeleton{background:linear-gradient(90deg,#a8b6c829,#a8b6c852,#a8b6c829);background-size:200% 100%;animation:pulse 1.2s linear infinite;border-radius:8px}@keyframes pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.toast-stack{position:fixed;right:1rem;bottom:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:90}.toast{border-radius:10px;border:1px solid var(--border);padding:.55rem .8rem;background:#fff;min-width:220px}.toast-success{border-color:#3d9a6a99}.toast-error{border-color:#c44c4cb3}.login-page{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:1.1rem 1rem;background:#fff}.login-shell{width:min(920px,100%);margin:0 auto;border:none;background:transparent}.login-unified-card{display:grid;grid-template-columns:minmax(300px,1fr) minmax(280px,340px);align-items:stretch;overflow:hidden;border-radius:14px;border:1px solid #e3eaf3;box-shadow:0 20px 56px #1c375a17;background:#fff;min-height:520px}.login-showcase{padding:2rem 1.8rem;background:linear-gradient(160deg,#f7f9fe,#eef8fa 68%,#f8fcff);border:none;border-radius:0;border-right:1px solid #e8eef6;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.login-showcase-icon{width:104px;height:104px;border-radius:16px;background:transparent;display:grid;place-items:center;margin-bottom:1.35rem}.login-showcase-icon img{width:88px;height:88px;border-radius:12px;object-fit:contain}.login-showcase-title{margin:0;font-size:clamp(1.7rem,2.1vw,2.35rem);line-height:1.25;max-width:460px}.login-showcase-text{margin:.95rem 0 0;color:#7c889b;font-size:.98rem;max-width:430px}.login-form-area{padding:2rem 1.75rem;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff}.login-form{width:100%;max-width:330px;margin-top:.25rem}.login-form-icon{width:56px;height:56px;display:grid;place-items:center;margin:0 auto .45rem;border-radius:14px;background:linear-gradient(160deg,#f0fafc,#e8f6fa);border:1px solid #c8e8ef;color:#1790ae}.login-brand-name{margin:0 0 .7rem;text-align:center;font-weight:700;color:#111827}.login-field label{text-transform:none;letter-spacing:0;font-size:.78rem;color:#202a37;margin-bottom:.2rem}.login-field input{background:#fbfbfb;border:1px solid #eef2f6;border-radius:6px;padding:.47rem .62rem;min-width:100%;font-size:.84rem}.password-wrap{position:relative}.password-wrap input{padding-right:2.05rem}.password-toggle{position:absolute;right:.45rem;top:50%;transform:translateY(-50%);border:none;background:transparent;color:#66a6bf;padding:0;display:inline-flex;align-items:center}.login-submit{background:#23a8c8;border-radius:6px;padding:.45rem .9rem;font-size:.85rem}.login-submit:hover{background:#1f99b6}.login-footer{width:min(1160px,100%);margin:.75rem auto 0;display:flex;justify-content:center;gap:.8rem;color:#6f7d90;font-size:.78rem;padding:.15rem .2rem}.error{color:var(--danger);font-size:.875rem;margin-top:.5rem}@media(max-width:1024px){main{margin-left:0;padding:calc(var(--app-header-h) + .85rem) 1rem 1.5rem}.app-shell.sidebar-collapsed main{margin-left:0}.app-shell.sidebar-collapsed .top-header{left:0}.sidebar{position:fixed;top:0;left:0;height:100dvh;max-height:100dvh;width:var(--sidebar-w);max-width:min(var(--sidebar-w),88vw);transform:translate3d(-100%,0,0);-webkit-transform:translate3d(-100%,0,0);box-shadow:0 20px 60px #0003;will-change:transform}.sidebar.collapsed{width:var(--sidebar-w);max-width:min(var(--sidebar-w),88vw);transform:translate3d(-100%,0,0);-webkit-transform:translate3d(-100%,0,0)}.sidebar.open{transform:translateZ(0);-webkit-transform:translate3d(0,0,0)}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;display:block;z-index:28;-webkit-tap-highlight-color:transparent}.top-header{left:0;right:0;top:0;z-index:35}.desktop-only{display:none}.mobile-only{display:inline-flex;align-items:center;justify-content:center}.drawer.edit-drawer,.drawer.materials-templates-drawer{width:100vw;min-width:0}.header-lang{flex-shrink:0}.login-unified-card{grid-template-columns:1fr;min-height:auto}.login-showcase{border-right:none;border-bottom:1px solid #e8eef6;padding:1.5rem 1.1rem}.login-showcase-title{font-size:1.25rem}.login-showcase-text{font-size:.92rem}.login-form-area{padding:1.25rem 1.15rem 1.75rem}.login-form{max-width:100%}.login-footer{flex-direction:column;align-items:center;gap:.25rem}}.lang-switcher{width:100%;margin-bottom:.5rem}.lang-select{width:100%;min-width:unset;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:.55rem .7rem;color:var(--text)}
