*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f5f7fb;color:#09254f}.app{min-height:100vh;display:flex}.sidebar{width:230px;min-width:230px;background:#061d43;color:#fff;min-height:100vh}.logo{padding:20px 18px;font-size:18px;line-height:1.2}.logo strong{font-weight:700}.sidebar nav{padding:20px 14px}.nav{display:block;padding:13px 14px;margin-bottom:8px;border-radius:8px;color:#fff;text-decoration:none;font-weight:600;transition:.2s;cursor:pointer}.nav:hover{background:#123667;color:#fff}.nav.active{background:#1261d4;color:#fff}.nav.active:hover{background:#0f56bd}.main{flex:1;min-width:0}.topbar{height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#fff;border-bottom:1px solid #dfe5ee}.topbar a{color:#123f78;text-decoration:none;cursor:pointer}.topbar a:hover{text-decoration:underline}.content{padding:28px 22px 40px;max-width:1800px;margin:auto}.title{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.title h1{margin:0 0 5px;font-size:26px;color:#082858}.title p{margin:0;color:#63748c;font-size:14px}.filter{display:flex;align-items:end;gap:12px;padding:16px;margin-bottom:16px;background:#fff;border:1px solid #dce4ef;border-radius:9px}.filter label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#53657c}.filter input{height:38px;padding:0 10px;border:1px solid #d5deea;border-radius:6px;background:#fff;color:#17345c;cursor:pointer}.filter input:focus{outline:none;border-color:#1766d1;box-shadow:0 0 0 2px rgba(23,102,209,.12)}.btn{border:0;border-radius:7px;background:#061d43;color:#fff;padding:10px 15px;font-weight:600;cursor:pointer;transition:.2s}.btn:hover,.btn:focus-visible{background:#1261d4;transform:translateY(-1px)}.btn:focus-visible,.icon:focus-visible,.eye:focus-visible,.secondary:focus-visible,.switch-btn:focus-visible,.close:focus-visible{outline:3px solid rgba(18,97,212,.22);outline-offset:1px}.btn.small{padding:8px 12px;font-size:12px}.secondary{border:1px solid #d5deea;border-radius:7px;background:#fff;color:#263c5c;padding:9px 13px;cursor:pointer;transition:.2s}.secondary:hover{background:#f1f5fa;border-color:#b8c6d8}.icon{border:1px solid #d7e0eb;background:#fff;color:#123b6c;padding:7px 10px;border-radius:6px;cursor:pointer;transition:.2s}.icon:hover{background:#eaf2ff;border-color:#8db5e8;color:#0757bd}.eye{width:36px;height:36px;border:1px solid #d5deea;background:#fff;color:#123b6c;border-radius:6px;cursor:pointer;transition:.2s}.eye:hover{background:#eaf2ff;border-color:#1261d4;color:#1261d4}.switch{display:flex;align-items:center;padding:3px;border:1px solid #d5deea;background:#fff;border-radius:8px;box-shadow:0 1px 2px rgba(9,37,79,.04)}.switch-btn{border:0;background:transparent;color:#52657f;padding:8px 13px;border-radius:6px;font-size:12px;font-weight:700;cursor:pointer;transition:.2s}.switch-btn:hover{background:#f0f5fb;color:#123f78}.switch-btn.active{background:#061d43;color:#fff}.small-switch .switch-btn{padding:7px 11px}.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.detail-head h2{margin:0 0 5px}.detail-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.muted{margin:0;color:#6a7c93;font-size:12px}.total{display:flex;align-items:center;gap:15px;padding:20px;margin-bottom:16px;background:#fff;border:1px solid #dce4ef;border-radius:9px}.total>span{width:54px;height:54px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:#eee8ff;color:#7654d8;font-size:25px}.total small{display:block;margin-bottom:3px;color:#50627b}.total strong{display:block;font-size:27px;color:#062457}.total-mini{margin-top:5px;color:#6a7b92;font-size:12px}.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.card{background:#fff;border:1px solid #dce4ef;border-radius:9px;padding:16px;min-width:0}.card h2{margin:0 0 15px;font-size:16px;color:#082858}.card h2.line{margin-top:18px;padding-top:15px;border-top:1px solid #e2e7ee}.chartrow{display:grid;grid-template-columns:minmax(280px,1fr) minmax(190px,260px);gap:20px;align-items:center;min-height:300px}.chart{position:relative;width:100%;height:300px}.chart canvas{max-width:100%;max-height:100%}.legend{display:flex;flex-direction:column;gap:13px;min-width:0}.legend-item{display:grid;grid-template-columns:10px minmax(0,1fr);gap:9px;align-items:start;min-width:0}.legend-item .dot{width:9px;height:9px;border-radius:50%;margin-top:5px}.legend-item b{display:block;font-size:13px;color:#19365e;white-space:normal;overflow-wrap:anywhere}.legend-value{margin-top:2px;color:#687990;font-size:12px;line-height:1.3}.empty{padding:20px;text-align:center;color:#74859b;font-size:13px}.apartado-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,auto) 40px;align-items:center;gap:12px;min-height:64px;padding:8px 0;border-bottom:1px solid #e5eaf1}.apartado-row:last-child{border-bottom:0}.apartado-row>div:first-child{display:flex;align-items:center;gap:8px;min-width:0}.apartado-row b{color:#17365f;font-size:14px}.folder{color:#123f78}.apartado-values{display:grid;grid-template-columns:repeat(3,minmax(95px,auto));gap:18px;align-items:center}.apartado-values span{display:flex;flex-direction:column;gap:2px;color:#74839a;font-size:10px;text-transform:uppercase}.apartado-values b{font-size:12px;color:#17365f}.apartado-values .positive b{color:#218a61}.apartado-values .negative b{color:#d34d4d}.detail-summary{display:flex;gap:20px;flex-wrap:wrap;margin-top:14px;padding-top:13px;border-top:1px solid #e2e7ee;color:#65778e;font-size:12px}.detail-summary b{color:#17365f}.expense.head{display:grid;grid-template-columns:120px minmax(180px,1.5fr) minmax(120px,1fr) 155px;gap:15px;align-items:center;padding:10px 12px;background:#f7f9fc;border:1px solid #dfe6ef;color:#60728b;font-size:10px}.expense-row{display:grid;grid-template-columns:120px minmax(180px,1.5fr) minmax(120px,1fr) 155px;gap:15px;align-items:center;min-height:51px;padding:8px 12px;border-bottom:1px solid #e5eaf1;font-size:12px;color:#19375f}.expense-row:hover{background:#f8fbff}.expense-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-row>b{text-align:right;white-space:nowrap;color:#102f59}.expense-row b small{display:block;margin-top:2px;font-size:10px;font-weight:400;color:#75869c}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:15px}.apartcard{border:1px solid #dce4ef;border-radius:8px;padding:17px;background:#fff;transition:.2s}.apartcard:hover{border-color:#9cb9dc;box-shadow:0 4px 14px rgba(18,61,110,.08);transform:translateY(-1px)}.apartcard-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.apartcard h3{margin:0 0 10px;color:#092b59}.status-dot{width:8px;height:8px;border-radius:50%;background:#41b879;flex:0 0 auto}.apartcard .amount{font-size:22px;font-weight:700;color:#092b59}.apartcard p{margin:4px 0 15px;font-size:12px;color:#6b7b91}.balance-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:15px}.balance-grid>div{padding:9px;border:1px solid #e4eaf2;border-radius:7px;background:#fafbfd}.balance-grid small{display:block;color:#718199;font-size:10px;margin-bottom:3px}.balance-grid b{font-size:12px;color:#17365f}.apartcard .actions{display:flex;gap:7px;flex-wrap:wrap}.category{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid #e5eaf1}.category:last-child{border-bottom:0}.category b{color:#17365f;font-size:13px}.category span{display:flex;gap:6px}.modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(4,20,45,.48)}.modal.hidden{display:none}.modalbox{width:min(450px,100%);background:#fff;border-radius:10px;padding:20px;box-shadow:0 15px 45px rgba(0,0,0,.2)}.modalbox .adminhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modalbox .adminhead h2{margin:0}.close{border:0;background:transparent;color:#53657b;font-size:24px;cursor:pointer;line-height:1}.close:hover{color:#1261d4}.modalbox form{display:flex;flex-direction:column;gap:15px}.modalbox label{display:flex;flex-direction:column;gap:7px;color:#53657b;font-size:13px}.modalbox input,.modalbox select{width:100%;height:40px;padding:0 10px;border:1px solid #d5deea;border-radius:6px;background:#fff;color:#17345c}.modalbox input:focus,.modalbox select:focus{outline:none;border-color:#1261d4;box-shadow:0 0 0 2px rgba(18,97,212,.1)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.conversion{padding:11px 12px;border-radius:7px;background:#f4f8fd;border:1px solid #dce6f2;color:#5d7088;font-size:12px}.conversion b{color:#062457;font-size:14px}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}
@media(max-width:1200px){.apartado-row{grid-template-columns:minmax(0,1fr) 40px}.apartado-values{grid-column:1/2;grid-row:2;grid-template-columns:repeat(3,1fr);margin-left:20px}.apartado-row .eye{grid-column:2;grid-row:1/3}.grid{grid-template-columns:1fr}.chartrow{grid-template-columns:minmax(280px,1fr) minmax(180px,250px)}}
@media(max-width:750px){.sidebar{width:190px;min-width:190px}.content{padding:18px 12px}.title{align-items:flex-start;flex-direction:column}.chartrow{grid-template-columns:1fr}.chart{height:280px}.legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.expense.head{display:none}.expense-row{grid-template-columns:1fr 1fr;gap:7px 12px}.expense-row>b{text-align:left}.detail-head{flex-direction:column}.detail-actions{width:100%;justify-content:space-between}.apartado-values{margin-left:0}.form-grid{grid-template-columns:1fr}}
@media(max-width:550px){.app{display:block}.sidebar{width:100%;min-width:0;min-height:auto}.sidebar nav{padding:8px 12px}.nav{display:inline-block;margin-right:5px}.topbar{padding:0 15px}.title{gap:12px}.filter{flex-wrap:wrap}.switch{max-width:100%;overflow:auto}.switch-btn{white-space:nowrap}.apartado-row{grid-template-columns:minmax(0,1fr) 40px}.apartado-values{grid-template-columns:1fr 1fr 1fr}.apartado-values span{font-size:9px}.apartado-values b{font-size:10px}.balance-grid{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.legend{grid-template-columns:1fr}}
