/* North Planner v58 · fluidez, armonía de color y correcciones.
   Se carga después de rumbo-v57.css. */

/* =====================================================================
   0. Paleta armónica: UN verde por tema y sus tintes, derivados del acento
   ===================================================================== */
:root[data-theme]{
  --r-tint:color-mix(in srgb,var(--accent) 16%,transparent);
  --r-tint-strong:color-mix(in srgb,var(--accent) 26%,transparent);
  --r-ring:color-mix(in srgb,var(--accent) 55%,transparent);
}
/* En oscuro los tintes son el mismo verde bosque del saldo, no lima mezclado con gris */
:root[data-theme="dark"]{--r-tint:#2A4331;--r-tint-strong:#2F4A36}
/* Modo claro más suave: menos brillo, menos contraste de fondo */
:root[data-theme="light"]{
  --canvas:#ECE8DC;--surface:#F4F1E7;--surface2:#E3DED0;--raised:#D9D3C3;
  --ink:#1B1F1B;--muted:#565C52;--line:#CFC9B8;
  --accent:#2F4A36;--accent-ink:#F4F1E7;--accent-soft:#DDE3D2;
  --positive:#2F663D;--negative:#A83B3B;
}
:root[data-theme="light"] body,:root[data-theme="light"] .app{background:var(--canvas)!important}
:root[data-theme="light"] :is(.panel,.card,.overview-card,.monthly-card,.plan-card,.home-goal,.task-recommend,.task-card,.metric,.north-purchase-card,.bank-account-list,.analysis-hero,.analysis-list,.analysis-insights,.analysis-forecast){
  background:var(--surface)!important;border-color:var(--line)!important}
:root[data-theme="light"] :is(.sheet,.category-dialog,.confirm-sheet,.create-menu,.context-menu){background:var(--canvas)!important}
:root[data-theme="light"] :is(.field input,.field select,.field textarea,.task-search input,.move-search input,.rp-field,.rp-seg){background:var(--surface2)!important}
:root[data-theme="light"] .nav{background:color-mix(in srgb,var(--canvas) 74%,transparent)!important}

/* Todo lo «seleccionado» usa el mismo tinte del acento */
:root[data-theme="dark"] :is(.segmented .selected,.chips button.selected,.task-filters .selected,.theme-options button.selected,.sheet .types .sel,.reminder-chip.selected,.chips button[aria-pressed="true"]),
:root[data-theme="light"] :is(.segmented .selected,.chips button.selected,.task-filters .selected,.theme-options button.selected,.sheet .types .sel,.reminder-chip.selected,.chips button[aria-pressed="true"]){
  background:var(--r-tint-strong)!important;color:var(--accent)!important;border-color:var(--r-ring)!important}
:root[data-theme="light"] :is(.segmented .selected,.chips button.selected,.task-filters .selected,.theme-options button.selected,.reminder-chip.selected){color:var(--accent)!important}
:root[data-theme] :is(.task-progress i,.progress i,.mini-progress i,.bar i){background:var(--accent)!important;opacity:.9}
:root[data-theme] :is(.goal-symbol,.spark,.north-action-icon,.step-badge,.bank-account-icon,.create-ico,.analysis-symbol){
  background:var(--r-tint)!important;color:var(--accent)!important;border-color:transparent!important}
:root[data-theme] .create-option.primary-create .create-ico{background:rgba(244,241,231,.16)!important;color:#F4F1E7!important}
:root[data-theme] :is(.task-tag.accent,.task-tag.done,.tag-done){background:var(--r-tint)!important;color:var(--accent)!important;border-color:transparent!important}
:root[data-theme] :is(.link,.section-head .link,.category-edit,.analysis-card-head button){color:var(--accent)!important}
:root[data-theme] .bank-hero{background:#2F4A36!important}
:root[data-theme="dark"] .bank-hero{background:#2A4331!important}
:root[data-theme] .toast{background:color-mix(in srgb,var(--surface) 92%,transparent)!important;color:var(--ink)!important;border:1px solid var(--line)!important;
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}

/* =====================================================================
   1. Hojas: curva tipo iOS y entrada desde abajo (sin romper el centrado)
   ===================================================================== */
@keyframes sheetIn{from{transform:translate(-50%,100%)}to{transform:translate(-50%,var(--sheet-drag,0px))}}
@keyframes contextIn{from{transform:translateY(100%)}to{transform:translateY(var(--sheet-drag,0px))}}
:root[data-theme] .overlay:not(.closing) .sheet{animation-duration:.5s;animation-timing-function:cubic-bezier(.32,.72,0,1)}
:root[data-theme] :is(.category-dialog,.context-menu,.confirm-sheet,.create-menu){animation-duration:.5s;animation-timing-function:cubic-bezier(.32,.72,0,1)}
/* El asa de arrastre existente, un poco más visible */
:root[data-theme] .handle{width:40px;height:5px;border-radius:3px;background:color-mix(in srgb,var(--ink) 22%,transparent);margin:2px auto 14px}

/* Mis hojas (calendario, listas, reloj, pregunta de recurrentes) */
@keyframes rpUp{from{translate:0 100%}to{translate:0 0}}
.rp-backdrop,.rc-prompt-backdrop{animation:rumboFade .28s ease both}
.rp-sheet,.rc-prompt{animation:rpUp .5s cubic-bezier(.32,.72,0,1) both;translate:0 var(--drag,0px);touch-action:pan-y}

/* =====================================================================
   2. Barra flotante, esquina de Ajustes y transiciones de página
   ===================================================================== */
.rumbo-avatar{
  margin-left:auto;flex:none;width:42px;height:42px;border-radius:var(--r-m);display:grid;place-items:center;
  border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:0}
.rumbo-avatar+.add-circle{margin-left:12px}
.rumbo-avatar svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
:root[data-theme] #moves>.section-head,:root[data-theme] #tasksHub>.task-heading,:root[data-theme] #charts>.section-head{align-items:center}
:root[data-theme] #tasksHub>.task-heading{display:flex;justify-content:space-between;gap:12px}
@keyframes rumboPageIn{from{opacity:0;transform:translateY(10px) scale(.992)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  :root[data-theme] .page.active{animation:rumboPageIn .38s cubic-bezier(.32,.72,0,1) both}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.28s;animation-timing-function:cubic-bezier(.32,.72,0,1)}

/* Arranque: solo la marca, sin preguntas ni paneles */
.boot-gate{display:grid;place-items:center;background:var(--canvas)}
.boot-mark,#northAccessGate:not(.ready)::after{
  width:76px;height:76px;background:var(--ink);opacity:.9;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M10 48 27 31V70L10 86ZM27 31 39 19 83 62 69 77ZM70 25 95 3V64Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M10 48 27 31V70L10 86ZM27 31 39 19 83 62 69 77ZM70 25 95 3V64Z'/%3E%3C/svg%3E") center/contain no-repeat;
  animation:rumboBreathe 1.6s ease-in-out infinite}
#northAccessGate:not(.ready) .panel{display:none}
#northAccessGate:not(.ready)::after{content:""}
@keyframes rumboBreathe{0%,100%{opacity:.55;transform:scale(.97)}50%{opacity:1;transform:scale(1)}}

/* =====================================================================
   3. Tareas: check nuevo, terminadas, menú compacto con salida animada
   ===================================================================== */
:root[data-theme] .task-check{
  position:relative;flex:none;width:30px;height:30px;border-radius:50%;padding:0;
  border:2px solid color-mix(in srgb,var(--ink) 38%,transparent)!important;background:transparent!important;
  transition:background .28s cubic-bezier(.32,.72,0,1),border-color .28s,transform .28s cubic-bezier(.32,.72,0,1)}
:root[data-theme] .task-check svg,:root[data-theme] .task-check i{display:none!important}
:root[data-theme] .task-check::after{
  content:"";position:absolute;inset:0;background:var(--accent-ink);opacity:0;transform:scale(.4);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center/62% no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center/62% no-repeat;
  transition:opacity .2s,transform .34s cubic-bezier(.34,1.56,.64,1)}
:root[data-theme] .task-card.done .task-check{background:var(--accent)!important;border-color:var(--accent)!important}
:root[data-theme] .task-card.done .task-check::after{opacity:1;transform:none}
:root[data-theme] .task-check:active{transform:scale(.88)}
:root[data-theme] .task-card.done .task-main h3{text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--ink) 45%,transparent);color:var(--muted)}
.rumbo-done-note{margin:6px 2px 14px;font-size:13px;color:var(--muted)}
.rumbo-keep{display:flex;gap:6px;margin:0 0 12px;flex-wrap:wrap}
.rumbo-keep button{min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:13px;font-weight:600}
.rumbo-keep button[aria-pressed="true"]{background:var(--r-tint-strong);border-color:var(--r-ring);color:var(--accent)}

/* Menú de tres puntos: pequeño y simple, con entrada y salida suaves */
:root[data-theme] .rumbo-pop{
  min-width:150px;max-width:190px;padding:4px;border-radius:14px;
  background:var(--surface)!important;
  -webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:0 10px 28px rgba(0,0,0,.34);
  animation:rumboPop .2s cubic-bezier(.32,.72,0,1) both}
:root[data-theme] .rumbo-pop.out{animation:rumboPopOut .16s cubic-bezier(.4,0,1,1) both;pointer-events:none}
@keyframes rumboPopOut{from{opacity:1;transform:none}to{opacity:0;transform:scale(.9)}}
:root[data-theme] .rumbo-pop button{min-height:42px;padding:0 12px;font-size:16px;font-weight:600;border-radius:10px}
:root[data-theme] .rumbo-pop button+button{border-top:0;border-radius:10px}
:root[data-theme] .rumbo-pop button:active{background:var(--r-tint)}

/* =====================================================================
   4. Movimiento: detalle, confirmaciones, categorías
   ===================================================================== */
:root[data-theme] .context-menu{
  width:min(100%,430px);border-radius:26px 26px 0 0!important;padding:8px 18px max(22px,env(safe-area-inset-bottom))!important;
  background:var(--canvas)!important;border:1px solid var(--line)!important;border-bottom:0!important;box-shadow:none!important}
:root[data-theme] .context-menu::before{content:"";display:block;width:40px;height:5px;border-radius:3px;background:color-mix(in srgb,var(--ink) 22%,transparent);margin:6px auto 14px}
:root[data-theme] .context-preview{padding:0 2px 6px!important;background:transparent!important;border:0!important}
:root[data-theme] .context-preview>b{font-size:22px;letter-spacing:-.03em}
:root[data-theme] .context-preview>small{display:block;margin-top:2px;color:var(--muted)}
:root[data-theme] .movement-detail-amount{display:block;margin:10px 0 14px;font-size:34px;font-weight:800;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
:root[data-theme] .context-facts{display:grid;grid-template-columns:auto 1fr;gap:0;border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;background:var(--surface)}
:root[data-theme] .context-facts>span,:root[data-theme] .context-facts>strong{padding:12px 14px;border-top:1px solid var(--line);font-size:16px}
:root[data-theme] .context-facts>span:nth-child(1),:root[data-theme] .context-facts>strong:nth-child(2){border-top:0}
:root[data-theme] .context-facts>span{color:var(--muted)}
:root[data-theme] .context-facts>strong{text-align:right;font-weight:600;overflow-wrap:anywhere}
:root[data-theme] .context-menu>button{
  display:flex;justify-content:space-between;align-items:center;width:100%;min-height:52px;margin-top:10px;padding:0 16px;
  border:1px solid var(--line)!important;border-radius:var(--r-m)!important;background:var(--surface)!important;color:var(--ink)!important;font-size:16px;font-weight:600}
:root[data-theme] .context-menu>button.danger{color:var(--negative)!important;border-color:color-mix(in srgb,var(--negative) 45%,transparent)!important}
:root[data-theme] .context-menu>button.context-cancel{justify-content:center;background:transparent!important;border-color:transparent!important;color:var(--muted)!important}
:root[data-theme] .confirm-sheet{border-radius:26px 26px 0 0!important;border-bottom:0!important;padding:10px 20px max(24px,env(safe-area-inset-bottom))!important;box-shadow:none!important}
:root[data-theme] .confirm-sheet h3{font-size:22px;letter-spacing:-.035em;margin:6px 0 8px}
:root[data-theme] .confirm-sheet p{color:var(--muted);font-size:16px;line-height:1.5}
:root[data-theme] .confirm-actions{display:grid;gap:10px;margin-top:18px}
:root[data-theme] .confirm-actions button{min-height:52px;border-radius:var(--r-m);font:inherit;font-size:16px;font-weight:700;border:0}
:root[data-theme] #confirmAccept{background:var(--accent);color:var(--accent-ink)}
:root[data-theme] #confirmAccept.danger{background:transparent;color:var(--negative);border:1px solid color-mix(in srgb,var(--negative) 55%,transparent)}
:root[data-theme] .confirm-cancel{background:transparent;color:var(--muted);border:1px solid var(--line)!important}
:root[data-theme] #categoryRemove,:root[data-theme] .pocket-remove,:root[data-theme] .category-actions .destructive{
  width:100%;min-height:50px;margin:6px 0 4px;border-radius:var(--r-m);background:transparent!important;
  color:var(--negative)!important;border:1px solid color-mix(in srgb,var(--negative) 50%,transparent)!important;font:inherit;font-weight:700}
:root[data-theme] #categoryList .row,:root[data-theme] #categoryList>div{align-items:center}
:root[data-theme] #categoryList button{min-height:40px;border-radius:12px;font-weight:600}
:root[data-theme] #categoryList button:last-child{background:transparent!important;color:var(--negative)!important;border:1px solid color-mix(in srgb,var(--negative) 45%,transparent)!important}

/* Registrar movimiento: orden y aire */
:root[data-theme] .sheet .field{margin-bottom:14px}
:root[data-theme] .sheet .types{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:16px}
:root[data-theme] .sheet .types button{min-height:48px;padding:0 4px;font-size:13px;border-radius:14px}
:root[data-theme] .sheet h3{font-size:22px;letter-spacing:-.035em}
:root[data-theme] #saveMoveBtn{margin-top:8px;min-height:54px}

/* Agenda de próximos recurrentes: el día y el mes juntos */
:root[data-theme] .analysis-date{display:grid;place-items:center;align-content:center;gap:0;width:54px;height:54px;line-height:1;border-radius:14px;background:var(--r-tint);color:var(--accent);font-weight:800;font-size:18px;font-variant-numeric:tabular-nums}
:root[data-theme] .analysis-date small{display:block;margin:1px 0 0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);opacity:.85}

/* Notificaciones */
:root[data-theme] #financialNoticeList h4{margin:14px 0 8px;font-size:16px}
:root[data-theme] #financialNoticeList .structure-link,:root[data-theme] .task-notification{
  display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin:0 0 10px;padding:14px 16px;text-align:left;
  background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--r-m)!important;color:var(--ink)}
:root[data-theme] #financialNoticeList .structure-link b{display:block;font-size:16px}
:root[data-theme] #financialNoticeList .structure-link small,:root[data-theme] .task-notification small{display:block;margin-top:3px;color:var(--muted);font-size:13px}
.rumbo-on{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 16px;border-radius:var(--r-m);background:var(--r-tint);color:var(--accent);font-weight:700}
.rumbo-on svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}

/* =====================================================================
   5. Campos propios: lista, calendario mejorado, formato de hora
   ===================================================================== */
:root[data-theme] .rp-select{
  width:100%;min-height:52px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--surface2)!important;color:var(--ink)!important;border:1px solid var(--line)!important;border-radius:var(--r-m)!important;font:inherit;font-size:16px;text-align:left}
:root[data-theme] .rp-select.empty .rp-text{color:var(--muted)}
:root[data-theme] .rp-select svg{width:18px;height:18px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rp-list{display:grid;gap:8px;margin:8px 0 4px;max-height:52dvh;overflow:auto;overscroll-behavior:contain}
.rp-opt{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:0 16px;border-radius:var(--r-m);
  border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:16px;font-weight:600;text-align:left}
.rp-opt svg{width:20px;height:20px;fill:none;stroke:var(--accent);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.6);transition:opacity .2s,transform .3s cubic-bezier(.34,1.56,.64,1)}
.rp-opt[aria-selected="true"]{background:var(--r-tint);border-color:var(--r-ring);color:var(--accent)}
.rp-opt[aria-selected="true"] svg{opacity:1;transform:none}
.rp-opt:active{transform:scale(.985)}
.rp-grid.slide-left{animation:rpMonthL .34s cubic-bezier(.32,.72,0,1) both}
.rp-grid.slide-right{animation:rpMonthR .34s cubic-bezier(.32,.72,0,1) both}
@keyframes rpMonthL{from{opacity:0;translate:28px 0}to{opacity:1;translate:0 0}}
@keyframes rpMonthR{from{opacity:0;translate:-28px 0}to{opacity:1;translate:0 0}}
.rp-day{position:relative;transition:background .22s,color .22s,transform .22s cubic-bezier(.34,1.56,.64,1)}
.rp-day:active{transform:scale(.88)}
.rp-day.selected{box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 35%,transparent)}
.rp-day.today:not(.selected){background:var(--r-tint);color:var(--accent);font-weight:700;box-shadow:none}
.rp-day.weekend:not(.selected){color:var(--muted)}
.rp-cal-label{min-width:0;text-align:center;font-size:18px;font-weight:800;letter-spacing:-.02em}
.rp-sub{display:block;margin-top:2px;font-size:13px;font-weight:600;color:var(--muted)}
.rp-sheet .rp-foot{position:sticky;bottom:0;padding-top:12px;background:linear-gradient(transparent,var(--canvas) 30%)}
.rp-wheel{scroll-behavior:smooth}

/* =====================================================================
   6. Tutorial y primeros pasos
   ===================================================================== */
.rumbo-steps{margin:0 0 18px;padding:18px;border-radius:var(--r-m);background:var(--surface);border:1px solid var(--line)}
.rumbo-steps header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.rumbo-steps h2{margin:0;font-size:18px;letter-spacing:-.03em}
.rumbo-steps p{margin:4px 0 0;color:var(--muted);font-size:13px}
.rumbo-steps .x{flex:none;width:36px;height:36px;border-radius:12px;border:1px solid var(--line);background:transparent;color:var(--muted);display:grid;place-items:center;padding:0}
.rumbo-steps .x svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.rumbo-bar{height:6px;border-radius:3px;background:var(--surface2);margin:14px 0 6px;overflow:hidden}
.rumbo-bar i{display:block;height:100%;background:var(--accent);border-radius:3px;transition:width .5s cubic-bezier(.32,.72,0,1)}
.rumbo-step{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:16px;font-weight:600;text-align:left}
.rumbo-step:first-of-type{border-top:0}
.rumbo-step .dot{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid color-mix(in srgb,var(--ink) 35%,transparent);display:grid;place-items:center;transition:background .3s,border-color .3s}
.rumbo-step.done .dot{background:var(--accent);border-color:var(--accent)}
.rumbo-step.done .dot::after{content:"";width:10px;height:6px;border-left:2.5px solid var(--accent-ink);border-bottom:2.5px solid var(--accent-ink);transform:translateY(-1px) rotate(-45deg)}
.rumbo-step.done span{color:var(--muted);text-decoration:line-through}
.rumbo-tour{position:fixed;inset:0;z-index:150;pointer-events:auto}
.rumbo-tour .spot{position:absolute;border-radius:18px;box-shadow:0 0 0 9999px rgba(0,0,0,.62);transition:all .4s cubic-bezier(.32,.72,0,1);pointer-events:none}
.rumbo-tour .card{position:absolute;left:16px;right:16px;max-width:420px;margin:auto;padding:18px;border-radius:20px;background:var(--canvas);border:1px solid var(--line);box-shadow:0 18px 50px rgba(0,0,0,.4);animation:rumboPop .3s cubic-bezier(.32,.72,0,1) both}
.rumbo-tour .card h3{margin:0 0 6px;font-size:22px;letter-spacing:-.03em}
.rumbo-tour .card p{margin:0 0 14px;color:var(--muted);font-size:16px;line-height:1.5}
.rumbo-tour .row{display:flex;gap:10px;align-items:center;justify-content:space-between}
.rumbo-tour .row small{color:var(--muted)}
.rumbo-tour button{min-height:46px;padding:0 18px;border-radius:var(--r-m);font:inherit;font-weight:700;border:1px solid var(--line);background:transparent;color:var(--ink)}
.rumbo-tour button.go{background:var(--accent);color:var(--accent-ink);border-color:transparent}

/* Conflicto: resumen comprensible */
.rumbo-sum{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.rumbo-sum>div{padding:12px;border-radius:var(--r-m);background:var(--surface2);border:1px solid var(--line)}
.rumbo-sum b{display:block;font-size:13px;margin-bottom:4px}
.rumbo-sum span{display:block;font-size:13px;color:var(--muted);line-height:1.45}

/* ---- piezas de v58 ---- */
.category-select .rp-select{flex:1;min-width:0}
:root[data-theme] .rumbo-title{min-width:0}
.rumbo-custom{display:grid;gap:10px;width:100%;margin-top:6px;padding:14px;border-radius:var(--r-m);background:var(--surface2);border:1px solid var(--line);animation:rumboPop .24s cubic-bezier(.32,.72,0,1) both}
.rumbo-custom input{width:100%;min-height:50px;padding:0 14px;border-radius:var(--r-m);border:1px solid var(--line);background:var(--canvas);color:var(--ink);font-size:18px;font-weight:700}
.rumbo-custom .rp-primary{width:100%}
:root[data-theme] .rumbo-danger{
  width:100%;min-height:50px;margin-top:8px;border-radius:var(--r-m);background:transparent!important;color:var(--negative)!important;
  border:1px solid color-mix(in srgb,var(--negative) 50%,transparent)!important;font:inherit;font-weight:700}
.rumbo-danger-note{margin:22px 0 0;font-size:13px;font-weight:700;color:var(--muted);letter-spacing:.02em}
#northConflict.flash{animation:rumboFlash .9s ease 1}
@keyframes rumboFlash{0%,100%{box-shadow:0 0 0 0 transparent}35%{box-shadow:0 0 0 4px var(--r-ring)}}
:root[data-theme] .rumbo-tour button{cursor:pointer}

/* =====================================================================
   7. Uniformidad (revisión del 2026-10-17)
   Escala tipográfica única: 11 · 13 · 16 · 18 · 22 · 28 · 34 · 48 px.
   Un solo verde (bosque + lima). Hojas pegadas a los bordes y con el mismo radio.
   ===================================================================== */
/* Hojas y ventanas: todas al borde, mismo ancho máximo y mismo radio */
:root[data-theme] .context-backdrop{padding:0}
:root[data-theme] :is(.sheet,.category-dialog,.confirm-sheet,.create-menu,.context-menu){width:min(100%,520px);max-width:100%;border-radius:24px 24px 0 0!important}

/* Menú de tres puntos: acciones separadas por líneas */
:root[data-theme] .rumbo-pop{padding:0;overflow:hidden}
:root[data-theme] .rumbo-pop button{min-height:46px;padding:0 16px;font-size:16px;font-weight:600;border-radius:0}
:root[data-theme] .rumbo-pop button+button{border-top:1px solid var(--line);border-radius:0}

/* Fecha de recurrentes y listas de análisis: números en la misma escala que el texto */
:root[data-theme] .analysis-date{width:48px;height:48px;font-size:16px;font-weight:700;border-radius:var(--r-s,12px)}
:root[data-theme] .analysis-date small{font-size:11px;margin-top:2px}

/* Mes con mayúscula solo en la primera letra */
:root[data-theme] #moves .moves-period::first-letter,:root[data-theme] #moveCalendar .calendar-head strong::first-letter{text-transform:uppercase}

/* Estados vacíos: sin contornos punteados anidados */
:root[data-theme] :is(.empty,.empty-action,.integrated-empty,.analysis-empty,.analysis-empty-action,.home-goal.empty-goal){border-style:solid}
:root[data-theme] .panel :is(.empty,.empty-action,.integrated-empty,.analysis-empty,.analysis-empty-action,.home-goal.empty-goal){border:0!important;background:transparent!important}
:root[data-theme] .plan-empty{display:grid;justify-items:center;gap:8px;text-align:center;padding:26px 20px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface)}
:root[data-theme] .plan-empty-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--r-s,12px);background:var(--r-tint);color:var(--accent)}
:root[data-theme] .plan-empty-icon svg{width:24px;height:24px}
:root[data-theme] .plan-empty b{font-size:18px;letter-spacing:-.03em}
:root[data-theme] .plan-empty p{margin:0;max-width:30ch;font-size:13px;line-height:1.5;color:var(--muted)}
:root[data-theme] .plan-empty .primary{margin-top:8px;min-height:48px;padding:0 22px}

/* Objetivos: una fila de tres acciones iguales */
:root[data-theme] .goal-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
:root[data-theme] .goal-actions button{min-height:42px;border:1px solid var(--line);border-radius:var(--r-s,12px);background:transparent;color:var(--ink);font-size:13px;font-weight:600}
:root[data-theme] .goal-actions button:first-child{background:var(--r-tint);border-color:var(--r-ring);color:var(--accent)}

/* Cuenta: botones del mismo tamaño y forma; «Cerrar sesión» y borrar en rojo */
:root[data-theme] #userProfile .north-cloud-actions button.link{margin-top:10px;background:transparent!important;border:1px solid color-mix(in srgb,var(--negative) 50%,transparent)!important;color:var(--negative)!important}

/* Tipos de movimiento: sin rectángulo de fondo detrás de los botones */
:root[data-theme] .sheet .types{background:transparent;padding:0;border:0}