:root {
      --bg: #0a0a0f;
      --bg2: #111118;
      --card: rgba(255,255,255,0.03);
      --border: rgba(255,255,255,0.06);
      --text: #e4e4e7;
      --muted: #71717a;
      --primary: #6366f1;
      --primary2: #7c3aed;
      --green: #22c55e;
      --yellow: #f59e0b;
      --purple: #8b5cf6;
      --safe-top: env(safe-area-inset-top, 0px);
      --safe-bottom: env(safe-area-inset-bottom, 0px);
    }
    * { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
    body {
      font-family: 'Outfit', sans-serif;
      background: linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%);
      color: var(--text); min-height: 100dvh;
      padding-top: var(--safe-top); padding-bottom: var(--safe-bottom);
      overflow-x: hidden;
    }
    .app { max-width: 520px; margin: 0 auto; padding: 20px 16px 100px; }
    .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
    .header-left { display: flex; align-items: center; gap: 12px; }
    .logo { font-size: 32px; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--primary), var(--primary2)); border-radius: 14px; }
    .header h1 { font-size: 20px; font-weight: 700; color: #fff; letter-spacing: -0.02em; }
    .header p { font-size: 13px; color: var(--muted); }
    .header-right { display: flex; gap: 8px; }
    .icon-btn { background: rgba(255,255,255,0.06); border: none; border-radius: 10px; width: 40px; height: 40px; font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--text); }
    .icon-btn:active { background: rgba(255,255,255,0.12); }
    .add-btn { background: linear-gradient(135deg, var(--primary), var(--primary2)); color: #fff; font-size: 20px; font-weight: 700; }
    .stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 20px; }
    .stat { background: var(--card); border-radius: 12px; padding: 12px 8px; display: flex; flex-direction: column; align-items: center; border: 1px solid var(--border); }
    .stat-n { font-size: 20px; font-weight: 700; }
    .stat-l { font-size: 10px; color: var(--muted); margin-top: 2px; text-transform: uppercase; letter-spacing: 0.05em; }
    .toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; flex-wrap: wrap; gap: 8px; }
    .timetog { display: flex; gap: 0; border-radius: 8px; overflow: hidden; border: 1px solid var(--border); margin-bottom: 16px; }
    .ttbtn { flex: 1; padding: 8px 0; font-size: 12px; font-weight: 600; cursor: pointer; font-family: inherit; border: none; background: rgba(255,255,255,0.03); color: #a1a1aa; text-align: center; transition: all 0.2s; }
    .ttbtn.on { background: rgba(99,102,241,0.2); color: #a78bfa; }
    .filters { display: flex; gap: 6px; flex-wrap: wrap; }
    .fbtn { background: transparent; border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; padding: 5px 10px; font-size: 11px; color: #a1a1aa; cursor: pointer; font-weight: 500; font-family: inherit; }
    .fbtn.on { background: rgba(99,102,241,0.15); border-color: var(--primary); color: #a78bfa; }
    .views { display: flex; gap: 4px; }
    .vbtn { background: rgba(255,255,255,0.04); border: 1px solid var(--border); border-radius: 8px; width: 34px; height: 34px; font-size: 16px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
    .vbtn.on { background: rgba(99,102,241,0.2); border-color: var(--primary); }
    .err { background: rgba(239,68,68,0.1); border: 1px solid rgba(239,68,68,0.2); border-radius: 10px; padding: 10px 14px; font-size: 12px; color: #fca5a5; margin-bottom: 16px; }
    .sec { font-size: 16px; font-weight: 600; color: #fff; margin-bottom: 14px; }
    .sub { font-size: 14px; font-weight: 600; color: #d4d4d8; margin-bottom: 10px; }
    .mth { font-size: 14px; font-weight: 700; color: var(--primary); margin: 16px 0 8px; text-transform: uppercase; letter-spacing: 0.06em; }
    .empty { color: #52525b; font-size: 14px; text-align: center; padding: 32px; }
    .ecard { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: var(--card); border-radius: 14px; margin-bottom: 8px; cursor: pointer; border: 1px solid rgba(255,255,255,0.05); }
    .ecard:active { background: rgba(255,255,255,0.06); }
    .edate { display: flex; flex-direction: column; align-items: center; min-width: 42px; }
    .eday { font-size: 22px; font-weight: 700; color: #fff; line-height: 1; }
    .emon { font-size: 10px; color: var(--muted); font-weight: 600; margin-top: 2px; letter-spacing: 0.08em; }
    .einfo { flex: 1; min-width: 0; }
    .ename { font-size: 14px; font-weight: 600; color: var(--text); display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .emeta { display: flex; gap: 10px; margin-top: 3px; }
    .emeta span { font-size: 11px; color: var(--muted); }
    .ecache { color: #a78bfa !important; font-weight: 600; }
    .badge { font-size: 10px; font-weight: 600; padding: 4px 8px; border-radius: 6px; white-space: nowrap; text-transform: uppercase; letter-spacing: 0.04em; }
    .b-conf { background: rgba(34,197,94,0.12); color: var(--green); }
    .b-pend { background: rgba(245,158,11,0.12); color: var(--yellow); }
    .b-res { background: rgba(139,92,246,0.12); color: var(--purple); }
    .allbtn { width: 100%; background: rgba(99,102,241,0.1); border: 1px solid rgba(99,102,241,0.2); border-radius: 12px; padding: 12px; color: #a78bfa; font-size: 13px; font-weight: 600; cursor: pointer; margin-top: 8px; font-family: inherit; }
    .calh { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
    .calm { font-size: 18px; font-weight: 700; color: #fff; }
    .nbtn { background: rgba(255,255,255,0.06); border: none; border-radius: 8px; width: 36px; height: 36px; font-size: 14px; color: #a1a1aa; cursor: pointer; display: flex; align-items: center; justify-content: center; }
    .cgrid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
    .cdh { text-align: center; font-size: 11px; font-weight: 600; color: #52525b; padding: 6px 0; text-transform: uppercase; }
    .ccell { aspect-ratio: 1; border-radius: 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.03); }
    .ccell.today { background: rgba(99,102,241,0.15); border-color: rgba(99,102,241,0.3); }
    .ccell span { font-size: 13px; font-weight: 500; color: #a1a1aa; }
    .cdot { width: 7px; height: 7px; border-radius: 50%; cursor: pointer; }
    .mini { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: var(--card); border-radius: 10px; margin-bottom: 6px; cursor: pointer; border: 1px solid rgba(255,255,255,0.04); }
    .mdot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
    .mday { font-size: 13px; font-weight: 700; color: #fff; min-width: 22px; }
    .mname { font-size: 13px; color: #d4d4d8; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .mcache { font-size: 12px; color: #a78bfa; font-weight: 600; }
    .modal { position: fixed; inset: 0; background: rgba(0,0,0,0.75); backdrop-filter: blur(10px); display: flex; align-items: center; justify-content: center; z-index: 200; padding: 16px; }
    .mcard { background: #16161e; border-radius: 22px; width: 100%; max-width: 400px; max-height: 90vh; overflow-y: auto; position: relative; border: 1px solid rgba(255,255,255,0.08); }
    .macc { height: 4px; border-radius: 22px 22px 0 0; }
    .mhdr { display: flex; justify-content: space-between; align-items: center; padding: 18px 20px 0; }
    .mtitle { font-size: 19px; font-weight: 700; color: #fff; }
    .xbtn { background: rgba(255,255,255,0.06); border: none; border-radius: 8px; width: 32px; height: 32px; font-size: 16px; color: var(--muted); cursor: pointer; display: flex; align-items: center; justify-content: center; }
    .mbody { padding: 16px 20px 20px; }
    .ditem { display: flex; flex-direction: column; gap: 4px; margin-bottom: 14px; }
    .dlabel { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; }
    .dval { font-size: 15px; color: var(--text); font-weight: 500; }
    .closebtn { width: 100%; margin-top: 8px; padding: 12px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; color: #a1a1aa; font-size: 14px; font-weight: 500; cursor: pointer; font-family: inherit; }
    .fg { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px; }
    .fl { font-size: 11px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
    .fi { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 10px; padding: 10px 12px; font-size: 14px; color: var(--text); outline: none; font-family: inherit; width: 100%; }
    .fi:focus { border-color: var(--primary); }
    .fi option, select.fi option { background:#111827 !important; color:#f8fafc !important; }
    .fi optgroup, select.fi optgroup { background:#111827 !important; color:#c4b5fd !important; }
    .client-autofill-box { background:linear-gradient(135deg,rgba(99,102,241,0.11),rgba(255,255,255,0.035)); border:1px solid rgba(99,102,241,0.20); border-radius:16px; padding:12px; margin: 0 0 14px; }
    .client-autofill-title { color:#f8fafc; font-size:12px; font-weight:900; margin-bottom:8px; letter-spacing:.01em; }
    .client-autofill-box .fi { background:#111827 !important; color:#f8fafc !important; border-color:rgba(255,255,255,0.16); font-weight:700; }
    .client-autofill-box .fi option { background:#111827 !important; color:#f8fafc !important; }
    .selected-client-note { margin-top:8px; color:#c4b5fd; font-size:11px; font-weight:900; line-height:1.35; }
    .client-selected-field { display:flex; justify-content:space-between; align-items:center; gap:10px; min-height:42px; padding:10px 11px; border-radius:13px; border:1px solid rgba(255,255,255,.13); background:#0f172a; color:#f8fafc; margin-bottom:9px; }
    .client-selected-field span { color:#a1a1aa; font-size:11px; font-weight:850; text-transform:uppercase; letter-spacing:.04em; }
    .client-selected-field strong { color:#f8fafc; font-size:13px; font-weight:950; text-align:right; }
    .client-selected-field.has-client { border-color:rgba(34,197,94,.35); background:linear-gradient(135deg,rgba(34,197,94,.10),rgba(15,23,42,.96)); }

    /* Fase 2.56 - Nuevo bolo más rápido y profesional */
    .booking-intro { border:1px solid rgba(99,102,241,.22); background:linear-gradient(135deg,rgba(99,102,241,.14),rgba(34,197,94,.055)); border-radius:20px; padding:13px; margin-bottom:13px; }
    .booking-intro strong { display:block; color:#fff; font-size:14px; font-weight:950; margin-bottom:4px; }
    .booking-intro span { display:block; color:#c4c4cc; font-size:11px; line-height:1.4; }
    .booking-section { border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.035); border-radius:18px; margin:12px 0; overflow:hidden; }
    .booking-section summary { list-style:none; cursor:pointer; padding:13px; color:#f4f4f5; font-size:12px; font-weight:950; display:flex; justify-content:space-between; align-items:center; gap:10px; }
    .booking-section summary::-webkit-details-marker { display:none; }
    .booking-section summary:after { content:'▾'; color:#a5b4fc; font-size:15px; font-weight:950; transition:transform .18s ease; }
    .booking-section[open] summary:after { transform:rotate(180deg); color:#fbbf24; }
    .booking-section-body { padding:0 13px 13px; }
    .booking-summary { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin:12px 0; }
    .booking-summary-card { border:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.17); border-radius:15px; padding:10px; min-width:0; }
    .booking-summary-card span { display:block; color:#a1a1aa; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; margin-bottom:4px; }
    .booking-summary-card strong { display:block; color:#fff; font-size:12px; line-height:1.22; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .booking-warning { border:1px solid rgba(245,158,11,.24); background:rgba(245,158,11,.08); color:#fbbf24; border-radius:14px; padding:10px 11px; font-size:11px; line-height:1.4; margin:10px 0; }
    .booking-warning.ok { border-color:rgba(34,197,94,.22); background:rgba(34,197,94,.08); color:#86efac; }
    .booking-choice-row { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin:8px 0 2px; }
    .booking-choice { border:1px solid rgba(255,255,255,.09); background:rgba(255,255,255,.045); color:#d4d4d8; border-radius:14px; padding:11px 10px; font-size:12px; font-weight:950; font-family:inherit; cursor:pointer; text-align:left; }
    .booking-choice small { display:block; margin-top:4px; color:#8b8b95; font-size:10px; font-weight:800; line-height:1.25; }
    .booking-choice.active { border-color:rgba(99,102,241,.45); background:rgba(99,102,241,.16); color:#fff; }
    .booking-choice.enb.active { border-color:rgba(249,115,22,.45); background:rgba(249,115,22,.14); color:#fed7aa; }
    .booking-footer-sticky { position:sticky; bottom:0; z-index:3; background:linear-gradient(180deg,rgba(24,24,27,0),rgba(24,24,27,.96) 28%,rgba(24,24,27,1)); padding-top:12px; margin-top:10px; }
    @media (max-width:390px){ .booking-summary,.booking-choice-row{grid-template-columns:1fr;} }

    .frow { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; width:100%; }
    .frow .fg { min-width:0; }
    .frow .fi { min-width:0; min-inline-size:0; max-width:100%; }
    .frow input[type="time"].fi::-webkit-date-and-time-value { min-width:0; margin:0; text-align:center; }
    .srow { display: flex; gap: 8px; }
    .sbtn { flex: 1; padding: 8px 4px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.08); font-size: 12px; font-weight: 600; cursor: pointer; font-family: inherit; background: rgba(255,255,255,0.04); color: var(--muted); }
    .pvbox { background: rgba(99,102,241,0.08); border: 1px solid rgba(99,102,241,0.15); border-radius: 10px; padding: 10px 12px; margin-bottom: 14px; }
    .pvl { font-size: 10px; color: var(--primary); display: block; margin-bottom: 4px; font-weight: 600; text-transform: uppercase; }
    .pvt { font-size: 13px; color: #c4b5fd; font-weight: 500; word-break: break-word; }
    .rbanner { padding: 10px 14px; border-radius: 10px; font-size: 13px; font-weight: 500; border: 1px solid; margin-bottom: 14px; display: none; }
    .factions { display: flex; gap: 10px; margin-top: 4px; }
    .canbtn { flex: 1; padding: 12px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; color: #a1a1aa; font-size: 14px; font-weight: 500; cursor: pointer; font-family: inherit; }
    .savebtn { flex: 2; padding: 12px; background: linear-gradient(135deg, var(--primary), var(--primary2)); border: none; border-radius: 12px; color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; font-family: inherit; }
    .savebtn:disabled { opacity: 0.6; }
    .form-actions-sticky { position:sticky; bottom:calc(76px + var(--safe-bottom,0px)); z-index:35; display:flex; gap:8px; align-items:center; padding:10px; margin:14px -4px 0; border:1px solid rgba(255,255,255,.10); border-radius:15px; background:rgba(18,18,27,.94); box-shadow:0 -10px 28px rgba(0,0,0,.28); backdrop-filter:blur(14px); }
    .modal .form-actions-sticky { bottom:0; }
    .form-actions-sticky > .savebtn:only-child { width:100%; }
    .guarded-form[data-dirty="1"] .form-actions-sticky::before { content:'Cambios sin guardar'; position:absolute; right:10px; top:-19px; padding:3px 8px; border-radius:7px 7px 0 0; background:#3b2904; color:#fde68a; font-size:9px; font-weight:900; }
    .field-required { color:#fbbf24; }
    .guarded-form input[required]:not(:placeholder-shown):invalid,
    .guarded-form select[required]:invalid,
    .inv-form input[required]:not(:placeholder-shown):invalid,
    .inv-form select[required]:invalid { border-color:rgba(245,158,11,.55); box-shadow:0 0 0 2px rgba(245,158,11,.08); }
    /* Invoice screen */
    .inv-card { display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--card);border-radius:14px;margin-bottom:8px;border:1px solid rgba(255,255,255,0.05);cursor:pointer }
    .inv-card.selected { border-color:var(--primary);background:rgba(99,102,241,0.08) }
    .inv-card.disabled { cursor:default;opacity:.72;background:rgba(255,255,255,0.018) }
    .inv-card.disabled:active { background:rgba(255,255,255,0.018) }
    .inv-check { width:24px;height:24px;border-radius:8px;border:2px solid rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px }
    .inv-check.on { border-color:var(--primary);background:rgba(99,102,241,0.2) }
    .inv-info { flex:1;min-width:0 }
    .inv-name { font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block }
    .inv-date { font-size:11px;color:var(--muted);margin-top:2px }
    .inv-amt { font-size:14px;font-weight:700;color:#a78bfa;min-width:50px;text-align:right }
    @media (max-width:520px){ .inv-card{flex-wrap:wrap}.inv-info{flex-basis:calc(100% - 44px)}.inv-amt{margin-left:34px;text-align:left} }
    .inv-form { padding:16px 0 }
    .inv-select { background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:10px;padding:10px 12px;font-size:14px;color:var(--text);width:100%;font-family:inherit;outline:none;-webkit-appearance:none }
    .inv-select option { background:#1a1a24;color:var(--text) }
    .inv-preview { background:rgba(99,102,241,0.06);border:1px solid rgba(99,102,241,0.15);border-radius:14px;padding:14px;margin:16px 0 }
    .inv-pv-row { display:flex;justify-content:space-between;padding:4px 0;font-size:13px }
    .inv-pv-label { color:var(--muted) }
    .inv-pv-val { font-weight:600;color:var(--text) }
    .inv-pv-total { font-weight:700;color:var(--primary);font-size:15px;border-top:1px solid rgba(255,255,255,0.08);padding-top:8px;margin-top:4px }
    .inv-hist { margin-top:20px }
    .inv-hist-card { display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--card);border-radius:10px;margin-bottom:6px;border:1px solid rgba(255,255,255,0.04) }
    .inv-hist-num { font-size:13px;font-weight:700;color:var(--primary);min-width:40px }
    .inv-hist-info { flex:1;min-width:0 }
    .inv-hist-name { font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
    .inv-hist-date { font-size:10px;color:var(--muted) }
    .inv-hist-amt { font-size:13px;font-weight:700;color:#a78bfa }
    .new-company-form { background:rgba(245,158,11,0.06);border:1px solid rgba(245,158,11,0.15);border-radius:14px;padding:14px;margin:10px 0 }
    .new-company-title { font-size:12px;font-weight:700;color:#f59e0b;margin-bottom:10px }
    /* Client screen */
    .cli-card { display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--card);border-radius:14px;margin-bottom:8px;border:1px solid rgba(255,255,255,0.05);cursor:pointer }
    .cli-card:active { background:rgba(255,255,255,0.06) }
    .cli-icon { width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0 }
    .cli-icon.nat { background:rgba(34,197,94,0.12) }
    .cli-icon.intl { background:rgba(99,102,241,0.12) }
    .cli-info { flex:1;min-width:0 }
    .cli-name { font-size:13px;font-weight:600;color:var(--text);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
    .cli-cif { font-size:11px;color:var(--muted);margin-top:2px }
    .cli-arrow { color:var(--muted);font-size:14px }
    /* Saldos screen */
    .delbtn { width: 100%; padding: 12px; background: rgba(239,68,68,0.1); border: 1px solid rgba(239,68,68,0.3); border-radius: 12px; color: #fca5a5; font-size: 14px; font-weight: 600; cursor: pointer; font-family: inherit; margin-top: 8px; }
    .delbtn:active { background: rgba(239,68,68,0.2); }
    .confirm-del { display: flex; gap: 8px; margin-top: 8px; }
    .confirm-del button { flex: 1; padding: 10px; border-radius: 10px; font-size: 13px; font-weight: 600; cursor: pointer; font-family: inherit; border: none; }
    .reminder-section { margin-bottom: 20px; }
    .reminder-title { font-size: 14px; font-weight: 700; color: #f59e0b; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
    .reminder-card { background: rgba(245,158,11,0.06); border: 1px solid rgba(245,158,11,0.2); border-radius: 14px; padding: 12px 14px; margin-bottom: 8px; display: flex; align-items: center; gap: 10px; }
    .reminder-info { flex: 1; min-width: 0; }
    .reminder-name { font-size: 13px; font-weight: 600; color: var(--text); display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .reminder-meta { font-size: 11px; color: var(--muted); margin-top: 2px; }
    .reminder-amount { font-size: 14px; font-weight: 700; color: #f59e0b; min-width: 50px; text-align: right; }
    .reminder-actions { display: flex; gap: 6px; flex-shrink: 0; }
    .reminder-btn { padding: 6px 10px; border-radius: 8px; font-size: 11px; font-weight: 600; cursor: pointer; font-family: inherit; border: none; }
    .saldos-header { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
    .saldos-back { background:linear-gradient(135deg,rgba(255,255,255,0.10),rgba(255,255,255,0.035)); border:1px solid rgba(255,255,255,0.12); border-radius:14px; width:42px; height:42px; font-size:28px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; color:#fff; box-shadow:0 10px 24px rgba(0,0,0,.18); transition:transform .12s ease, background .12s ease, border-color .12s ease; }
    .saldos-back:active { transform:scale(.96); background:rgba(99,102,241,0.18); border-color:rgba(99,102,241,0.38); }
    .saldos-title { font-size: 20px; font-weight: 700; color: #fff; }
    .saldo-card { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: var(--card); border-radius: 14px; margin-bottom: 8px; border: 1px solid rgba(255,255,255,0.05); }
    .saldo-info { flex: 1; min-width: 0; cursor: pointer; }
    .saldo-name { font-size: 13px; font-weight: 600; color: var(--text); display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .saldo-date { font-size: 11px; color: var(--muted); margin-top: 2px; }
    .saldo-amount { font-size: 15px; font-weight: 700; color: #a78bfa; min-width: 60px; text-align: right; }
    .saldo-toggle { width: 44px; height: 44px; border-radius: 12px; border: 2px solid; font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; background: transparent; flex-shrink: 0; transition: all 0.2s; }
    .saldo-toggle.paid { border-color: var(--green); background: rgba(34,197,94,0.12); }
    .saldo-toggle.unpaid { border-color: rgba(239,68,68,0.5); background: rgba(239,68,68,0.08); }
    .saldo-toggle.enb { border-color: #f97316; background: rgba(249,115,22,0.15); }
    .saldo-totals { position: sticky; bottom: 0; background: #16161e; border-radius: 16px 16px 0 0; border: 1px solid var(--border); border-bottom: none; padding: 16px 20px; margin: 16px -16px 0; }
    .saldo-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; }
    .saldo-row-label { font-size: 13px; color: var(--muted); font-weight: 500; }
    .saldo-row-val { font-size: 15px; font-weight: 700; }
    .saldo-divider { height: 1px; background: var(--border); margin: 8px 0; }
    .saldo-filter { display: flex; gap: 0; border-radius: 8px; overflow: hidden; border: 1px solid var(--border); margin-bottom: 16px; }
    .saldo-fbtn { flex: 1; padding: 8px 0; font-size: 12px; font-weight: 600; cursor: pointer; font-family: inherit; border: none; background: rgba(255,255,255,0.03); color: #a1a1aa; text-align: center; }
    .saldo-fbtn.on { background: rgba(99,102,241,0.2); color: #a78bfa; }
    .fab { position: fixed; bottom: calc(24px + var(--safe-bottom)); right: 24px; width: 56px; height: 56px; border-radius: 50%; background: linear-gradient(135deg, var(--primary), var(--primary2)); border: none; color: #fff; font-size: 28px; font-weight: 700; cursor: pointer; box-shadow: 0 4px 24px rgba(99,102,241,0.4); display: flex; align-items: center; justify-content: center; z-index: 50; }
    .fab:active { transform: scale(0.95); }
    .login { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 80vh; text-align: center; padding: 40px 20px; }
    .login .logo { width: 80px; height: 80px; font-size: 48px; margin-bottom: 24px; }
    .login h1 { font-size: 28px; font-weight: 800; color: #fff; margin-bottom: 8px; }
    .login p { font-size: 15px; color: var(--muted); margin-bottom: 32px; max-width: 280px; }
    .loginbtn { background: linear-gradient(135deg, var(--primary), var(--primary2)); border: none; border-radius: 14px; padding: 16px 32px; color: #fff; font-size: 16px; font-weight: 600; cursor: pointer; font-family: inherit; display: flex; align-items: center; gap: 10px; }
    .loginbtn:active { transform: scale(0.97); }
    .spinner { width: 40px; height: 40px; border: 3px solid var(--border); border-top-color: var(--primary); border-radius: 50%; animation: spin 0.8s linear infinite; margin: 60px auto; }
    /* Toast system */
    #toast-container { position:fixed; bottom:calc(80px + var(--safe-bottom,0px)); left:50%; transform:translateX(-50%); z-index:9999; display:flex; flex-direction:column; align-items:center; gap:8px; pointer-events:none; width:calc(100% - 32px); max-width:380px; }
    .toast { display:flex; align-items:center; gap:10px; padding:12px 16px; border-radius:14px; font-size:13px; font-weight:600; font-family:inherit; box-shadow:0 4px 24px rgba(0,0,0,0.4); pointer-events:auto; animation:toastIn .2s ease; max-width:100%; }
    .toast.ok { background:#052e16; border:1px solid rgba(34,197,94,0.35); color:#86efac; }
    .toast.error { background:#1f0707; border:1px solid rgba(239,68,68,0.35); color:#fca5a5; }
    .toast.warn { background:#1c1200; border:1px solid rgba(245,158,11,0.35); color:#fde68a; }
    .toast.info { background:#0d0d1f; border:1px solid rgba(99,102,241,0.35); color:#c4b5fd; }
    .toast-ico { font-size:15px; flex-shrink:0; }
    .toast-msg { flex:1; line-height:1.35; }
    .app-update-banner { position:fixed; left:50%; bottom:calc(88px + var(--safe-bottom,0px)); transform:translateX(-50%); z-index:10020; width:calc(100% - 28px); max-width:520px; padding:16px; border-radius:18px; background:linear-gradient(145deg,#15152c,#11111b); border:1px solid rgba(129,140,248,.48); box-shadow:0 18px 55px rgba(0,0,0,.55); animation:toastIn .22s ease; }
    .app-update-head { display:flex; align-items:flex-start; gap:11px; }
    .app-update-icon { width:38px; height:38px; flex:0 0 38px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:rgba(99,102,241,.2); font-size:20px; }
    .app-update-copy { flex:1; min-width:0; }
    .app-update-title { color:#fff; font-size:15px; font-weight:800; margin-bottom:3px; }
    .app-update-text { color:#c7c7d4; font-size:12px; line-height:1.45; }
    .app-update-actions { display:flex; gap:8px; margin-top:13px; }
    .app-update-btn { flex:1; min-height:42px; padding:9px 12px; border-radius:11px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.06); color:#ddddea; font-family:inherit; font-size:12px; font-weight:700; cursor:pointer; }
    .app-update-btn.primary { color:#fff; border-color:transparent; background:linear-gradient(135deg,var(--primary),var(--primary2)); }
    .app-update-btn:disabled { opacity:.65; cursor:wait; }
    @keyframes toastIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
    @keyframes toastOut { from{opacity:1;transform:translateY(0)} to{opacity:0;transform:translateY(8px)} }
    @keyframes spin { to { transform: rotate(360deg); } }
    @keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
    .fi { animation: fadeIn 0.3s ease both; }
    .session-warn { background: rgba(245,158,11,0.12); border: 1px solid rgba(245,158,11,0.3); border-radius: 12px; padding: 12px 14px; margin-bottom: 16px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
    .session-warn-text { font-size: 12px; color: #fbbf24; flex: 1; }
    .session-warn-btn { background: rgba(245,158,11,0.2); border: 1px solid rgba(245,158,11,0.4); border-radius: 8px; padding: 6px 12px; font-size: 11px; font-weight: 600; color: #fbbf24; cursor: pointer; font-family: inherit; white-space: nowrap; }
    .inv-badge-done { font-size: 9px; background: rgba(99,102,241,0.15); color: #818cf8; padding: 2px 6px; border-radius: 4px; font-weight: 600; margin-left: 6px; }
    .search-bar { width:100%;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:12px;padding:10px 14px;font-size:14px;color:var(--text);outline:none;font-family:inherit;margin-bottom:14px }
    .search-bar:focus { border-color:var(--primary) }
    .search-bar::placeholder { color:var(--muted) }
    .notes-display { font-size:11px;color:#818cf8;margin-top:3px;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
    .tpl-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:7px;margin-bottom:8px }
    .tpl-btn { padding:8px 6px;background:var(--card);border:1px solid var(--border);border-radius:10px;cursor:pointer;text-align:center;font-family:inherit;transition:all 0.2s }
    .tpl-quick-block { padding:14px;background:rgba(99,102,241,0.06);border:1px solid rgba(99,102,241,0.18);border-radius:14px;margin-bottom:16px; }
    .tpl-quick-hint { font-size:11px;color:var(--muted);text-align:center;margin-top:10px;font-style:italic; }
    .tpl-quick-empty { padding:14px 10px;border:1px dashed rgba(255,255,255,.12);border-radius:12px;color:var(--muted);font-size:11px;line-height:1.45;text-align:center;margin-bottom:8px; }
    .tpl-quick-toggle { width:100%;min-height:40px;padding:9px 12px;border-radius:11px;border:1px solid rgba(99,102,241,.28);background:rgba(99,102,241,.10);color:#c4b5fd;font-family:inherit;font-size:12px;font-weight:800;line-height:1.2;cursor:pointer; }
    .tpl-quick-toggle:active { background:rgba(99,102,241,.18); }
    .tpl-btn:active { background:rgba(99,102,241,0.1);border-color:var(--primary) }
    .tpl-btn.tpl-no-client { border-color:rgba(245,158,11,0.3); }
    .tpl-name { font-size:12px;font-weight:600;color:var(--text);display:block;line-height:1.2 }
    .tpl-meta { font-size:9px;color:var(--muted);margin-top:1px;display:block;line-height:1.2 }
    .inv-hist-card,.cli-card,.tpl-card,.saldo-card,.expense-card,.review-card,.ecard,.mini { content-visibility:auto; contain-intrinsic-size:auto 86px; }
    .savebtn,.canbtn,.payment-pay-action,.client-mini-action,.app-update-btn { min-height:44px; }

    .quick-actions { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin:8px 0 14px; }
    .quick-action { min-height:38px; border-radius:10px; border:1px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.045); color:#d4d4d8; font-size:12px; font-weight:700; cursor:pointer; font-family:inherit; display:flex; align-items:center; justify-content:center; gap:6px; text-decoration:none; }
    .quick-action.green { background:rgba(34,197,94,0.12); border-color:rgba(34,197,94,0.25); color:#86efac; }
    .quick-action.blue { background:rgba(99,102,241,0.16); border-color:rgba(99,102,241,0.28); color:#c4b5fd; }
    .quick-action.purple { background:rgba(139,92,246,0.15); border-color:rgba(139,92,246,0.28); color:#ddd6fe; }
    .quick-action.warn { background:rgba(245,158,11,0.12); border-color:rgba(245,158,11,0.25); color:#fbbf24; }
    .lang-pill { display:inline-flex; align-items:center; justify-content:center; border-radius:999px; padding:4px 8px; font-size:10px; font-weight:800; background:rgba(99,102,241,0.12); color:#c4b5fd; margin-left:6px; }

    /* Fase 1.1 corrections */
    .info-note { background: rgba(99,102,241,0.08); border: 1px solid rgba(99,102,241,0.16); color: #c4b5fd; border-radius: 12px; padding: 12px 14px; font-size: 12px; line-height: 1.45; margin-bottom: 14px; }
    /* Fase 2.59 - Información bajo demanda y flujo más simple */
    .info-dot { width:26px; height:26px; border-radius:999px; border:1px solid rgba(99,102,241,.38); background:rgba(99,102,241,.13); color:#c7d2fe; font-size:13px; font-weight:950; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; font-family:inherit; flex:0 0 auto; }
    .info-dot:active { transform:scale(.96); background:rgba(99,102,241,.22); }
    .info-tip-row { display:flex; align-items:center; justify-content:space-between; gap:10px; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.028); border-radius:14px; padding:8px 9px 8px 11px; margin:8px 0 12px; }
    .info-tip-label { color:#a1a1aa; font-size:11px; font-weight:850; }
    .info-modal { position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,.68); display:flex; align-items:flex-end; justify-content:center; padding:14px; }
    .info-modal-card { width:100%; max-width:430px; background:#18181b; border:1px solid rgba(255,255,255,.12); border-radius:22px; box-shadow:0 24px 90px rgba(0,0,0,.55); overflow:hidden; }
    .info-modal-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 16px; border-bottom:1px solid rgba(255,255,255,.08); }
    .info-modal-head strong { color:#fff; font-size:15px; font-weight:950; }
    .info-modal-close { width:32px; height:32px; border-radius:999px; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.06); color:#e4e4e7; cursor:pointer; font-size:16px; }
    .info-modal-body { color:#d4d4d8; font-size:13px; line-height:1.5; padding:15px 16px 16px; white-space:pre-wrap; }

    .info-tip-row.icon-only { justify-content:flex-end; border:0; background:transparent; padding:0; margin:2px 0 8px; min-height:26px; }
    .screen-mini-help { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:4px 0 10px; }
    .screen-mini-help span { color:#f4f4f5; font-size:14px; font-weight:950; }
    .screen-title-help { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 12px; }
    .screen-title-help strong { color:#fff; font-size:14px; font-weight:950; }
    .booking-quick-head { display:flex; align-items:center; justify-content:space-between; gap:10px; border:1px solid rgba(99,102,241,.18); background:linear-gradient(135deg,rgba(99,102,241,.10),rgba(34,197,94,.04)); border-radius:18px; padding:10px 11px; margin-bottom:10px; }
    .booking-quick-head strong { color:#fff; font-size:14px; font-weight:950; }
    .payment-primary-actions { display:grid; grid-template-columns:1fr; gap:8px; margin:10px 0 12px; }
    .payment-primary-btn { width:100%; border:1px solid rgba(255,255,255,.08); border-radius:16px; background:rgba(255,255,255,.035); color:#e4e4e7; padding:12px; font-family:inherit; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:10px; text-align:left; }
    .payment-primary-btn strong { display:block; color:#fff; font-size:13px; font-weight:950; }
    .payment-primary-btn span { display:block; color:#a1a1aa; font-size:10px; font-weight:800; margin-top:2px; }
    .payment-primary-btn em { min-width:30px; height:28px; border-radius:999px; background:rgba(99,102,241,.14); color:#c7d2fe; border:1px solid rgba(99,102,241,.24); display:flex; align-items:center; justify-content:center; font-style:normal; font-weight:950; font-size:11px; }
    .payment-primary-btn.on { border-color:rgba(99,102,241,.42); background:linear-gradient(135deg,rgba(99,102,241,.18),rgba(14,165,233,.06)); }
    @media (min-width:520px){ .payment-primary-actions{grid-template-columns:repeat(3,1fr);} }

    .week-panel { background: rgba(255,255,255,0.025); border: 1px solid var(--border); border-radius: 18px; padding: 14px; margin-bottom: 18px; }
    .week-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:12px; }
    .week-title { font-size:16px; font-weight:800; color:#fff; }
    .week-subtitle { font-size:11px; color:var(--muted); margin-top:2px; }
    .week-pill { font-size:11px; font-weight:700; color:#a78bfa; background:rgba(99,102,241,0.13); border:1px solid rgba(99,102,241,0.2); padding:6px 9px; border-radius:999px; white-space:nowrap; }
    .week-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:12px; }
    .week-stat { background:rgba(0,0,0,0.16); border:1px solid rgba(255,255,255,0.05); border-radius:12px; padding:10px 8px; text-align:center; }
    .week-stat strong { display:block; font-size:17px; color:#fff; }
    .week-stat span { display:block; font-size:10px; color:var(--muted); margin-top:2px; text-transform:uppercase; letter-spacing:.04em; }
    .action-stack { display:grid; grid-template-columns:1fr; gap:8px; margin:12px 0; }
    .action-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 12px; border-radius:13px; border:1px solid rgba(255,255,255,0.06); background:rgba(255,255,255,0.03); cursor:pointer; }
    .action-row:active { background:rgba(255,255,255,0.07); }
    .action-main { min-width:0; }
    .action-main strong { display:block; font-size:13px; color:var(--text); }
    .action-main span { display:block; font-size:11px; color:var(--muted); margin-top:2px; }
    .action-amount { font-size:13px; color:#a78bfa; font-weight:800; white-space:nowrap; }
    .inv-hist-card { display:block; padding:12px 14px; background:var(--card); border-radius:14px; margin-bottom:10px; border:1px solid rgba(255,255,255,0.05); }
    .inv-hist-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
    .inv-hist-left { min-width:0; flex:1; }
    .inv-hist-num { display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:24px; padding:0 8px; border-radius:8px; background:rgba(99,102,241,0.12); color:#a78bfa; font-size:12px; font-weight:800; margin-bottom:7px; }
    .inv-hist-name { display:block; font-size:13px; font-weight:700; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .inv-hist-date { display:block; font-size:11px; color:var(--muted); margin-top:3px; }
    .inv-hist-amt { font-size:15px; font-weight:800; color:#a78bfa; white-space:nowrap; padding-top:2px; }
    .inv-action-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-top:12px; }
    .inv-action-btn { min-height:38px; border-radius:10px; border:1px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.045); color:#d4d4d8; font-size:12px; font-weight:700; cursor:pointer; font-family:inherit; display:flex; align-items:center; justify-content:center; gap:6px; }
    .inv-action-btn.primary { background:rgba(99,102,241,0.16); border-color:rgba(99,102,241,0.28); color:#c4b5fd; }
    .inv-action-btn.green { background:rgba(34,197,94,0.12); border-color:rgba(34,197,94,0.25); color:#86efac; }
    .inv-action-btn.red { background:rgba(239,68,68,0.10); border-color:rgba(239,68,68,0.22); color:#fca5a5; }
    .invoice-success { margin-top:16px; padding:16px; background:rgba(34,197,94,0.06); border:1px solid rgba(34,197,94,0.2); border-radius:16px; }
    .invoice-success-title { font-size:14px; color:#86efac; font-weight:800; margin-bottom:6px; text-align:center; }
    .invoice-success-note { font-size:11px; color:var(--muted); margin-bottom:12px; text-align:center; line-height:1.4; }
    .status-bar { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin:0 0 14px; padding:10px 12px; border-radius:12px; background:rgba(255,255,255,0.035); border:1px solid rgba(255,255,255,0.07); color:#a1a1aa; font-size:12px; }
    .status-bar.busy { border-color:rgba(99,102,241,0.22); background:rgba(99,102,241,0.08); color:#c4b5fd; }
    .status-bar.error { border-color:rgba(239,68,68,0.22); background:rgba(239,68,68,0.08); color:#fca5a5; }
    .status-bar.pending { border-color:rgba(245,158,11,0.25); background:rgba(245,158,11,0.08); color:#fbbf24; }
    .status-dot { width:8px; height:8px; border-radius:999px; background:#22c55e; flex-shrink:0; margin-top:4px; }
    .status-bar.busy .status-dot { background:#a78bfa; animation:pulse 1s ease-in-out infinite; }
    .status-bar.error .status-dot { background:#f87171; }
    .status-bar.pending .status-dot { background:#f59e0b; }
    .health-panel { margin:0 0 14px; border:1px solid rgba(245,158,11,.20); background:linear-gradient(135deg,rgba(245,158,11,.10),rgba(255,255,255,.025)); border-radius:16px; padding:12px; box-shadow:0 12px 34px rgba(0,0,0,.14); }
    .health-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:8px; }
    .health-title { color:#fff; font-weight:950; font-size:13px; letter-spacing:-.1px; }
    .health-sub { color:#a1a1aa; font-size:11px; line-height:1.35; margin-top:2px; }
    .health-chip { border:1px solid rgba(245,158,11,.24); background:rgba(245,158,11,.10); color:#fbbf24; font-size:10px; font-weight:900; border-radius:999px; padding:5px 8px; white-space:nowrap; }
    .health-item { display:flex; gap:8px; align-items:flex-start; padding:8px 0; border-top:1px solid rgba(255,255,255,.06); color:#d4d4d8; font-size:12px; line-height:1.35; }
    .health-item:first-of-type { border-top:0; }
    .health-item strong { color:#fff; display:block; font-size:12px; }
    .health-item span { color:#a1a1aa; display:block; font-size:11px; margin-top:1px; }
    .health-icon { width:22px; height:22px; display:flex; align-items:center; justify-content:center; border-radius:8px; background:rgba(255,255,255,.06); flex:0 0 auto; }
    .health-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:9px; }
    .health-btn { border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.05); color:#e4e4e7; border-radius:10px; padding:8px 10px; font-size:11px; font-weight:900; }
    .health-btn.primary { border-color:rgba(99,102,241,.26); background:rgba(99,102,241,.14); color:#c4b5fd; }
    .status-main { flex:1; min-width:0; line-height:1.35; }
    .status-sub { display:block; margin-top:2px; font-size:10px; color:var(--muted); }
    .status-actions { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
    .status-action-btn { background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.12); color:#d4d4d8; border-radius:8px; padding:5px 8px; font-size:10px; font-weight:700; cursor:pointer; font-family:inherit; white-space:nowrap; }
    .status-action-btn.primary { background:rgba(99,102,241,0.18); border-color:rgba(99,102,241,0.35); color:#c4b5fd; }
    .status-action-btn.warn { background:rgba(245,158,11,0.16); border-color:rgba(245,158,11,0.35); color:#fbbf24; }
    @keyframes pulse { 0%,100%{opacity:.35} 50%{opacity:1} }
    .inv-tabs { display:grid; grid-template-columns:repeat(auto-fit,minmax(68px,1fr)); gap:6px; margin:12px 0 14px; }
    .inv-tab { padding:9px 5px; border-radius:10px; border:1px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.03); color:#a1a1aa; font-size:11px; font-weight:800; cursor:pointer; font-family:inherit; }
    .inv-tab.on { background:rgba(99,102,241,0.16); border-color:rgba(99,102,241,0.35); color:#c4b5fd; }
    .inv-tabs.compact { gap:5px; margin:8px 0 10px; }
    .inv-tab.compact { min-height:32px; padding:6px 7px; border-radius:999px; display:flex; align-items:center; justify-content:center; gap:5px; font-size:10px; line-height:1; }
    .tab-count { display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:rgba(34,197,94,0.16); color:#86efac; border:1px solid rgba(34,197,94,0.24); font-size:10px; font-weight:900; }
    .inv-tab.on .tab-count { background:rgba(255,255,255,0.14); color:#fff; border-color:rgba(255,255,255,0.18); }
    .invoice-list-shell { margin-top:16px; }
    .invoice-list-toggle { width:100%; padding:11px 12px; background:linear-gradient(135deg,rgba(255,255,255,0.045),rgba(255,255,255,0.025)); border:1px solid var(--border); border-radius:14px; color:var(--text); font-size:13px; font-weight:800; cursor:pointer; font-family:inherit; display:flex; justify-content:space-between; align-items:center; gap:10px; box-shadow:0 8px 20px rgba(0,0,0,.10); }
    .invoice-list-toggle-main { display:flex; align-items:center; gap:8px; min-width:0; }
    .invoice-list-toggle-sub { margin-left:auto; font-size:11px; color:var(--muted); font-weight:800; white-space:nowrap; }
    .inv-count-badge { display:inline-flex; align-items:center; justify-content:center; min-width:44px; height:22px; padding:0 8px; border-radius:999px; background:rgba(14,165,233,0.16); color:#7dd3fc; border:1px solid rgba(14,165,233,0.28); font-size:11px; font-weight:900; }
    .invoice-chevron { color:#a78bfa; font-size:13px; }
    .invoice-list-content { margin-top:8px; }
    .invoice-filter-header { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
    .invoice-filter-toggle { flex:1; min-height:34px; border-radius:12px; border:1px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.035); color:#d4d4d8; font-size:11px; font-weight:900; font-family:inherit; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:6px; }
    .invoice-filter-reset { min-height:34px; border-radius:12px; border:1px solid rgba(239,68,68,0.20); background:rgba(239,68,68,0.08); color:#fca5a5; font-size:11px; font-weight:900; font-family:inherit; cursor:pointer; padding:0 10px; }
    .invoice-filter-panel { margin-bottom:10px; padding:10px; border-radius:14px; }
    .invoice-friendly-filters { margin:10px 0 10px; padding:9px; border:1px solid rgba(255,255,255,0.06); background:rgba(255,255,255,0.025); border-radius:16px; }
    .invoice-quick-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
    .invoice-quick-tab { min-height:38px; border-radius:12px; border:1px solid rgba(255,255,255,0.07); background:rgba(255,255,255,0.035); color:#d4d4d8; font-size:11px; font-weight:900; font-family:inherit; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:6px; padding:0 10px; }
    .invoice-quick-tab.on { background:linear-gradient(135deg,rgba(99,102,241,0.18),rgba(14,165,233,0.08)); border-color:rgba(99,102,241,0.35); color:#fff; }
    .invoice-search-lite { margin-top:8px; }
    .invoice-more-filters { margin-top:8px; border:1px solid rgba(255,255,255,0.06); border-radius:14px; background:rgba(255,255,255,0.025); overflow:hidden; }
    .invoice-more-filters summary { cursor:pointer; padding:10px 11px; color:#a1a1aa; font-size:11px; font-weight:900; list-style:none; display:flex; justify-content:space-between; align-items:center; }
    .invoice-more-filters summary::-webkit-details-marker { display:none; }
    .invoice-more-filters-body { padding:0 10px 10px; }
    .inv-hist-card.friendly { display:block; padding:12px; border-radius:16px; margin-bottom:10px; background:linear-gradient(135deg,rgba(255,255,255,0.045),rgba(255,255,255,0.025)); border:1px solid rgba(255,255,255,0.07); }
    .inv-hist-card.friendly .inv-hist-top { align-items:flex-start; gap:10px; }
    .invoice-main-actions { display:grid; grid-template-columns:repeat(2,1fr); gap:7px; margin-top:10px; }
    .invoice-main-actions .inv-action-btn { min-height:34px; font-size:11px; border-radius:10px; }
    .invoice-card-more { margin-top:9px; border-top:1px solid rgba(255,255,255,0.06); padding-top:8px; }
    .invoice-card-more summary { cursor:pointer; color:#a1a1aa; font-size:11px; font-weight:900; list-style:none; display:flex; justify-content:space-between; align-items:center; }
    .invoice-card-more summary::-webkit-details-marker { display:none; }
    .invoice-card-more-body { margin-top:8px; }

    .invoice-line-editor { margin:10px 0; padding:10px; border:1px solid rgba(99,102,241,.16); background:rgba(99,102,241,.055); border-radius:15px; }
    .invoice-line-editor-title { display:flex; align-items:center; justify-content:space-between; gap:8px; color:#e4e4e7; font-size:12px; font-weight:950; margin-bottom:8px; }
    .invoice-line-row { display:grid; grid-template-columns:1fr 92px; gap:8px; align-items:end; padding:8px 0; border-top:1px solid rgba(255,255,255,.06); }
    .invoice-line-row:first-of-type { border-top:0; }
    .invoice-line-meta { font-size:10px; color:#a1a1aa; font-weight:800; margin-bottom:4px; }
    .invoice-line-input { width:100%; min-height:38px; border-radius:11px; border:1px solid rgba(255,255,255,.10); background:#0f172a; color:#f8fafc; padding:9px 10px; font-size:12px; font-family:inherit; box-sizing:border-box; }
    .invoice-line-amount { text-align:right; color:#f4f4f5; font-size:12px; font-weight:950; padding-bottom:10px; }
    .invoice-edit-note { font-size:11px; color:#a1a1aa; line-height:1.45; margin-top:6px; }
    .filter-dot { display:inline-flex; min-width:18px; height:18px; padding:0 6px; border-radius:999px; align-items:center; justify-content:center; background:rgba(245,158,11,0.16); color:#fcd34d; border:1px solid rgba(245,158,11,0.24); font-size:10px; font-weight:900; }
    .inv-status { display:inline-flex; align-items:center; justify-content:center; padding:3px 7px; border-radius:999px; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; margin-top:5px; width:max-content; }
    .inv-status.ok { background:rgba(34,197,94,0.12); color:#86efac; }
    .inv-status.warn { background:rgba(245,158,11,0.12); color:#fbbf24; }
    .inv-status.done { background:rgba(99,102,241,0.12); color:#c4b5fd; }
    .inv-status.muted { background:rgba(255,255,255,0.06); color:#a1a1aa; }
    .face-track { margin:10px 0 8px; padding:10px 12px; border-radius:12px; background:rgba(14,165,233,0.08); border:1px solid rgba(14,165,233,0.16); font-size:11px; color:#bae6fd; }
    .face-track strong { display:block; color:#e0f2fe; font-size:12px; margin-bottom:4px; }
    .face-track span { display:block; color:#93c5fd; line-height:1.45; }
    .face-track.warn { background:rgba(245,158,11,0.08); border-color:rgba(245,158,11,0.2); color:#fbbf24; }
    .face-track.ok { background:rgba(34,197,94,0.09); border-color:rgba(34,197,94,0.2); color:#86efac; }
    .face-track.err { background:rgba(239,68,68,0.08); border-color:rgba(239,68,68,0.2); color:#fca5a5; }
    .rect-track { margin:10px 0 8px; padding:10px 12px; border-radius:12px; background:rgba(248,113,113,0.08); border:1px solid rgba(248,113,113,0.18); font-size:11px; color:#fecaca; }
    .rect-track strong { display:block; color:#fee2e2; font-size:12px; margin-bottom:4px; }
    .rect-track span { display:block; color:#fca5a5; line-height:1.45; }
    .rect-track .muted { color:#a1a1aa; }
    .fiscal-track { margin:10px 0 8px; padding:10px 12px; border-radius:12px; background:rgba(99,102,241,0.08); border:1px solid rgba(99,102,241,0.18); font-size:11px; color:#c4b5fd; }
    .fiscal-track strong { display:block; color:#ddd6fe; font-size:12px; margin-bottom:4px; }
    .fiscal-track span { display:block; color:#a5b4fc; line-height:1.45; overflow-wrap:anywhere; }
    .fiscal-track.warn { background:rgba(245,158,11,0.08); border-color:rgba(245,158,11,0.22); color:#fbbf24; }
    .invoice-state-row { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:8px; flex-wrap:wrap; }
    .invoice-state-badge { display:inline-flex; align-items:center; gap:5px; width:max-content; padding:5px 9px; border-radius:999px; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
    .invoice-state-badge.issued { background:rgba(99,102,241,0.13); color:#c4b5fd; border:1px solid rgba(99,102,241,0.20); }
    .invoice-state-badge.sent { background:rgba(14,165,233,0.13); color:#7dd3fc; border:1px solid rgba(14,165,233,0.22); }
    .invoice-state-badge.paid { background:rgba(34,197,94,0.13); color:#86efac; border:1px solid rgba(34,197,94,0.24); }
    .invoice-state-badge.canceled { background:rgba(239,68,68,0.12); color:#fca5a5; border:1px solid rgba(239,68,68,0.23); }
    .invoice-state-badge.draft { background:rgba(245,158,11,0.13); color:#fcd34d; border:1px solid rgba(245,158,11,0.25); }
    .invoice-state-actions { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-top:10px; }
    .invoice-audit { margin-top:10px; padding:10px; border:1px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.035); border-radius:12px; }
    .invoice-audit-title { font-size:10px; font-weight:900; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px; }
    .invoice-audit-line { font-size:11px; color:#d4d4d8; padding:3px 0; border-top:1px solid rgba(255,255,255,0.045); }

    .mini-btn { min-height:32px; border-radius:9px; border:1px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.04); color:#a1a1aa; font-size:11px; font-weight:800; cursor:pointer; font-family:inherit; padding:6px 10px; }
    .mini-btn.danger { color:#fca5a5; border-color:rgba(239,68,68,0.25); background:rgba(239,68,68,0.08); }
    .expense-card { display:block; padding:12px 14px; background:var(--card); border-radius:14px; margin-bottom:10px; border:1px solid rgba(255,255,255,0.06); }
    .expense-card-top { display:grid; grid-template-columns:28px 1fr auto; gap:10px; align-items:start; }
    .expense-title { font-size:14px; font-weight:900; color:var(--text); line-height:1.25; }
    .expense-meta { font-size:11px; color:var(--muted); margin-top:4px; line-height:1.35; }
    .expense-amount { font-size:17px; font-weight:950; color:#a78bfa; white-space:nowrap; }
    .expense-badges { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
    .expense-badge { font-size:10px; font-weight:900; padding:5px 8px; border-radius:999px; border:1px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.04); color:#a1a1aa; }
    .expense-badge.dj { color:#86efac; background:rgba(34,197,94,0.12); border-color:rgba(34,197,94,0.25); }
    .expense-badge.personal { color:#fca5a5; background:rgba(239,68,68,0.09); border-color:rgba(239,68,68,0.22); }
    .expense-badge.deductible { color:#7dd3fc; background:rgba(14,165,233,0.12); border-color:rgba(14,165,233,0.25); }
    .expense-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
    .expense-toggle-on { color:#86efac!important; border-color:rgba(34,197,94,0.28)!important; background:rgba(34,197,94,0.10)!important; }
    .expense-add-tile { display:flex; gap:12px; align-items:center; padding:14px; border-radius:16px; border:1px dashed rgba(167,139,250,0.35); background:rgba(167,139,250,0.08); cursor:pointer; margin-top:10px; }
    .expense-add-icon { width:38px; height:38px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:rgba(167,139,250,0.16); color:#c4b5fd; font-size:20px; font-weight:950; flex:0 0 auto; }
    .expense-add-title { font-size:14px; font-weight:950; color:var(--text); }
    .expense-add-sub { font-size:11px; color:var(--muted); margin-top:3px; line-height:1.35; }
    .expense-bulkbar { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; padding:8px; border-radius:14px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.05); }
    .checkline { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:12px; padding:8px 0; }
    .checkline input { accent-color: var(--primary); }
    .invoice-mini-btn { min-height:32px; border-radius:9px; border:1px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.04); color:#a1a1aa; font-size:11px; font-weight:800; cursor:pointer; font-family:inherit; }
    .invoice-mini-btn.on.issued { background:rgba(99,102,241,0.14); border-color:rgba(99,102,241,0.30); color:#c4b5fd; }
    .invoice-mini-btn.on.sent { background:rgba(14,165,233,0.14); border-color:rgba(14,165,233,0.30); color:#7dd3fc; }
    .invoice-mini-btn.on.paid { background:rgba(34,197,94,0.14); border-color:rgba(34,197,94,0.30); color:#86efac; }
    .invoice-mini-btn.on.canceled { background:rgba(239,68,68,0.12); border-color:rgba(239,68,68,0.28); color:#fca5a5; }
    .inv-subtle { font-size:11px; color:var(--muted); margin:4px 0 12px; line-height:1.35; }
    .recent-card { display:flex; align-items:center; gap:10px; padding:10px 12px; background:rgba(255,255,255,0.025); border:1px solid rgba(255,255,255,0.05); border-radius:12px; margin-bottom:7px; cursor:pointer; }
    .recent-card:active { background:rgba(255,255,255,0.06); }
    .recent-dot { width:8px; height:8px; border-radius:999px; flex-shrink:0; }
    .recent-info { flex:1; min-width:0; }
    .recent-title { display:block; font-size:12px; font-weight:700; color:#d4d4d8; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .recent-meta { display:block; font-size:10px; color:var(--muted); margin-top:2px; }
    .tpl-card { background:var(--card); border:1px solid var(--border); border-radius:14px; padding:13px 14px; margin-bottom:10px; }
    .tpl-card-top { display:flex; justify-content:space-between; align-items:center; gap:12px; }
    .tpl-order-arrows { display:flex; flex-direction:column; gap:4px; flex-shrink:0; order:-1; }
    .tpl-order-btn { width:30px; height:26px; border-radius:8px; background:rgba(99,102,241,0.1); border:1px solid rgba(99,102,241,0.22); color:#a78bfa; font-size:11px; cursor:pointer; font-family:inherit; display:flex; align-items:center; justify-content:center; padding:0; transition:all .15s; }
    .tpl-order-btn:active { background:rgba(99,102,241,0.25); }
    .tpl-order-btn.disabled { opacity:0.25; cursor:default; }
    .tpl-card-top .cli-info { flex:1; }
    /* Cache slider */
    .cache-slider-wrap { display:flex; flex-direction:column; gap:8px; }
    .cache-slider-display { display:flex; justify-content:space-between; align-items:baseline; }
    .cache-slider-amount { font-size:22px; font-weight:700; color:var(--text); letter-spacing:1px; }
    .cache-slider-hint { font-size:10px; color:var(--muted); }
    .cache-slider-track { position:relative; height:44px; display:flex; align-items:center; }
    .cache-slider-input { position:relative; z-index:2; width:100%; height:44px; opacity:0; cursor:pointer; margin:0; padding:0; }
    .cache-slider-fill { position:absolute; left:0; top:50%; transform:translateY(-50%); height:6px; background:linear-gradient(90deg,#6366f1,#a78bfa); border-radius:3px; pointer-events:none; transition:width .05s; z-index:0; }
    .cache-slider-track::before { content:''; position:absolute; left:0; right:0; top:50%; transform:translateY(-50%); height:6px; background:rgba(255,255,255,0.08); border-radius:3px; }
    .cache-slider-manual { margin-top:0; font-size:13px; text-align:center; }
    /* Hide native number arrows in all number inputs across the app */
    input[type=number]::-webkit-outer-spin-button, input[type=number]::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
    input[type=number] { -moz-appearance:textfield; }
    .cache-slider-manual::-webkit-outer-spin-button, .cache-slider-manual::-webkit-inner-spin-button { -webkit-appearance:none; }
    .cache-slider-manual { -moz-appearance:textfield; }
    .tpl-actions { display:flex; gap:8px; margin-top:10px; }
    .tpl-actions button { flex:1; }

    .review-card { background:var(--card); border:1px solid var(--border); border-radius:16px; padding:13px 14px; margin-bottom:10px; cursor:pointer; }
    .review-card:active { background:rgba(255,255,255,0.06); }
    .review-top { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
    .review-left { flex:1; min-width:0; }
    .review-title { display:block; font-size:14px; font-weight:900; color:#f4f4f5; margin-bottom:3px; }
    .review-desc { display:block; font-size:11px; color:var(--muted); line-height:1.35; }
    .review-count { min-width:42px; text-align:center; padding:7px 8px; border-radius:12px; font-size:16px; font-weight:950; border:1px solid rgba(255,255,255,0.08); }
    .review-count.danger { background:rgba(239,68,68,0.12); color:#fca5a5; border-color:rgba(239,68,68,0.26); }
    .review-count.warn { background:rgba(245,158,11,0.12); color:#fbbf24; border-color:rgba(245,158,11,0.26); }
    .review-count.ok { background:rgba(34,197,94,0.12); color:#86efac; border-color:rgba(34,197,94,0.24); }
    .review-list { margin-top:10px; display:grid; gap:6px; }
    .review-item { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:8px 9px; border-radius:10px; background:rgba(255,255,255,0.035); border:1px solid rgba(255,255,255,0.045); font-size:11px; color:#d4d4d8; }
    .review-item strong { color:#f4f4f5; font-size:11px; }
    .review-item span { color:var(--muted); text-align:right; }

    .contact-check-row { display:flex; align-items:center; gap:9px; margin:2px 0 14px; padding:3px 1px; color:#a1a1aa; font-size:12px; font-weight:750; line-height:1.25; }
    .contact-check-row input { width:16px; height:16px; accent-color:#22c55e; flex:0 0 auto; }
    .contact-check-row span { color:#a1a1aa; }

    /* Fase 2.18 - Menú más limpio y navegación inferior */
    .top-actions { display:flex; gap:8px; align-items:center; }
    .menu-btn { background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.08); border-radius:12px; width:42px; height:42px; padding:0; font-size:20px; font-weight:900; cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--text); font-family:inherit; }
    .menu-btn:active { background:rgba(255,255,255,0.12); }
    .bottom-nav { position:fixed; left:50%; bottom:0; transform:translateX(-50%); width:min(520px, 100%); display:grid; grid-template-columns:repeat(5,1fr); gap:4px; padding:7px 7px calc(7px + var(--safe-bottom)); border-radius:20px 20px 0 0; background:rgba(18,18,26,0.97); border:1px solid rgba(255,255,255,0.10); border-bottom:none; box-shadow:0 -10px 34px rgba(0,0,0,0.45); backdrop-filter:blur(18px); z-index:120; }
    .bottom-nav-btn { min-height:52px; border:0; border-radius:15px; background:transparent; color:#71717a; font-family:inherit; font-size:10px; font-weight:800; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; }
    .bottom-nav-btn .nav-ico { font-size:18px; line-height:1; }
    .bottom-nav-btn.on { background:rgba(99,102,241,0.18); color:#c4b5fd; box-shadow:inset 0 0 0 1px rgba(99,102,241,0.22); }
    .bottom-nav-btn:active { background:rgba(255,255,255,0.08); }
    .menu-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.55); backdrop-filter:blur(8px); z-index:210; display:flex; align-items:flex-end; justify-content:center; padding:16px; padding-bottom:calc(16px + var(--safe-bottom)); }
    .menu-sheet { width:100%; max-width:520px; background:#16161e; border:1px solid rgba(255,255,255,0.09); border-radius:24px; padding:16px; box-shadow:0 24px 70px rgba(0,0,0,0.55); }
    .menu-sheet-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
    .menu-sheet-head-actions { display:flex; align-items:center; gap:7px; flex:0 0 auto; }
    .menu-home-btn { min-height:36px; border-radius:12px; border:1px solid rgba(99,102,241,.32); background:rgba(99,102,241,.16); color:#c7d2fe; padding:0 11px; font-family:inherit; font-size:11px; font-weight:950; cursor:pointer; white-space:nowrap; }
    .menu-home-btn:active { background:rgba(99,102,241,.28); transform:scale(.97); }
    .menu-title { font-size:17px; font-weight:900; color:#fff; }
    .menu-subtitle { font-size:11px; color:var(--muted); margin-top:2px; }
    .menu-close { width:36px; height:36px; border-radius:12px; border:1px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.05); color:#a1a1aa; font-size:18px; cursor:pointer; }
    .menu-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
    .menu-action { min-height:52px; border-radius:14px; border:1px solid rgba(255,255,255,0.07); background:rgba(255,255,255,0.035); color:#d4d4d8; font-family:inherit; font-size:12px; font-weight:800; cursor:pointer; display:flex; align-items:center; justify-content:flex-start; gap:9px; padding:0 12px; text-align:left; }
    .menu-action strong { font-size:17px; line-height:1; }
    .menu-action.primary { background:rgba(99,102,241,0.15); border-color:rgba(99,102,241,0.28); color:#c4b5fd; }
    .menu-action.warn { background:rgba(245,158,11,0.10); border-color:rgba(245,158,11,0.20); color:#fbbf24; }
    .menu-action.red { background:rgba(239,68,68,0.09); border-color:rgba(239,68,68,0.20); color:#fca5a5; }
    .menu-action.soft { background:rgba(255,255,255,0.025); color:#a1a1aa; }
    .menu-quick-row { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-bottom:10px; }
    .menu-section { border:1px solid rgba(255,255,255,0.07); background:rgba(255,255,255,0.025); border-radius:16px; margin-top:9px; overflow:hidden; }
    .menu-section summary { list-style:none; cursor:pointer; padding:12px 12px; display:flex; align-items:center; justify-content:space-between; gap:10px; color:#e4e4e7; font-size:12px; font-weight:950; }
    .menu-section summary::-webkit-details-marker { display:none; }
    .menu-section summary:after { content:'Abrir'; color:#a5b4fc; font-size:10px; font-weight:950; letter-spacing:.04em; text-transform:uppercase; }
    .menu-section[open] summary:after { content:'Cerrar'; color:#fbbf24; }
    .menu-section-body { padding:0 10px 10px; }
    .menu-section-note { color:#71717a; font-size:10px; line-height:1.35; margin:-2px 2px 8px; }
    .menu-audit-note { margin:8px 0 12px; border:1px solid rgba(34,197,94,.18); background:rgba(34,197,94,.07); color:#bbf7d0; border-radius:14px; padding:9px 11px; font-size:11px; line-height:1.35; }
    .factura-tools-shell { margin-bottom:10px; }
    .factura-tools-primary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:8px; }
    .factura-tools-primary .wide { grid-column:1 / -1; }
    .factura-tools-more { border:1px solid rgba(255,255,255,0.07); background:rgba(255,255,255,0.025); border-radius:14px; overflow:hidden; }
    .factura-tools-more summary { list-style:none; cursor:pointer; padding:10px 11px; display:flex; justify-content:space-between; align-items:center; color:#a1a1aa; font-size:11px; font-weight:900; }
    .factura-tools-more summary::-webkit-details-marker { display:none; }
    .factura-tools-more summary:after { content:'Abrir'; color:#a5b4fc; font-size:10px; text-transform:uppercase; font-weight:950; }
    .factura-tools-more[open] summary:after { content:'Cerrar'; color:#fbbf24; }
    .factura-tools-more-body { padding:0 10px 10px; }
    .invoice-title-wrap { min-width:0; }
    .invoice-title-wrap .saldos-title { margin:0; }
    .invoice-title-sub { color:#71717a; font-size:10px; font-weight:800; margin-top:2px; }
    .invoice-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:0 0 12px; }
    .invoice-overview-card { min-width:0; border:1px solid rgba(255,255,255,.075); background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.025)); border-radius:16px; padding:11px 10px; text-align:left; font-family:inherit; cursor:pointer; }
    .invoice-overview-card:active { transform:scale(.985); background:rgba(255,255,255,.07); }
    .invoice-overview-card span { display:block; color:#a1a1aa; font-size:9px; font-weight:900; line-height:1.15; text-transform:uppercase; letter-spacing:.035em; }
    .invoice-overview-card strong { display:block; color:#fff; font-size:21px; line-height:1; font-weight:950; margin:7px 0 4px; }
    .invoice-overview-card small { display:block; color:#71717a; font-size:9px; font-weight:750; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .invoice-overview-card.warn strong { color:#fbbf24; }
    .invoice-overview-card.good strong { color:#86efac; }
    .invoice-overview-card.purple strong { color:#c4b5fd; }
    .invoice-form-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin:2px 0 14px; }
    .invoice-form-step { border:1px solid rgba(99,102,241,.15); background:rgba(99,102,241,.055); border-radius:12px; padding:8px 7px; color:#a5b4fc; font-size:9px; font-weight:900; text-align:center; line-height:1.2; }
    .invoice-form-step b { display:block; color:#c4b5fd; font-size:11px; margin-bottom:2px; }
    .invoice-field-help { color:#71717a; font-size:10px; line-height:1.35; margin-top:5px; }
    .invoice-client-currency-note { color:#a1a1aa; font-size:10px; line-height:1.35; margin-top:5px; padding:7px 9px; border-radius:10px; background:rgba(99,102,241,.055); border:1px solid rgba(99,102,241,.12); }
    .invoice-empty-state { text-align:center; padding:22px 16px; border:1px dashed rgba(255,255,255,.11); background:rgba(255,255,255,.02); border-radius:17px; margin:8px 0 12px; }
    .invoice-empty-state .ico { font-size:27px; line-height:1; margin-bottom:9px; }
    .invoice-empty-state strong { display:block; color:#e4e4e7; font-size:13px; font-weight:950; }
    .invoice-empty-state span { display:block; color:#71717a; font-size:11px; line-height:1.4; margin:5px auto 11px; max-width:330px; }
    .safe-error-details { margin-top:10px; border:1px solid rgba(255,255,255,.07); border-radius:12px; background:rgba(255,255,255,.025); overflow:hidden; }
    .safe-error-details summary { cursor:pointer; list-style:none; padding:10px 11px; color:#a1a1aa; font-size:11px; font-weight:900; }
    .safe-error-details summary::-webkit-details-marker { display:none; }
    .safe-error-code { margin:0; padding:10px 11px; border-top:1px solid rgba(255,255,255,.06); color:#fca5a5; font-size:10px; line-height:1.4; overflow-wrap:anywhere; white-space:pre-wrap; }
    @media (max-width:380px){
      .invoice-overview { grid-template-columns:1fr 1fr; }
      .invoice-overview-card:last-child { grid-column:1 / -1; }
      .invoice-form-steps { grid-template-columns:1fr; }
      .invoice-form-step { text-align:left; display:flex; gap:6px; align-items:center; }
      .invoice-form-step b { display:inline; margin:0; }
    }
    .screen-shell { min-height:100%; }


    /* Fase 2.18 - Pulido mobile y dashboard limpio */
    .home-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:9px; margin-bottom:16px; }
    /* Avisos de eventos proximos */
    .event-alerts { display:flex; flex-direction:column; gap:8px; margin-bottom:14px; }
    .event-alert-card { position:relative; display:flex; align-items:center; gap:12px; padding:12px 14px 12px 16px; background:linear-gradient(135deg, rgba(99,102,241,0.13), rgba(99,102,241,0.05)); border:1px solid rgba(99,102,241,0.28); border-radius:16px; cursor:pointer; overflow:hidden; animation:alertIn .3s ease; box-shadow:0 6px 20px rgba(0,0,0,0.25); }
    .event-alert-card.today { background:linear-gradient(135deg, rgba(245,158,11,0.16), rgba(239,68,68,0.07)); border-color:rgba(245,158,11,0.4); }
    .event-alert-card.overdue { background:linear-gradient(135deg, rgba(239,68,68,0.16), rgba(239,68,68,0.05)); border-color:rgba(239,68,68,0.4); }
    .event-alert-card.overdue .event-alert-stripe { background:linear-gradient(180deg,#ef4444,#b91c1c); }
    .event-alert-card.overdue .event-alert-label { color:#fca5a5; }
    .event-alert-card:active { transform:scale(.985); }
    .event-alert-stripe { position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,#6366f1,#a78bfa); border-radius:4px 0 0 4px; }
    .event-alert-card.today .event-alert-stripe { background:linear-gradient(180deg,#f59e0b,#ef4444); }
    .event-alert-body { flex:1; min-width:0; }
    .event-alert-label { font-size:9px; font-weight:800; letter-spacing:1.5px; color:#a78bfa; margin-bottom:3px; }
    .event-alert-card.today .event-alert-label { color:#fbbf24; }
    .event-alert-name { font-size:14px; font-weight:800; color:#fff; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .event-alert-meta { font-size:11px; color:#a1a1aa; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .event-alert-close { flex-shrink:0; width:30px; height:30px; border-radius:9px; background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.12); color:#a1a1aa; font-size:12px; cursor:pointer; font-family:inherit; display:flex; align-items:center; justify-content:center; padding:0; transition:all .15s; }
    .event-alert-close:active { background:rgba(255,255,255,0.15); transform:scale(.92); }
    @keyframes alertIn { from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:translateY(0)} }
    .home-card { background:linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.025)); border:1px solid rgba(255,255,255,0.075); border-radius:18px; padding:13px 14px; min-height:88px; cursor:pointer; box-shadow:0 10px 26px rgba(0,0,0,0.16); }
    .home-card:active { transform:scale(0.985); background:rgba(255,255,255,0.07); }
    .home-card-label { display:flex; align-items:center; gap:6px; color:#a1a1aa; font-size:11px; font-weight:800; margin-bottom:8px; }
    .home-card-value { color:#fff; font-size:24px; line-height:1; font-weight:950; letter-spacing:-0.5px; }
    .home-card-value.good { color:#86efac; }
    .home-card-value.warn { color:#fbbf24; }
    .home-card-value.danger { color:#fca5a5; }
    .home-card-sub { margin-top:6px; color:#71717a; font-size:10px; font-weight:700; line-height:1.25; }
    .home-card.primary { border-color:rgba(99,102,241,0.22); background:linear-gradient(160deg, rgba(99,102,241,0.16), rgba(255,255,255,0.025)); }
    .home-card.danger { border-color:rgba(239,68,68,0.18); background:linear-gradient(160deg, rgba(239,68,68,0.12), rgba(255,255,255,0.025)); }
    .home-controls { display:grid; gap:10px; margin-bottom:16px; }
    .home-control-title { display:flex; justify-content:space-between; align-items:center; gap:10px; margin:2px 0 0; }
    .home-control-title strong { color:#fff; font-size:15px; }
    .home-control-title span { color:var(--muted); font-size:11px; font-weight:700; }
    .status-bar.clean-hidden { display:none; }
    .week-panel { box-shadow:0 10px 28px rgba(0,0,0,0.12); }
    .week-head .week-title { font-size:17px; }
    .action-stack { border-top:1px solid rgba(255,255,255,0.06); padding-top:12px; }
    .review-group-title { font-size:12px; color:#a1a1aa; font-weight:900; text-transform:uppercase; letter-spacing:.8px; margin:16px 2px 8px; }
    .review-hero { margin:12px 0 14px; padding:15px; border-radius:20px; border:1px solid rgba(99,102,241,.22); background:linear-gradient(135deg,rgba(99,102,241,.16),rgba(14,165,233,.06)); box-shadow:0 14px 32px rgba(0,0,0,.16); }
    .review-hero-top { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
    .review-hero-label { color:#c7d2fe; font-size:11px; font-weight:950; text-transform:uppercase; letter-spacing:.06em; }
    .review-hero-title { margin-top:5px; color:#f8fafc; font-size:18px; line-height:1.15; font-weight:950; }
    .review-hero-desc { margin-top:6px; color:#cbd5e1; font-size:12px; line-height:1.35; }
    .review-hero-badge { flex:0 0 auto; min-width:48px; height:36px; padding:0 10px; border-radius:999px; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:950; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.08); }
    .review-hero-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
    .review-mini-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:10px 0 14px; }
    .review-mini { padding:10px 8px; border-radius:15px; border:1px solid rgba(255,255,255,.07); background:rgba(255,255,255,.035); text-align:center; }
    .review-mini strong { display:block; color:#f4f4f5; font-size:18px; line-height:1; }
    .review-mini span { display:block; color:#a1a1aa; font-size:10px; margin-top:5px; font-weight:800; }
    .review-empty { padding:13px; border-radius:16px; background:rgba(34,197,94,.08); border:1px solid rgba(34,197,94,.16); color:#bbf7d0; font-size:12px; line-height:1.35; margin:8px 0 12px; }
    .review-advanced { margin-top:14px; border:1px solid rgba(255,255,255,.08); border-radius:18px; background:rgba(255,255,255,.025); overflow:hidden; }
    .review-advanced summary { cursor:pointer; padding:13px 14px; font-weight:950; color:#e4e4e7; font-size:13px; list-style:none; }
    .review-advanced summary::-webkit-details-marker { display:none; }
    .review-advanced-body { padding:0 10px 10px; }

    .month-kpi-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:9px; margin:12px 0; }
    .month-kpi { background:rgba(255,255,255,0.035); border:1px solid rgba(255,255,255,0.07); border-radius:16px; padding:13px 14px; }
    .month-kpi strong { display:block; font-size:22px; font-weight:950; color:#fff; letter-spacing:-.4px; margin-bottom:3px; }
    .month-kpi span { display:block; color:#a1a1aa; font-size:11px; font-weight:800; }
    .month-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid rgba(255,255,255,0.06); }
    .month-row:last-child { border-bottom:0; }
    .month-row-main strong { display:block; color:#f4f4f5; font-size:13px; margin-bottom:3px; }
    .month-row-main span { display:block; color:#a1a1aa; font-size:11px; }
    .month-row-amt { color:#fff; font-size:13px; font-weight:900; white-space:nowrap; }

    @media (max-width:380px){ .home-grid{gap:8px}.home-card{padding:12px;min-height:82px}.home-card-value{font-size:21px}.home-card-label{font-size:10px} }

    /* Fase 2.50 - Interfaz móvil más clara: pin/resumen sin filtros pesados */
    .calendar-controls { margin: 0 0 16px; display:grid; gap:10px; }
    .view-tabs { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }
    .view-tab { min-height:50px; border:1px solid rgba(255,255,255,.075); border-radius:15px; background:rgba(255,255,255,.035); color:#a1a1aa; font-family:inherit; font-weight:850; font-size:11px; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; }
    .view-tab strong { font-size:17px; line-height:1; }
    .view-tab.on { background:linear-gradient(160deg,rgba(99,102,241,.22),rgba(255,255,255,.045)); border-color:rgba(99,102,241,.35); color:#f4f4f5; box-shadow:0 10px 28px rgba(0,0,0,.16); }
    .quick-note { border:1px solid rgba(99,102,241,.18); background:rgba(99,102,241,.08); color:#c4b5fd; border-radius:15px; padding:10px 12px; font-size:12px; line-height:1.35; font-weight:700; }
    .filter-panel { border:1px solid rgba(255,255,255,.075); border-radius:17px; padding:11px; background:rgba(255,255,255,.025); display:grid; gap:10px; }
    .filter-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
    .filter-head strong { display:block; color:#fff; font-size:13px; }
    .filter-head span { display:block; color:#71717a; font-size:10px; font-weight:750; margin-top:2px; }
    .filter-reset { border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.04); color:#a1a1aa; border-radius:999px; padding:6px 9px; font-size:10px; font-weight:850; font-family:inherit; cursor:pointer; white-space:nowrap; }
    .filter-group-title { font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:#71717a; font-weight:900; margin:2px 0 -4px; }
    .filter-row { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
    .filter-row.status { grid-template-columns:repeat(4,1fr); }
    .filter-chip { border:1px solid rgba(255,255,255,.09); background:rgba(255,255,255,.035); color:#a1a1aa; border-radius:12px; padding:8px 5px; font-size:11px; font-weight:850; font-family:inherit; cursor:pointer; text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height:42px; }
    .filter-chip.on { border-color:rgba(99,102,241,.38); background:rgba(99,102,241,.16); color:#c4b5fd; }
    .chip-count { font-size:9px; color:#71717a; font-weight:850; line-height:1; }
    .filter-chip.on .chip-count { color:rgba(196,181,253,.92); }
    .filter-summary { border:1px solid rgba(255,255,255,.07); background:rgba(255,255,255,.025); color:#a1a1aa; border-radius:13px; padding:8px 10px; font-size:11px; font-weight:750; line-height:1.35; }
    .filter-panel.compact { gap:8px; }
    @media (max-width:380px){ .view-tab{font-size:10px;min-height:47px}.filter-chip{font-size:10px;padding:8px 3px}.filter-row.status{grid-template-columns:repeat(2,1fr);} }


    /* Fase 2.29 - Asistente Facturae / FACe */
    .face-assistant-hero { background:linear-gradient(135deg,rgba(14,165,233,0.12),rgba(99,102,241,0.10)); border:1px solid rgba(125,211,252,0.16); border-radius:18px; padding:15px; margin-bottom:14px; }
    .face-assistant-title { font-size:18px; font-weight:950; color:#fff; margin-bottom:5px; letter-spacing:-.25px; }
    .face-assistant-sub { font-size:12px; color:#bae6fd; line-height:1.45; }
    .face-invoice-card { background:var(--card); border:1px solid var(--border); border-radius:16px; padding:13px 14px; margin-bottom:10px; }
    .face-invoice-top { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:10px; }
    .face-invoice-name { font-size:14px; font-weight:900; color:#f4f4f5; display:block; margin-bottom:3px; }
    .face-invoice-meta { font-size:11px; color:var(--muted); line-height:1.45; }
    .face-step-list { display:grid; gap:7px; margin:10px 0 12px; }
    .face-step { display:flex; gap:9px; align-items:flex-start; padding:8px 9px; border-radius:12px; background:rgba(255,255,255,0.035); border:1px solid rgba(255,255,255,0.055); }
    .face-step-dot { width:20px; height:20px; border-radius:999px; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:900; flex:0 0 20px; margin-top:1px; }
    .face-step.ok .face-step-dot { background:rgba(34,197,94,0.18); color:#86efac; }
    .face-step.warn .face-step-dot { background:rgba(245,158,11,0.18); color:#fbbf24; }
    .face-step.info .face-step-dot { background:rgba(99,102,241,0.18); color:#c4b5fd; }
    .face-step strong { display:block; font-size:12px; color:#f4f4f5; margin-bottom:2px; }
    .face-step span { display:block; font-size:11px; color:var(--muted); line-height:1.35; }
    .face-progress-badge { display:inline-flex; align-items:center; gap:5px; border-radius:999px; padding:5px 8px; font-size:10px; font-weight:900; border:1px solid rgba(255,255,255,0.10); white-space:nowrap; }
    .face-progress-badge.ok { background:rgba(34,197,94,0.12); color:#86efac; border-color:rgba(34,197,94,0.22); }
    .face-progress-badge.warn { background:rgba(245,158,11,0.12); color:#fbbf24; border-color:rgba(245,158,11,0.22); }
    .face-progress-badge.info { background:rgba(99,102,241,0.12); color:#c4b5fd; border-color:rgba(99,102,241,0.22); }
    .face-action-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:7px; margin-top:10px; }
    .face-action-grid .inv-action-btn { margin:0; }

    /* Fase 2.32 - AutoFirma */
    .autofirma-note { margin:10px 0 12px; padding:11px 12px; border-radius:14px; background:rgba(99,102,241,0.10); border:1px solid rgba(99,102,241,0.18); font-size:12px; color:#c4b5fd; line-height:1.45; }
    .autofirma-note strong { color:#fff; display:block; margin-bottom:3px; }
    .autofirma-flow { margin:10px 0 12px; padding:12px; border-radius:16px; background:rgba(255,255,255,0.035); border:1px solid rgba(255,255,255,0.07); }
    .autofirma-flow-title { font-size:12px; font-weight:950; color:#fff; margin-bottom:8px; }
    .autofirma-flow ol { margin:0; padding-left:18px; color:#d4d4d8; font-size:11px; line-height:1.55; }
    .autofirma-flow li { margin:3px 0; }
    .signed-file-box { margin-top:8px; padding:8px 9px; border-radius:12px; background:rgba(34,197,94,0.08); border:1px solid rgba(34,197,94,0.18); color:#86efac; font-size:11px; line-height:1.45; }

    /* Fase 2.37/2.38 - Usabilidad ligera */
    .comm-pill { display:inline-flex; align-items:center; gap:5px; width:max-content; padding:4px 8px; border-radius:999px; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.05); color:#a1a1aa; margin-left:6px; }
    .comm-pill.contacted { background:rgba(14,165,233,.12); border-color:rgba(14,165,233,.25); color:#7dd3fc; }
    .comm-pill.confirmed { background:rgba(34,197,94,.12); border-color:rgba(34,197,94,.25); color:#86efac; }
    .comm-pill.waiting { background:rgba(245,158,11,.12); border-color:rgba(245,158,11,.25); color:#fbbf24; }
    .client-autofill-box { border:1px solid rgba(99,102,241,.18); background:rgba(99,102,241,.07); border-radius:14px; padding:11px 12px; margin:8px 0 13px; }
    .client-autofill-title { font-size:12px; font-weight:950; color:#ddd6fe; margin-bottom:7px; }
    .client-defaults-box { border:1px solid rgba(34,197,94,.16); background:rgba(34,197,94,.055); border-radius:14px; padding:12px; margin:12px 0; }
    .client-defaults-title { font-size:12px; font-weight:950; color:#bbf7d0; margin-bottom:4px; }
    .client-defaults-sub { font-size:11px; color:#a1a1aa; line-height:1.35; margin-bottom:10px; }
    .client-dashboard { border:1px solid rgba(99,102,241,.22); background:linear-gradient(135deg,rgba(99,102,241,.13),rgba(34,197,94,.05)); border-radius:20px; padding:14px; margin:10px 0 14px; }
    .client-dashboard-title { color:#fff; font-size:15px; font-weight:950; margin-bottom:4px; }
    .client-dashboard-sub { color:#a1a1aa; font-size:11px; line-height:1.35; }
    .client-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:12px; }
    .client-kpi { border:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.16); border-radius:14px; padding:10px 8px; min-width:0; }
    .client-kpi strong { display:block; color:#fff; font-size:16px; line-height:1.1; margin-bottom:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .client-kpi span { display:block; color:#a1a1aa; font-size:10px; font-weight:850; text-transform:uppercase; letter-spacing:.045em; }
    .client-health-badge { display:inline-flex; align-items:center; gap:5px; width:max-content; max-width:100%; border-radius:999px; padding:5px 8px; font-size:10px; font-weight:950; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.055); color:#d4d4d8; white-space:nowrap; }
    .client-health-badge.ok { background:rgba(34,197,94,.12); border-color:rgba(34,197,94,.25); color:#86efac; }
    .client-health-badge.warn { background:rgba(245,158,11,.12); border-color:rgba(245,158,11,.25); color:#fbbf24; }
    .client-health-badge.public { background:rgba(99,102,241,.14); border-color:rgba(99,102,241,.28); color:#c4b5fd; }
    .client-card-pro { border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.04); border-radius:18px; padding:12px; margin:9px 0; cursor:pointer; transition:.15s ease; }
    .client-card-pro:active { transform:scale(.99); }
    .client-card-pro.open { border-color:rgba(99,102,241,0.35); background:rgba(99,102,241,0.05); }
    .client-card-main { display:flex; align-items:flex-start; gap:11px; }
    .client-card-title { color:#fff; font-size:14px; font-weight:950; line-height:1.18; margin-bottom:5px; }
    .client-sort-collapse { margin-bottom:12px; }
    /* Story Generator preview */
    .story-preview-wrap { margin:10px 0; }
    .story-preview-canvas { --story-glass-a:rgba(255,255,255,.22); --story-glass-b:rgba(255,255,255,.07); --story-glass-border:rgba(255,255,255,.22); --story-glow:rgba(255,255,255,.18); --story-time-bg:rgba(255,255,255,.12); position:relative; width:100%; aspect-ratio:9/16; max-width:340px; margin:0 auto; border-radius:24px; overflow:hidden; background:radial-gradient(circle at 20% 10%,rgba(245,158,11,.34),transparent 26%),radial-gradient(circle at 80% 0%,rgba(99,102,241,.42),transparent 34%),linear-gradient(160deg,#050507 0%,#111827 52%,#020617 100%); box-shadow:0 18px 48px rgba(0,0,0,0.55); border:1px solid rgba(255,255,255,.10); touch-action:none; user-select:none; }
    .story-export-stage { position:fixed; left:-420px; top:0; width:360px; height:640px; overflow:hidden; pointer-events:none; opacity:1; background:#000; z-index:2147483646; isolation:isolate; contain:layout paint style; }
    .story-export-stage .story-preview-canvas { width:360px !important; height:640px !important; max-width:none !important; aspect-ratio:auto !important; margin:0 !important; border-radius:0 !important; border:0 !important; box-shadow:none !important; transform:none !important; }
    .story-export-stage .story-editable { cursor:default !important; }
    .story-theme-ice { --story-glass-a:rgba(255,255,255,.24); --story-glass-b:rgba(255,255,255,.08); --story-glass-border:rgba(255,255,255,.28); --story-glow:rgba(255,255,255,.18); --story-time-bg:rgba(255,255,255,.13); }
    .story-theme-violet { --story-glass-a:rgba(168,85,247,.35); --story-glass-b:rgba(99,102,241,.14); --story-glass-border:rgba(196,181,253,.36); --story-glow:rgba(168,85,247,.26); --story-time-bg:rgba(168,85,247,.16); }
    .story-theme-sunset { --story-glass-a:rgba(249,115,22,.36); --story-glass-b:rgba(236,72,153,.14); --story-glass-border:rgba(251,191,36,.34); --story-glow:rgba(249,115,22,.28); --story-time-bg:rgba(249,115,22,.15); }
    .story-theme-aqua { --story-glass-a:rgba(34,211,238,.30); --story-glass-b:rgba(59,130,246,.13); --story-glass-border:rgba(125,211,252,.34); --story-glow:rgba(34,211,238,.24); --story-time-bg:rgba(34,211,238,.14); }
    .story-theme-emerald { --story-glass-a:rgba(16,185,129,.32); --story-glass-b:rgba(34,197,94,.13); --story-glass-border:rgba(110,231,183,.34); --story-glow:rgba(16,185,129,.24); --story-time-bg:rgba(16,185,129,.14); }
    .story-theme-rose { --story-glass-a:rgba(244,63,94,.32); --story-glass-b:rgba(236,72,153,.13); --story-glass-border:rgba(251,113,133,.34); --story-glow:rgba(244,63,94,.24); --story-time-bg:rgba(244,63,94,.14); }
    .story-bg-img, .story-bg-video { position:absolute; inset:-4%; width:108%; height:108%; object-fit:cover; filter:saturate(1.08) contrast(1.08) brightness(.72); transform:translate3d(0,0,0) scale(1.02); transform-origin:center center; touch-action:none; will-change:transform; }
    .story-bg-video { display:block; background:#000; }
    .story-bg-placeholder { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:radial-gradient(circle at 18% 10%,rgba(245,158,11,.28),transparent 28%),radial-gradient(circle at 86% 5%,rgba(168,85,247,.25),transparent 34%),linear-gradient(145deg,#07070a,#111827 58%,#020617); }
    .story-overlay-top { position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.18) 34%, rgba(0,0,0,.42) 73%, rgba(0,0,0,.88) 100%); pointer-events:none; }
    .story-content { position:absolute; inset:0; padding:8% 7% 7%; display:flex; flex-direction:column; color:#fff; }
    .story-header { display:flex; justify-content:flex-start; align-items:center; gap:8px; margin-bottom:7%; }
    .story-mode-pill { background:rgba(10,10,12,.44); backdrop-filter:blur(12px); border:1px solid rgba(255,255,255,.20); padding:7px 12px; border-radius:999px; font-size:9px; font-weight:950; letter-spacing:1.8px; color:#fff; text-transform:uppercase; box-shadow:0 8px 22px rgba(0,0,0,.22); }
    .story-count-pill { background:rgba(245,158,11,.92); color:#111827; border-radius:999px; padding:7px 10px; font-size:9px; font-weight:1000; letter-spacing:.9px; text-transform:uppercase; }
    .story-title-block { margin-top:auto; margin-bottom:4%; }
    .story-artist { font-size:30px; font-weight:1000; letter-spacing:-.04em; line-height:.9; color:#fff; text-shadow:0 4px 20px rgba(0,0,0,.75); text-transform:uppercase; }
    .story-tag { display:inline-flex; margin-top:8px; padding:6px 10px; border-radius:999px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.16); backdrop-filter:blur(8px); font-size:9px; font-weight:900; color:rgba(255,255,255,.84); letter-spacing:.8px; }
    .story-bolos-list { display:flex; flex-direction:column; gap:8px; margin-top:6%; }
    .story-bolo-row { display:grid; grid-template-columns:42px 1fr; gap:9px; align-items:center; padding:8px 9px; border-radius:16px; background:rgba(10,10,12,.46); border:1px solid rgba(255,255,255,.12); backdrop-filter:blur(14px); box-shadow:0 10px 26px rgba(0,0,0,.20); }
    .story-bolo-day { display:flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:14px; background:linear-gradient(145deg,var(--story-glass-a),var(--story-glass-b)); color:#fff; font-size:16px; font-weight:1000; letter-spacing:-.03em; box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 10px 28px var(--story-glow),0 10px 26px rgba(0,0,0,.24); border:1px solid var(--story-glass-border); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); text-shadow:0 2px 12px rgba(0,0,0,.55); }
    .story-bolo-text { min-width:0; display:flex; flex-direction:column; gap:3px; }
    .story-bolo-name { color:#fff; font-size:12px; font-weight:1000; line-height:1.12; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .story-bolo-meta { display:flex; align-items:center; gap:6px; min-width:0; flex-wrap:wrap; }
    .story-bolo-loc { color:rgba(255,255,255,.72); font-size:9px; font-weight:850; line-height:1.15; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-transform:uppercase; letter-spacing:.55px; }
    .story-bolo-time { display:inline-flex; align-items:center; padding:3px 7px; border-radius:999px; background:var(--story-time-bg); border:1px solid var(--story-glass-border); color:#fff; font-size:8.5px; font-weight:950; letter-spacing:.04em; box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 18px var(--story-glow); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
    .story-editable { cursor:pointer; }
    .story-empty-msg { color:rgba(255,255,255,.72); font-size:13px; text-align:center; margin:auto 0; padding:16px; border-radius:18px; background:rgba(0,0,0,.32); border:1px solid rgba(255,255,255,.12); backdrop-filter:blur(10px); }
    .story-control-panel { border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.04); border-radius:18px; padding:11px; margin:12px 0; }
    .story-control-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:9px; }
    .story-control-head strong { color:#fff; font-size:13px; font-weight:950; }
    .story-control-head span { color:#a1a1aa; font-size:11px; font-weight:800; }
    .story-event-list { display:grid; gap:7px; }
    .story-event-row { display:grid; grid-template-columns:24px 1fr auto; gap:8px; align-items:center; padding:8px; border-radius:14px; background:rgba(0,0,0,.16); border:1px solid rgba(255,255,255,.06); }
    .story-time-edit { width:76px; padding:8px 9px; border-radius:11px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.06); color:#fff; font-size:12px; font-weight:900; font-family:inherit; letter-spacing:.02em; }
    .story-line-edit { display:grid; grid-template-columns:1fr; gap:7px; margin-top:7px; }
    .story-line-edit-row { display:grid; grid-template-columns:48px 1fr; gap:7px; align-items:center; }
    .story-line-edit-row.time { grid-template-columns:48px 76px 28px 76px; }
    .story-line-edit-row label, .story-line-edit-row span { font-size:10px; color:var(--muted); font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
    .story-text-edit { width:100%; min-width:0; padding:8px 9px; border-radius:11px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.06); color:#fff; font-size:12px; font-weight:800; font-family:inherit; }
    .story-text-edit::placeholder, .story-time-edit::placeholder { color:rgba(255,255,255,.35); }
    .story-photo-tools { display:flex; gap:8px; align-items:center; margin-top:8px; }
    .story-photo-hint { flex:1; color:var(--muted); font-size:10px; font-weight:800; line-height:1.25; }
    .story-theme-picker { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin-top:8px; }
    .story-theme-btn { min-height:38px; border-radius:13px; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.04); color:#e4e4e7; font-family:inherit; font-size:11px; font-weight:900; display:flex; align-items:center; justify-content:center; gap:7px; }
    .story-theme-btn.on { border-color:rgba(255,255,255,.28); background:rgba(255,255,255,.09); box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 10px 24px rgba(0,0,0,.18); color:#fff; }
    .story-theme-dot { width:15px; height:15px; border-radius:999px; border:1px solid rgba(255,255,255,.34); box-shadow:0 8px 16px rgba(0,0,0,.20); }
    .story-theme-dot.ice { background:linear-gradient(135deg,#fff,#a1a1aa); }
    .story-theme-dot.violet { background:linear-gradient(135deg,#a855f7,#6366f1); }
    .story-theme-dot.sunset { background:linear-gradient(135deg,#facc15,#f97316,#ec4899); }
    .story-theme-dot.aqua { background:linear-gradient(135deg,#22d3ee,#3b82f6); }
    .story-theme-dot.emerald { background:linear-gradient(135deg,#10b981,#22c55e); }
    .story-theme-dot.rose { background:linear-gradient(135deg,#fb7185,#ec4899); }
    .story-inline-btn { display:inline-flex; align-items:center; gap:6px; padding:8px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background:linear-gradient(135deg,rgba(255,255,255,.07),rgba(255,255,255,.03)); color:#f4f4f5; font-size:11px; font-weight:900; font-family:inherit; box-shadow:0 8px 18px rgba(0,0,0,.14); }
    .story-inline-btn:active { transform:scale(.98); }
    .story-inline-btn .ig-dot { width:18px; height:18px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:radial-gradient(circle at 30% 110%,#facc15 0 18%,transparent 40%),radial-gradient(circle at 10% 10%,#60a5fa 0 18%,transparent 35%),linear-gradient(135deg,#a855f7,#ec4899 52%,#f97316); color:#fff; font-size:10px; box-shadow:0 6px 14px rgba(236,72,153,.18); }
    .section-head-inline { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:8px; margin-bottom:8px; }
    .section-head-inline .sub { margin:0; }
    .story-event-row input { width:18px; height:18px; accent-color:#f59e0b; }
    .story-event-row strong { display:block; color:#f4f4f5; font-size:12px; line-height:1.15; }
    .story-event-row span { display:block; color:#a1a1aa; font-size:10px; margin-top:2px; }
    .story-event-row button { border:0; border-radius:999px; padding:7px 9px; font-size:10px; font-weight:950; color:#e4e4e7; background:rgba(255,255,255,.08); font-family:inherit; }
    .story-event-row.hidden { opacity:.55; }
    .story-event-row.hidden button { color:#fbbf24; background:rgba(245,158,11,.12); }
    .payment-owed-kpi { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:8px 0 11px; padding:12px; border-radius:18px; border:1px solid rgba(34,197,94,.22); background:linear-gradient(135deg,rgba(34,197,94,.11),rgba(99,102,241,.06)); box-shadow:0 10px 26px rgba(0,0,0,.14); cursor:pointer; }
    .payment-owed-kpi-main strong { display:block; color:#fff; font-size:20px; font-weight:1000; letter-spacing:-.03em; line-height:1; }
    .payment-owed-kpi-main span { display:block; color:#a1a1aa; font-size:10px; font-weight:850; margin-top:4px; text-transform:uppercase; letter-spacing:.05em; }
    .payment-owed-kpi em { color:#86efac; font-size:11px; font-weight:950; font-style:normal; background:rgba(34,197,94,.12); border:1px solid rgba(34,197,94,.20); border-radius:999px; padding:6px 8px; white-space:nowrap; }
    .client-sort-collapse summary { list-style:none; padding:8px 12px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); border-radius:10px; font-size:12px; color:var(--muted); cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:8px; user-select:none; }
    .client-sort-collapse summary::-webkit-details-marker { display:none; }
    .client-sort-collapse[open] summary { border-radius:10px 10px 0 0; border-bottom:none; }
    .client-sort-current { color:#a78bfa; font-weight:600; font-size:11px; }
    .client-sort-row { display:flex; align-items:center; gap:6px; padding:8px 8px 8px 8px; background:rgba(255,255,255,0.02); border:1px solid rgba(255,255,255,0.07); border-top:none; border-radius:0 0 10px 10px; }
    .client-sort-btn { flex:1; padding:7px 8px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); border-radius:9px; color:#71717a; font-size:12px; font-weight:600; cursor:pointer; font-family:inherit; transition:all .15s; }
    .client-sort-btn.on { background:rgba(99,102,241,0.15); border-color:rgba(99,102,241,0.35); color:#a78bfa; }
    .client-sort-btn:active { transform:scale(.97); }
    .client-card-meta { color:#a1a1aa; font-size:11px; line-height:1.35; }
    .client-expand { margin:10px 0 4px; padding:10px 12px; background:rgba(99,102,241,0.06); border:1px solid rgba(99,102,241,0.15); border-radius:12px; }
    .client-expand-grid { display:flex; flex-direction:column; gap:7px; margin-bottom:10px; }
    .client-expand-row { display:flex; justify-content:space-between; gap:12px; font-size:12px; }
    .client-expand-row .cel { color:#71717a; font-weight:600; flex-shrink:0; }
    .client-expand-row .cev { color:#e4e4e7; text-align:right; word-break:break-word; }
    .client-edit-full { width:100%; padding:11px; background:rgba(99,102,241,0.15); border:1px solid rgba(99,102,241,0.3); border-radius:10px; color:#a78bfa; font-size:13px; font-weight:600; cursor:pointer; font-family:inherit; }
    .client-edit-full:active { background:rgba(99,102,241,0.25); }
    .client-chip-row { display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
    .client-action-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(88px,1fr)); gap:7px; margin-top:10px; }
    .client-mini-action { border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.045); color:#e4e4e7; border-radius:12px; padding:8px 7px; font-size:11px; font-weight:900; font-family:inherit; cursor:pointer; }
    .client-mini-action.green { background:rgba(34,197,94,.10); border-color:rgba(34,197,94,.18); color:#86efac; }
    .client-mini-action.purple { background:rgba(99,102,241,.11); border-color:rgba(99,102,241,.20); color:#c4b5fd; }
    .client-mini-action.warn { background:rgba(245,158,11,.10); border-color:rgba(245,158,11,.20); color:#fbbf24; }
    .client-section { border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.035); border-radius:16px; margin:10px 0; overflow:hidden; }
    .client-section summary { list-style:none; cursor:pointer; padding:13px; color:#e4e4e7; font-size:12px; font-weight:950; display:flex; justify-content:space-between; gap:10px; align-items:center; }
    .client-section summary::-webkit-details-marker { display:none; }
    .client-section summary:after { content:'Abrir'; color:#a5b4fc; font-size:10px; font-weight:950; text-transform:uppercase; letter-spacing:.04em; }
    .client-section[open] summary:after { content:'Cerrar'; color:#fbbf24; }
    .client-section-body { padding:0 13px 13px; }
    .client-alert { border:1px solid rgba(245,158,11,.22); background:rgba(245,158,11,.08); color:#fbbf24; border-radius:14px; padding:10px 11px; font-size:11px; line-height:1.45; margin:10px 0; }
    .client-alert.ok { border-color:rgba(34,197,94,.22); background:rgba(34,197,94,.08); color:#86efac; }
    .client-event-list { display:grid; gap:7px; margin-top:8px; }
    .client-event-mini { border:1px solid rgba(255,255,255,.07); background:rgba(0,0,0,.15); border-radius:12px; padding:9px 10px; display:flex; justify-content:space-between; gap:8px; align-items:center; }
    .client-event-mini strong { color:#fff; font-size:12px; }
    .client-event-mini span { color:#a1a1aa; font-size:10px; }

    /* Fase 2.54 - Panel económico claro */
    .econ-hero { border:1px solid rgba(34,197,94,.24); background:linear-gradient(135deg,rgba(34,197,94,.14),rgba(99,102,241,.08)); border-radius:22px; padding:15px; margin:12px 0; box-shadow:0 12px 32px rgba(0,0,0,.18); }
    .econ-hero-label { color:#a7f3d0; font-size:11px; font-weight:950; text-transform:uppercase; letter-spacing:.06em; margin-bottom:5px; }
    .econ-hero-value { color:#fff; font-size:32px; line-height:1; font-weight:950; letter-spacing:-.04em; margin-bottom:5px; }
    .econ-hero-sub { color:#a1a1aa; font-size:12px; line-height:1.38; }
    .econ-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:9px; margin:10px 0; }
    .econ-kpi { border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.045); border-radius:17px; padding:12px 10px; min-width:0; }
    .econ-kpi strong { display:block; color:#fff; font-size:20px; line-height:1.05; margin-bottom:5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .econ-kpi span { display:block; color:#a1a1aa; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.045em; line-height:1.25; }
    .econ-kpi.good strong { color:#86efac; }
    .econ-kpi.warn strong { color:#fbbf24; }
    .econ-kpi.bad strong { color:#fca5a5; }
    .econ-kpi.orange strong { color:#fdba74; }
    .econ-alert { border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.04); border-radius:16px; padding:11px; margin:8px 0; display:flex; gap:10px; align-items:flex-start; cursor:pointer; }
    .econ-alert-ico { width:28px; height:28px; flex:0 0 28px; border-radius:10px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.07); }
    .econ-alert-main strong { display:block; color:#fff; font-size:13px; margin-bottom:3px; }
    .econ-alert-main span { display:block; color:#a1a1aa; font-size:11px; line-height:1.35; }
    .econ-alert.ok { border-color:rgba(34,197,94,.24); background:rgba(34,197,94,.07); }
    .econ-alert.warn { border-color:rgba(245,158,11,.24); background:rgba(245,158,11,.07); }
    .econ-alert.bad { border-color:rgba(239,68,68,.24); background:rgba(239,68,68,.07); }
    .econ-row { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.07); }
    .econ-row:last-child { border-bottom:0; }
    .econ-row span { color:#a1a1aa; font-size:12px; line-height:1.3; }
    .econ-row strong { color:#fff; font-size:13px; text-align:right; }
    .econ-actions { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-top:10px; }
    .econ-actions .mini-btn { min-height:40px; }
    .econ-details { border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.035); border-radius:18px; margin:10px 0; overflow:hidden; }
    .econ-details summary { list-style:none; cursor:pointer; padding:13px; color:#e4e4e7; font-size:12px; font-weight:950; display:flex; justify-content:space-between; gap:10px; align-items:center; }
    .econ-details summary::-webkit-details-marker { display:none; }
    .econ-details summary:after { content:'Abrir'; color:#a5b4fc; font-size:10px; font-weight:950; text-transform:uppercase; letter-spacing:.04em; }
    .econ-details[open] summary:after { content:'Cerrar'; color:#fbbf24; }
    .econ-details-body { padding:0 13px 13px; }
    .econ-home { border:1px solid rgba(34,197,94,.18); background:linear-gradient(135deg,rgba(34,197,94,.09),rgba(99,102,241,.055)); border-radius:18px; padding:12px; margin:12px 0 4px; cursor:pointer; }
    .econ-home-top { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; margin-bottom:8px; }
    .econ-home-title { color:#fff; font-size:13px; font-weight:950; }
    .econ-home-sub { color:#a1a1aa; font-size:11px; line-height:1.35; margin-top:2px; }
    .econ-home-pill { color:#86efac; background:rgba(34,197,94,.12); border:1px solid rgba(34,197,94,.2); border-radius:999px; padding:4px 8px; font-size:10px; font-weight:950; white-space:nowrap; }
    .econ-home-mini { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
    .econ-home-mini div { border:1px solid rgba(255,255,255,.07); background:rgba(0,0,0,.14); border-radius:12px; padding:8px 7px; min-width:0; }
    .econ-home-mini strong { display:block; color:#fff; font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .econ-home-mini span { display:block; color:#a1a1aa; font-size:9px; text-transform:uppercase; font-weight:900; margin-top:2px; }
    @media (max-width:380px){ .econ-grid{grid-template-columns:1fr}.econ-actions{grid-template-columns:1fr}.econ-home-mini{grid-template-columns:1fr} .econ-hero-value{font-size:28px} }

    @media (max-width:380px){ .client-kpis{grid-template-columns:1fr 1fr}.client-action-row{grid-template-columns:1fr}.client-mini-action{min-height:38px} }

    /* Fase 2.32 - Firma guiada AutoFirma */
    .autofirma-note { background:rgba(34,197,94,0.08); border:1px solid rgba(34,197,94,0.18); color:#bbf7d0; border-radius:14px; padding:11px 12px; font-size:11px; line-height:1.45; margin:10px 0; }
    .autofirma-note strong { color:#fff; display:block; font-size:12px; margin-bottom:3px; }

    @media (max-width:380px){ .bottom-nav-btn{font-size:9px;min-height:50px}.bottom-nav-btn .nav-ico{font-size:17px}.header h1{font-size:18px}.header p{font-size:12px}.logo{width:48px;height:48px;font-size:28px} }
    @media (hover:none), (pointer:coarse) {
      button, [role="button"] { touch-action:manipulation; }
      .mini-btn,.invoice-mini-btn,.client-mini-action,.fbtn,.sbtn,.xbtn,.icon-btn { min-height:44px; }
      .xbtn,.icon-btn { min-width:44px; width:44px; height:44px; }
      .tpl-order-btn { width:44px; height:44px; font-size:14px; }
      .canbtn,.savebtn,.delbtn { min-height:46px; }
    }

    @media (max-width: 380px) {
      .week-stats { grid-template-columns:1fr; }
      .inv-action-grid { grid-template-columns:1fr; }
    }


    .day-hero { border:1px solid rgba(99,102,241,0.22); background:linear-gradient(135deg,rgba(99,102,241,.16),rgba(34,197,94,.08)); border-radius:22px; padding:16px; margin:10px 0 14px; box-shadow:0 18px 50px rgba(0,0,0,.18); }
    .day-hero-title { font-size:12px; color:#a1a1aa; font-weight:800; text-transform:uppercase; letter-spacing:.08em; margin-bottom:6px; }
    .day-hero-main { font-size:22px; font-weight:900; color:#fff; line-height:1.1; margin-bottom:6px; }
    .day-hero-sub { color:#c4b5fd; font-size:13px; font-weight:700; }
    .day-card { border:1px solid rgba(255,255,255,.09); background:rgba(255,255,255,.045); border-radius:18px; padding:14px; margin:10px 0; }
    .day-top { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; margin-bottom:10px; }
    .day-name { font-weight:900; color:#fff; font-size:16px; }
    .day-meta { color:#a1a1aa; font-size:12px; margin-top:3px; }
    .day-badge { border-radius:999px; padding:5px 9px; font-size:11px; font-weight:900; white-space:nowrap; background:rgba(99,102,241,.15); color:#c4b5fd; border:1px solid rgba(99,102,241,.22); }
    .day-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin:10px 0; }
    .day-info { border:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.14); border-radius:12px; padding:9px; }
    .day-info span { display:block; color:#71717a; font-size:10px; text-transform:uppercase; font-weight:800; letter-spacing:.05em; margin-bottom:3px; }
    .day-info strong { color:#e4e4e7; font-size:13px; }
    .checklist { display:grid; gap:7px; margin:10px 0 2px; }
    .check-row { width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.035); border-radius:12px; padding:9px 10px; color:#d4d4d8; font-size:13px; font-weight:750; cursor:pointer; font-family:inherit; text-align:left; }
    .check-row.on { background:rgba(34,197,94,.11); border-color:rgba(34,197,94,.23); color:#86efac; }
    .check-row .tick { width:21px; height:21px; border-radius:7px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.14); color:#71717a; flex:0 0 auto; font-size:12px; }
    .check-row.on .tick { border-color:rgba(34,197,94,.35); background:rgba(34,197,94,.18); color:#86efac; }
    .form-check-grid { display:grid; grid-template-columns:1fr; gap:7px; }
    .form-check { display:flex; align-items:center; gap:8px; padding:9px 10px; border:1px solid rgba(255,255,255,.08); border-radius:12px; background:rgba(255,255,255,.035); font-size:13px; color:#d4d4d8; font-weight:700; }
    .form-check input { width:17px; height:17px; accent-color:#22c55e; }

    .checklist-collapsible { border:1px solid rgba(255,255,255,.085); background:rgba(255,255,255,.035); border-radius:16px; margin:10px 0; overflow:hidden; }
    .checklist-collapsible summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 12px; color:#f4f4f5; font-size:12px; font-weight:950; }
    .checklist-collapsible summary::-webkit-details-marker { display:none; }
    .checklist-collapsible summary strong { color:#fff; font-size:12px; font-weight:950; }
    .checklist-collapsible summary span { color:#a1a1aa; font-size:10px; font-weight:900; white-space:nowrap; }
    .checklist-collapsible summary::after { content:'+'; width:22px; height:22px; border-radius:8px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.09); color:#c4b5fd; font-size:15px; font-weight:950; flex:0 0 auto; }
    .checklist-collapsible[open] summary::after { content:'−'; color:#86efac; }
    .checklist-collapsible-body { padding:0 10px 10px; }
    .checklist-collapsible .checklist, .checklist-collapsible .form-check-grid { margin-top:0; }



    /* Fase 2.51 - Flujo completo del bolo */
    .flow-panel { border:1px solid rgba(99,102,241,.22); background:linear-gradient(135deg,rgba(99,102,241,.13),rgba(255,255,255,.035)); border-radius:20px; padding:13px; margin:12px 0; }
    .flow-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:10px; }
    .flow-title { color:#fff; font-size:15px; font-weight:950; margin:0; }
    .flow-sub { color:#a1a1aa; font-size:11px; line-height:1.35; margin-top:3px; }
    .flow-score { min-width:54px; text-align:center; border:1px solid rgba(255,255,255,.1); background:rgba(0,0,0,.18); border-radius:14px; padding:7px 8px; color:#f4f4f5; font-weight:950; }
    .flow-score span { display:block; font-size:9px; color:#a1a1aa; font-weight:900; text-transform:uppercase; letter-spacing:.04em; margin-top:2px; }
    .flow-bar { height:7px; border-radius:999px; overflow:hidden; background:rgba(255,255,255,.08); margin:8px 0 12px; }
    .flow-fill { height:100%; border-radius:999px; background:linear-gradient(90deg,#22c55e,#818cf8); transition:width .2s ease; }
    .flow-list { display:grid; gap:8px; }
    .flow-step { border:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.15); border-radius:15px; padding:10px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; }
    .flow-step.done { border-color:rgba(34,197,94,.23); background:rgba(34,197,94,.07); }
    .flow-step.warn { border-color:rgba(245,158,11,.25); background:rgba(245,158,11,.07); }
    .flow-step.todo { border-color:rgba(239,68,68,.2); background:rgba(239,68,68,.045); }
    .flow-ico { width:31px; height:31px; border-radius:11px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.07); font-size:15px; }
    .flow-main strong { display:block; color:#f4f4f5; font-size:12px; font-weight:950; }
    .flow-main span { display:block; color:#a1a1aa; font-size:11px; margin-top:2px; line-height:1.35; }
    .flow-state { font-size:10px; font-weight:950; border-radius:999px; padding:5px 8px; white-space:nowrap; border:1px solid rgba(255,255,255,.1); color:#a1a1aa; }
    .flow-step.done .flow-state { color:#86efac; border-color:rgba(34,197,94,.25); background:rgba(34,197,94,.1); }
    .flow-step.warn .flow-state { color:#fbbf24; border-color:rgba(245,158,11,.25); background:rgba(245,158,11,.09); }
    .flow-step.todo .flow-state { color:#fca5a5; border-color:rgba(239,68,68,.25); background:rgba(239,68,68,.08); }
    .flow-actions { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-top:10px; }
    .flow-btn { border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.05); color:#e4e4e7; border-radius:13px; padding:10px; font-size:12px; font-weight:900; font-family:inherit; cursor:pointer; }
    .flow-btn.green { border-color:rgba(34,197,94,.25); background:rgba(34,197,94,.11); color:#86efac; }
    .flow-btn.warn { border-color:rgba(245,158,11,.25); background:rgba(245,158,11,.1); color:#fbbf24; }
    .flow-btn.blue { border-color:rgba(59,130,246,.25); background:rgba(59,130,246,.1); color:#93c5fd; }
    .card-flow { margin-top:8px; }
    .card-flow-top { display:flex; align-items:center; justify-content:space-between; gap:8px; color:#a1a1aa; font-size:10px; font-weight:900; }
    .card-flow-bar { height:5px; border-radius:999px; overflow:hidden; background:rgba(255,255,255,.08); margin-top:5px; }
    .card-flow-fill { height:100%; border-radius:999px; background:linear-gradient(90deg,#22c55e,#818cf8); }
    @media (max-width:390px){ .flow-actions{grid-template-columns:1fr;} .flow-step{grid-template-columns:auto 1fr;} .flow-state{grid-column:1 / -1; width:max-content;} }



    /* Fase 2.51.1 - Detalle de bolo simplificado */
    .bolo-quick-panel { border:1px solid rgba(255,255,255,.08); background:linear-gradient(135deg,rgba(255,255,255,.06),rgba(99,102,241,.07)); border-radius:20px; padding:13px; margin:10px 0 12px; }
    .bolo-quick-title { color:#fff; font-size:13px; font-weight:950; margin-bottom:9px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
    .bolo-quick-sub { color:#a1a1aa; font-size:11px; line-height:1.35; font-weight:700; }
    .bolo-state-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin:10px 0; }
    .bolo-state-card { border:1px solid rgba(255,255,255,.07); background:rgba(0,0,0,.16); border-radius:15px; padding:10px; min-height:58px; }
    .bolo-state-card span { display:block; color:#a1a1aa; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; margin-bottom:5px; }
    .bolo-state-card strong { display:block; color:#f4f4f5; font-size:12px; font-weight:950; line-height:1.25; }
    .bolo-state-card.ok strong { color:#86efac; }
    .bolo-state-card.warn strong { color:#fbbf24; }
    .bolo-state-card.bad strong { color:#fca5a5; }
    .bolo-state-card.muted strong { color:#d4d4d8; }
    .bolo-action-box { border:1px solid rgba(255,255,255,.08); border-radius:16px; padding:11px; margin-top:10px; background:rgba(255,255,255,.04); }
    .bolo-action-box.ok { border-color:rgba(34,197,94,.22); background:rgba(34,197,94,.08); }
    .bolo-action-box.warn { border-color:rgba(245,158,11,.24); background:rgba(245,158,11,.08); }
    .bolo-action-box.bad { border-color:rgba(239,68,68,.24); background:rgba(239,68,68,.07); }
    .bolo-action-box strong { display:block; color:#fff; font-size:13px; font-weight:950; margin-bottom:3px; }
    .bolo-action-box span { display:block; color:#c4c4cc; font-size:11px; line-height:1.4; }
    .bolo-action-box button { margin-top:9px; border:0; border-radius:12px; padding:9px 11px; background:#6366f1; color:#fff; font-family:inherit; font-size:12px; font-weight:950; cursor:pointer; width:100%; }
    .bolo-action-box.ok button { background:#16a34a; }
    .bolo-action-box.warn button { background:#d97706; }
    .bolo-action-box.bad button { background:#dc2626; }
    .bolo-mini-actions { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin:10px 0 12px; }
    .bolo-mini-actions .quick-action { margin:0; }
    .bolo-advanced { border:1px solid rgba(255,255,255,.08); border-radius:18px; background:rgba(255,255,255,.035); margin:12px 0; overflow:hidden; }
    .bolo-advanced summary { list-style:none; cursor:pointer; padding:13px; color:#e4e4e7; font-size:12px; font-weight:950; display:flex; justify-content:space-between; gap:10px; align-items:center; }
    .bolo-advanced summary::-webkit-details-marker { display:none; }
    .bolo-advanced summary:after { content:'Abrir'; color:#a5b4fc; font-size:10px; font-weight:950; text-transform:uppercase; letter-spacing:.04em; }
    .bolo-advanced[open] summary:after { content:'Cerrar'; color:#fbbf24; }
    .bolo-advanced-inner { padding:0 13px 13px; }
    .bolo-advanced .flow-panel { margin-top:0; }
    .detail-section-title { color:#a5b4fc; font-size:11px; font-weight:950; text-transform:uppercase; letter-spacing:.05em; margin:12px 0 7px; }
    @media (max-width:390px){ .bolo-state-grid,.bolo-mini-actions{grid-template-columns:1fr;} }

    .bolo-hero { border:1px solid rgba(255,255,255,.09); background:radial-gradient(circle at top left,rgba(99,102,241,.26),rgba(0,0,0,.1) 42%,rgba(255,255,255,.035)); border-radius:24px; padding:15px; margin:6px 0 12px; box-shadow:0 18px 44px rgba(0,0,0,.18); }
    .bolo-hero-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:9px; }
    .bolo-hero-kicker { color:#a5b4fc; font-size:10px; font-weight:950; letter-spacing:.08em; text-transform:uppercase; margin-bottom:4px; }
    .bolo-hero-title { color:#fff; font-size:20px; line-height:1.08; font-weight:950; letter-spacing:-.035em; }
    .bolo-hero-place { color:#d4d4d8; font-size:12px; font-weight:800; line-height:1.35; margin-top:6px; }
    .bolo-hero-date { min-width:72px; text-align:center; border:1px solid rgba(255,255,255,.11); background:rgba(0,0,0,.2); border-radius:18px; padding:10px 8px; color:#fff; }
    .bolo-hero-date strong { display:block; font-size:23px; line-height:1; font-weight:950; }
    .bolo-hero-date span { display:block; color:#a1a1aa; font-size:10px; font-weight:950; text-transform:uppercase; margin-top:4px; }
    .bolo-status-strip { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
    .bolo-status-pill { border-radius:999px; padding:6px 9px; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.045); color:#d4d4d8; font-size:10px; font-weight:950; }
    .bolo-status-pill.ok { color:#86efac; border-color:rgba(34,197,94,.22); background:rgba(34,197,94,.1); }
    .bolo-status-pill.warn { color:#fbbf24; border-color:rgba(245,158,11,.24); background:rgba(245,158,11,.11); }
    .bolo-status-pill.bad { color:#fca5a5; border-color:rgba(239,68,68,.24); background:rgba(239,68,68,.11); }
    .bolo-pro-grid { display:grid; grid-template-columns:1fr; gap:10px; margin:12px 0; }
    .bolo-pro-card { border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.04); border-radius:18px; padding:12px; }
    .bolo-pro-card h4 { margin:0 0 8px; color:#fff; font-size:12px; font-weight:950; display:flex; align-items:center; gap:7px; }
    .bolo-pro-line { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:7px 0; border-top:1px solid rgba(255,255,255,.055); }
    .bolo-pro-line:first-of-type { border-top:0; padding-top:0; }
    .bolo-pro-line span { color:#a1a1aa; font-size:11px; font-weight:800; }
    .bolo-pro-line strong { color:#f4f4f5; font-size:12px; font-weight:950; text-align:right; line-height:1.25; }
    .bolo-primary-actions { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin:12px 0; }
    .bolo-primary-actions .quick-action { min-height:44px; border-radius:14px; font-size:12px; }
    .bolo-alert-clean { border-radius:18px; padding:12px; margin:10px 0; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.04); }
    .bolo-alert-clean strong { display:block; color:#fff; font-size:13px; font-weight:950; margin-bottom:4px; }
    .bolo-alert-clean span { display:block; color:#a1a1aa; font-size:11px; line-height:1.35; font-weight:750; }
    .bolo-alert-clean.ok { border-color:rgba(34,197,94,.24); background:rgba(34,197,94,.09); }
    .bolo-alert-clean.warn { border-color:rgba(245,158,11,.24); background:rgba(245,158,11,.1); }
    .bolo-alert-clean.bad { border-color:rgba(239,68,68,.24); background:rgba(239,68,68,.1); }
    @media (min-width:520px){ .bolo-pro-grid{grid-template-columns:repeat(2,1fr);} }


    /* Fase 2.48 - Estabilidad, errores controlados y protección local */
    .diag-hero { border:1px solid rgba(99,102,241,.24); background:linear-gradient(135deg,rgba(99,102,241,.16),rgba(14,165,233,.08)); border-radius:22px; padding:16px; margin:10px 0 14px; box-shadow:0 18px 50px rgba(0,0,0,.18); }
    .diag-title { font-size:19px; font-weight:950; color:#fff; margin-bottom:5px; letter-spacing:-.25px; }
    .diag-sub { font-size:12px; color:#c4b5fd; line-height:1.45; }
    .diag-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin:12px 0; }
    .diag-card { background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.075); border-radius:15px; padding:11px 12px; min-height:70px; }
    .diag-card span { display:block; color:#a1a1aa; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.05em; margin-bottom:6px; }
    .diag-card strong { display:block; color:#f4f4f5; font-size:13px; font-weight:900; word-break:break-word; }
    .diag-card.good strong { color:#86efac; }
    .diag-card.warn strong { color:#fbbf24; }
    .diag-card.bad strong { color:#fca5a5; }
    .diag-row { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid rgba(255,255,255,.06); font-size:12px; }
    .diag-row:last-child { border-bottom:0; }
    .diag-row span { color:#a1a1aa; font-weight:800; }
    .diag-row strong { color:#e4e4e7; text-align:right; word-break:break-word; }
    .diag-actions { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-top:12px; }
    @media (max-width:380px){ .diag-grid,.diag-actions{grid-template-columns:1fr;} }


    .payment-scope-note { background: rgba(34,197,94,0.08); border: 1px solid rgba(34,197,94,0.18); color: #bbf7d0; border-radius: 14px; padding: 10px 12px; font-size: 12px; line-height: 1.45; margin: 0 0 12px; }
    .payment-state-pill { display:inline-flex; align-items:center; gap:4px; border-radius: 999px; padding: 3px 8px; font-size: 10px; font-weight: 800; margin-left: 6px; vertical-align: middle; }
    .payment-state-pill.due { background: rgba(239,68,68,0.14); color: #fca5a5; border: 1px solid rgba(239,68,68,0.20); }
    .payment-state-pill.paid { background: rgba(34,197,94,0.14); color: #86efac; border: 1px solid rgba(34,197,94,0.20); }
    .payment-state-pill.future { background: rgba(99,102,241,0.14); color: #c4b5fd; border: 1px solid rgba(99,102,241,0.20); }
    .payment-state-pill.enb { background: rgba(249,115,22,0.14); color: #fdba74; border: 1px solid rgba(249,115,22,0.20); }
    .payment-state-pill.muted { background: rgba(255,255,255,0.06); color: #a1a1aa; border: 1px solid rgba(255,255,255,0.08); }
    .saldo-filter.tight { gap: 6px; border: 0; overflow-x: auto; padding-bottom: 2px; }
    .saldo-filter.tight .saldo-fbtn { flex: 0 0 auto; border: 1px solid var(--border); border-radius: 999px; padding: 8px 11px; font-size: 11px; white-space: nowrap; }
    .saldo-filter.tight .saldo-fbtn.on { border-color: rgba(99,102,241,0.45); }
    .payment-summary-grid { display:grid; grid-template-columns: repeat(2,1fr); gap: 8px; margin: 0 0 12px; }
    .payment-summary-card { background: rgba(255,255,255,0.035); border: 1px solid var(--border); border-radius: 14px; padding: 10px; }
    .payment-summary-card strong { display:block; font-size: 16px; color: var(--text); }
    .payment-summary-card span { display:block; font-size: 10px; color: var(--muted); margin-top: 2px; }

    /* Fase 2.54.5 - Pagos y facturas: limpieza visual */
    .payment-tax-note { background: rgba(99,102,241,0.075); border: 1px solid rgba(99,102,241,0.18); color: #dbeafe; border-radius: 16px; padding: 11px 12px; font-size: 11px; line-height: 1.45; margin: 0 0 12px; }
    .payment-tax-note strong { display:block; color:#fff; font-size:12px; margin-bottom:3px; }
    .payment-filter-shell { margin: 12px 0 14px; }
    .payment-filter-toggle { width:100%; padding:11px 12px; background:linear-gradient(135deg,rgba(255,255,255,0.045),rgba(255,255,255,0.025)); border:1px solid var(--border); border-radius:16px; color:var(--text); font-size:13px; font-weight:800; cursor:pointer; font-family:inherit; display:flex; justify-content:space-between; align-items:center; gap:10px; box-shadow:0 8px 20px rgba(0,0,0,.10); }
    .payment-filter-toggle-main { display:flex; align-items:center; gap:8px; min-width:0; }
    .payment-filter-toggle-sub { margin-left:auto; font-size:11px; color:var(--muted); font-weight:800; white-space:nowrap; }
    .payment-current-badge { display:inline-flex; align-items:center; justify-content:center; min-width:68px; height:24px; padding:0 9px; border-radius:999px; background:rgba(99,102,241,0.14); color:#c7d2fe; border:1px solid rgba(99,102,241,0.26); font-size:11px; font-weight:900; }
    .payment-filter-panel { margin-top:8px; padding: 9px; border: 1px solid rgba(255,255,255,0.075); background: rgba(255,255,255,0.03); border-radius: 18px; }
    .payment-filter-grid { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:7px; }
    .payment-filter-card { display:flex; align-items:center; gap:8px; min-height:44px; border:1px solid rgba(255,255,255,0.07); border-radius:13px; background:rgba(255,255,255,0.03); color:#e4e4e7; padding:7px 8px; font-family:inherit; cursor:pointer; text-align:left; transition: transform .12s ease, border-color .12s ease, background .12s ease; }
    .payment-filter-card:active { transform: scale(.985); }
    .payment-filter-card.on { border-color:rgba(99,102,241,0.42); background:linear-gradient(135deg,rgba(99,102,241,0.18),rgba(14,165,233,0.07)); box-shadow:0 10px 26px rgba(0,0,0,.14); }
    .payment-filter-card.featured { grid-column:1/-1; min-height:48px; background:linear-gradient(135deg,rgba(239,68,68,0.10),rgba(249,115,22,0.06)); border-color:rgba(249,115,22,0.18); }
    .payment-filter-card.featured.on { border-color:rgba(249,115,22,0.42); background:linear-gradient(135deg,rgba(239,68,68,0.18),rgba(249,115,22,0.10)); }
    .payment-filter-ico { width:26px; height:26px; display:flex; align-items:center; justify-content:center; border-radius:10px; background:rgba(255,255,255,0.055); font-size:13px; flex:0 0 auto; }
    .payment-filter-text { min-width:0; flex:1; display:block; }
    .payment-filter-text strong { display:block; font-size:10.5px; font-weight:950; line-height:1.1; color:#f4f4f5; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .payment-filter-text em { display:block; font-style:normal; font-size:8.5px; line-height:1.2; color:#a1a1aa; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .payment-filter-count { min-width:24px; height:24px; padding:0 7px; border-radius:999px; background:rgba(99,102,241,0.10); border:1px solid rgba(99,102,241,0.16); color:#c7d2fe; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:950; flex:0 0 auto; }
    .payment-filter-card.on .payment-filter-count { background:rgba(255,255,255,0.15); color:#fff; border-color:rgba(255,255,255,0.18); }
    .saldo-tax-line { display:block; margin-top:3px; color:#93c5fd; font-size:10px; font-weight:700; line-height:1.3; }
    .payment-amount-box { margin-left:auto; text-align:right; min-width:82px; display:flex; flex-direction:column; align-items:flex-end; gap:2px; }
    .payment-amount-box strong { font-size:14px; font-weight:950; line-height:1; }
    .payment-amount-box em { font-style:normal; font-size:9px; color:#a1a1aa; font-weight:800; white-space:nowrap; }
    .payment-amount-box.future em { color:#c4b5fd; }
    .payment-amount-box.paid em { color:#86efac; }
    .payment-amount-box.due em { color:#fca5a5; }
    .payment-pay-action { border:0; border-radius:13px; padding:10px 12px; font-size:11px; font-weight:950; font-family:inherit; cursor:pointer; white-space:nowrap; min-width:104px; box-shadow:0 8px 22px rgba(0,0,0,.18); }
    .payment-pay-action.pay { background:linear-gradient(135deg,#22c55e,#16a34a); color:#052e16; }
    .payment-pay-action.future { background:linear-gradient(135deg,#a78bfa,#6366f1); color:#111827; }
    .payment-pay-action.done { background:rgba(34,197,94,.13); color:#86efac; border:1px solid rgba(34,197,94,.26); box-shadow:none; }
    .payment-pay-action.missing { background:rgba(245,158,11,.13); color:#fbbf24; border:1px solid rgba(245,158,11,.25); box-shadow:none; }
    .payment-simple-hint { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:8px 0 10px; padding:10px 12px; border-radius:14px; background:rgba(34,197,94,.08); border:1px solid rgba(34,197,94,.18); color:#bbf7d0; font-size:11px; font-weight:850; }
    .payment-batch-panel { border:1px solid rgba(34,197,94,.20); background:linear-gradient(135deg,rgba(34,197,94,.09),rgba(99,102,241,.055)); border-radius:18px; padding:12px; margin:12px 0; }
    .payment-batch-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:9px; }
    .payment-batch-head strong { color:#fff; font-size:13px; font-weight:950; display:block; }
    .payment-batch-head span { color:#a1a1aa; font-size:11px; line-height:1.35; display:block; margin-top:2px; }
    .payment-batch-controls { display:grid; grid-template-columns:1fr; gap:8px; }
    .payment-batch-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
    .payment-batch-btn { border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.06); color:#e4e4e7; border-radius:13px; padding:10px 9px; font-size:11px; font-weight:950; font-family:inherit; cursor:pointer; }
    .payment-batch-btn.primary { background:linear-gradient(135deg,#22c55e,#16a34a); color:#052e16; border:0; }
    .payment-batch-btn:disabled { opacity:.45; cursor:not-allowed; filter:grayscale(.4); }
    .payment-selected-pill { display:inline-flex; align-items:center; gap:6px; border:1px solid rgba(34,197,94,.24); background:rgba(34,197,94,.10); color:#86efac; border-radius:999px; padding:5px 8px; font-size:10px; font-weight:950; white-space:nowrap; }
    .payment-selection-toolbar { position:sticky; top:8px; z-index:20; display:grid; gap:8px; margin:10px 0 12px; padding:10px; border:1px solid rgba(34,197,94,.20); background:rgba(9,12,20,.94); backdrop-filter:blur(14px); border-radius:16px; box-shadow:0 14px 34px rgba(0,0,0,.28); }
    .payment-selection-toolbar-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
    .payment-selection-toolbar-head strong { color:#fff; font-size:12px; font-weight:950; }
    .payment-selection-toolbar-head span { color:#86efac; font-size:11px; font-weight:950; }
    .payment-selection-toolbar-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
    .payment-selection-toolbar-actions .wide { grid-column:1/-1; }
    .payment-selection-btn { border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.06); color:#e4e4e7; border-radius:12px; padding:10px 9px; font-size:11px; font-weight:950; font-family:inherit; cursor:pointer; }
    .payment-selection-btn.primary { border:0; background:linear-gradient(135deg,#22c55e,#16a34a); color:#052e16; box-shadow:0 10px 22px rgba(34,197,94,.18); }
    .payment-selection-btn:disabled { opacity:.45; filter:grayscale(1); cursor:not-allowed; }
    .invoice-selection-tools { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:8px 0 10px; }
    .invoice-selection-tools .wide { grid-column:1/-1; }

    .payment-select-box { width:34px; height:34px; display:flex; align-items:center; justify-content:center; border-radius:12px; border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.045); cursor:pointer; flex:0 0 auto; }
    .payment-select-box input { width:18px; height:18px; accent-color:#22c55e; cursor:pointer; }
    .payment-select-box.disabled { opacity:.28; cursor:not-allowed; }
    @media (max-width:460px){ .saldo-card{flex-wrap:wrap;} .saldo-info{min-width:calc(100% - 112px);} .payment-pay-action{width:100%; order:5; font-size:12px; padding:12px;} .payment-amount-box{margin-left:auto;} }
    @media (min-width:520px){ .payment-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr));} }
    @media (max-width:360px){ .payment-filter-grid{grid-template-columns:1fr;} .payment-amount-box{min-width:72px;} }



    /* Fase 2.59.5 - Pagos orientado a acción y pago múltiple claro */
    .payment-focus-card { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 14px; border:1px solid rgba(34,197,94,.18); background:linear-gradient(135deg,rgba(34,197,94,.10),rgba(99,102,241,.055)); border-radius:18px; margin:0 0 12px; }
    .payment-focus-card strong { display:block; color:#fff; font-size:15px; font-weight:950; margin-top:2px; }
    .payment-focus-card p { margin:4px 0 0; color:#a7f3d0; font-size:11px; line-height:1.35; font-weight:750; }
    .payment-focus-label { display:inline-flex; align-items:center; border-radius:999px; padding:3px 8px; background:rgba(34,197,94,.15); border:1px solid rgba(34,197,94,.24); color:#86efac; font-size:9px; font-weight:950; text-transform:uppercase; letter-spacing:.03em; }
    .payment-main-tabs { display:grid; grid-template-columns:1fr; gap:8px; margin:10px 0 12px; }
    .payment-main-tab { display:flex; align-items:center; gap:10px; padding:11px 12px; border:1px solid rgba(255,255,255,.09); background:rgba(255,255,255,.045); color:#e4e4e7; border-radius:16px; cursor:pointer; font-family:inherit; text-align:left; }
    .payment-main-tab.on { border-color:rgba(34,197,94,.34); background:linear-gradient(135deg,rgba(34,197,94,.13),rgba(99,102,241,.07)); box-shadow:0 10px 26px rgba(0,0,0,.14); }
    .payment-main-tab-icon { width:32px; height:32px; border-radius:12px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.07); flex:0 0 auto; }
    .payment-main-tab-text { flex:1; min-width:0; }
    .payment-main-tab strong { display:block; font-size:12px; font-weight:950; color:#fff; }
    .payment-main-tab small { display:block; font-size:10px; color:#a1a1aa; margin-top:2px; }
    .payment-main-tab em { min-width:28px; height:28px; border-radius:999px; display:flex; align-items:center; justify-content:center; background:rgba(99,102,241,.14); color:#c7d2fe; font-size:11px; font-weight:950; font-style:normal; }
    .payment-batch-compact { margin:10px 0 12px; }
    .payment-batch-toggle { width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 12px; border-radius:15px; border:1px solid rgba(34,197,94,.18); background:rgba(34,197,94,.07); color:#bbf7d0; font-size:12px; font-weight:950; font-family:inherit; cursor:pointer; }
    .payment-batch-toggle em { font-style:normal; color:#86efac; font-size:10px; font-weight:950; }
    .payment-focus-card.compact { padding:12px 13px; margin-bottom:10px; }
    .payment-focus-card.compact strong { margin:0; }
    .payment-focus-card.compact .payment-focus-mini { color:#a7f3d0; font-size:10px; font-weight:850; margin-top:2px; }
    .payment-batch-topline { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
    .payment-batch-topline strong { color:#fff; font-size:13px; font-weight:950; display:block; }
    .payment-batch-topline span { color:#a1a1aa; font-size:10px; font-weight:800; display:block; margin-top:2px; }
    .payment-batch-search { display:flex; gap:8px; align-items:center; margin:8px 0 10px; }
    .payment-batch-search .fi { flex:1; margin:0; }
    .payment-batch-chips { display:flex; flex-wrap:wrap; gap:7px; margin:8px 0 10px; }
    .payment-batch-chip { border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.045); color:#e4e4e7; border-radius:999px; padding:7px 9px; font-size:10px; font-weight:900; font-family:inherit; cursor:pointer; }
    .payment-batch-chip.on { border-color:rgba(34,197,94,.35); background:rgba(34,197,94,.13); color:#bbf7d0; }
    .payment-batch-match { border:1px solid rgba(34,197,94,.18); background:rgba(34,197,94,.055); border-radius:16px; padding:10px; margin-top:10px; }
    .payment-batch-match-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
    .payment-batch-match-head strong { color:#bbf7d0; font-size:12px; font-weight:950; }
    .payment-batch-match-head em { color:#86efac; font-size:11px; font-weight:950; font-style:normal; }
    .payment-batch-mini-list { display:grid; gap:6px; margin:8px 0 10px; }
    .payment-batch-mini-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; padding:8px 9px; border:1px solid rgba(255,255,255,.075); background:rgba(0,0,0,.14); border-radius:12px; }
    .payment-batch-mini-row strong { color:#fff; font-size:11px; font-weight:900; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .payment-batch-mini-row span { color:#a1a1aa; font-size:10px; font-weight:750; }
    .payment-batch-mini-row em { color:#fef3c7; font-size:11px; font-weight:950; font-style:normal; align-self:center; }
    .payment-batch-payall { width:100%; border:0; border-radius:14px; padding:12px; font-size:13px; font-weight:950; font-family:inherit; background:linear-gradient(135deg,#22c55e,#16a34a); color:#052e16; cursor:pointer; box-shadow:0 10px 24px rgba(34,197,94,.18); }
    .payment-batch-empty { color:#fbbf24; font-size:11px; font-weight:800; padding:9px 10px; border:1px solid rgba(245,158,11,.18); background:rgba(245,158,11,.07); border-radius:13px; margin-top:8px; }

    .payment-list-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:10px 0 8px; }
    .payment-list-head strong { color:#fff; font-size:14px; font-weight:950; }
    .payment-list-head span { color:#a1a1aa; font-size:11px; font-weight:850; }
    .payment-action-card { align-items:stretch; gap:9px; }
    .payment-action-card .payment-state-pill { margin-left:0; margin-top:5px; }
    .payment-action-card .payment-pay-action { align-self:center; }
    .payment-action-card .saldo-toggle { display:none; }
    .payment-action-card .payment-select-box { margin-top:2px; }
    .payment-totals-details { margin:18px 0 4px; border:1px solid rgba(255,255,255,.08); border-radius:18px; background:rgba(255,255,255,.035); overflow:hidden; }
    .payment-totals-details summary { list-style:none; cursor:pointer; padding:13px 14px; display:flex; align-items:center; justify-content:space-between; gap:10px; color:#e4e4e7; font-size:13px; font-weight:950; }
    .payment-totals-details summary::-webkit-details-marker { display:none; }
    .payment-totals-details summary strong { color:#fb923c; font-size:12px; white-space:nowrap; }
    .payment-totals-details .saldo-totals { position:static !important; bottom:auto !important; margin:0 !important; padding:4px 14px 14px !important; border:0 !important; border-top:1px solid rgba(255,255,255,.07) !important; border-radius:0 !important; background:transparent !important; }
    .saldo-totals { position:static; bottom:auto; border-radius:16px; border:1px solid var(--border); padding:12px 14px; margin:16px 0 0; }
    @media (min-width:520px){ .payment-main-tabs{grid-template-columns:repeat(3,1fr);} }

    .payment-top-line { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:8px 0 10px; }
    .payment-top-line strong { color:#fff; font-size:13px; font-weight:950; }
    .payment-view-selector { border:1px solid rgba(255,255,255,.09); background:rgba(255,255,255,.045); border-radius:16px; padding:10px; margin:8px 0 10px; }
    .payment-view-selector label { display:block; color:#a1a1aa; font-size:10px; font-weight:900; margin:0 0 6px; text-transform:uppercase; letter-spacing:.03em; }
    .payment-view-selector .fi { margin:0; }
    .payment-batch-selected-note { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 9px; margin:8px 0; border-radius:12px; background:rgba(34,197,94,.08); border:1px solid rgba(34,197,94,.18); color:#bbf7d0; font-size:11px; font-weight:850; }
    .payment-batch-selected-note em { font-style:normal; color:#86efac; font-weight:950; }
    .payment-payflow-title { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:10px 0 8px; }
    .payment-payflow-title strong { color:#fff; font-size:13px; font-weight:950; }
    .payment-payflow-title span { color:#a1a1aa; font-size:10px; font-weight:800; }

    @media (max-width:460px){ .payment-action-card{display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center;} .payment-action-card .payment-pay-action{grid-column:1/-1; width:100%; order:5; font-size:13px; padding:13px;} .payment-action-card .payment-amount-box{margin-left:auto;} }

  

.payment-batch-actions-row{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap}.payment-batch-mini-row.selectable{grid-template-columns:auto 1fr auto;cursor:pointer}.payment-batch-mini-row.selectable input{width:18px;height:18px;accent-color:#22c55e}.payment-batch-mini-row small{display:block;color:#71717a;font-size:10px;margin-top:2px}.payment-legacy-note{font-size:11px;line-height:1.35;color:#fbbf24;background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.18);border-radius:12px;padding:9px 10px;margin:8px 0}.payment-batch-payall:disabled{opacity:.45;filter:grayscale(1);cursor:not-allowed}

/* v2.69.0 - Presupuestos */
.quote-hero{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0;padding:16px;border:1px solid rgba(139,92,246,.26);border-radius:22px;background:linear-gradient(135deg,rgba(124,58,237,.18),rgba(99,102,241,.10),rgba(34,197,94,.06));box-shadow:0 16px 42px rgba(0,0,0,.22)}
.quote-hero>div{min-width:0}.quote-hero span{display:block;color:#c4b5fd;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}.quote-hero strong{display:block;margin-top:4px;color:#fff;font-size:18px;line-height:1.15}.quote-hero p{margin:6px 0 0;color:#a1a1aa;font-size:11px;line-height:1.4}.quote-hero button{flex:0 0 auto;border:0;border-radius:14px;padding:12px 13px;background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;font-family:inherit;font-size:12px;font-weight:900;cursor:pointer;box-shadow:0 10px 24px rgba(99,102,241,.24)}
.quote-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 12px}.quote-kpis>div{min-width:0;padding:11px 9px;border:1px solid rgba(255,255,255,.08);border-radius:15px;background:rgba(255,255,255,.04)}.quote-kpis strong{display:block;color:#fff;font-size:17px;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quote-kpis span{display:block;margin-top:4px;color:#71717a;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.quote-filters{display:flex;gap:7px;overflow-x:auto;padding:1px 0 9px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.quote-filters::-webkit-scrollbar{display:none}.quote-filter{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid rgba(255,255,255,.09);border-radius:999px;background:rgba(255,255,255,.04);color:#a1a1aa;font-family:inherit;font-size:10px;font-weight:850;cursor:pointer}.quote-filter b{display:flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:rgba(255,255,255,.07);color:#e4e4e7;font-size:9px}.quote-filter.on{border-color:rgba(139,92,246,.38);background:rgba(139,92,246,.15);color:#ddd6fe}.quote-filter.on b{background:rgba(139,92,246,.24);color:#fff}
.quote-list{display:grid;gap:10px;margin-top:10px}.quote-card{padding:14px;border:1px solid rgba(255,255,255,.09);border-radius:19px;background:rgba(255,255,255,.04);box-shadow:0 12px 28px rgba(0,0,0,.16)}.quote-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.quote-number{color:#c4b5fd;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}.quote-client{margin-top:3px;color:#fff;font-size:15px;font-weight:950;line-height:1.15}.quote-meta{margin-top:4px;color:#71717a;font-size:10px;line-height:1.35}.quote-card-side{display:flex;flex-direction:column;align-items:flex-end;gap:7px;min-width:112px}.quote-card-side>strong{color:#fff;font-size:15px;white-space:nowrap}.quote-status{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:5px 8px;background:rgba(255,255,255,.05);color:#d4d4d8;font-size:9px;font-weight:950;white-space:nowrap}.quote-status.sent{border-color:rgba(59,130,246,.26);background:rgba(59,130,246,.10);color:#93c5fd}.quote-status.accepted{border-color:rgba(34,197,94,.27);background:rgba(34,197,94,.10);color:#86efac}.quote-status.rejected{border-color:rgba(239,68,68,.27);background:rgba(239,68,68,.10);color:#fca5a5}.quote-status.expired{border-color:rgba(245,158,11,.27);background:rgba(245,158,11,.10);color:#fbbf24}.quote-concepts{margin-top:10px;color:#a1a1aa;font-size:11px;line-height:1.4}.quote-payment-due{margin-top:8px;padding:8px 9px;border:1px solid rgba(99,102,241,.17);border-radius:11px;background:rgba(99,102,241,.07);color:#c7d2fe;font-size:10px;font-weight:850;line-height:1.35}.quote-converted{margin-top:8px;padding:8px 9px;border:1px solid rgba(34,197,94,.18);border-radius:11px;background:rgba(34,197,94,.07);color:#86efac;font-size:10px;font-weight:850}
.quote-main-actions,.quote-secondary-actions,.quote-status-actions{display:grid;gap:7px}.quote-main-actions{grid-template-columns:repeat(3,1fr);margin-top:11px}.quote-main-actions button,.quote-secondary-actions button,.quote-status-actions button{min-height:39px;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:rgba(255,255,255,.045);color:#e4e4e7;font-family:inherit;font-size:10px;font-weight:850;cursor:pointer}.quote-main-actions button:first-child{border-color:rgba(139,92,246,.25);background:rgba(139,92,246,.10);color:#ddd6fe}.quote-main-actions button:nth-child(2){border-color:rgba(34,197,94,.22);background:rgba(34,197,94,.08);color:#86efac}.quote-more{margin-top:9px;border:1px solid rgba(255,255,255,.07);border-radius:14px;overflow:hidden;background:rgba(0,0,0,.10)}.quote-more summary{display:flex;justify-content:space-between;padding:11px 12px;list-style:none;color:#a1a1aa;font-size:10px;font-weight:900;cursor:pointer}.quote-more summary::-webkit-details-marker{display:none}.quote-more summary:after{content:'Abrir';color:#c4b5fd}.quote-more[open] summary:after{content:'Cerrar';color:#fbbf24}.quote-more-body{padding:0 10px 10px}.quote-status-actions{grid-template-columns:repeat(4,1fr)}.quote-status-actions button.on.draft{color:#fff;border-color:rgba(255,255,255,.25)}.quote-status-actions button.on.sent{color:#93c5fd;border-color:rgba(59,130,246,.35);background:rgba(59,130,246,.11)}.quote-status-actions button.on.accepted{color:#86efac;border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.11)}.quote-status-actions button.on.rejected{color:#fca5a5;border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.11)}.quote-secondary-actions{grid-template-columns:repeat(2,1fr);margin-top:7px}.quote-secondary-actions .convert{border-color:rgba(34,197,94,.32);background:rgba(34,197,94,.11);color:#86efac}.quote-secondary-actions .delete{border-color:rgba(239,68,68,.24);color:#fca5a5}.quote-secondary-actions button:disabled{opacity:.45;cursor:not-allowed}
.quote-form{padding-bottom:28px}.quote-form-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0 12px}.quote-form-steps span{display:flex;align-items:center;gap:6px;min-width:0;padding:8px;border:1px solid rgba(139,92,246,.18);border-radius:12px;background:rgba(139,92,246,.07);color:#c4b5fd;font-size:10px;font-weight:950}.quote-form-steps b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e4e4e7}.quote-section{margin:10px 0;padding:13px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(255,255,255,.035)}.quote-section-title{margin-bottom:11px;color:#fff;font-size:13px;font-weight:950}.quote-quick-client{margin:9px 0;padding:11px;border:1px solid rgba(34,197,94,.19);border-radius:14px;background:rgba(34,197,94,.06)}.quote-quick-title{margin-bottom:8px;color:#86efac;font-size:11px;font-weight:950}.selected-client-note{margin-top:7px;padding:8px 9px;border-radius:11px;background:rgba(99,102,241,.07);color:#a5b4fc;font-size:10px;line-height:1.4}.quote-source{margin-top:9px;border:1px solid rgba(255,255,255,.07);border-radius:13px;overflow:hidden}.quote-source summary{padding:10px 11px;list-style:none;color:#a1a1aa;font-size:10px;font-weight:850;cursor:pointer}.quote-source summary::-webkit-details-marker{display:none}.quote-source-body{padding:0 10px 10px}
.quote-item-row{display:grid;grid-template-columns:minmax(0,1fr) 116px 34px;gap:7px;align-items:end;margin-bottom:8px}.quote-item-row .fg{margin:0}.quote-remove{width:34px;height:42px;border:1px solid rgba(239,68,68,.22);border-radius:11px;background:rgba(239,68,68,.07);color:#fca5a5;font-size:20px;cursor:pointer}.quote-add-line{width:100%;min-height:40px;border:1px dashed rgba(139,92,246,.32);border-radius:12px;background:rgba(139,92,246,.06);color:#c4b5fd;font-family:inherit;font-size:11px;font-weight:900;cursor:pointer}.quote-totals{margin-top:11px;padding:11px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(0,0,0,.15)}.quote-totals>div{display:flex;justify-content:space-between;gap:10px;padding:4px 0;color:#a1a1aa;font-size:11px}.quote-totals strong{color:#e4e4e7}.quote-totals .quote-grand{margin-top:5px;padding-top:10px;border-top:1px solid rgba(255,255,255,.09);color:#ddd6fe;font-size:14px;font-weight:950}.quote-totals .quote-grand strong{color:#c4b5fd;font-size:16px}.quote-validity-row{display:flex;gap:7px;margin:-3px 0 11px}.quote-validity-row button{flex:1;min-height:35px;border:1px solid rgba(99,102,241,.20);border-radius:10px;background:rgba(99,102,241,.07);color:#a5b4fc;font-family:inherit;font-size:10px;font-weight:850;cursor:pointer}.quote-form-actions{position:sticky;bottom:calc(70px + var(--safe-bottom));z-index:20;display:grid;grid-template-columns:1fr 1.4fr;gap:8px;margin-top:12px;padding:9px;border:1px solid rgba(255,255,255,.09);border-radius:16px;background:rgba(17,17,24,.96);box-shadow:0 -10px 28px rgba(0,0,0,.28);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.quote-form-actions .canbtn,.quote-form-actions .savebtn{margin:0;min-height:46px}
@media(max-width:420px){.quote-hero{align-items:flex-start}.quote-hero strong{font-size:16px}.quote-kpis{grid-template-columns:1fr 1fr}.quote-kpis>div:last-child{grid-column:1/-1}.quote-card-head{flex-direction:column}.quote-card-side{width:100%;min-width:0;flex-direction:row;justify-content:space-between;align-items:center}.quote-item-row{grid-template-columns:minmax(0,1fr) 92px 34px}.quote-status-actions{grid-template-columns:repeat(2,1fr)}}
@media(max-width:360px){.quote-main-actions,.quote-secondary-actions{grid-template-columns:1fr}.quote-item-row{grid-template-columns:minmax(0,1fr) 34px}.quote-item-row .quote-amount{grid-column:1/2}.quote-item-row .quote-remove{grid-column:2;grid-row:1/3;align-self:end}.quote-form-actions{grid-template-columns:1fr}}
