@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');
:root{--ink:#26213b;--muted:#77738a;--line:#eee8f4;--paper:#fff;--bg:#faf7fc;--purple:#7c3aed;--purple-dark:#5b21b6;--pink:#ec4899;--green:#15803d;--red:#be123c;--shadow:0 18px 55px rgba(67,35,95,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;min-height:100vh}h1,h2,h3,strong{font-family:Manrope,'DM Sans',sans-serif}h1{font-size:clamp(1.7rem,4vw,2.45rem);letter-spacing:-.055em;margin:.2rem 0 .5rem}h2{font-size:1.35rem;letter-spacing:-.035em;margin:0 0 .35rem}h3{font-size:1rem;margin:0 0 1rem}.ambient{position:fixed;pointer-events:none;filter:blur(70px);opacity:.45;z-index:-1;border-radius:50%}.ambient-a{width:350px;height:350px;background:#fbcfe8;top:-100px;left:-100px}.ambient-b{width:400px;height:400px;background:#ddd6fe;right:-140px;bottom:-120px}.shell{width:min(1200px,100%);margin:auto;padding:24px}.hidden{display:none!important}.muted{color:var(--muted)}.tiny{font-size:.78rem}.intro{line-height:1.65;margin-bottom:1.8rem}.eyebrow{font-size:.72rem;letter-spacing:.15em;font-weight:700;color:var(--purple);margin:0 0 .55rem}.login-card{width:min(440px,100%);margin:5vh auto;background:rgba(255,255,255,.92);padding:clamp(25px,5vw,42px);border:1px solid #fff;border-radius:28px;box-shadow:var(--shadow)}.brand-mark{width:82px;height:82px;border-radius:24px;overflow:hidden;margin-bottom:24px;box-shadow:0 8px 22px #e9d5ff}.brand-mark img,.brand-small{width:100%;height:100%;object-fit:cover}.login-card h1 span,.welcome h1 span{color:var(--pink)}label{display:block;font-size:.84rem;font-weight:700;margin:15px 0 7px}input,select,textarea{font:inherit;color:var(--ink);width:100%;border:1px solid #e6dfed;background:#fff;border-radius:12px;padding:12px 13px;outline:none;min-height:45px}input:focus,select:focus,textarea:focus{border-color:#a78bfa;box-shadow:0 0 0 3px #ede9fe}button{font:inherit;font-weight:700;border:0;border-radius:12px;padding:12px 16px;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s}button:hover{transform:translateY(-1px)}button:disabled{opacity:.55;cursor:not-allowed}.primary{background:linear-gradient(135deg,var(--purple),#9d4edd);color:white;box-shadow:0 7px 16px #7c3aed26}.primary:hover{background:var(--purple-dark)}.secondary{background:#f3e8ff;color:#6b21a8}.quiet{background:#fff;border:1px solid var(--line);color:var(--muted)}.full{width:100%;margin-top:18px}.login-card .primary{margin-top:22px}.error{color:var(--red);font-size:.85rem;min-height:1em}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#ffffffd9;border:1px solid #fff;padding:13px 16px;border-radius:18px;box-shadow:0 8px 30px #3b07640a}.brand{display:flex;align-items:center;gap:11px}.brand-small{width:43px;height:43px;border-radius:13px}.brand strong{display:block;font-size:.96rem}.brand span{display:block;color:var(--muted);font-size:.76rem;margin-top:3px}.welcome{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:36px 3px 22px}.welcome p{margin:0}.date-chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 14px;font-size:.8rem;color:var(--muted);white-space:nowrap}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 8px 25px #3b076405;min-width:0}.metric-main{background:linear-gradient(135deg,#6d28d9,#9333ea);color:#fff;border:0}.metric span,.metric small{display:block;color:var(--muted);font-size:.79rem;line-height:1.45}.metric-main span,.metric-main small{color:#ede9fe}.metric strong{display:block;font-size:clamp(1.25rem,2.2vw,1.8rem);letter-spacing:-.05em;margin:12px 0 8px;overflow-wrap:anywhere}.tabs{display:flex;gap:7px;overflow-x:auto;padding:18px 0 8px;scrollbar-width:thin}.tab{background:transparent;color:var(--muted);white-space:nowrap;padding:11px 14px}.tab.active{background:#ede9fe;color:#6d28d9}.panel{display:none;background:#fff;border:1px solid var(--line);border-radius:20px;padding:clamp(17px,3vw,28px);margin-top:10px;box-shadow:0 8px 25px #3b076405}.panel.active{display:block}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.section-heading p{margin:0;font-size:.88rem}.section-heading.subhead{margin-top:28px;flex-wrap:wrap}.form-card{background:#fcfaff;border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:22px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.form-grid label{margin-top:8px}.span-all{grid-column:1/-1}.actions{display:flex;gap:10px;margin-top:18px}.hint{color:var(--muted);font-size:.78rem;line-height:1.55;margin:14px 0}.table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:14px}table{border-collapse:collapse;width:100%;min-width:650px;background:white}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid #f1edf5;font-size:.84rem;vertical-align:top}th{background:#fcfaff;color:#77738a;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em}tr:last-child td{border-bottom:0}.amount-in{color:var(--green);font-weight:700}.amount-out{color:var(--red);font-weight:700}.empty{padding:26px;text-align:center;color:var(--muted)}.inline-fields{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-fields select{min-width:180px}.inline-fields input{width:auto;min-width:140px}.loan-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.loan-card,.report-card,.summary-card{border:1px solid var(--line);border-radius:16px;padding:19px;background:white}.loan-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.loan-card h3{margin:0 0 5px}.loan-card p,.report-card p{color:var(--muted);font-size:.84rem;line-height:1.55}.loan-balance{font-size:1.35rem;font-weight:800;color:var(--purple);margin:15px 0}.pill{display:inline-block;background:#fef3c7;color:#92400e;border-radius:99px;padding:5px 9px;font-size:.7rem;font-weight:700}.pill.done{background:#dcfce7;color:#166534}.loan-actions{display:flex;gap:8px;flex-wrap:wrap}.loan-actions button{font-size:.8rem;padding:9px 11px}.notice{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:13px;padding:13px 15px;font-size:.84rem;line-height:1.55;margin-bottom:18px}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.report-card h3{margin-bottom:7px}.report-card .spacer{height:30px}.file-label{display:block;border:1px dashed #c4b5fd;padding:12px;border-radius:12px;color:#6b21a8;text-align:center;cursor:pointer;margin-top:12px}.file-label input{margin-top:10px;padding:5px}.summary-card{margin:16px 0}.summary-card strong{font-size:1.35rem}footer{text-align:center;color:var(--muted);font-size:.77rem;padding:25px 0 8px}footer span{display:block;margin-top:5px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#27213b;color:white;padding:13px 18px;border-radius:13px;box-shadow:var(--shadow);max-width:calc(100% - 30px);z-index:5;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.spacer{flex:1}@media(max-width:850px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.loan-list{grid-template-columns:1fr}}@media(max-width:560px){.shell{padding:13px}.login-card{margin:3vh auto;border-radius:22px}.topbar{padding:10px}.brand strong{font-size:.84rem}.brand span{font-size:.7rem}.brand-small{width:36px;height:36px}.quiet{padding:10px;font-size:.78rem}.welcome{align-items:flex-start;flex-direction:column;padding:28px 2px 18px}.metrics{gap:9px}.metric{padding:14px;border-radius:15px}.metric span,.metric small{font-size:.72rem}.metric strong{margin:10px 0;font-size:1.25rem}.tabs{margin:0 -2px}.panel{padding:15px;border-radius:17px}.section-heading{align-items:flex-start;flex-direction:column}.section-heading>button{width:100%}.form-grid,.report-grid{grid-template-columns:1fr}.span-all{grid-column:auto}.form-card{padding:15px}.inline-fields{width:100%}.inline-fields select,.inline-fields input{width:100%;min-width:0}.actions{flex-direction:column}.actions button{width:100%}.date-chip{white-space:normal}}

/* Tema oscuro opcional */
.top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.danger{background:#ffe4e6;color:#9f1239}.person-actions{white-space:nowrap}
:root[data-theme="dark"]{--ink:#eeeaf8;--muted:#b5aec9;--line:#393247;--paper:#211d2b;--bg:#15121c;--shadow:0 18px 55px rgba(0,0,0,.28)}
:root[data-theme="dark"] body{background:var(--bg);color:var(--ink)}
:root[data-theme="dark"] .login-card,:root[data-theme="dark"] .topbar,:root[data-theme="dark"] .metric:not(.metric-main),:root[data-theme="dark"] .panel,:root[data-theme="dark"] .form-card,:root[data-theme="dark"] .loan-card,:root[data-theme="dark"] .report-card,:root[data-theme="dark"] .summary-card,:root[data-theme="dark"] .date-chip{background:#211d2b;border-color:#393247;color:var(--ink)}
:root[data-theme="dark"] input,:root[data-theme="dark"] select,:root[data-theme="dark"] textarea,:root[data-theme="dark"] table{background:#191622;color:var(--ink);border-color:#393247}
:root[data-theme="dark"] th{background:#292436;color:#c8c0d9}:root[data-theme="dark"] td{border-color:#393247}:root[data-theme="dark"] .secondary{background:#38284f;color:#e9d5ff}:root[data-theme="dark"] .quiet{background:#211d2b;color:var(--muted);border-color:#393247}:root[data-theme="dark"] .tab.active{background:#38284f;color:#e9d5ff}:root[data-theme="dark"] .danger{background:#4a1e2b;color:#fecdd3}:root[data-theme="dark"] .ambient{opacity:.12}
