:root{--bg:#f4f5f7;--card:#fff;--text:#17191d;--muted:#6b7280;--border:#dfe2e7;--accent:#23262d;--soft:#eef0f3;--danger:#b42318;--good:#157347;--warn:#9a6700}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{max-width:1240px;margin:0 auto;padding:24px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.brand{font-size:25px;font-weight:800;letter-spacing:-.04em}.brand span{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:0}.sub,.muted{color:var(--muted)}.user{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--muted)}a{color:inherit}.tabs{display:flex;gap:6px;overflow:auto;margin-bottom:12px;padding-bottom:2px}.tab,.segmented button,.account-filter{border:1px solid var(--border);background:var(--card);padding:9px 14px;border-radius:10px;font-weight:700;cursor:pointer;white-space:nowrap;color:var(--text)}.tab.active,.account-filter.active{background:var(--accent);color:#fff;border-color:var(--accent)}.tab.disabled{opacity:.42;cursor:not-allowed}.period-bar{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:12px 14px;display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:20px}.period-bar label{display:block;font-size:11px;color:var(--muted);font-weight:700;margin-bottom:4px}.period-bar input{padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:#fff;font-size:15px}.period-note{font-size:12px;color:var(--muted);text-align:right}.view{display:none}.view.active{display:block}.view-title{font-size:21px;margin:0 0 3px;letter-spacing:-.02em}.toolbar{display:flex;justify-content:space-between;align-items:end;gap:14px;flex-wrap:wrap;margin-bottom:14px}.toolbar p{margin:0;font-size:13px}.segmented{display:flex;gap:6px;flex-wrap:wrap}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}.kpis.daily-kpis{grid-template-columns:repeat(2,minmax(160px,240px))}.kpis article,.panel,.close-preview,.expense-row,.control-row,.daily-row{background:var(--card);border:1px solid var(--border);border-radius:14px}.kpis article{padding:15px}.kpis span,.close-preview span{display:block;color:var(--muted);font-size:12px}.kpis strong{display:block;font-size:21px;margin-top:4px}.close-preview{padding:15px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}.close-preview strong{display:block;margin-top:3px}.close-preview small{color:var(--muted)}.expense-list,.control-list,.daily-list{display:grid;gap:9px}.expense-row{padding:13px;display:grid;grid-template-columns:minmax(170px,1.5fr) .8fr 1fr .9fr .85fr;gap:14px;align-items:center}.expense-name{font-weight:750}.tiny{font-size:12px;color:var(--muted)}.metric-label{font-size:11px;color:var(--muted);display:block;margin-bottom:3px}.metric-value{font-weight:750;margin-top:3px}.actual-input,.status-select,.control-row input,.control-row select,.control-form input,.control-form select,.daily-form input,.daily-form select,.account-control-row input,.user-form input,.reset-password{width:100%;border:1px solid var(--border);border-radius:9px;padding:9px 10px;background:#fff;color:var(--text);font-size:15px}.delta.negative{color:var(--danger)}.status-field{display:block}.status-badge{display:inline-flex;align-items:center;min-height:36px;padding:7px 10px;border-radius:999px;background:var(--soft);font-size:12px;font-weight:750}.status-badge.auto{color:#3f4b5a}.auto-real{min-width:0}.actions{display:flex;gap:6px;flex-wrap:wrap}.btn{border:1px solid var(--border);background:#fff;padding:9px 12px;border-radius:9px;font-weight:700;cursor:pointer;color:var(--text)}.btn.primary{background:var(--accent);color:white;border-color:var(--accent)}.btn.small{font-size:12px;padding:7px 9px}.btn.danger{color:var(--danger)}.panel{padding:18px;margin-bottom:16px}.panel h2,.section-head h2{margin:0 0 4px;font-size:18px}.panel p,.section-head p{margin:0 0 14px;font-size:13px}.control-form{display:grid;grid-template-columns:1.35fr .8fr 1fr 1fr 1fr 1fr;gap:12px;align-items:end}.control-form label,.control-row label,.daily-form label,.user-form label{font-size:12px;color:var(--muted);font-weight:650}.form-actions{grid-column:1/-1;display:flex;align-items:center;gap:12px}.check-line{display:flex!important;gap:8px;align-items:center;min-height:40px;color:var(--text)!important}.check-line input{width:auto}.section-head{display:flex;justify-content:space-between;gap:12px;margin:20px 0 10px}.control-row{padding:13px;display:grid;grid-template-columns:1.35fr .8fr 1fr 1fr 1fr 1fr 1.2fr auto;gap:10px;align-items:end}.control-flags{display:grid;gap:2px}.note{font-size:13px;margin-top:16px}.loading{padding:20px;text-align:center;color:var(--muted)}.toast{position:fixed;right:20px;bottom:20px;max-width:380px;background:#17191d;color:#fff;padding:11px 14px;border-radius:10px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.18s;z-index:100}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#8f1d17}.daily-form{display:grid;grid-template-columns:.85fr 1.6fr 1fr 1fr 1fr;gap:12px;align-items:end}.daily-form .wide{min-width:0}.daily-row{padding:12px 13px;display:grid;grid-template-columns:110px minmax(160px,1fr) 130px auto;gap:14px;align-items:center}.daily-date{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.daily-main{min-width:0}.daily-main strong{display:block;overflow-wrap:anywhere}.daily-amount{text-align:right;font-weight:800;font-variant-numeric:tabular-nums}.accounts-control{display:grid;gap:9px;max-width:720px}.account-control-row{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:12px;align-items:end;border-top:1px solid var(--border);padding-top:10px}.account-control-row:first-child{border-top:0;padding-top:0}.account-control-row .tiny{display:block;margin-bottom:4px}.user-form{display:grid;grid-template-columns:1.5fr 1fr auto;gap:12px;align-items:end;margin-top:14px}.users-list{display:grid;gap:10px;margin-top:16px}.user-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(360px,1.5fr);align-items:center;gap:16px;border-top:1px solid var(--border);padding-top:12px}.user-actions{display:grid;grid-template-columns:auto minmax(150px,1fr) auto;gap:8px;align-items:center}.switch{display:flex;gap:7px;align-items:center;min-height:40px;font-size:12px}.switch input{width:auto}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(420px,100%);background:#fff;border:1px solid var(--border);border-radius:18px;padding:28px}.login-card h1{font-size:20px;margin:22px 0 6px}.login-card p{color:var(--muted);margin:0 0 18px}.login-form{display:grid;gap:14px}.login-form label{font-size:13px;font-weight:700}.login-form input{width:100%;margin-top:5px;padding:11px;border:1px solid var(--border);border-radius:10px;font-size:16px}.alert{padding:10px;border-radius:9px;margin-bottom:14px}.alert.error{background:#fff1f0;color:#8f1d17;border:1px solid #f1c4c0}
@media(max-width:1050px){.expense-row{grid-template-columns:minmax(160px,1.3fr) .8fr 1fr .9fr}.expense-row>div:last-child{grid-column:1/-1}.control-form{grid-template-columns:repeat(3,1fr)}.control-row{grid-template-columns:repeat(4,1fr)}.user-row{grid-template-columns:1fr}.user-actions{grid-template-columns:auto 1fr auto}}
@media(max-width:760px){.app-shell{padding:16px}.kpis{grid-template-columns:repeat(2,1fr)}.kpis.daily-kpis{grid-template-columns:1fr 1fr}.expense-row{grid-template-columns:1fr 1fr}.expense-row .expense-main{grid-column:1/-1}.control-form,.control-row,.daily-form{grid-template-columns:1fr 1fr}.daily-form .wide{grid-column:1/-1}.daily-row{grid-template-columns:88px 1fr auto}.daily-row .actions{grid-column:2/-1}.period-bar{align-items:flex-start;flex-direction:column}.period-note{text-align:left}.user-actions{grid-template-columns:1fr}.form-actions{grid-column:1/-1}}
@media(max-width:520px){.topbar{align-items:flex-start}.user span{display:none}.kpis,.kpis.daily-kpis{grid-template-columns:1fr 1fr}.kpis strong{font-size:18px}.close-preview{align-items:flex-start;flex-direction:column}.expense-row,.control-form,.control-row,.daily-form{grid-template-columns:1fr}.daily-form .wide{grid-column:auto}.daily-row{grid-template-columns:1fr auto}.daily-date{grid-column:1/-1}.daily-row .actions{grid-column:1/-1}.form-actions{grid-column:auto}.segmented{width:100%}.segmented button{flex:1}.toolbar{align-items:stretch}.account-control-row{grid-template-columns:1fr}.user-row{grid-template-columns:1fr}}

/* v0.3 · importación por correo y fuentes */
.panel-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.count-badge{display:inline-flex;min-width:24px;height:24px;align-items:center;justify-content:center;border-radius:999px;background:var(--accent);color:#fff;font-size:12px;vertical-align:middle}.incoming-panel{border-style:solid}.incoming-list{display:grid;gap:12px}.incoming-row{border-top:1px solid var(--border);padding-top:14px}.incoming-row:first-child{border-top:0;padding-top:0}.incoming-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:10px}.origin-chip{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:var(--soft);font-size:11px;font-weight:800;white-space:nowrap}.incoming-grid{display:grid;grid-template-columns:.8fr 1.6fr .9fr 1.1fr 1fr 1.25fr .65fr 1fr;gap:10px;align-items:end}.incoming-grid label,.source-form label,.mail-form label,.user-admin-grid label{font-size:12px;color:var(--muted);font-weight:650}.incoming-grid input,.incoming-grid select,.source-form input,.source-form select,.mail-form input,.mail-form select,.user-import{width:100%;border:1px solid var(--border);border-radius:9px;padding:9px 10px;background:#fff;color:var(--text);font-size:14px}.incoming-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.empty-good{padding:12px;border:1px dashed var(--border);border-radius:10px;color:var(--muted);font-size:13px}.source-form{display:grid;grid-template-columns:1.2fr 1fr .9fr 1fr .85fr;gap:12px;align-items:end;margin-bottom:16px}.sources-list{display:grid;gap:8px}.source-row{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid var(--border);padding-top:10px}.source-row:first-child{border-top:0}.source-actions{display:flex;align-items:center;gap:10px}.user-form{grid-template-columns:1.25fr 1.25fr 1fr auto}.user-admin-grid{display:grid;grid-template-columns:minmax(220px,1.2fr) auto auto minmax(180px,1fr) auto;gap:8px;align-items:end}.user-admin-grid .admin-label{align-self:center}.mail-form{display:grid;grid-template-columns:1.2fr .55fr .8fr 1.2fr 1fr;gap:12px;align-items:end}.mail-status{margin-top:14px}.diag-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.diag-item{border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--soft)}.diag-item span{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}.diag-item strong{font-size:13px}.diag-item strong.ok{color:var(--good)}.diag-item strong.bad{color:var(--danger)}.cron-box{margin-top:10px;border:1px solid var(--border);border-radius:10px;padding:10px}.cron-box span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.cron-box code{display:block;white-space:normal;overflow-wrap:anywhere;font-size:12px}.origin-chip,.count-badge{user-select:none}
@media(max-width:1180px){.incoming-grid{grid-template-columns:repeat(4,1fr)}.incoming-desc{grid-column:span 2}.user-admin-grid{grid-template-columns:1.4fr auto 1fr auto}.user-admin-grid .switch,.user-admin-grid .admin-label{grid-row:2}.mail-form{grid-template-columns:repeat(3,1fr)}.diag-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.source-form{grid-template-columns:1fr 1fr}.incoming-grid{grid-template-columns:1fr 1fr}.incoming-desc{grid-column:1/-1}.mail-form{grid-template-columns:1fr 1fr}.user-form{grid-template-columns:1fr 1fr}.user-admin-grid{grid-template-columns:1fr 1fr}.source-row{align-items:flex-start;flex-direction:column}.diag-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.source-form,.incoming-grid,.mail-form,.user-form,.user-admin-grid,.diag-grid{grid-template-columns:1fr}.incoming-desc{grid-column:auto}.incoming-head{flex-direction:column}.source-actions{width:100%;justify-content:space-between}}
