:root{color:#17231d;font-synthesis:none;--ink:#17231d;--muted:#566158;--brand:#18392b;--brand-soft:#e0ede6;--accent:#e7ad45;--income:#237452;--expense:#a64b3c;--surface:#fff;--line:#dfe4df;--shadow:0 12px 36px #142d2117;background:#f3f5f1;font-family:Inter,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.035em;margin-bottom:6px;font-size:clamp(1.65rem,2.5vw,2.25rem)}h2{font-size:1.15rem}small{color:var(--muted);margin-top:4px;display:block}.app-shell{grid-template-columns:244px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--brand);color:#eef7f1;z-index:20;flex-direction:column;width:244px;padding:24px 16px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:12px;padding:0 8px 24px;font-weight:750;display:flex}.brand-mark{background:var(--accent);color:#2d2517;border-radius:16px;place-items:center;width:52px;height:52px;font-size:1.5rem;font-weight:800;display:grid;box-shadow:0 8px 24px #e7ad4540}.brand-mark.small{border-radius:11px;width:38px;height:38px;font-size:1rem}.sidebar nav{gap:5px;display:grid}.sidebar nav a{color:#cfe1d7;border-radius:10px;align-items:center;gap:12px;min-height:46px;padding:10px 12px;display:flex}.sidebar nav a:hover,.sidebar nav a.active{color:#fff;background:#ffffff1c}.sidebar nav a span{text-align:center;width:22px}.sidebar-user{border-top:1px solid #ffffff26;margin-top:auto;padding:16px 10px 0}.sidebar-user button{color:#bcd2c5;background:0 0;border:0;padding:8px 0;display:block}.workspace{grid-column:2;min-width:0}.topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#f3f5f1e0;border-bottom:1px solid #d6dcd7cc;justify-content:flex-end;align-items:center;gap:18px;height:72px;padding:12px clamp(22px,4vw,54px);display:flex;position:sticky;top:0}.mobile-brand{margin-right:auto;font-weight:800;display:none}.topbar-user{color:var(--muted)}.content{max-width:1540px;margin:0 auto;padding:28px clamp(22px,4vw,54px) 70px}.page-header{justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px;display:flex}.page-header p{margin:0}.page-actions{gap:10px;display:flex}.primary,.button-link.primary{color:#fff;background:var(--brand);border:0;border-radius:10px;min-height:44px;padding:11px 18px;font-weight:700}.add-button{box-shadow:0 8px 20px #18392b2e}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #d89b2d}button:disabled{opacity:.5;cursor:not-allowed}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:8px;font-size:.72rem;font-weight:800}.kpi-grid{grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px;margin-bottom:18px;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;justify-content:space-between;min-height:112px;padding:18px;display:flex}.kpi span:first-child{color:var(--muted);font-size:.86rem}.kpi .money,.kpi strong{font-size:clamp(1.25rem,2vw,1.65rem);font-weight:780}.kpi.income{border-top:3px solid var(--income)}.kpi.expense{border-top:3px solid var(--expense)}.kpi.profit{color:var(--brand);border-top:3px solid var(--accent)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;margin-bottom:18px;padding:22px;box-shadow:0 3px 14px #142d2109}.panel-title{justify-content:space-between;align-items:start;gap:12px;margin-bottom:14px;display:flex}.panel-title h2{margin:0}.panel-title>a,.panel-title>button,.text-button,.back-link{color:var(--income);background:0 0;border:0;font-weight:650}.dashboard-grid{grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:18px;display:grid}.attention-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:13px 4px;display:flex}.attention-row:hover strong{color:var(--income)}.align-right{text-align:right}.settlement-card{background:#fdf9ef;border-color:#e9d9b9}.settlement-card h2{line-height:1.35}.settlement-card>.money{margin:16px 0;font-size:1.65rem;font-weight:800;display:block}.fraction-note{color:#72571d;background:#fff7df;border-radius:9px;padding:11px 13px;font-size:.88rem}.button-link{border:1px solid var(--line);border-radius:9px;justify-content:center;align-items:center;min-height:40px;padding:8px 13px;font-weight:650;display:inline-flex}.operation-list{display:grid}.operation-row,.payment-entry{border-top:1px solid var(--line);grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 3px;display:grid}.operation-row:first-child{border-top:0}.operation-sign{background:#edf2ee;border-radius:10px;place-items:center;width:32px;height:32px;font-weight:800;display:grid}.operation-row.payment .operation-sign{color:var(--income);background:#e6f3ec}.operation-row.expense .operation-sign{color:var(--expense);background:#f7ebe8}.operation-row.partner_settlement .operation-sign{color:#71571f;background:#fbf0d8}.money{white-space:nowrap;font-variant-numeric:tabular-nums}.filters{border:1px solid var(--line);background:#fff;border-radius:13px;margin-bottom:18px;padding:14px}.filter-grid{grid-template-columns:1.3fr repeat(3,1fr);gap:12px;display:grid}label{color:#465049;gap:6px;margin-bottom:14px;font-size:.88rem;font-weight:650;display:grid}input,select,textarea{width:100%;min-height:43px;color:var(--ink);background:#fff;border:1px solid #cfd6d0;border-radius:9px;padding:9px 11px}textarea{resize:vertical;min-height:88px}.amount-field input{min-height:58px;font-size:1.4rem;font-weight:750}.field-error{min-height:14px;color:var(--expense);margin:-10px 0 8px;font-size:.78rem;display:block}.card-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.entity-card{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:42px 1fr auto;align-items:center;gap:14px;min-height:116px;padding:18px;display:grid}.entity-card:hover{box-shadow:var(--shadow);border-color:#9bb9a9;transform:translateY(-1px)}.entity-card.static:hover{box-shadow:none;transform:none}.entity-card h2{margin:0 0 4px}.entity-card p{color:var(--muted);margin:0}.entity-icon{background:var(--brand-soft);width:40px;height:40px;color:var(--brand);border-radius:11px;place-items:center;display:grid}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}table{border-collapse:collapse;width:100%}th{text-align:left;color:#55615a;text-transform:uppercase;letter-spacing:.04em;background:#edf1ed;padding:13px 15px;font-size:.76rem}td{border-top:1px solid var(--line);vertical-align:top;padding:14px 15px}td small{max-width:280px}.status{border-radius:99px;padding:5px 9px;font-size:.78rem;font-weight:750;display:inline-flex}.status.issued{color:#8d3c31;background:#f8e8e4}.status.partially_paid{color:#78581b;background:#fff2d8}.status.paid{color:#226144;background:#e3f1e9}.tabs{gap:6px;margin:-8px 0 18px;display:flex;overflow-x:auto}.tabs button{border:1px solid var(--line);white-space:nowrap;background:#fff;border-radius:99px;padding:9px 14px}.tabs button.active{color:#fff;background:var(--brand);border-color:var(--brand)}.detail-columns{grid-template-columns:1fr 1fr;gap:18px;display:grid}.project-kpis{grid-template-columns:repeat(3,1fr)}.wide-kpi{grid-column:span 2}.invoice-hero{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.invoice-hero>div{gap:8px;display:grid}.invoice-hero span:first-child{color:var(--muted)}.invoice-hero .money{font-size:1.3rem;font-weight:750}.details{grid-template-columns:120px 1fr;margin:0;display:grid}.details dt,.details dd{border-top:1px solid var(--line);padding:9px 0}.details dt{color:var(--muted)}.payment-entry{grid-template-columns:minmax(0,1fr) auto auto}.payment-entry-actions{align-items:center;gap:12px;display:flex}.voided{opacity:.68}.void-details{opacity:1;grid-column:1/-1;gap:4px;display:grid}.void-summary{border:1px solid var(--line);background:var(--surface-muted,#f5f7f5);border-radius:9px;padding:12px}.checkbox-filter{align-items:center;gap:8px;margin:0;display:flex}.checkbox-filter input{width:auto;min-height:0}.catalog-state-action{gap:6px;display:grid}.danger-link{color:var(--expense);background:0 0;border:0;padding:8px 0}.danger{background:var(--expense);color:#fff;border:0;border-radius:9px;padding:10px 15px}.settlement-summary{background:var(--brand);color:#fff}.settlement-summary .eyebrow,.settlement-summary span{color:#c7dacf}.settlement-summary h2{font-size:clamp(1.35rem,3vw,2rem)}.settlement-amount,.exact-balance{border-top:1px solid #ffffff26;justify-content:space-between;align-items:baseline;gap:20px;padding:12px 0;display:flex}.settlement-amount .money{color:#fff;font-size:1.6rem;font-weight:800}.exact-balance .money{color:#e0e9e3}.settlement-summary .fraction-note{color:#644c1c}.context-note,.selection-summary{color:#415348;background:#eef4f0;border-radius:9px;padding:10px 12px}.selection-summary{gap:3px;margin-bottom:14px;display:grid}.segmented{border:0;gap:8px;margin:0 0 14px;padding:0;display:flex}.segmented legend{color:#465049;width:100%;margin-bottom:7px;font-size:.88rem;font-weight:650}.segmented label{border:1px solid var(--line);border-radius:9px;align-items:center;gap:7px;margin:0;padding:9px 12px;display:flex}.segmented input{width:auto;min-height:auto}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-actions{justify-content:flex-end;gap:9px;margin-top:20px;display:flex}.form-actions button:not(.primary):not(.danger){border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 15px}.inline-create{background:#f1f7f3;border:1px solid #c7dacf;border-radius:11px;margin:10px 0 16px;padding:15px}.inline-create h3{font-size:.95rem}.error-banner,.warning-banner{border-radius:9px;margin:12px 0;padding:12px 14px}.error-banner{color:#873b30;background:#f9e8e5}.warning-banner{color:#684c17;background:#fff3d8}.error-banner button,.warning-banner button{margin-left:10px}.empty-state{text-align:center;color:var(--muted);padding:38px 18px}.empty-state strong{color:var(--ink)}.loading,.splash{text-align:center;color:var(--muted);padding:80px 24px}.modal-overlay{z-index:100;background:#0e1c158c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:18px;width:min(580px,100%);max-height:calc(100vh - 40px);overflow:auto;box-shadow:0 24px 80px #00000040}.dialog{outline:none;padding:22px}.dialog-heading{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.dialog-heading h2{margin:0;font-size:1.35rem}.icon-button{background:#eef1ee;border:0;border-radius:50%;width:40px;height:40px;font-size:1.4rem}.quick-menu{gap:8px;display:grid}.quick-menu>button{border:1px solid var(--line);text-align:left;background:#fff;border-radius:12px;align-items:center;gap:12px;min-height:68px;padding:10px 12px;display:flex}.quick-menu>button:hover{background:#f5f8f6;border-color:#9bb9a9}.quick-menu>button.quick-primary{background:var(--brand-soft);border-color:#b5d0c1}.quick-menu button span:nth-child(2){flex:1}.quick-icon{background:#edf1ee;border-radius:11px;place-items:center;width:42px;height:42px;font-size:1.3rem;display:grid}.quick-icon.income{color:var(--income);background:#dff0e7}.quick-icon.expense{color:var(--expense);background:#f4dfdb}.keyboard-hint{text-align:center;color:var(--muted);margin:8px 0 0;font-size:.78rem}.login-page{background:radial-gradient(circle at 20% 15%, #dceae2, transparent 35%), var(--brand);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fff;border-radius:22px;width:min(430px,100%);padding:clamp(28px,5vw,44px);box-shadow:0 30px 90px #00000042}.login-card .brand-mark{margin-bottom:24px}.wide{width:100%}.bottom-nav{display:none}@media (width<=1050px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.detail-columns{grid-template-columns:1fr}.filter-grid,.invoice-hero{grid-template-columns:repeat(2,1fr)}}@media (width<=760px){.app-shell{padding-bottom:calc(66px + env(safe-area-inset-bottom));display:block}.sidebar{display:none}.workspace{display:block}.topbar{justify-content:space-between;height:62px;padding:9px 15px}.mobile-brand{display:block}.topbar-user{display:none}.content{padding:20px 14px 40px}.page-header{align-items:start;margin-bottom:20px}.page-actions{width:100%}.page-header{flex-wrap:wrap}.kpi-grid,.project-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.kpi{min-height:96px;padding:14px}.wide-kpi{grid-column:span 2}.panel{border-radius:13px;padding:16px}.filter-grid{grid-template-columns:1fr}.table-wrap{background:0 0;border:0;overflow:visible}table,tbody,tr,td{display:block}thead{display:none}tr{border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:10px;padding:10px}td{border:0;justify-content:space-between;gap:12px;padding:8px;display:flex}td:before{content:attr(data-label);color:var(--muted);min-width:92px;font-size:.78rem}td>*{text-align:right}.invoice-hero{grid-template-columns:1fr 1fr}.payment-entry{grid-template-columns:minmax(0,1fr) auto}.payment-entry-actions{flex-wrap:wrap;grid-column:1/-1}.modal-overlay{align-items:end;padding:0}.modal{width:100%;max-height:92vh;padding-bottom:env(safe-area-inset-bottom);border-radius:20px 20px 0 0}.bottom-nav{z-index:50;padding:6px 4px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffffff5;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;inset:auto 0 0;box-shadow:0 -8px 28px #142d2114}.bottom-nav a{min-height:50px;color:var(--muted);border-radius:9px;align-content:center;place-items:center;gap:2px;display:grid}.bottom-nav a.active{color:var(--brand);background:var(--brand-soft)}.bottom-nav small{color:inherit;margin:0;font-size:.65rem}.operation-row{grid-template-columns:34px minmax(0,1fr)}.operation-row>.money{grid-column:2}}@media (width<=430px){.kpi-grid,.project-kpis{grid-template-columns:1fr 1fr}.kpi .money,.kpi strong{font-size:1.08rem}.form-grid{grid-template-columns:1fr}.settlement-amount,.exact-balance{display:grid}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.compact-create{gap:10px;display:grid}.compact-create>h2{margin-bottom:4px}.catalog-list{margin-top:18px;display:grid}.catalog-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;min-height:52px;padding:9px 2px;display:flex}.catalog-row form{flex:1;align-items:end;gap:8px;display:flex}.catalog-row form label{flex:1;margin:0}.row-actions{align-items:center;gap:8px;display:flex}.row-actions button,.compact-create>button:not(.primary),.catalog-row form button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 12px}@media (width<=760px){.catalog-row,.catalog-row form{flex-direction:column;align-items:stretch}}
