:root{--ink:#173126;--muted:#66756e;--forest:#123b2a;--leaf:#2f7650;--lime:#b7d65d;--paper:#f6f7f3;--card:#fff;--line:#dce3de;--amber:#d98a25;--red:#bb4b42;--blue:#356aa0;--shadow:0 12px 36px rgba(20,51,38,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:.65rem;padding:.65rem .9rem;cursor:pointer;font-weight:650}button:hover{border-color:#a9bbb0;background:#fafcf9}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(47,118,80,.25);outline-offset:1px}.primary{background:var(--forest);border-color:var(--forest);color:#fff}.primary:hover{background:#1b523b}.wide{width:100%}.icon{padding:.42rem .65rem;font-size:1.25rem}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:var(--forest);color:#fff;padding:1.4rem 1rem;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:.75rem;align-items:center;padding:.2rem .35rem 1.55rem}.brand-mark{display:grid;place-items:center;width:42px;height:42px;background:var(--lime);color:var(--forest);border-radius:12px;font-weight:900}.brand small,.sidebar-user small{display:block;color:#bcd0c4;font-size:.75rem;margin-top:.15rem}.sidebar nav{display:grid;gap:.2rem}.sidebar nav button{border:0;background:transparent;color:#dce9e1;text-align:left;display:flex;gap:.8rem;align-items:center;padding:.72rem .8rem}.sidebar nav button span{width:1.25rem;text-align:center;font-size:1.15rem}.sidebar nav button:hover,.sidebar nav button.active{background:rgba(255,255,255,.11);color:#fff}.sidebar nav button.active{box-shadow:inset 3px 0 var(--lime)}.sidebar-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.13);padding:1.1rem .3rem 0;display:grid;grid-template-columns:auto 1fr auto;gap:.65rem;align-items:center}.sidebar-user .avatar{background:#fff;color:var(--forest);width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800}.sidebar-user a{color:#fff;text-decoration:none;font-size:1.3rem}.app-shell{margin-left:245px;min-height:100vh}.topbar{height:88px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 2rem;position:sticky;top:0;z-index:10}.topbar h1{font-size:1.45rem;margin:0}.topbar p{color:var(--muted);margin:.25rem 0 0;font-size:.9rem}.top-actions{display:flex;gap:.6rem}.content{padding:1.6rem 2rem 3rem;max-width:1500px;margin:auto}.loading{padding:4rem;text-align:center;color:var(--muted)}.grid{display:grid;gap:1rem}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:1rem}.kpi{background:var(--card);border:1px solid var(--line);border-radius:1rem;padding:1.15rem;box-shadow:var(--shadow);position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;right:-25px;top:-25px;width:70px;height:70px;border-radius:50%;background:#edf4df}.kpi small{color:var(--muted);display:block}.kpi strong{font-size:1.8rem;display:block;margin:.35rem 0}.kpi .trend{font-size:.78rem;color:var(--leaf)}.two-col{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr)}.card{background:var(--card);border:1px solid var(--line);border-radius:1rem;padding:1.1rem;box-shadow:var(--shadow)}.card-head,.toolbar{display:flex;justify-content:space-between;gap:1rem;align-items:center}.card h2{font-size:1.05rem;margin:0}.card-head{margin-bottom:1rem}.muted{color:var(--muted)}.attention-list,.timeline{display:grid;gap:.55rem}.attention{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;border:1px solid var(--line);padding:.7rem;border-radius:.7rem}.attention .dot{width:9px;height:9px;border-radius:50%;background:var(--amber)}.attention.overdue .dot{background:var(--red)}.attention strong,.attention small{display:block}.attention small{color:var(--muted);margin-top:.12rem}.toolbar{margin-bottom:1rem;flex-wrap:wrap}.filters{display:flex;gap:.5rem;flex-wrap:wrap}.filters input,.filters select{min-width:150px}.search{min-width:250px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:.85rem}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;padding:.78rem .85rem;border-bottom:1px solid var(--line);white-space:nowrap}th{background:#f1f4f1;color:#53645b;font-size:.77rem;text-transform:uppercase;letter-spacing:.04em}tbody tr:last-child td{border:0}tbody tr:hover{background:#fafcf9}.tag{font-weight:800;color:var(--forest)}.pill{display:inline-flex;align-items:center;padding:.2rem .48rem;border-radius:99px;font-size:.74rem;font-weight:700;background:#e8efe9;color:#31523f}.pill.Active,.pill.Done,.pill.Recovered,.pill.Confirmed{background:#def1e5;color:#19643c}.pill.Missing,.pill.High,.pill.Open{background:#fff0da;color:#90570f}.pill.Dead,.pill.Overdue{background:#f9dfdd;color:#912f27}.money.income{color:#207747;font-weight:750}.money.expense{color:#a5463e;font-weight:750}.empty{text-align:center;padding:3rem;color:var(--muted)}.mobile-only{display:none}dialog{border:0;padding:0;border-radius:1rem;box-shadow:0 28px 90px rgba(0,0,0,.28);width:min(760px,calc(100% - 2rem));max-height:88vh}dialog::backdrop{background:rgba(10,28,20,.62)}.modal-card{display:flex;flex-direction:column;max-height:88vh}.modal-card header,.modal-card footer{padding:1rem 1.2rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.modal-card footer{border:0;border-top:1px solid var(--line);justify-content:flex-end;gap:.6rem}.modal-card header h2{margin:0}.modal-card header p{margin:.2rem 0 0;color:var(--muted);font-size:.85rem}#modal-body{padding:1.2rem;overflow:auto}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.form-grid .full{grid-column:1/-1}label{display:grid;gap:.35rem;font-size:.84rem;font-weight:700;color:#41544a}input,select,textarea{border:1px solid #bdc9c1;background:#fff;border-radius:.58rem;padding:.68rem;color:var(--ink);width:100%}textarea{min-height:85px;resize:vertical}.required:after{content:" *";color:var(--red)}#toast{position:fixed;right:1.3rem;bottom:1.3rem;background:var(--forest);color:#fff;padding:.8rem 1rem;border-radius:.7rem;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;z-index:60}#toast.show{opacity:1;transform:none}.alert{padding:.75rem;border-radius:.6rem;margin:.8rem 0}.danger{background:#f9dfdd;color:#7f2b24}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#dcebc1,transparent 30%),var(--forest)}.login-card{width:min(410px,calc(100% - 2rem));background:#fff;padding:2rem;border-radius:1.2rem;box-shadow:0 30px 80px rgba(0,0,0,.25)}.login-card>.brand-mark{margin-bottom:1.2rem}.login-card h1{margin:0}.login-card p{color:var(--muted);margin:.3rem 0 1.4rem}.login-card form{display:grid;gap:1rem}.bar-chart{display:grid;gap:.65rem}.bar-row{display:grid;grid-template-columns:90px 1fr 45px;gap:.6rem;align-items:center;font-size:.82rem}.bar{height:10px;background:#edf0ed;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--leaf);border-radius:99px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.detail-grid div{background:#f5f7f4;border-radius:.6rem;padding:.7rem}.detail-grid small,.detail-grid strong{display:block}.detail-grid small{color:var(--muted);margin-bottom:.25rem}.section-note{background:#edf4df;border-left:4px solid var(--leaf);padding:.8rem 1rem;border-radius:.3rem;margin-bottom:1rem}.danger-zone{border-color:#edc7c3}.actions{display:flex;gap:.4rem}
@media(max-width:1050px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.app-shell{margin-left:0}.mobile-only{display:inline-flex}.content{padding:1.2rem}.topbar{padding:0 1.2rem}}
@media(max-width:650px){.topbar{height:74px}.topbar p,.top-actions button span{display:none}.top-actions{margin-left:auto}.kpi-grid{grid-template-columns:1fr 1fr}.kpi strong{font-size:1.45rem}.content{padding:.9rem}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.filters{width:100%}.filters>*{flex:1;min-width:130px}.search{width:100%}.detail-grid{grid-template-columns:1fr 1fr}.card{padding:.85rem}}