:root{--bg:#f4f7fb;--card:#fff;--text:#122036;--muted:#667085;--line:#e4e9f0;--accent:#c82418;--shadow:0 8px 26px rgba(18,32,54,.08)}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;background:var(--bg);color:var(--text)}a{color:inherit}.wrap{width:min(1100px,92%);margin:auto}.top{background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;backdrop-filter:blur(8px)}.topin{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0}.brand{font-weight:850}.brand-link{display:flex;align-items:center;gap:10px;text-decoration:none}.brand small{display:block;color:var(--muted);font-weight:500;font-size:12px}.brand-mark{width:36px;height:36px;display:grid;place-items:center;background:#d92d20;color:#fff;border-radius:50%;font-weight:900}.adminlink,.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:11px;padding:11px 15px;text-decoration:none;font-weight:800;cursor:pointer}.adminlink{background:#eef2f6}.btn{background:var(--accent);color:#fff}.hero{padding:34px 0 22px;background:linear-gradient(180deg,#fff 0,#f4f7fb 100%)}.hero-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.hero-jp{display:flex;flex-direction:column;align-items:center;justify-content:center;width:112px;height:112px;border-radius:50%;background:#fff1f0;color:#b42318;flex:0 0 auto}.hero-jp span{font-size:48px;font-weight:900;line-height:1}.hero-jp small{font-size:12px;margin-top:4px}h1{font-size:clamp(32px,6vw,53px);line-height:1.04;margin:0 0 10px}.lead{color:var(--muted);font-size:18px;margin:0;max-width:720px}.search{display:flex;gap:9px;margin:22px 0 5px}.search-box{position:relative;flex:1}.search-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);font-size:28px;color:#667085;line-height:1}.search input{width:100%;font-size:17px;padding:15px 16px 15px 48px;border:1px solid #cfd7e3;border-radius:13px;background:#fff;outline:none}.search input:focus{border-color:#f04438;box-shadow:0 0 0 4px #fee4e2}.search input::placeholder{color:#667085}.search button{padding-inline:24px}.hint{font-size:13px;color:var(--muted)}.section{padding:24px 0 48px}.eyebrow{font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.08em;color:#b42318;margin-bottom:5px}.page-title{font-size:30px;margin:0}.menu-intro-row{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.menu-intro-row p{margin:0;color:var(--muted)}
/* APP CATEGORY BUTTONS */
.app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.app-category{--c1:#1677ff;--c2:#0b5fd3;display:grid;grid-template-columns:58px minmax(0,1fr) auto 18px;align-items:center;gap:14px;min-height:112px;padding:18px 18px;border-radius:18px;text-decoration:none;color:#fff;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 9px 22px color-mix(in srgb,var(--c2) 24%,transparent);transition:transform .15s ease,filter .15s ease}.app-category:hover{transform:translateY(-2px);filter:brightness(1.03)}.app-icon{width:56px;height:56px;display:grid;place-items:center;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.18);border-radius:15px}.app-icon svg,.mini-theme svg{width:34px;height:34px;fill:currentColor}.app-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.app-copy strong{font-size:19px;line-height:1.15}.app-copy b{font-size:25px;line-height:1.1;font-weight:850}.count-badge{font-size:12px;font-weight:800;padding:6px 9px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.14);border-radius:999px;white-space:nowrap}.app-arrow{font-size:35px;font-weight:300;line-height:1}.theme-blue{--c1:#1988ff;--c2:#0d65d9}.theme-teal{--c1:#0fb9b1;--c2:#078f88}.theme-green{--c1:#2fbd67;--c2:#159145}.theme-orange{--c1:#ff8728;--c2:#f15c12}.theme-purple{--c1:#8c4cf0;--c2:#6f32d4}.theme-red{--c1:#ef3152;--c2:#d91436}.theme-gold{--c1:#f5b400;--c2:#d99700}.theme-cyan{--c1:#12bfd0;--c2:#0093ae}.theme-pink{--c1:#ef4d9a;--c2:#d62a79}.theme-slate{--c1:#85919d;--c2:#66717c}.theme-navy{--c1:#4967d9;--c2:#3049ad}.theme-indigo{--c1:#5865f2;--c2:#3946c7}.theme-navy2{--c1:#334e68;--c2:#1f3347}
/* RESULTS / CATEGORY VIEW */
.content-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin:0 0 22px}.back-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:11px;padding:10px 13px;font-weight:800;white-space:nowrap}.category{margin:0 0 30px}.compact-heading,.category-title-line{display:flex;align-items:center;gap:12px}.category-heading{margin-bottom:13px}.category-heading h2{font-size:24px;margin:0}.heading-jp,.page-jp{font-size:17px;font-weight:800;color:#667085;margin-top:2px}.mini-theme{--c1:#4967d9;--c2:#3049ad;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto;color:#fff;background:linear-gradient(135deg,var(--c1),var(--c2))}.mini-theme svg{width:27px;height:27px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.term{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.jp{font-size:28px;font-weight:850;letter-spacing:.02em}.kana{font-size:17px;color:#344054;margin-top:2px}.romaji{font-size:14px;color:#c82418;font-weight:800;margin-top:5px}.es{font-size:18px;font-weight:850;margin-top:12px}.ex{font-size:14px;color:var(--muted);margin-top:7px;line-height:1.5}.empty{padding:28px;background:#fff;border:1px dashed #cfd4dc;border-radius:14px;color:var(--muted)}
footer{padding:28px 0 40px;text-align:center;color:#344054;border-top:1px solid var(--line);background:#fff}footer strong{display:block;font-size:18px}footer span{display:block;color:var(--muted);font-size:13px;margin-top:4px}
/* ADMIN STYLES retained */
.admin-shell{width:min(1150px,94%);margin:24px auto}.admin-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px}.admin-nav{display:flex;gap:8px;flex-wrap:wrap}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow);margin-bottom:18px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:780px}.table th,.table td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.table th{font-size:12px;color:var(--muted);text-transform:uppercase}.actions{display:flex;gap:6px;flex-wrap:wrap}.mini{padding:7px 9px;border-radius:8px;text-decoration:none;background:#eef2f6;font-size:13px;font-weight:700;border:0;cursor:pointer}.mini.danger{background:#fee4e2;color:#b42318}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:5px}.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1px solid #d0d5dd;border-radius:9px;font:inherit}.field textarea{min-height:100px;resize:vertical}.span2{grid-column:1/-1}.flash{padding:12px 14px;border-radius:10px;margin-bottom:14px;background:#ecfdf3;color:#067647}.flash.error{background:#fef3f2;color:#b42318}.login{width:min(430px,92%);margin:8vh auto}.note{padding:12px 14px;border-radius:10px;background:#fffaeb;color:#93370d;font-size:14px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{padding:16px;border-radius:14px;background:#f8fafc;border:1px solid var(--line)}.stat b{display:block;font-size:28px}.muted{color:var(--muted)}
@media(max-width:760px){.wrap{width:min(94%,680px)}.topin{padding:10px 0}.brand-mark{width:31px;height:31px}.adminlink{font-size:13px;padding:9px 11px}.hero{padding:27px 0 18px}.hero-inner{gap:14px}.hero-jp{width:74px;height:74px}.hero-jp span{font-size:34px}.hero-jp small{display:none}.lead{font-size:16px}.search{flex-direction:column}.search button{padding:13px}.menu-intro-row{align-items:flex-start;flex-direction:column;gap:5px}.menu-intro-row p{font-size:13px}.app-grid{grid-template-columns:1fr;gap:10px}.app-category{grid-template-columns:48px minmax(0,1fr) auto 14px;min-height:84px;padding:13px 14px;gap:11px;border-radius:15px}.app-icon{width:46px;height:46px;border-radius:12px}.app-icon svg{width:28px;height:28px}.app-copy strong{font-size:16px}.app-copy b{font-size:21px}.count-badge{font-size:11px;padding:5px 7px}.app-arrow{font-size:29px}.grid{grid-template-columns:1fr}.content-head{flex-direction:column}.back-link{width:100%}.category-page-head{gap:12px}.page-title{font-size:26px}.jp{font-size:26px}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.stats{grid-template-columns:1fr}.admin-head{align-items:flex-start;flex-direction:column}}
@media(max-width:420px){.app-category{grid-template-columns:42px minmax(0,1fr) 15px}.app-icon{width:40px;height:40px}.count-badge{grid-column:2;justify-self:start;margin-top:1px}.app-arrow{grid-column:3;grid-row:1/3}.app-copy strong{font-size:15px}.app-copy b{font-size:19px}.brand small{font-size:11px}}


/* V1.5 — Tarjetas suaves + navegación flotante móvil */
.term{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(18,32,54,.08);
  background:linear-gradient(135deg,#ffffff 0%,#f8fbff 100%);
  box-shadow:0 10px 26px rgba(18,32,54,.08);
}
.grid .term:nth-child(6n+1){background:linear-gradient(135deg,#fff 0%,#fff0f5 100%);border-color:#f8d7e4}
.grid .term:nth-child(6n+2){background:linear-gradient(135deg,#fff 0%,#edf7ff 100%);border-color:#d4eafd}
.grid .term:nth-child(6n+3){background:linear-gradient(135deg,#fff 0%,#eefcf7 100%);border-color:#d3f3e7}
.grid .term:nth-child(6n+4){background:linear-gradient(135deg,#fff 0%,#f5f0ff 100%);border-color:#e4d9fb}
.grid .term:nth-child(6n+5){background:linear-gradient(135deg,#fff 0%,#fff7e9 100%);border-color:#f6e3bf}
.grid .term:nth-child(6n+6){background:linear-gradient(135deg,#fff 0%,#eefcff 100%);border-color:#cfeff5}

.mobile-float-nav{display:none}
.mobile-float-btn{
  width:48px;height:48px;border:0;border-radius:50%;
  display:grid;place-items:center;text-decoration:none;cursor:pointer;
  color:#fff;box-shadow:0 8px 22px rgba(18,32,54,.24);
  transition:transform .18s ease,opacity .18s ease,visibility .18s ease;
}
.mobile-float-btn svg{width:23px;height:23px;fill:currentColor}
.mobile-float-btn.back{background:linear-gradient(135deg,#d92d20,#b42318)}
.mobile-float-btn.topbtn{background:linear-gradient(135deg,#1677ff,#0d65d9)}
.mobile-float-btn:active{transform:scale(.94)}
.mobile-float-label{
  position:absolute;right:58px;padding:5px 8px;border-radius:7px;
  background:#122036;color:#fff;font-size:11px;font-weight:800;
  white-space:nowrap;opacity:.9;pointer-events:none;
}
.float-item{position:relative;display:flex;align-items:center;justify-content:flex-end}

@media(max-width:760px){
  .term{padding:18px 17px;border-radius:18px}
  .jp{font-size:29px}.kana{font-size:18px}.romaji{font-size:15px}.es{font-size:19px}.ex{font-size:15px}
  .mobile-float-nav{
    position:fixed;right:16px;bottom:24px;z-index:40;
    display:flex;flex-direction:column;gap:10px;
    opacity:0;visibility:hidden;transform:translateY(10px);
    transition:opacity .2s ease,visibility .2s ease,transform .2s ease;
  }
  .mobile-float-nav.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
}
@media(max-width:420px){
  .mobile-float-nav{right:13px;bottom:18px}
  .mobile-float-btn{width:45px;height:45px}
  .mobile-float-label{right:54px;font-size:10px}
}


/* V1.6 — Lectura básica */
.theme-learn{--c1:#7257e8;--c2:#4f3bc2}
.learning-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.learning-block{min-height:150px;padding:22px;border-radius:20px;text-decoration:none;color:#fff;display:flex;flex-direction:column;justify-content:center;box-shadow:0 10px 24px rgba(16,24,40,.12);transition:transform .15s ease}
.learning-block:hover{transform:translateY(-2px)}
.learning-block strong{font-size:21px}.learning-block b{font-size:31px;margin:5px 0}.learning-block span{font-size:13px;font-weight:700;opacity:.9}
.learning-block.hira{background:linear-gradient(135deg,#7c5ce7,#5941c8)}
.learning-block.kata{background:linear-gradient(135deg,#ed5c91,#ce3771)}
.learning-block.kanji-basic{background:linear-gradient(135deg,#28a76f,#168354)}
.subcat-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:4px 0 18px}
.subcat-head h3{font-size:27px;margin:0}.subcat-head h3 span{font-size:22px;color:#667085;margin-left:7px}.subcat-head p{margin:4px 0 0;color:#667085}
.learning-items{display:grid;gap:10px}
.kana-items{grid-template-columns:repeat(5,minmax(0,1fr))}
.kanji-items{grid-template-columns:repeat(4,minmax(0,1fr))}
.learn-card{border:1px solid #e1e7ef;border-radius:16px;text-align:center;box-shadow:0 7px 18px rgba(16,24,40,.06)}
.kana-card{padding:16px 8px;background:linear-gradient(145deg,#fff,#f5f1ff)}
.kanji-card{padding:17px 10px;background:linear-gradient(145deg,#fff,#eefaf5)}
.learn-char{font-size:34px;font-weight:900;line-height:1.15}
.learn-romaji{font-size:14px;color:#b42318;font-weight:850;margin-top:7px}
.learn-kana{font-size:16px;color:#344054;margin-top:5px}
.learn-es{font-size:15px;font-weight:850;margin-top:8px}
@media(max-width:760px){
  .learning-grid{grid-template-columns:1fr;gap:10px}
  .learning-block{min-height:105px;padding:17px 19px}
  .learning-block b{font-size:27px}
  .subcat-head{align-items:flex-start;flex-direction:column}
  .subcat-head .back-link{width:100%}
  .kana-items{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
  .kanji-items{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .kana-card{padding:13px 4px}.learn-char{font-size:29px}
}
@media(max-width:390px){
  .kana-items{grid-template-columns:repeat(4,minmax(0,1fr))}
}


/* V1.6.3 — Filas canónicas de Hiragana/Katakana.
   Evita que filas incompletas desplacen la siguiente fila. */
.kana-chart{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.kana-row{
  display:grid;
  gap:8px;
}
.kana-row-5{
  grid-template-columns:repeat(5,minmax(0,1fr));
}
.kana-row-3{
  grid-template-columns:repeat(3,minmax(0,1fr));
  width:60%;
  margin-inline:auto;
}
.kana-row .kana-card{
  min-width:0;
}

@media(max-width:760px){
  .kana-chart{gap:8px}
  .kana-row{gap:6px}
  .kana-row-5{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  }
  .kana-row-3{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    width:60%;
    margin-inline:auto;
  }
  .kana-row .kana-card{
    padding:12px 2px !important;
    border-radius:14px;
  }
  .kana-row .learn-char{
    font-size:27px !important;
  }
  .kana-row .learn-romaji{
    font-size:12px !important;
  }
}

@media(max-width:390px){
  .kana-row-5{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  }
  .kana-row-3{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    width:62%;
  }
  .kana-row .kana-card{
    padding:10px 1px !important;
  }
  .kana-row .learn-char{
    font-size:25px !important;
  }
  .kana-row .learn-romaji{
    font-size:11px !important;
  }
}
/* V1.7B · Historial de búsquedas */
.search-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.search-tabs .mini{padding:8px 12px;text-decoration:none}.search-tabs .active{background:#172554;color:#fff;border-color:#172554}


/* V1.7.2 · Categorías y subcategorías administrables */
.theme-custom{background:linear-gradient(135deg,var(--cat-color,#334155),color-mix(in srgb,var(--cat-color,#334155) 72%,#000))!important;color:#fff!important}
.mini-theme.theme-custom{background:var(--cat-color,#334155)!important}
.dynamic-sub{background:linear-gradient(135deg,var(--sub-color,#6366f1),color-mix(in srgb,var(--sub-color,#6366f1) 72%,#000))!important}
.color-dot{display:inline-block;width:13px;height:13px;border-radius:50%;margin-right:7px;vertical-align:-1px;border:1px solid rgba(0,0,0,.12)}
@supports not (background:color-mix(in srgb,#000,#fff)){.theme-custom{background:var(--cat-color,#334155)!important}.dynamic-sub{background:var(--sub-color,#6366f1)!important}}

/* V1.7.5 — identidad general de Guía Japón */
.hero-guide span{font-size:29px;letter-spacing:-.06em}.hero-guide small{font-size:10px;font-weight:800;letter-spacing:.12em;margin-top:7px}
@media(max-width:760px){.hero-guide span{font-size:21px}.hero-guide small{display:none}}

/* V1.7.5.2 — Mobile category cards: compact two-column app layout */
@media(max-width:760px){
  .app-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  .app-category{
    grid-template-columns:40px minmax(0,1fr);
    grid-template-rows:auto auto;
    align-content:start;
    min-height:126px;
    padding:13px;
    gap:8px 10px;
    border-radius:16px;
    position:relative;
  }
  .app-icon{
    width:40px;
    height:40px;
    border-radius:11px;
    grid-column:1;
    grid-row:1;
  }
  .app-icon svg{width:24px;height:24px}
  .app-copy{
    grid-column:1/-1;
    grid-row:2;
    gap:3px;
    min-width:0;
  }
  .app-copy strong{
    font-size:15px;
    line-height:1.15;
  }
  .app-copy b{
    font-size:17px;
    line-height:1.12;
    opacity:.94;
  }
  .count-badge{
    position:absolute;
    top:14px;
    right:12px;
    font-size:10px;
    line-height:1;
    padding:5px 6px;
    max-width:74px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .app-arrow{display:none}
}

@media(max-width:420px){
  .app-grid{gap:8px}
  .app-category{
    grid-template-columns:36px minmax(0,1fr);
    min-height:116px;
    padding:11px;
    gap:7px 8px;
    border-radius:14px;
  }
  .app-icon{width:36px;height:36px;border-radius:10px}
  .app-icon svg{width:22px;height:22px}
  .app-copy strong{font-size:14px}
  .app-copy b{font-size:16px}
  .count-badge{
    grid-column:auto;
    position:absolute;
    top:11px;
    right:10px;
    margin:0;
    font-size:9px;
    padding:4px 5px;
    max-width:62px;
  }
}

@media(max-width:350px){
  .app-copy strong{font-size:13px}
  .app-copy b{font-size:15px}
  .count-badge{display:none}
}

/* V1.8.0 — resultados por familias de vocabulario */
.family-search-list{display:grid;gap:22px}
.family-search-result{background:#fff;border:1px solid #dbe5ef;border-radius:22px;padding:18px;box-shadow:0 12px 28px rgba(15,23,42,.06)}
.family-main-label{font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#64748b;margin:0 0 9px 4px}
.family-main-term{max-width:760px;border-width:2px;box-shadow:0 8px 20px rgba(15,23,42,.05)}
.family-related-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:17px 2px 10px;padding-top:14px;border-top:1px dashed #cbd5e1}
.family-related-head strong{font-size:1rem;color:#0f2744}
.family-related-head span{font-size:.8rem;color:#64748b;background:#f1f5f9;padding:5px 9px;border-radius:999px}
.family-related-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.family-related-term{min-height:0;padding:16px 17px;background:linear-gradient(145deg,#fff,#f8fafc)}
.family-related-term .jp{font-size:1.35rem}
.family-related-term .kana{font-size:.9rem}
.family-related-term .romaji{font-size:.78rem}
.family-related-term .es{font-size:1rem}
@media(max-width:760px){
  .family-search-result{padding:13px;border-radius:18px}
  .family-related-grid{grid-template-columns:1fr}
  .family-related-head{align-items:flex-start;flex-direction:column;gap:6px}
  .family-main-term{max-width:none}
}


/* V1.8.0.3 — Familias globales en búsqueda */
.global-family-search{margin-top:18px}
.global-family-result{margin-bottom:22px}
.global-family-head{margin-bottom:12px}
.family-root-title{font-size:1.35rem;font-weight:900;color:#0f2744;line-height:1.15}
.family-root-title span{font-size:1.45rem}
.family-origin{margin-top:4px;color:#64748b;font-size:.86rem;font-weight:700}
.variant-category{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin-bottom:8px;padding:4px 9px;border-radius:999px;background:#eef2ff;color:#475569;font-size:.72rem;font-weight:800}
.global-family-result .family-main-term{max-width:780px}
@media(max-width:760px){
  .family-root-title{font-size:1.15rem}
  .family-root-title span{font-size:1.25rem}
  .global-family-result .category-heading{align-items:center}
}


/* V1.8.2 — Búsqueda inteligente por familias */
.family-match-label{
  margin:16px 0 8px;
  color:#b42318;
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase
}
.family-matched-term{
  max-width:780px;
  border:2px solid #fecaca;
  background:#fffafb;
  box-shadow:0 10px 24px rgba(15,39,68,.05)
}
.family-matched-term .variant-category{
  background:#fee2e2;
  color:#991b1b
}
.global-family-result .family-main-term{
  position:relative
}
.global-family-result .family-main-term:before{
  content:"PALABRA BASE";
  display:inline-block;
  margin-bottom:8px;
  padding:3px 8px;
  border-radius:999px;
  background:#eff6ff;
  color:#1d4ed8;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.04em
}
@media(max-width:760px){
  .family-matched-term{max-width:none}
}


/* V1.8.3 — aviso de coincidencia aproximada */
.fuzzy-search-note{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  margin:0 0 16px;
  padding:11px 14px;
  border:1px solid #fde68a;
  border-radius:14px;
  background:#fffbeb;
  color:#713f12;
  font-size:.88rem
}
.fuzzy-search-note strong{font-weight:900}
.fuzzy-search-note span{color:#854d0e}


/* V1.8.3.1 — Encabezado público limpio */
.brand-book{
  background:#fff;
  color:#c82418;
  border:1px solid #f1c7c3;
  border-radius:10px;
}
.brand-book svg{
  width:23px;
  height:23px;
  fill:currentColor;
}
.hero-inner{
  display:block;
}
.hero h1{
  font-size:clamp(34px,4.5vw,48px);
  line-height:1.06;
}

@media(max-width:760px){
  .brand-link{gap:8px}
  .brand-book{width:32px;height:32px}
  .brand-book svg{width:21px;height:21px}
  .brand{font-size:15px;line-height:1.08}
  .brand small{font-size:10.5px;margin-top:2px}
  .hero h1{
    font-size:clamp(30px,8.2vw,36px);
    line-height:1.06;
    letter-spacing:-.025em;
  }
}

@media(max-width:390px){
  .hero h1{
    font-size:clamp(28px,8vw,31px);
  }
}


/* V1.8.3.2 — Compactación móvil del encabezado
   Desktop queda intacto. */
@media(max-width:760px){
  .hero{
    padding:18px 0 12px;
  }

  .hero h1{
    font-size:clamp(27px,7.3vw,30px);
    line-height:1.02;
    letter-spacing:-.03em;
    margin-bottom:7px;
  }

  .lead{
    font-size:14px;
    line-height:1.32;
    margin:0;
    max-width:none;
  }

  .search{
    margin:14px 0 3px;
    gap:7px;
  }

  .search input{
    font-size:16px;
    padding:12px 14px 12px 43px;
    border-radius:12px;
  }

  .search-icon{
    left:14px;
    font-size:24px;
  }

  .search button{
    padding:11px 14px;
    min-height:44px;
  }

  .hint{
    font-size:12px;
    line-height:1.35;
  }

  .section{
    padding-top:17px;
  }

  .menu-intro-row{
    margin-bottom:12px;
    gap:2px;
  }

  .eyebrow{
    margin-bottom:2px;
    font-size:11px;
  }

  .page-title{
    font-size:27px;
    line-height:1.05;
  }

  .menu-intro-row p{
    font-size:12px;
    line-height:1.3;
  }
}

@media(max-width:390px){
  .hero{
    padding:16px 0 10px;
  }

  .hero h1{
    font-size:26px;
  }

  .lead{
    font-size:13.5px;
  }

  .search{
    margin-top:12px;
  }

  .section{
    padding-top:15px;
  }
}


/* V1.8.3.3 — Inicio limpio, buscador emergente e instalación */
.hero{padding-bottom:18px}
.hero-search-launch{margin-top:16px}
.search-launch-btn{
  width:100%;
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  border:1px solid #cfd7e3;
  border-radius:13px;
  background:#fff;
  color:#344054;
  font:inherit;
  font-size:16px;
  font-weight:750;
  cursor:pointer;
  text-align:left;
}
.search-launch-btn:hover{border-color:#f04438}
.search-launch-icon{font-size:25px;color:#667085;line-height:1}
.menu-intro-centered{
  justify-content:center;
  align-items:center;
  text-align:center;
  margin-bottom:18px;
}
.menu-intro-centered .page-title{font-size:31px}

body.modal-open{overflow:hidden}
.ui-modal[hidden]{display:none!important}
.ui-modal{
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  place-items:center;
  padding:18px;
}
.ui-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.48);
  backdrop-filter:blur(3px);
}
.ui-modal-card{
  position:relative;
  z-index:1;
  width:min(620px,100%);
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:20px;
  box-shadow:0 24px 70px rgba(15,23,42,.24);
  padding:24px;
}
.ui-modal-card h2{margin:0 42px 15px 0;font-size:24px}
.ui-modal-close{
  position:absolute;
  top:12px;
  right:12px;
  width:38px;
  height:38px;
  border:0;
  border-radius:50%;
  background:#f1f5f9;
  color:#334155;
  font-size:27px;
  line-height:1;
  cursor:pointer;
}
.search-modal-form{margin:0 0 8px}
.install-modal-card{width:min(430px,100%);text-align:center}
.install-book{
  width:58px;height:58px;margin:0 auto 12px;display:grid;place-items:center;
  border-radius:16px;background:#fff1f0;color:#c82418;border:1px solid #f3cbc7
}
.install-book svg{width:32px;height:32px;fill:currentColor}
.install-modal-card h2{margin:0 0 8px}
.install-modal-card>p{margin:0 auto 14px;color:#667085;line-height:1.45}
.install-ios-help{
  padding:11px 12px;margin:10px 0 14px;border-radius:12px;background:#f8fafc;
  color:#475569;font-size:14px;line-height:1.45;text-align:left
}
.install-ios-help p{margin:0}
.install-actions{display:grid;gap:8px}
.install-primary{width:100%}
.install-secondary{
  border:0;background:transparent;color:#667085;font-weight:750;padding:9px;cursor:pointer
}

@media(max-width:760px){
  .hero{padding:14px 0 10px}
  .hero h1{
    font-size:clamp(26px,7vw,29px);
    margin-bottom:0;
  }
  .hero-search-launch{margin-top:12px}
  .search-launch-btn{
    padding:11px 13px;
    min-height:46px;
    font-size:15px;
    border-radius:12px;
  }
  .search-launch-icon{font-size:22px}
  .section{padding-top:13px}
  .menu-intro-centered{margin-bottom:12px}
  .menu-intro-centered .page-title{
    font-size:28px;
    line-height:1;
  }
  .ui-modal{padding:14px}
  .ui-modal-card{padding:20px 16px;border-radius:18px}
  .ui-modal-card h2{font-size:21px}
  .search-modal-form{display:flex;flex-direction:column;gap:8px}
  .search-modal-form .search-box{width:100%}
  .search-modal-form .btn{width:100%;min-height:44px}
}


/* V1.8.3.4 — instalación como pie de página, no intrusiva */
.install-footer{
  margin-top:24px;
  padding:18px 0;
  background:#fff;
  border-top:1px solid var(--line);
}
.install-footer[hidden]{display:none!important}
.install-footer-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.install-footer-copy{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.install-footer-copy strong{
  display:block;
  font-size:15px;
  color:#122036;
}
.install-footer-copy span:not(.install-footer-icon){
  display:block;
  margin-top:2px;
  color:#667085;
  font-size:12px;
}
.install-footer-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:12px;
  background:#fff1f0;
  color:#c82418;
  border:1px solid #f3cbc7;
}
.install-footer-icon svg{width:24px;height:24px;fill:currentColor}
.install-footer-btn{
  flex:0 0 auto;
  border:0;
  border-radius:10px;
  background:#c82418;
  color:#fff;
  padding:10px 14px;
  font-weight:800;
  cursor:pointer;
}

@media(max-width:760px){
  .install-footer{margin-top:18px;padding:14px 0}
  .install-footer-inner{gap:10px}
  .install-footer-copy{gap:9px}
  .install-footer-icon{width:38px;height:38px}
  .install-footer-icon svg{width:22px;height:22px}
  .install-footer-copy strong{font-size:13px}
  .install-footer-copy span:not(.install-footer-icon){font-size:11px}
  .install-footer-btn{padding:9px 11px;font-size:13px}
}

@media(max-width:390px){
  .install-footer-copy span:not(.install-footer-icon){display:none}
}


/* V1.9.0 — estado offline */
.offline-status{
  position:sticky;
  top:61px;
  z-index:9;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:6px 10px;
  background:#fff7ed;
  border-bottom:1px solid #fed7aa;
  color:#9a3412;
  font-size:12px;
  font-weight:850;
}
.offline-status[hidden]{display:none!important}
.offline-dot{
  width:8px;height:8px;border-radius:50%;
  background:#f97316;
}
@media(max-width:760px){
  .offline-status{top:53px;font-size:11px;padding:5px 8px}
}

/* V2.2.4A Admin Dashboard Mobile Refinement
   Scope: SOLO admin/dashboard.php en móvil. Escritorio y login no se modifican. */
@media (max-width: 768px) {
  body.admin-dashboard-page .admin-shell {
    width: min(100% - 24px, 760px);
    margin: 0 auto;
    padding-top: 18px;
    padding-bottom: 28px;
  }

  body.admin-dashboard-page .admin-head {
    gap: 14px;
    margin-bottom: 18px;
  }

  body.admin-dashboard-page .admin-head h1 {
    font-size: clamp(26px, 8vw, 34px) !important;
    line-height: 1.05;
    letter-spacing: -0.03em;
  }

  body.admin-dashboard-page .admin-head > div:first-child .muted {
    margin-top: 4px;
    font-size: 16px;
    line-height: 1.25;
  }

  body.admin-dashboard-page .admin-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    width: 100%;
  }

  body.admin-dashboard-page .admin-nav .btn,
  body.admin-dashboard-page .admin-nav a.btn {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    padding: 11px 12px;
    margin: 0;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 16px;
    line-height: 1.1;
    white-space: normal;
  }

  body.admin-dashboard-page .stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
    margin-bottom: 16px;
  }

  body.admin-dashboard-page .stats .stat {
    min-width: 0;
    min-height: 118px;
    padding: 18px 16px;
    border-radius: 18px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  body.admin-dashboard-page .stats .stat .muted,
  body.admin-dashboard-page .stats .stat > span:first-child {
    font-size: 14px;
    line-height: 1.25;
  }

  body.admin-dashboard-page .stats .stat b {
    margin-top: 5px;
    font-size: clamp(30px, 10vw, 42px);
    line-height: .95;
    letter-spacing: -0.03em;
  }

  body.admin-dashboard-page .panel {
    margin-top: 14px;
    padding: 22px 18px;
    border-radius: 20px;
  }

  body.admin-dashboard-page .panel h2 {
    margin-top: 0;
    margin-bottom: 10px;
    font-size: clamp(24px, 7vw, 31px);
    line-height: 1.08;
  }

  body.admin-dashboard-page .panel p {
    margin: 0 0 14px;
    font-size: 16px;
    line-height: 1.45;
  }

  body.admin-dashboard-page .panel .btn,
  body.admin-dashboard-page .panel a.btn {
    min-height: 48px;
    padding: 11px 14px;
    margin: 5px 6px 5px 0;
    border-radius: 14px;
    font-size: 16px;
    line-height: 1.15;
  }
}

@media (max-width: 390px) {
  body.admin-dashboard-page .admin-shell { width: min(100% - 18px, 760px); }
  body.admin-dashboard-page .admin-nav { gap: 8px; }
  body.admin-dashboard-page .admin-nav .btn,
  body.admin-dashboard-page .admin-nav a.btn { font-size: 15px; padding-left: 8px; padding-right: 8px; }
  body.admin-dashboard-page .stats { gap: 8px; }
  body.admin-dashboard-page .stats .stat { min-height: 108px; padding: 15px 13px; }
  body.admin-dashboard-page .panel { padding: 19px 15px; }
}

/* V2.2.4B Admin Mobile Dual Dropdown Menus
   Solo dashboard móvil. Login y escritorio permanecen intactos. */
.admin-mobile-dual-menus {
  display: none;
}

@media (max-width: 768px) {
  body.admin-dashboard-page.admin-mobile-menus-ready .admin-head .admin-nav {
    display: none !important;
  }

  body.admin-dashboard-page .admin-mobile-dual-menus {
    display: block;
    margin: 18px 0 16px;
  }

  body.admin-dashboard-page .admin-mobile-menu-toggle-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  body.admin-dashboard-page .admin-mobile-menu-toggle {
    appearance: none;
    width: 100%;
    min-height: 52px;
    border: 0;
    border-radius: 16px;
    padding: 12px 16px;
    background: #d92317;
    color: #fff;
    font: inherit;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    box-shadow: none;
    cursor: pointer;
  }

  body.admin-dashboard-page .admin-mobile-menu-toggle:disabled {
    opacity: .55;
    cursor: default;
  }

  body.admin-dashboard-page .admin-mobile-chevron {
    font-size: 20px;
    line-height: 1;
    transition: transform .18s ease;
  }

  body.admin-dashboard-page .admin-mobile-menu-toggle[aria-expanded="true"] .admin-mobile-chevron {
    transform: rotate(180deg);
  }

  body.admin-dashboard-page .admin-mobile-dropdown {
    margin-top: 10px;
    padding: 10px;
    border: 1px solid #dce4ef;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(18, 33, 58, .08);
  }

  body.admin-dashboard-page .admin-mobile-dropdown[hidden] {
    display: none !important;
  }

  body.admin-dashboard-page .admin-mobile-dropdown:not([hidden]) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  body.admin-dashboard-page .admin-mobile-dropdown-link,
  body.admin-dashboard-page .admin-mobile-dropdown a {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 10px 9px !important;
    border-radius: 12px !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: normal !important;
    font-size: 15px !important;
    line-height: 1.15 !important;
  }

  /* Los botones originales del panel inferior se ocultan SOLO en móvil
     porque ya aparecen dentro del menú "Editar". El texto informativo se conserva. */
  body.admin-dashboard-page.admin-mobile-menus-ready .panel h2 ~ a.btn,
  body.admin-dashboard-page.admin-mobile-menus-ready .panel p ~ a.btn,
  body.admin-dashboard-page.admin-mobile-menus-ready .panel > a.btn {
    display: none !important;
  }

  body.admin-dashboard-page.admin-mobile-menus-ready .panel {
    padding-bottom: 18px;
  }
}

@media (max-width: 390px) {
  body.admin-dashboard-page .admin-mobile-menu-toggle {
    min-height: 50px;
    padding: 11px 13px;
    font-size: 16px;
  }

  body.admin-dashboard-page .admin-mobile-dropdown {
    padding: 8px;
  }

  body.admin-dashboard-page .admin-mobile-dropdown:not([hidden]) {
    gap: 7px;
  }

  body.admin-dashboard-page .admin-mobile-dropdown-link,
  body.admin-dashboard-page .admin-mobile-dropdown a {
    font-size: 14px !important;
    padding-left: 7px !important;
    padding-right: 7px !important;
  }
}
