*{box-sizing:border-box}body{margin:0;background:#f4f7fc;color:#20324b;font:15px system-ui,-apple-system,Segoe UI,sans-serif}a{color:#2563eb;text-decoration:none}.shell{max-width:980px;margin:auto;padding:18px 16px 90px}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px}.brand{font-weight:800;font-size:21px;color:#1741a5}.card{background:white;border:1px solid #e2eaf4;border-radius:17px;padding:20px;margin:13px 0;box-shadow:0 4px 20px #1c3d7910}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.grid .card{margin:0}h1{font-size:26px;margin:0 0 18px}h2{font-size:19px;margin:4px 0 14px}h3{font-size:16px}p,.muted{color:#64748b}.amount{font-size:27px;font-weight:750}.positive{color:#059669}.negative{color:#dc2626}input,select,textarea{width:100%;padding:12px;border:1px solid #d5dfeb;border-radius:10px;background:white;color:#20324b;font:inherit;margin:6px 0 14px}input[type=checkbox]{width:auto;margin:0 7px 0 0}label{font-weight:600;display:block}button,.btn{display:inline-block;background:#2563eb;color:white;border:0;border-radius:11px;padding:11px 16px;font:inherit;font-weight:650;cursor:pointer}button.secondary,.btn.secondary{background:#edf3fc;color:#1d4ed8}.danger{background:#fee2e2;color:#991b1b}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.item{padding:14px 0;border-bottom:1px solid #e9eef5}.item:last-child{border-bottom:0}.alert{background:#fff1f2;color:#9f1239;padding:14px;border-radius:12px}.ok{background:#ecfdf5;color:#047857;padding:14px;border-radius:12px}.nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e2e8f0;display:flex;justify-content:space-around;padding:12px;z-index:10}.nav a{font-weight:650}.small{font-size:13px}.columns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.columns>*{min-width:0}.splitrow{display:grid;grid-template-columns:1fr 130px;gap:10px;align-items:center}.splitrow input{margin:5px 0}.pill{display:inline-block;padding:5px 9px;border-radius:20px;background:#e8f0ff;color:#1d4ed8;font-size:12px}@media(max-width:550px){.shell{padding:13px 12px 95px}.card{padding:15px}.columns{grid-template-columns:1fr}h1{font-size:23px}}

/* Apariencia v0.1.6: tokens globales, seis paletas y modo claro/oscuro. */
:root{color-scheme:light;--primary:#2563EB;--primary-contrast:#fff;--primary-soft:#DBEAFE;--bg:#F8FAFC;--surface:#fff;--text:#17233B;--muted:#64748b;--border:#e2e8f0;--positive:#15803D;--negative:#DC2626;--danger-bg:#fee2e2;--danger-text:#991b1b;--ok-bg:#ecfdf5;--ok-text:#047857;--shadow:0 4px 20px #1c3d7910}
html[data-palette="mint"]{--primary:#0F766E;--primary-soft:#CCFBF1;--bg:#F4FAF8;--text:#183B38;--positive:#15803D;--negative:#C24140}
html[data-palette="violet"]{--primary:#7655D6;--primary-soft:#EDE9FE;--bg:#FAF9FF;--text:#29233F;--positive:#15803D;--negative:#DC4561}
html[data-palette="terracotta"]{--primary:#B45336;--primary-soft:#FCE7D8;--bg:#FCF8F4;--text:#402C26;--positive:#237A57;--negative:#C24141}
html[data-palette="navy"]{--primary:#1E3A5F;--primary-soft:#DCE9F4;--bg:#F2F5F9;--text:#182638;--positive:#16805D;--negative:#C53F4B}
html[data-palette="coral"]{--primary:#E45C58;--primary-soft:#FFE6DF;--bg:#FFFAF7;--text:#29333C;--positive:#008A78;--negative:#D34049}
html[data-mode="dark"]{color-scheme:dark;--bg:#111820;--surface:#1D2732;--text:#E8EDF5;--muted:#A7B4C4;--border:#354454;--primary-soft:#293A51;--positive:#6EE7B7;--negative:#FDA4AF;--danger-bg:#47272E;--danger-text:#FFB4BF;--ok-bg:#173E36;--ok-text:#8CF0C7;--shadow:0 4px 22px #00000024}
html[data-mode="dark"][data-palette="mint"]{--bg:#101D1C;--surface:#1B302D;--text:#E4F4F0;--border:#35534E;--primary:#38BDAA;--primary-soft:#24463F}
html[data-mode="dark"][data-palette="violet"]{--bg:#171421;--surface:#282238;--text:#F1EBFF;--border:#443954;--primary:#B39AF8;--primary-soft:#3A3155}
html[data-mode="dark"][data-palette="terracotta"]{--bg:#211915;--surface:#322720;--text:#F9EEE5;--border:#554136;--primary:#E49B79;--primary-soft:#4B3327}
html[data-mode="dark"][data-palette="navy"]{--bg:#0D1520;--surface:#1B2A3A;--text:#E5EFF9;--border:#34485F;--primary:#8CB7E3;--primary-soft:#2A4056}
html[data-mode="dark"][data-palette="coral"]{--bg:#201719;--surface:#332529;--text:#FFF0ED;--border:#594148;--primary:#FF9B90;--primary-soft:#503039}
body{background:var(--bg);color:var(--text)}a{color:var(--primary)}.brand{color:var(--primary)}.card{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow)}p,.muted{color:var(--muted)}.positive{color:var(--positive)}.negative{color:var(--negative)}input,select,textarea{background:var(--surface);border-color:var(--border);color:var(--text)}button,.btn{background:var(--primary);color:var(--primary-contrast)}button.secondary,.btn.secondary,.pill{background:var(--primary-soft);color:var(--text)}.danger{background:var(--danger-bg);color:var(--danger-text)}.item{border-bottom-color:var(--border)}.alert{background:var(--danger-bg);color:var(--danger-text)}.ok{background:var(--ok-bg);color:var(--ok-text)}.nav{background:var(--surface);border-top-color:var(--border)}.theme-swatches{display:flex;gap:7px;margin:0 0 18px}.theme-swatches span{width:30px;height:30px;border-radius:9px;border:1px solid var(--border)}.appearance-settings select{margin-top:8px}.appearance-settings #theme-saved{min-height:18px;margin:0}

/* Identidad visual oficial de Gastos Compartidos */
.brand{display:inline-flex;align-items:center;gap:9px}
.brand-icon{width:30px;height:30px;object-fit:cover;border-radius:8px;flex-shrink:0}

/* v0.1.10: pantallas de acceso, registro y recuperación */
.auth-page{max-width:460px;margin:0 auto}
.auth-page h1{text-align:center}
.auth-page .card{width:100%}
.auth-page .auth-submit{display:block;width:100%;text-align:center}
.auth-links{display:flex;justify-content:center;align-items:center;gap:12px 24px;flex-wrap:wrap;margin:20px auto;text-align:center}
.auth-links a{font-weight:600}

/* v0.1.11 */
.auth-links{display:flex;flex-direction:column;gap:12px;align-items:center}
.auth-remember{display:flex;align-items:center;gap:10px;margin:12px 0 18px;cursor:pointer}
.auth-remember input{width:18px;height:18px;flex:0 0 18px;margin:0}

/* v0.1.12: navegación inferior fija, sin cambios en base de datos */
body{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.bottom-tabs{position:fixed;bottom:0;left:0;right:0;z-index:100;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:0;padding:7px max(8px,env(safe-area-inset-left,0px)) calc(7px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-right,0px));background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -2px 12px rgba(0,0,0,.06)}
.bottom-tabs a{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;text-align:center;padding:6px 2px;border-radius:10px;color:var(--text);text-decoration:none;font-size:12px;min-height:52px}
.bottom-tabs a.active{background:var(--primary-soft);color:var(--primary);font-weight:700}
.bottom-tabs .tab-icon{font-size:22px;line-height:1.1}
.account-links{display:flex;flex-direction:column;gap:0}
.account-links a{padding:15px 8px;border-bottom:1px solid var(--border);text-decoration:none;color:var(--text)}
.account-links a:last-child{border-bottom:0}
.account-links .logout-link{color:var(--danger-text)}

/* v0.2.0 Amigos */
.friends-heading,.friends-actions,.friend-entry{display:flex;align-items:center;gap:10px}
.friends-heading{justify-content:space-between;flex-wrap:wrap}.friends-actions{margin-left:auto}
.friend-entry{padding:12px 0;border-bottom:1px solid var(--border,#ddd)}
.friend-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary-soft,#dcefea);display:grid;place-items:center;flex-shrink:0;font-weight:700}
.friend-info{display:flex;flex-direction:column;min-width:0;flex:1}.friend-info small,.friend-balances small{opacity:.7}
.friend-balances{display:flex;flex-direction:column;text-align:right;font-size:13px}

/* v0.2.1: acciones en pantallas independientes */
.friends-icon-btn{width:42px;height:42px;min-width:42px;display:inline-flex;align-items:center;justify-content:center;padding:0!important;text-decoration:none}
.friends-icon-btn svg{display:block}
.friends-subhead{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.friends-subhead h1{margin:0}
.friends-full-btn{display:block;width:100%;text-align:center}

/* v0.3.0 - detalle de amigos */
.friend-entry-link{color:inherit;text-decoration:none}.friend-entry-link:hover{background:var(--surface-hover,rgba(127,127,127,.06))}.friend-chevron{font-size:25px;opacity:.5}
.friend-profile{text-align:center;display:flex;align-items:center;flex-direction:column;gap:6px}.friend-avatar-large{width:80px;height:80px;font-size:32px}
.friend-quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:10px}
.friend-action{display:flex;align-items:center;justify-content:center;gap:6px;flex-direction:column;padding:14px 8px;border:1px solid var(--border,#ddd);border-radius:12px;text-decoration:none;color:inherit;font-size:12px;text-align:center}
.friend-action span{font-size:25px}.friend-action-disabled{opacity:.45;cursor:not-allowed}
.friend-group-row{display:flex;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--border,#ddd);text-decoration:none;color:inherit;flex-wrap:wrap}
.friend-danger{padding:14px 0;border-bottom:1px solid var(--border,#ddd)}.friend-danger summary{cursor:pointer;font-weight:600}.friend-danger-btn{background:#b42318!important;color:white!important}
.friend-chart-row{padding:12px 0}.friend-chart-track{height:14px;border-radius:8px;background:var(--border,#ddd);overflow:hidden;margin-top:8px}.friend-chart-bar{height:100%;border-radius:8px}.friend-chart-positive{background:#229c6a}.friend-chart-negative{background:#d35d55}

/* v0.4.0 - grupos con icono y categoría */
.group-icons{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:7px;margin:10px 0 20px}.group-icon-option{display:block;cursor:pointer}.group-icon-option input{position:absolute;opacity:0;width:1px;height:1px}.group-icon-option span{display:grid;place-items:center;min-height:42px;border:1px solid var(--border,#ddd);border-radius:10px;font-size:24px}.group-icon-option input:checked+span{outline:2px solid var(--primary,#0f766e);background:var(--primary-soft,#dcefea)}.group-icon-option input:focus-visible+span{outline:3px solid #0f766e}.trip-dates[hidden]{display:none!important}.group-list-icon{font-size:1.3em}@media(max-width:430px){.group-icons{grid-template-columns:repeat(6,minmax(0,1fr))}}

/* v0.5.0 Cuenta */
.account-profile .avatar-picker{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;margin-bottom:16px}.avatar-picker img{width:82px;height:82px;object-fit:cover;border-radius:50%;background:#e2e8f0}.avatar-picker input{max-width:240px}.account-profile select{width:100%}.account-links a{display:block;padding:12px 0}

/* v0.5.1: la imagen es el único control para cambiar la foto */
.avatar-picker{cursor:pointer;position:relative}.avatar-picker .avatar-file-hidden{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important;clip-path:inset(50%)!important;pointer-events:none!important}.appearance-settings{margin-top:12px;padding-top:12px;border-top:1px solid var(--border,#ddd)}

/* v0.5.2: apariencia integrada dentro de Perfil */
.profile-visual-settings{display:flex;flex-direction:column;gap:9px;margin-top:18px}
.profile-visual-settings .theme-swatches{margin:0 0 9px}
.profile-visual-settings #theme-saved{min-height:0;margin:0}
.account-save-button{width:100%;margin-top:18px}

/* v0.5.3 - Acciones de cuenta como botones */
.account-action-buttons{display:flex;flex-wrap:wrap;gap:10px}.account-action-buttons .btn{flex:1;text-align:center;min-width:140px;justify-content:center}

/* v0.5.4: administración y cierre de sesión en apartados separados */
.account-separate-action{margin-top:14px}
.account-wide-action{display:flex;width:100%;justify-content:center;align-items:center;text-align:center;box-sizing:border-box}

/* v0.5.5 administration six sections */
.admin-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.admin-section{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px 6px;border-radius:14px;border:1px solid var(--border,#ddd);text-decoration:none;text-align:center;font-weight:600;font-size:13px}.admin-section-icon{font-size:23px}.admin-section.active{outline:2px solid var(--primary,#0f766e)}@media(min-width:750px){.admin-sections{grid-template-columns:repeat(6,minmax(0,1fr))}}


/* v0.5.6 - botones de Administración con diseño uniforme */
nav.admin-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 22px;width:100%}
nav.admin-sections a.admin-section{display:flex;min-width:0;min-height:94px;box-sizing:border-box;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px 6px;border:1px solid var(--border,#d6e0e5);border-radius:14px;background:var(--card,#fff);color:inherit;text-decoration:none;text-align:center;font-size:13px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
nav.admin-sections a.admin-section:hover{border-color:var(--primary,#0f766e);background:var(--primary-soft,#eaf7f3)}
nav.admin-sections a.admin-section.active{outline:2px solid var(--primary,#0f766e)}
nav.admin-sections .admin-section-icon{display:block;font-size:24px;line-height:1.2}
@media(max-width:340px){nav.admin-sections{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.5.7 Administración de grupos */
.admin-group-link{display:flex;align-items:center;gap:12px;padding:14px 8px;border-bottom:1px solid var(--border,#dce4e8);text-decoration:none;color:inherit}.admin-group-link>span:nth-child(2){flex:1;min-width:0}.admin-group-link small,.admin-member small{display:block;opacity:.75;margin-top:4px}.admin-group-emoji{font-size:26px}.admin-group-shortcuts{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 20px}.admin-member{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--border,#dce4e8)}.admin-member>div{flex:1;min-width:160px}.admin-member form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-member form select{max-width:170px}.admin-member form button{white-space:nowrap}

/* v0.5.8: zona de peligro */
.admin-danger-zone{border:1px solid #c94c4c}
.admin-danger-zone h2{color:#b02e2e}
.admin-danger-zone button.danger{background:#b42318;color:white;border-color:#b42318;width:100%}
.admin-danger-zone input[name="confirm_name"]{display:block;width:100%;margin-top:8px}
