:root{
  --obsidian:#f7f5ee; --obsidian-2:#ffffff; --panel:#f0f3fa;
  --paper:#23336f; --paper-dim:#48556e; --copper:#b59957;
  --copper-bright:#263a71; --lake:#176e72; --lake-bright:#176e72;
  --gold:#b59957; --line:rgba(35,51,111,.16); --radius:12px;
}
body{font-family:'Work Sans','Lenguas PDF',sans-serif;}
a{color:#23336f;}
header.site{padding:24px 0 0;background:#fff;border:0;}
.institutional-row{display:flex;align-items:center;gap:28px;flex-wrap:wrap;padding-bottom:22px;}
.institutional-logos{display:flex;align-items:center;gap:24px;flex-shrink:0;}
.institutional-logos img{display:block;height:94px;width:auto;object-fit:contain;}
.institutional-logos img.filologicas{height:88px;}
.institutional-name{font-size:15px;color:#23336f;line-height:1.6;}
.institutional-name strong{font-weight:600;display:block;}
.site-head-row{padding:16px 32px;border-top:1px solid var(--line);gap:16px;}
.wordmark{font-size:24px;}
.wordmark .dot{width:10px;height:10px;background:#b59957;}
nav.site-nav{gap:22px;flex-wrap:wrap;}
nav.site-nav a{color:#23336f;font-weight:500;}
.greca-rule{height:5px;background-image:none;background:#b59957;opacity:1;}
.hero{padding:52px 0 48px;gap:48px;align-items:center;}
.hero h1{font-size:clamp(42px,5vw,62px);max-width:17ch;line-height:1.08;}
.hero h1 em{color:#263a71;}
.hero .hero-eyebrow{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:#725923;margin:0 0 16px;font-weight:600;}
.hero p.lede{font-size:17px;}
.hero-side{background:#23336f;color:#fff;padding:28px;border:0;border-radius:16px;}
.hero-side .kicker-word{color:#ead9b1;font-family:'Work Sans',sans-serif;font-size:16px;font-weight:600;}
.hero-side p{color:#f6f3eb;}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px;}
.hero-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 20px;border-radius:8px;text-decoration:none;border:1px solid #23336f;font-weight:600;font-size:14px;}
.hero-actions a:first-child{background:#23336f;color:#fff;}
.sample-characters{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px;}
.sample-characters span{display:grid;place-items:center;width:44px;height:44px;border-radius:8px;background:rgba(255,255,255,.12);color:#fff;font-family:'Lenguas PDF',sans-serif;font-size:23px;}
section.languages{padding:28px 0 36px;}
section.languages h2,section.creator h2{font-size:28px;}
.lang-shelf{gap:10px;}
.lang-chip:not(.available){display:none;}
.lang-chip.available{background:#fff;color:#23336f;border:1px solid #c5cbdd;box-shadow:0 2px 0 rgba(35,51,111,.04);border-radius:8px;padding:12px 20px;}
.lang-chip.available:hover,.lang-chip.expanded{background:#e7ebf6;color:#23336f;}
.lang-chip.active{background:#23336f;color:#fff;outline:none;}
.category-menu .category-pill{border-radius:8px;}
.category-menu .category-pill.active{background:#23336f;color:#fff;border-color:#23336f;}
.puzzle-head h2{font-size:32px;}
.mode-btn{border-radius:8px;padding:10px 17px;}
.mode-btn.active{background:#23336f;color:#fff;border-color:#23336f;}
button.action{border-radius:8px;min-height:42px;border-color:#23336f;color:#23336f;}
button.action.solid,button.action:hover{background:#23336f;color:#fff;}
button.action.solid:hover{background:#334887;}
.word-panel{background:#fff;box-shadow:0 4px 18px rgba(35,51,111,.035);}
.grid-panel{background:#fff;border-top:4px solid #b59957;justify-content:center;}
#puzzle-grid .cell,.custom-wordsearch-grid .cell{color:#23336f;font-family:'Lenguas PDF',sans-serif;}
#puzzle-grid .cell.found,.custom-wordsearch-grid .cell.found{background:#f0dcae;color:#23336f;}
/* Solo las casillas jugables forman el contorno del crucigrama. */
#crossword-grid,#custom-crossword-grid{
  --cw-cell-size:48px;
  background:transparent;
  border:0;
  gap:0;
}
.cw-cell{background:#fff;border:1px solid #59647e;box-sizing:border-box;}
.cw-cell.cw-blocked{background:transparent;border:0;visibility:hidden;pointer-events:none;}
.cw-input{font-size:23px;padding:11px 2px 3px;}
.cw-num{font-size:11px;top:3px;left:4px;}
.puzzle-body.crossword-layout{grid-template-columns:minmax(0,1fr);gap:24px;}
.crossword-layout .grid-panel{grid-row:1;justify-content:flex-start;padding:32px;}
.crossword-layout #crossword-clues{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;}
.crossword-layout .crossword-unplaced-note{grid-column:1/-1;}
.creator-grid:has(#custom-crossword-grid){grid-template-columns:minmax(260px,.85fr) minmax(0,1.3fr);gap:24px;}
.mini-crossword{gap:0;background:transparent;}
.mini-crossword-cell{background:#fff;color:#23336f;border:1px solid #59647e;box-sizing:border-box;}
.mini-crossword-cell.blocked{background:transparent;border:0;visibility:hidden;}
.submission-crossword-grid{background:transparent;gap:0;}
.submission-crossword-cell{background:#fff;color:#23336f;border:1px solid #59647e;box-sizing:border-box;}
.submission-crossword-cell.blocked{background:transparent;border:0;visibility:hidden;}
.cw-cell.cw-active-word{background:#efe0bd;}
.cw-cell.cw-solution{background:#e5f3ef;}
.cw-num{color:#23336f;}
.cw-cell input{color:#23336f;font-family:'Lenguas PDF',sans-serif;}
.cw-cell.revealed{background:#f0dcae;}
#crossword-clues .clue-column h4{color:#23336f;}
.special-char-btn{color:#23336f;background:#fff;border-color:#c5cbdd;}
.special-chars-label{color:#176e72;}
.creator-preview{background:#fff;border-top:4px solid #176e72;}
.creator-form textarea,.creator-form input[type=text],.creator-form select{background:#fff;color:#23336f;}
.community-card{background:#fff;border-radius:12px;}
.community-card-preview{background:#eff4fb;}
.community-type-badge{background:#e8edf8;color:#23336f;}
.community-type-badge.crossword{background:#e8f4f1;color:#176e72;}
.mini-word-chip{background:#f5ebd5;color:#23336f;}
.section-accent{display:inline-block;width:38px;height:4px;border-radius:3px;background:#176e72;margin-bottom:12px;}
footer.site{background:#23336f;color:#fff;border:0;padding:24px 0;}
footer.site a{color:#ead9b1;}
.admin-panel{background:#fff;border-radius:12px;}
.admin-form input,.admin-form textarea,.admin-form select,.login-form input{background:#fff;color:#23336f;}
.admin-panel-head h2{color:#23336f;}
.error-msg,.submission-status.rejected,.icon-btn.danger:hover{color:#a33224;}
.submission-status.pending,.crossword-warning{color:#725923;}
@media(max-width:760px){
  .wrap{padding:0 20px;}
  .institutional-row{gap:14px;}
  .institutional-logos img{height:74px;}
  .institutional-logos img.filologicas{height:70px;}
  .institutional-name{font-size:13px;}
  .hero{grid-template-columns:1fr;padding:32px 0;gap:24px;}
  .hero h1{font-size:42px;}
  .hero-side{padding:22px;}
  .site-head-row{align-items:flex-start;padding:16px 20px;}
  nav.site-nav{gap:14px;font-size:13px;}
  .puzzle-head h2{font-size:27px;}
  .grid-panel{padding:14px;}
}
@media(max-width:860px){
  #crossword-grid,#custom-crossword-grid{--cw-cell-size:44px;}
  .cw-input{font-size:21px;}
  .crossword-layout .grid-panel{padding:16px;}
  .crossword-layout #crossword-clues{grid-template-columns:minmax(0,1fr);}
  .creator-grid:has(#custom-crossword-grid){grid-template-columns:minmax(0,1fr);}
}
