:root{--blue-50:#eef3fb;--blue-100:#d7e3f6;--blue-200:#b3c9ec;--blue-500:#2b52c9;--blue-600:#1e40af;--blue-700:#17337d;--blue-800:#122a66;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--white:#fff;--green-600:#16a34a;--green-50:#f0fdf4;--red-600:#dc2626;--red-50:#fef2f2;--amber-600:#d97706;--amber-50:#fffbeb;--shadow-sm:0 1px 2px #0f172a0f, 0 1px 3px #0f172a14;--shadow-md:0 4px 6px -1px #0f172a14, 0 2px 4px -2px #0f172a0f;--shadow-lg:0 10px 25px -5px #0f172a26, 0 8px 10px -6px #0f172a14;--radius:10px;--radius-sm:7px;--sidebar-w:244px;--font:-apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{height:100%}body{font-family:var(--font);color:var(--gray-800);background:var(--gray-100);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}h1,h2,h3,h4{color:var(--gray-900);margin:0;font-weight:650}p{margin:0}a{color:var(--blue-600);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--gray-500)}.small{font-size:12.5px}[hidden]{display:none!important}.brand-mark{flex:none;place-items:center;width:38px;height:38px;display:grid}.brand-mark svg,.brand-mark img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.auth-screen{background:#eef2f7;place-items:center;min-height:100%;padding:24px;display:grid;position:relative}.auth-layout{background:var(--white);border-radius:24px;grid-template-columns:minmax(0,1.15fr) minmax(390px,.85fr);width:min(1120px,100%);min-height:min(720px,100vh - 48px);display:grid;overflow:hidden;box-shadow:0 32px 80px #0b173929}.auth-intro{color:#fff;background:radial-gradient(circle at 90% 12%,#5e81ff57,#0000 30%),radial-gradient(circle at 10% 92%,#36d2b129,#0000 34%),linear-gradient(145deg,#08132f,#112b64 64%,#164b73);flex-direction:column;padding:52px 56px 42px;display:flex;position:relative;overflow:hidden}.auth-intro:after{content:"";border:1px solid #ffffff1f;border-radius:50%;width:290px;height:290px;position:absolute;bottom:36px;right:-130px;box-shadow:0 0 0 48px #ffffff06,0 0 0 96px #ffffff05}.auth-intro-brand{letter-spacing:-.02em;align-items:center;gap:12px;font-size:18px;font-weight:750;display:flex}.auth-intro-brand .brand-mark{width:34px;height:34px}.auth-intro-copy{z-index:1;max-width:520px;margin-top:clamp(56px,10vh,104px);position:relative}.auth-eyebrow,.auth-card-kicker{color:#8aa9ff;letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:750;display:block}.auth-intro h1{color:#fff;letter-spacing:-.045em;margin-top:16px;font-size:clamp(38px,4.5vw,58px);line-height:1.03}.auth-intro h1 em{color:#8eaaff;font-style:normal}.auth-intro-copy p{color:#ffffffb8;max-width:470px;margin-top:22px;font-size:16px;line-height:1.7}.auth-benefits{z-index:1;gap:14px;margin:auto 0 34px;padding:0;list-style:none;display:grid;position:relative}.auth-benefits li{align-items:center;gap:14px;display:flex}.benefit-icon{color:#9bb5ff;background:#ffffff17;border:1px solid #ffffff1f;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;font-size:10px;font-weight:800;display:grid}.auth-benefits li>span:last-child{flex-direction:column;display:flex}.auth-benefits strong{color:#fff;font-size:13.5px}.auth-benefits small{color:#ffffff8f;margin-top:2px;font-size:12px}.auth-intro-foot{z-index:1;color:#fff6;font-size:11.5px;position:relative}.auth-panel{flex-direction:column;justify-content:center;padding:52px 48px 28px;display:flex}.auth-panel .auth-foot{text-align:center;margin-top:24px}.auth-card-kicker{color:var(--blue-600);margin-bottom:9px}.auth-card h2{letter-spacing:-.025em;max-width:320px;font-size:23px;line-height:1.25}.auth-form{flex-direction:column;display:flex}.auth-form .field{margin-bottom:12px}.auth-form .btn.primary{min-height:43px;margin-top:2px}.auth-form input{min-height:43px}.auth-form input::placeholder{color:var(--gray-400)}.auth-form input:focus{background:var(--blue-50)}.auth-card{width:100%;max-width:420px;box-shadow:none;background:0 0;border:0;margin:0 auto;padding:0}.auth-brand{align-items:flex-start;gap:14px;margin-bottom:30px;display:flex}.auth-brand>div{flex:1}.auth-brand .lang-select{flex:none;margin-left:auto}.auth-foot{font-size:11.5px}.auth-tabs{background:var(--gray-100);border-radius:9px;gap:6px;margin-bottom:18px;padding:4px;display:flex}.auth-tabs button{color:var(--gray-500);cursor:pointer;background:0 0;border:none;border-radius:7px;flex:1;padding:8px;font-size:13px;font-weight:600}.auth-tabs button.active{background:var(--white);color:var(--blue-700);box-shadow:var(--shadow-sm)}.demo-hint{background:var(--blue-50);color:var(--blue-800);border:1px solid var(--blue-100);border-radius:10px;margin-top:16px;padding:11px 13px;font-size:12px}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--white);color:var(--gray-600);border-right:1px solid var(--gray-200);flex-direction:column;flex:none;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{align-items:center;gap:11px;padding:18px 18px 16px;display:flex}.brand-text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.brand-name{color:var(--gray-900);font-size:15px;font-weight:700}.brand-tagline{color:var(--gray-500);white-space:nowrap;font-size:10.5px;font-weight:500}.nav{flex-direction:column;flex:1;gap:2px;padding:6px 10px;display:flex;overflow-y:auto}.nav a{color:var(--gray-600);border-radius:8px;align-items:center;gap:11px;padding:9px 12px;font-size:13.5px;font-weight:550;display:flex}.nav a:hover{background:var(--gray-100);color:var(--gray-900);text-decoration:none}.nav a.active{background:var(--blue-600);color:#fff;box-shadow:var(--shadow-sm)}.nav a .ico{width:24px;height:22px;color:var(--blue-600);flex:none;justify-content:center;align-items:center;display:inline-flex}.nav a:hover .ico{color:var(--blue-700)}.nav a.active .ico{color:#fff}.nav a .ico svg{stroke:currentColor;width:21px;height:21px}.nav a .badge{margin-left:auto}.sidebar-foot{border-top:1px solid var(--gray-200);background:var(--gray-100);padding:12px}.household-switch select{background:var(--white);width:100%;color:var(--gray-800);border:1px solid var(--gray-300);border-radius:8px;padding:8px;font-size:13px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--white);border-bottom:1px solid var(--gray-200);z-index:20;align-items:center;gap:14px;height:58px;padding:0 20px;display:flex;position:sticky;top:0}.topbar-title{display:none}.topbar-actions{align-items:center;gap:14px;margin-left:auto;display:flex}.lang-select{border:1px solid var(--gray-300);color:var(--gray-700);background:var(--white);cursor:pointer;border-radius:8px;padding:5px 8px;font-size:12.5px;font-weight:600}.lang-select:hover{border-color:var(--gray-400)}.topbar-alerts{cursor:pointer;color:var(--gray-500);align-items:center;display:inline-flex;position:relative}.topbar-alerts:hover{color:var(--gray-700)}.topbar-alerts svg{stroke:currentColor;fill:none;width:21px;height:21px;display:block}.topbar-alerts .count{background:var(--red-600);color:#fff;text-align:center;border-radius:9px;min-width:16px;padding:1px 5px;font-size:10px;font-weight:700;position:absolute;top:-6px;right:-8px}.user-chip{cursor:pointer;align-items:center;gap:9px;display:flex}.avatar{background:var(--blue-100);width:32px;height:32px;color:var(--blue-700);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.user-chip .u-name{font-size:13px;font-weight:600}.user-chip .u-role{color:var(--gray-500);font-size:11.5px}.menu-toggle{justify-content:center;align-items:center;font-size:20px;display:inline-flex}.view{width:100%;max-width:1280px;margin:0 auto;padding:22px}@media (width>=721px){.app-shell.nav-collapsed .sidebar{display:none}}.page-head{flex-wrap:wrap;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.page-head h2{font-size:20px}.page-head .sub{color:var(--gray-500);margin-top:2px;font-size:13px}.page-head .actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.btn{border:1px solid var(--gray-300);background:var(--white);color:var(--gray-700);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s,box-shadow .12s;display:inline-flex}.btn:hover{background:var(--gray-50);border-color:var(--gray-400)}.btn.primary{background:var(--blue-600);border-color:var(--blue-600);color:#fff}.btn.primary:hover{background:var(--blue-700);border-color:var(--blue-700)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--gray-100)}.btn.danger{color:var(--red-600);border-color:var(--gray-300)}.btn.danger:hover{background:var(--red-50);border-color:var(--red-600)}.btn.sm{padding:5px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.dashboard-snapshot-select{flex:0 0 200px;width:200px;min-width:0;max-width:100%;display:inline-block}.dashboard-snapshot-select .icon-select-trigger{min-height:34px;padding:6px 9px}.dashboard-snapshot-select .icon-select-list{min-width:220px}.cashflow-plan-version-select{flex:0 0 205px;width:205px;min-width:0;max-width:100%}.cashflow-plan-version-select .icon-select-trigger{height:35px;min-height:35px;padding:6px 9px;font-family:Arial,sans-serif;font-size:13px;font-weight:400;line-height:normal}.cashflow-plan-version-select .icon-select-value,.cashflow-plan-version-select .icon-select-value span,.cashflow-plan-version-select .icon-select-option{font-weight:400}.cashflow-plan-version-select .icon-select-list{min-width:235px}.icon-btn{cursor:pointer;color:var(--gray-600);background:0 0;border:none;border-radius:7px;padding:6px;font-size:18px}.icon-btn:hover{background:var(--gray-100)}.card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:18px}.card h3{font-size:14.5px}.card-head{border-bottom:1px solid var(--gray-200);align-items:center;gap:10px;padding:14px 18px;display:flex}.card-head .actions{gap:8px;margin-left:auto;display:flex}.grid{gap:16px;display:grid}.grid>*,.detail-grid>*{min-width:0}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4,.grid.kpi{grid-template-columns:repeat(4,1fr)}.kpi-tile{padding:16px 18px}.kpi-tile .k-label{color:var(--gray-500);text-transform:uppercase;letter-spacing:.03em;font-size:12.5px;font-weight:600}.kpi-tile .k-value{color:var(--gray-900);letter-spacing:-.01em;margin-top:6px;font-size:24px;font-weight:750}.kpi-tile .k-sub{color:var(--gray-500);margin-top:5px;font-size:12.5px}.kpi-tile.accent{border-top:3px solid var(--blue-600)}.delta{font-weight:700}.delta.up{color:var(--green-600)}.delta.down{color:var(--red-600)}.delta.flat{color:var(--gray-500)}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--gray-200);vertical-align:middle;padding:10px 12px}table.data th{text-transform:uppercase;letter-spacing:.03em;color:var(--gray-500);background:var(--gray-50);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:11.5px;font-weight:700;position:sticky;top:0}table.data th.no-sort{cursor:default}table.data tbody tr:hover{background:var(--blue-50)}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}table.data .row-click{cursor:pointer}.empty-state{text-align:center;color:var(--gray-500);padding:40px 20px}.empty-state .big{margin-bottom:8px;font-size:34px}.badge{background:var(--gray-100);color:var(--gray-600);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:11.5px;font-weight:650;display:inline-flex}.badge.blue{background:var(--blue-50);color:var(--blue-700)}.badge.green{background:var(--green-50);color:var(--green-600)}.badge.red{background:var(--red-50);color:var(--red-600)}.badge.amber{background:var(--amber-50);color:var(--amber-600)}.badge.gray{background:var(--gray-100);color:var(--gray-600)}.dot{background:currentColor;border-radius:50%;width:7px;height:7px}.form-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.field{flex-direction:column;gap:5px;display:flex}.field.full{grid-column:1/-1}.field label{color:var(--gray-600);font-size:12.5px;font-weight:600}.field label .req{color:var(--red-600)}.field input,.field select,.field textarea{border:1px solid var(--gray-300);color:var(--gray-800);background:var(--white);border-radius:8px;width:100%;padding:9px 11px;font-family:inherit;font-size:13.5px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px var(--blue-100);outline:none}.field input:disabled,.field select:disabled,.field textarea:disabled{background:var(--gray-50);color:var(--gray-800);opacity:.55;cursor:not-allowed}.icon-select{width:100%;position:relative}.icon-select-native{opacity:0;pointer-events:none;width:1px!important;height:1px!important;padding:0!important;position:absolute!important}.icon-select-trigger{border:1px solid var(--gray-300);background:var(--white);width:100%;min-height:38px;color:var(--gray-800);font:inherit;cursor:pointer;text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;display:flex}.icon-select-trigger:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px var(--blue-100);outline:none}.icon-select-trigger:disabled{opacity:.55;cursor:not-allowed;background:var(--gray-50)}.icon-select-value,.icon-select-option{align-items:center;gap:9px;display:flex}.icon-select-chevron{color:var(--gray-500);font-size:15px}.icon-select-list{z-index:1200;border:1px solid var(--gray-200);background:var(--white);max-height:240px;box-shadow:var(--shadow-md);border-radius:9px;padding:5px;display:none;position:absolute;top:calc(100% + 5px);left:0;right:0;overflow-y:auto}.icon-select.open .icon-select-list{display:block}.icon-select-option{width:100%;color:var(--gray-800);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;padding:8px 9px;font-size:13px}.icon-select-option:hover,.icon-select-option.selected{background:var(--blue-50);color:var(--blue-700)}.field textarea{resize:vertical;min-height:64px}.field .hint{color:var(--gray-400);font-size:11.5px}.help-ico{vertical-align:middle;border:1px solid var(--gray-300);background:var(--gray-50);width:15px;height:15px;color:var(--gray-500);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;margin-left:5px;padding:0;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.help-ico:hover{background:var(--blue-50);color:var(--blue-700);border-color:var(--blue-200)}.help-pop{z-index:300;background:var(--gray-900);color:#fff;box-shadow:var(--shadow-lg);border-radius:8px;max-width:280px;padding:9px 12px;font-size:12.5px;font-weight:400;line-height:1.45;animation:.12s ease-out pop;position:fixed}.field.err input,.field.err select{border-color:var(--red-600)}.field .err-msg{color:var(--red-600);font-size:11.5px}.checkbox-row{border:1px solid var(--gray-300);background:var(--white);border-radius:8px;flex-direction:row;justify-content:flex-start;align-items:center;gap:10px;min-height:40px;padding:8px 11px}.checkbox-row:focus-within{border-color:var(--blue-500);box-shadow:0 0 0 3px var(--blue-100)}.checkbox-row label{cursor:pointer;flex:1;order:1;margin:0}.checkbox-row input[type=checkbox]{width:18px;min-width:18px;height:18px;accent-color:var(--blue-600);cursor:pointer;flex:none;order:0;margin:0;padding:0}.checkbox-row input[type=checkbox]:focus{box-shadow:none;outline:none}.checkbox-row:has(input:disabled){background:var(--gray-50);opacity:.65}.owner-row select,.owner-row input,select.form-control,input.form-control{border:1px solid var(--gray-300);color:var(--gray-800);background:var(--white);border-radius:8px;width:100%;padding:9px 11px;font-family:inherit;font-size:13.5px}.owner-row select:focus,.owner-row input:focus,select.form-control:focus,input.form-control:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px var(--blue-100);outline:none}.field input[type=file]{padding:6px 10px}.field input[type=file]::file-selector-button{font:inherit;border:1px solid var(--gray-300);background:var(--white);color:var(--gray-700);cursor:pointer;border-radius:8px;margin-right:10px;padding:7px 13px;font-size:12.5px;font-weight:600;transition:background .12s,border-color .12s}.field input[type=file]::file-selector-button:hover{background:var(--blue-50);color:var(--blue-700);border-color:var(--blue-200)}fieldset.section{border:1px solid var(--gray-200);border-radius:10px;margin:18px 0;padding:14px 16px}fieldset.section legend{color:var(--blue-700);text-transform:uppercase;letter-spacing:.03em;padding:0 6px;font-size:12px;font-weight:700}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar input[type=search],.toolbar input[type=text],.toolbar input[type=number],.toolbar select{border:1px solid var(--gray-300);background:var(--white);border-radius:8px;padding:8px 11px;font-size:13px}.toolbar input[type=search]{min-width:220px}.spacer{flex:1}.modal-backdrop{z-index:100;background:#0f172a80;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--white);box-shadow:var(--shadow-lg);border-radius:14px;width:100%;max-width:640px;animation:.14s ease-out pop}.modal.lg{max-width:860px}.modal.sm{max-width:440px}@keyframes pop{0%{opacity:.6;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.modal-head{border-bottom:1px solid var(--gray-200);align-items:center;padding:16px 20px;display:flex}.modal-head h3{font-size:16px}.modal-head .close{margin-left:auto}.modal-body{max-height:68vh;padding:20px;overflow-y:auto}.modal-foot{border-top:1px solid var(--gray-200);background:var(--gray-50);border-radius:0 0 14px 14px;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.toast-root{z-index:200;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--gray-900);color:#fff;box-shadow:var(--shadow-lg);border-radius:10px;align-items:center;gap:10px;max-width:360px;padding:12px 16px;font-size:13.5px;animation:.18s ease-out slidein;display:flex}.toast.success{background:#14532d}.toast.error{background:#7f1d1d}.toast.warn{background:#78350f}@keyframes slidein{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.donut-legend{flex-direction:column;gap:8px;display:flex}.donut-legend .li{align-items:center;gap:9px;font-size:13px;display:flex}.donut-legend .sw{border-radius:3px;flex:none;width:11px;height:11px}.donut-legend .val{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:650}.chart-svg{width:100%;display:block;overflow:visible}.bar-row{align-items:center;gap:10px;margin-bottom:9px;font-size:13px;display:flex}.bar-row .lbl{text-overflow:ellipsis;white-space:nowrap;width:40%;overflow:hidden}.bar-row .track{background:var(--gray-100);border-radius:6px;flex:1;height:9px;overflow:hidden}.bar-row .fill{background:var(--blue-500);border-radius:6px;height:100%}.bar-row .amt{text-align:right;font-variant-numeric:tabular-nums;width:100px;font-weight:600}.detail-grid{grid-template-columns:2fr 1fr;align-items:start;gap:16px;display:grid}.kv{grid-template-columns:42% 58%;gap:8px 12px;font-size:13.5px;display:grid}.kv dt{color:var(--gray-500)}.kv dd{color:var(--gray-800);margin:0;font-weight:600}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-left:2px solid var(--gray-200);padding:0 0 16px 22px;position:relative}.timeline li:last-child{border-color:#0000}.timeline li:before{content:"";background:var(--blue-500);border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;top:3px;left:-6px}.timeline .t-date{color:var(--gray-400);font-size:11.5px}.timeline .t-title{font-size:13px;font-weight:600}.tabs{border-bottom:1px solid var(--gray-200);gap:4px;margin-bottom:16px;display:flex}.tabs button{color:var(--gray-500);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-size:13px;font-weight:600}.tabs button.active{color:var(--blue-700);border-color:var(--blue-600)}.owner-row{grid-template-columns:1fr 110px 34px;align-items:center;gap:8px;margin-bottom:8px;display:grid}.share-total{font-size:12.5px;font-weight:600}.share-total.ok{color:var(--green-600)}.share-total.bad{color:var(--red-600)}.print-only{display:none}.report-ico{color:var(--gray-500);margin-bottom:10px}.report-ico svg{stroke:currentColor;fill:none;width:27px;height:27px;display:block}.card:hover .report-ico{color:var(--blue-600)}.ticon{flex:none;justify-content:center;align-items:center;display:inline-flex}.ticon svg{width:var(--isize,18px);height:var(--isize,18px);stroke:currentColor;fill:none;display:block}.type-tag{align-items:center;gap:7px;display:inline-flex}.icon-picker{border:1px solid var(--gray-200);border-radius:10px;grid-template-columns:repeat(9,1fr);gap:6px;max-height:220px;padding:4px;display:grid;overflow-y:auto}.icon-picker button{background:var(--gray-50);cursor:pointer;color:var(--gray-600);border:1px solid #0000;border-radius:8px;place-items:center;padding:7px;display:grid}.icon-picker button:hover{background:var(--blue-50);color:var(--blue-700)}.icon-picker button.sel{border-color:var(--blue-600);background:var(--blue-50);color:var(--blue-700)}.icon-picker button svg{stroke:currentColor;fill:none;width:20px;height:20px}.color-swatches{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.color-swatches .sw{cursor:pointer;border:2px solid #0000;border-radius:7px;width:26px;height:26px}.color-swatches .sw.sel{border-color:var(--gray-900)}.icon-preview{border:1px solid var(--gray-200);background:var(--gray-50);border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-weight:600;display:inline-flex}.dict-row{border-bottom:1px solid var(--gray-100);align-items:center;gap:10px;padding:8px 0;display:flex}.dict-row .grip{color:var(--gray-300)}.tabs{flex-wrap:wrap;row-gap:2px}.tabs button{white-space:nowrap;flex:none}html,body{max-width:100%;overflow-x:hidden}@media (width<=980px){.auth-screen{place-items:stretch stretch;padding:0}.auth-layout{border-radius:0;grid-template-columns:minmax(300px,.8fr) minmax(390px,1fr);width:100%;min-height:100vh}.auth-intro{padding:42px 36px 34px}.auth-intro-copy{margin-top:64px}.auth-intro h1{font-size:42px}.auth-panel{padding:44px 38px 26px}.grid.cols-4,.grid.kpi{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}}@media (width<=720px){.auth-layout{min-height:100vh;display:block}.auth-intro{min-height:280px;padding:28px 24px 34px}.auth-intro-copy{margin-top:38px}.auth-intro h1{font-size:clamp(34px,10vw,46px)}.auth-intro-copy p{margin-top:16px;font-size:14px}.auth-benefits,.auth-intro-foot{display:none}.auth-panel{padding:34px 24px 26px}.auth-card h2{font-size:21px}.sidebar{z-index:60;box-shadow:var(--shadow-lg);transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:none}.menu-toggle{display:inline-flex}.grid.cols-2,.grid.cols-3,.grid.cols-4,.grid.kpi,.form-grid{grid-template-columns:1fr}.view .grid[style*=grid-template-columns]{grid-template-columns:1fr!important}.view{padding:14px}.page-head .actions{width:100%}.page-head .actions .btn,.page-head .actions select{flex:1}.modal-backdrop{padding:12px}.modal-body{max-height:76vh}.kv{grid-template-columns:38% 62%}}@media (width<=520px){.user-chip .u-name,.user-chip .u-role{display:none}.grid.kpi{grid-template-columns:repeat(2,1fr)}.icon-picker{grid-template-columns:repeat(6,1fr)}.topbar{gap:10px;padding:0 12px}.kpi-tile .k-value{font-size:20px}.page-head h2{font-size:18px}}.cashflow-controls{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.cashflow-toolbar{align-items:flex-end}.cashflow-toolbar>.btn{height:35px;padding-top:5px;padding-bottom:5px}.cashflow-mode-switch{box-sizing:border-box;background:var(--blue-50);height:35px;box-shadow:inset 0 0 0 1px var(--blue-200), 0 1px 2px #0f172a0f;border:0;border-radius:10px;align-items:stretch;padding:0;display:inline-flex}.cashflow-mode-option{min-width:118px;height:35px;color:var(--blue-700);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:5px 13px;font-size:13px;font-weight:600;transition:background .15s,color .15s,box-shadow .15s;display:inline-flex}.cashflow-mode-option:hover{background:#ffffffb3}.cashflow-mode-option.active{background:var(--blue-600);color:var(--white);box-shadow:0 2px 5px #2563eb3d}.cashflow-mode-option.active:hover{background:var(--blue-700)}.cashflow-copy-amount,.cashflow-copy-date{border:1px solid var(--gray-300);width:100%;min-width:132px;height:36px;color:var(--gray-900);font:inherit;background:#fff;border-radius:7px;padding:7px 10px}.cashflow-copy-amount:focus,.cashflow-copy-date:focus{border-color:var(--blue-500);outline:none;box-shadow:0 0 0 3px #2563eb1f}.cashflow-account-preview{margin-top:12px}.cashflow-account-preview.is-warning{border-color:var(--red-300);background:var(--red-50);color:var(--red-700)}.cashflow-copy-balance{white-space:nowrap;color:var(--gray-600);margin-top:4px}.cashflow-control{color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;gap:4px;font-size:11px;font-weight:700;display:grid}.cashflow-control select{border:1px solid var(--gray-300);background:var(--white);min-width:112px;color:var(--gray-800);border-radius:8px;padding:8px 30px 8px 10px;font-size:13px;font-weight:600}.cashflow-kpis{margin-bottom:16px}.cashflow-mode-notice{border-color:var(--blue-200);background:var(--blue-50);box-shadow:inset 4px 0 0 var(--blue-500), var(--shadow-sm);margin-bottom:20px}.cashflow-mode-notice.plan{border-color:var(--blue-200);background:linear-gradient(90deg, var(--blue-50), var(--white))}.cashflow-mode-notice.actual{background:linear-gradient(90deg, #f0f9ff, var(--white));border-color:#bae6fd}.cashflow-report-filters{background:var(--gray-50);flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.cashflow-report-filters select{border:1px solid var(--gray-300);background:var(--white);min-width:150px;height:35px;color:var(--gray-800);font:inherit;border-radius:8px;padding:6px 30px 6px 10px;font-size:13px}.cashflow-report-kpis,.cashflow-report-chart,.cashflow-chart-card,.cashflow-table-card,.cashflow-source-card,.cashflow-occurrence-card,.cashflow-definitions-card{margin-bottom:16px}.cashflow-chart-card .card-head,.cashflow-table-card .card-head,.cashflow-source-card .card-head,.cashflow-occurrence-card .card-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.cashflow-flow-bars{border-top:1px solid var(--gray-100);grid-template-columns:repeat(12,minmax(24px,1fr));align-items:end;gap:6px;height:84px;margin:18px 8px 0 56px;padding-top:8px;display:grid}.cashflow-bar-month{color:var(--gray-500);justify-items:center;gap:4px;font-size:10px;display:grid}.cashflow-bar-pair{justify-content:center;align-items:end;gap:2px;height:58px;display:flex}.cashflow-bar{border-radius:3px 3px 1px 1px;width:7px;min-height:2px;display:block}.cashflow-bar.income{background:var(--green-600)}.cashflow-bar.expense{background:var(--red-600)}.cashflow-year-table .cashflow-month-row{cursor:pointer}.cashflow-year-table .cashflow-month-row:focus{outline:2px solid var(--blue-500);outline-offset:-2px}.cashflow-year-table .cashflow-month-row.is-warning{background:#fffbeb}.cashflow-year-table .cashflow-month-row.is-critical{background:#fef2f2}.cashflow-year-table td.income{color:var(--green-600);font-weight:650}.cashflow-year-table td.expense,.cashflow-year-table td.negative{color:var(--red-600);font-weight:650}.cashflow-footnote{color:var(--gray-500);margin:0 2px 16px;font-size:12px}.cashflow-source-list{display:grid}.cashflow-source-row{color:inherit;border-top:1px solid var(--gray-200);justify-content:space-between;align-items:center;gap:18px;padding:12px 16px;text-decoration:none;display:flex}.cashflow-source-row:hover{background:var(--blue-50)}.cashflow-data-problem{border-left:4px solid var(--amber-500);align-items:flex-start;gap:14px;display:flex}.cashflow-problem-icon{background:var(--amber-50);width:30px;height:30px;color:var(--amber-600);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.cashflow-definition-name{align-items:center;gap:10px;min-width:210px;display:flex}.cashflow-definition-name .type-icon{flex:none}.goal-info-notice{margin-top:12px}.goal-info-notice-content{align-items:flex-start;gap:10px;display:flex}.goal-info-notice-content .type-icon{flex:none;margin-top:1px}.goal-info-notice-content strong{line-height:1.35;display:block}.goal-info-notice-content .small{line-height:1.5}.cashflow-definitions-table td{height:58px}.cashflow-definition-actions{flex-wrap:nowrap}.cashflow-month-form-note{margin:0 0 16px}@media (width<=700px){.cashflow-flow-bars{gap:2px;margin-left:0}.cashflow-bar{width:5px}.cashflow-control{flex:1}.cashflow-control select{width:100%}}@media print{.sidebar,.topbar,.no-print{display:none!important}.app-shell,.main{display:block}.view{max-width:none;padding:0}.card{box-shadow:none;border-color:var(--gray-300)}.print-only{display:block}body{background:#fff}}.goal-accounting-note{color:#4c1d95;box-shadow:var(--shadow-sm);background:#f5f3ff;border:1px solid #ddd6fe;border-left:4px solid #7c3aed;border-radius:9px;margin-bottom:16px;padding:13px 15px;font-size:13px}.goal-kpis .card{border-top-color:#7c3aed}.goal-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.goal-card{cursor:pointer;padding:17px;transition:transform .12s,box-shadow .12s,border-color .12s}.goal-card:hover{box-shadow:var(--shadow-lg);border-color:#c4b5fd;transform:translateY(-2px)}.goal-card-top{align-items:flex-start;gap:10px;display:flex}.goal-card-title{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.goal-card-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.goal-warnings{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.goal-progress-compact{margin-top:15px}.goal-progress-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:7px;font-size:12.5px;display:flex}.goal-progress-track{background:var(--gray-100);border-radius:99px;height:9px;margin-bottom:6px;position:relative;overflow:visible}.goal-progress-fill{border-radius:inherit;height:100%;transition:width .2s;display:block}.goal-progress-fill.purple{background:linear-gradient(90deg,#7c3aed,#a78bfa)}.goal-progress-fill.blue{background:linear-gradient(90deg,#1e40af,#60a5fa)}.goal-threshold{background:var(--gray-800);border-radius:1px;width:2px;height:15px;position:absolute;top:-3px}.goal-card-foot{border-top:1px solid var(--gray-100);justify-content:space-between;gap:10px;margin-top:14px;padding-top:12px;font-size:12px;display:flex}.goal-card-foot strong{text-align:right}.goal-progress-card{border-top:3px solid #7c3aed}.readiness-note{background:var(--gray-100);color:var(--gray-700);border-radius:9px;margin-top:12px;padding:11px 14px;font-size:13px}.readiness-note.ready{background:var(--green-50);color:#166534;border:1px solid #bbf7d0}.goal-alert{border-radius:9px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:12px 14px;font-size:13px;display:flex}.goal-alert.red{background:var(--red-50);color:#991b1b;border:1px solid #fecaca}.goal-alert.amber{background:var(--amber-50);color:#92400e;border:1px solid #fde68a}.goal-actions-stack{flex-direction:column;gap:8px;display:flex}.goal-version-list{max-height:260px;overflow:auto}.goal-schedule-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.goal-schedule-summary span{background:var(--gray-50);border-radius:8px;flex-direction:column;gap:3px;padding:10px 12px;display:flex}.goal-schedule-summary small{color:var(--gray-500)}.goal-schedule-pct{justify-content:flex-end;align-items:center;gap:8px;min-width:125px;display:flex}.goal-schedule-pct i{background:var(--gray-100);border-radius:99px;width:58px;height:6px;display:block;overflow:hidden}.goal-schedule-pct b{border-radius:inherit;background:#7c3aed;height:100%;display:block}@media (width<=1100px){.goal-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.goal-card-grid{grid-template-columns:1fr}.goal-alert{flex-direction:column;align-items:flex-start}.goal-schedule-summary{grid-template-columns:1fr}}.dashboard-goals{margin-top:16px}.dashboard-add-menu{position:relative}.dashboard-add-menu summary{cursor:pointer;list-style:none}.dashboard-add-menu summary::-webkit-details-marker{display:none}.dashboard-add-options{z-index:30;border:1px solid var(--gray-200);background:#fff;border-radius:10px;width:190px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 30px #0f172a29}.dashboard-add-option{width:100%;color:var(--gray-700);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:9px;padding:9px 10px;font-size:13px;display:flex}.dashboard-add-option:hover{background:var(--gray-50);color:var(--gray-900)}.dashboard-add-option svg{flex:none;width:17px;height:17px}.dashboard-cashflow{background:#fff;margin:16px 0 0;overflow:hidden}.dashboard-cashflow .card-head{background:#fff}.dashboard-cashflow .card-head a{font-weight:650}.dashboard-cashflow .card-pad{padding:18px}.dashboard-cashflow-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.dashboard-cashflow-metric,.dashboard-cashflow-status{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;min-width:0;min-height:102px;padding:14px;display:flex}.dashboard-cashflow-status{background:#f0fdfa;border-color:#ccfbf1}.dashboard-cashflow-metric small,.dashboard-cashflow-status small:first-child{color:var(--gray-500);font-weight:600}.dashboard-cashflow-metric strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--gray-900);font-size:20px;line-height:1.2;overflow:hidden}.dashboard-cashflow-status .badge{margin:2px 0}.dashboard-cashflow-empty{justify-content:space-between;align-items:center;gap:16px;padding:4px;display:flex}.dashboard-cashflow-actual{margin-bottom:0}.dashboard-cashflow-actual+.dashboard-cashflow{margin-top:16px}.dashboard-goal-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid}.dashboard-goal-item{border-right:1px solid var(--gray-200);flex-direction:column;gap:4px;min-width:0;padding:2px 18px;display:flex}.dashboard-goal-item:first-child{padding-left:0}.dashboard-goal-item:last-child{border-right:0;padding-right:0}.dashboard-goal-item small{color:var(--gray-500);font-weight:600}.dashboard-goal-item strong{color:var(--gray-900);text-overflow:ellipsis;white-space:nowrap;font-size:19px;line-height:1.2;overflow:hidden}.dashboard-goal-progress-wrap{background:#faf5ff;border:1px solid #ede9fe;border-radius:10px;margin-top:20px;padding:14px 16px}.dashboard-goal-progress-label{color:#4c1d95;justify-content:space-between;align-items:center;gap:16px;margin-bottom:9px;font-size:13px;font-weight:650;display:flex}.dashboard-goal-progress-label strong{color:#6d28d9;font-size:16px}.dashboard-goal-progress{background:#e9d5ff;border-radius:999px;height:12px;margin-bottom:8px;overflow:hidden}.dashboard-goal-progress span{border-radius:inherit;background:linear-gradient(90deg,#8b5cf6,#6d28d9);height:100%;display:block}@media (width<=720px){.dashboard-add-menu{flex:1}.dashboard-add-menu summary{justify-content:center}.dashboard-add-options{width:100%;left:0;right:auto}.dashboard-cashflow-summary{grid-template-columns:1fr 1fr;gap:10px}.dashboard-cashflow-empty{flex-direction:column;align-items:flex-start}.dashboard-goal-summary{grid-template-columns:1fr 1fr;gap:16px 0}.dashboard-goal-item:nth-child(2){border-right:0;padding-right:0}.dashboard-goal-item:nth-child(3){padding-left:0}}
