:root{--bg:#090a0c;--panel:#111318;--panel2:#171a20;--text:#f4f0e8;--muted:#a9a6a0;--gold:#d3aa54;--gold2:#f1d48b;--line:#2b2f37;--danger:#c95c5c;--ok:#6bb98b;--shadow:0 20px 60px rgba(0,0,0,.28);--radius:22px}body.light{--bg:#f4efe4;--panel:#fffdf7;--panel2:#f7f0e2;--text:#171717;--muted:#706b63;--gold:#9f7726;--gold2:#c59d4b;--line:#ddd3c0;--shadow:0 20px 55px rgba(59,44,18,.12)}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 20% 0%,rgba(211,170,84,.08),transparent 35%),var(--bg);color:var(--text);min-height:100vh}button,select,input{font:inherit}button,a,select{touch-action:manipulation}a{text-decoration:none;color:inherit}.hidden{display:none!important}.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(14px,3vw,36px);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(18px)}.brand-wrap{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border:1px solid var(--gold);border-radius:13px;display:grid;place-items:center;color:var(--gold2);font-weight:800;letter-spacing:.08em}.brand{font-weight:800;font-size:1.04rem}.brand span{color:var(--gold2)}.tagline{font-size:.72rem;color:var(--muted);margin-top:2px}.top-actions{display:flex;gap:8px;align-items:center}.main{width:min(1500px,calc(100% - 24px));margin:18px auto 60px}.card{background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 96%,white 4%),var(--panel));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.hero{padding:26px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;overflow:hidden;position:relative}.hero:after{content:"";position:absolute;right:-70px;top:-110px;width:260px;height:260px;border:1px solid rgba(211,170,84,.18);border-radius:50%}.hero h1{margin:4px 0 8px;font-size:clamp(1.7rem,4vw,3rem);line-height:1}.hero p{margin:0;color:var(--muted)}.hero-badge{min-width:180px;border:1px solid var(--line);background:var(--panel2);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:4px;z-index:1}.hero-badge strong{color:var(--gold2)}.hero-badge span{font-size:.75rem;color:var(--muted)}.eyebrow{font-size:.68rem;letter-spacing:.18em;color:var(--gold);font-weight:800}.setup{padding:24px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.section-head.compact{margin-bottom:12px}.section-head h2{margin:3px 0 0;font-size:1.25rem}.setup-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:.8rem;font-weight:700}select,input{width:100%;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:13px;padding:12px 13px;outline:none}select:focus,input:focus{border-color:var(--gold)}.setup-actions{display:flex;gap:10px;margin-top:18px}button,.ghost-btn,.gold-btn,.danger-btn{border-radius:13px;padding:10px 14px;border:1px solid var(--line);background:var(--panel2);color:var(--text);cursor:pointer;font-weight:800;transition:.16s transform,.16s border-color,.16s background}button:hover,.ghost-btn:hover{border-color:var(--gold);transform:translateY(-1px)}.gold-btn{background:linear-gradient(135deg,var(--gold),var(--gold2));border-color:transparent;color:#17120a}.danger-btn{border-color:color-mix(in srgb,var(--danger) 60%,var(--line));color:#ffbaba}.large{padding:13px 18px}.full{width:100%}.icon-btn{width:42px;height:42px;padding:0;display:grid;place-items:center}.game-toolbar{margin:16px 0;padding:12px 14px;display:flex;align-items:center;gap:10px;position:sticky;top:72px;z-index:40}.timer-wrap,.stat{display:flex;align-items:baseline;gap:8px;padding:8px 12px;border-right:1px solid var(--line)}.timer-wrap span,.stat span{font-size:.72rem;color:var(--muted)}.timer-wrap strong{font-size:1.2rem;color:var(--gold2)}.tool-group{display:flex;gap:7px;margin-left:auto}.tool-btn.active{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold);color:var(--gold2)}.game-layout{display:grid;grid-template-columns:minmax(310px,.72fr) minmax(0,1.7fr);gap:16px}.clues-card,.grid-card,.collector-card,.action-card{padding:20px}.story{color:var(--muted);line-height:1.55;margin:0 0 14px}.clue-list{margin:0;padding-left:1.5rem;display:grid;gap:10px;line-height:1.45}.clue-list li{padding:10px 12px;border:1px solid var(--line);background:var(--panel2);border-radius:12px;cursor:pointer}.clue-list li.used{opacity:.5;text-decoration:line-through}.difficulty-pill{border:1px solid var(--gold);color:var(--gold2);padding:7px 10px;border-radius:999px;font-size:.75rem;font-weight:800}.grid-help,.legend{font-size:.75rem;color:var(--muted)}.logic-grids{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pair-grid{border:1px solid var(--line);border-radius:16px;overflow:auto;background:var(--panel2)}.pair-title{padding:10px 12px;font-size:.74rem;font-weight:900;color:var(--gold2);border-bottom:1px solid var(--line);position:sticky;left:0}.logic-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:.75rem}.logic-table th,.logic-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:46px;height:46px;text-align:center}.logic-table th{background:color-mix(in srgb,var(--panel2) 92%,var(--gold) 8%);font-weight:800;position:sticky;top:0;z-index:2}.logic-table .rowhead{left:0;z-index:3;min-width:100px;max-width:130px;padding:0 8px;text-align:left}.logic-cell{font-weight:900;font-size:1.15rem;cursor:pointer;user-select:none}.logic-cell.pos{background:color-mix(in srgb,var(--ok) 25%,transparent);color:var(--ok)}.logic-cell.neg{background:color-mix(in srgb,var(--danger) 12%,transparent);color:color-mix(in srgb,var(--danger) 80%,white 20%)}.logic-cell.auto{opacity:.68}.collector-card{margin-top:16px}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:15px}#collectorTable{border-collapse:collapse;width:100%;min-width:620px}#collectorTable th,#collectorTable td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left}#collectorTable th{background:var(--panel2);color:var(--gold2);font-size:.78rem}#collectorTable td{font-weight:700}.unknown{color:var(--muted);font-weight:500!important}.action-card{margin-top:16px;display:flex;gap:10px;justify-content:center}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);background:#171717;color:white;border:1px solid #404040;border-radius:13px;padding:12px 16px;opacity:0;pointer-events:none;transition:.2s;z-index:100}.toast.show{opacity:1;transform:translate(-50%,0)}.modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:16px}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(8px)}.modal-card{position:relative;width:min(620px,100%);max-height:92vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:0 30px 100px rgba(0,0,0,.5);text-align:center}.modal-x{position:absolute;right:13px;top:13px;width:38px;height:38px;padding:0}.result-icon{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:color-mix(in srgb,var(--ok) 20%,transparent);border:1px solid var(--ok);color:var(--ok);font-size:1.8rem;font-weight:900}.modal-card h2{font-size:2rem;margin:5px 0 8px}.modal-card>p{color:var(--muted)}.result-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.result-stats div{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:12px}.result-stats span{display:block;font-size:.68rem;color:var(--muted);margin-bottom:4px}.result-stats strong{color:var(--gold2)}.share-panel{display:grid;gap:10px;margin:18px 0}.share-actions{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.micro{font-size:.74rem!important;margin:0!important}.lg-pos{color:var(--ok);font-weight:900}.lg-neg{color:var(--danger);font-weight:900}@media(max-width:1050px){.setup-grid{grid-template-columns:repeat(2,1fr)}.game-layout{grid-template-columns:1fr}.logic-grids{grid-template-columns:repeat(2,minmax(290px,1fr))}.grid-card{overflow:hidden}}@media(max-width:760px){.main{width:min(100% - 12px,1500px);margin-top:8px}.topbar{padding:10px 8px}.tagline{display:none}.top-actions .ghost-btn{display:none}.hero{padding:18px;align-items:flex-start}.hero-badge{min-width:126px;padding:10px}.hero p{font-size:.86rem}.setup{padding:16px}.setup-grid{grid-template-columns:1fr 1fr}.section-head{align-items:flex-start}.game-toolbar{top:62px;overflow-x:auto;padding:8px;gap:4px}.game-toolbar>*{flex:0 0 auto}.stat{display:none}.timer-wrap{padding:7px 9px}.tool-group{margin-left:0}.tool-btn{padding:9px 10px;font-size:.8rem}.game-toolbar #newPuzzleSmall{display:none}.clues-card,.grid-card,.collector-card,.action-card{padding:14px}.logic-grids{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:5px}.pair-grid{flex:0 0 min(94vw,520px);scroll-snap-align:start}.logic-table th,.logic-table td{min-width:52px;height:52px}.logic-table .rowhead{min-width:96px}.action-card{display:grid;grid-template-columns:1fr 1fr}.action-card .danger-btn{grid-column:1/-1}.result-stats{grid-template-columns:repeat(2,1fr)}.share-actions{grid-template-columns:1fr 1fr}.share-actions .gold-btn{grid-column:1/-1}}@media(max-width:480px){.setup-grid{grid-template-columns:1fr}.hero-badge{display:none}.hero h1{font-size:1.7rem}.logic-table th,.logic-table td{min-width:50px;height:50px;font-size:.72rem}}


/* ===== Klasszikus, rejtvényújság-szerű logikai keresztrács ===== */
.logic-grids{display:block;width:100%}
.classic-grid-scroll{width:100%;overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:18px;background:var(--panel2);overscroll-behavior:contain}
.classic-grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:920px;background:var(--panel2);table-layout:fixed}
.classic-grid th,.classic-grid td{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.classic-grid .cat-corner{width:150px;min-width:150px;background:color-mix(in srgb,var(--panel2) 86%,var(--gold) 14%);color:var(--gold2);letter-spacing:.14em;font-size:.72rem;text-align:center;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold)}
.classic-grid .top-cat{height:34px;background:color-mix(in srgb,var(--panel2) 86%,var(--gold) 14%);color:var(--gold2);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;border-bottom:2px solid var(--gold)}
.classic-grid .top-item{width:54px;min-width:54px;height:126px;padding:0;vertical-align:bottom;background:color-mix(in srgb,var(--panel2) 94%,var(--gold) 6%)}
.classic-grid .top-item span{display:inline-block;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;max-height:114px;padding:7px 0;font-size:.70rem;font-weight:800;color:var(--text)}
.classic-grid .side-cat{width:36px;min-width:36px;background:color-mix(in srgb,var(--panel2) 86%,var(--gold) 14%);color:var(--gold2);border-right:2px solid var(--gold)}
.classic-grid .side-cat span{display:inline-block;writing-mode:vertical-rl;transform:rotate(180deg);text-transform:uppercase;letter-spacing:.08em;font-size:.68rem}
.classic-grid .side-item{width:114px;min-width:114px;height:48px;padding:0 10px;text-align:left;background:var(--panel2);color:var(--text);font-size:.75rem;border-right:2px solid var(--gold)}
.classic-grid .classic-cell,.classic-grid .classic-empty{width:54px;min-width:54px;height:48px;text-align:center}
.classic-grid .classic-cell{cursor:pointer;user-select:none;font-size:1.12rem;font-weight:900;background:var(--panel)}
.classic-grid .classic-cell:hover{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--gold) 70%,transparent)}
.classic-grid .classic-cell.pos{background:color-mix(in srgb,var(--ok) 22%,var(--panel));color:var(--ok)}
.classic-grid .classic-cell.neg{background:color-mix(in srgb,var(--danger) 10%,var(--panel));color:color-mix(in srgb,var(--danger) 82%,white 18%)}
.classic-grid .classic-cell.auto{opacity:.68}
.classic-grid .classic-empty{background:color-mix(in srgb,var(--bg) 72%,var(--panel2) 28%);border-color:transparent}
.classic-grid .group-start{border-left:2px solid var(--gold)!important}
.classic-grid tbody tr:nth-child(4n+1)>*{border-top:2px solid var(--gold)}
body.light .classic-grid .classic-empty{background:#eee7d8}
@media(max-width:1050px){.classic-grid{min-width:880px}}
@media(max-width:760px){.classic-grid-scroll{border-radius:14px}.classic-grid{min-width:760px}.classic-grid .cat-corner{width:126px;min-width:126px}.classic-grid .side-cat{width:30px;min-width:30px}.classic-grid .side-item{width:96px;min-width:96px;height:46px;padding:0 7px;font-size:.70rem}.classic-grid .top-item,.classic-grid .classic-cell,.classic-grid .classic-empty{width:50px;min-width:50px}.classic-grid .top-item{height:116px}.classic-grid .classic-cell,.classic-grid .classic-empty{height:46px}.classic-grid .top-item span{max-height:106px;font-size:.66rem}}
@media(max-width:480px){.classic-grid{min-width:720px}.classic-grid .top-item,.classic-grid .classic-cell,.classic-grid .classic-empty{width:46px;min-width:46px}.classic-grid .side-item{width:94px;min-width:94px}}
.daily-note{margin-top:16px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--gold) 7%,var(--panel2));color:var(--muted);line-height:1.45;font-size:.84rem}.daily-note strong{color:var(--gold2)}


/* ===== Indítás előtti állapot ===== */
.prestart-panel{margin:16px 0;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:color-mix(in srgb,var(--gold) 55%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 8%,var(--panel)),var(--panel))}
.prestart-panel h2{margin:4px 0 5px}.prestart-panel p{margin:0;color:var(--muted);line-height:1.45;max-width:760px}.prestart-panel #beginBtn{min-width:150px}
#gameArea.prestart .story,#gameArea.prestart .clue-list{filter:blur(7px);opacity:.52;user-select:none;pointer-events:none;transition:filter .28s ease,opacity .28s ease}
#gameArea:not(.prestart) .story,#gameArea:not(.prestart) .clue-list{filter:none;opacity:1;transition:filter .28s ease,opacity .28s ease}
#gameArea.prestart .clues-card{position:relative;overflow:hidden}
#gameArea.prestart .clues-card:after{content:'Az állítások a játék indítása után jelennek meg';position:absolute;left:50%;top:56%;transform:translate(-50%,-50%);z-index:5;width:min(82%,430px);padding:12px 14px;text-align:center;border:1px solid color-mix(in srgb,var(--gold) 55%,var(--line));border-radius:13px;background:color-mix(in srgb,var(--panel) 92%,transparent);color:var(--gold2);font-size:.78rem;font-weight:800;letter-spacing:.03em;box-shadow:var(--shadow)}
.game-toolbar button:disabled,.action-card button:disabled{opacity:.4;cursor:not-allowed;transform:none!important}
@media(max-width:760px){.prestart-panel{align-items:stretch;flex-direction:column}.prestart-panel #beginBtn{width:100%}}


/* 4×4 / 5×5 / 6×6 rácsméret */
.classic-grid.size-5 .top-item,
.classic-grid.size-5 .classic-cell,
.classic-grid.size-5 .classic-empty{width:48px;min-width:48px}
.classic-grid.size-6 .top-item,
.classic-grid.size-6 .classic-cell,
.classic-grid.size-6 .classic-empty{width:43px;min-width:43px}
.classic-grid.size-6 .top-item span{font-size:.63rem}
@media(max-width:760px){
  .classic-grid.size-5{min-width:920px}
  .classic-grid.size-6{min-width:1040px}
  .classic-grid.size-5 .top-item,
  .classic-grid.size-5 .classic-cell,
  .classic-grid.size-5 .classic-empty,
  .classic-grid.size-6 .top-item,
  .classic-grid.size-6 .classic-cell,
  .classic-grid.size-6 .classic-empty{width:48px;min-width:48px}
}


/* v1.4 – valódi 4×4 / 5×5 / 6×6 klasszikus keresztrács */
.classic-grid.size-4{min-width:900px}
.classic-grid.size-5{min-width:1220px}
.classic-grid.size-6{min-width:1560px}
.classic-grid.size-5 .top-item,
.classic-grid.size-5 .classic-cell,
.classic-grid.size-5 .classic-empty{width:46px;min-width:46px}
.classic-grid.size-6 .top-item,
.classic-grid.size-6 .classic-cell,
.classic-grid.size-6 .classic-empty{width:42px;min-width:42px}
.classic-grid.size-5 .side-item,.classic-grid.size-6 .side-item{min-width:112px}
@media(max-width:1100px){
 .classic-grid.size-5{min-width:1180px}
 .classic-grid.size-6{min-width:1480px}
}
@media(max-width:760px){
 .classic-grid.size-4{min-width:760px}
 .classic-grid.size-5{min-width:1100px}
 .classic-grid.size-6{min-width:1420px}
}


/* v1.4.2 – erősebb függőleges főrács-határok
   Minden kategóriablokk bal ÉS jobb széle végig arany keretet kap,
   az üres háromszögben is. Így 5×5 és 6×6 esetén is jól követhetők
   a függőleges kategóriák. */
.classic-grid .group-start{
  border-left:2px solid var(--gold)!important;
}
.classic-grid .group-end{
  border-right:2px solid var(--gold)!important;
}
.classic-grid .classic-empty{
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.classic-grid .classic-empty.group-start{
  border-left:2px solid var(--gold)!important;
}
.classic-grid .classic-empty.group-end{
  border-right:2px solid var(--gold)!important;
}
.classic-grid .top-cat{
  border-left:2px solid var(--gold);
  border-right:2px solid var(--gold);
}


/* ===== v1.4.3 – pontos kategóriatagolás + teljes mátrix PC/iPad ===== */

/* A régi, 4 soronként automatikusan húzott vonal 5×5/6×6-nál hibás volt. */
.classic-grid tbody tr:nth-child(4n+1)>*{
  border-top:1px solid var(--line)!important;
}
/* Csak a valódi kategóriakezdet kapjon erős vízszintes fővonalat. */
.classic-grid tbody tr.row-group-start>*{
  border-top:2px solid var(--gold)!important;
}

/* PC-n és iPaden a feladvány szövege és a rács egymás alatt van,
   így a mátrix a teljes rendelkezésre álló szélességet megkapja. */
@media (min-width:761px){
  .game-layout{
    grid-template-columns:1fr!important;
  }
  .clues-card{
    max-width:none;
  }
  .grid-card{
    width:100%;
    overflow:visible!important;
  }
  .classic-grid-scroll{
    overflow:visible!important;
    width:100%;
  }

  /* A teljes klasszikus keresztrács egy képernyőszélességre zsugorodik.
     Nincs alsó vízszintes görgetősáv PC-n és iPaden. */
  .classic-grid,
  .classic-grid.size-4,
  .classic-grid.size-5,
  .classic-grid.size-6{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
  }

  .classic-grid .cat-corner{
    width:118px!important;
    min-width:118px!important;
  }
  .classic-grid .side-cat{
    width:30px!important;
    min-width:30px!important;
  }
  .classic-grid .side-item{
    width:88px!important;
    min-width:88px!important;
    padding:0 7px!important;
    font-size:.70rem!important;
  }

  .classic-grid .top-item,
  .classic-grid .classic-cell,
  .classic-grid .classic-empty,
  .classic-grid.size-4 .top-item,
  .classic-grid.size-4 .classic-cell,
  .classic-grid.size-4 .classic-empty,
  .classic-grid.size-5 .top-item,
  .classic-grid.size-5 .classic-cell,
  .classic-grid.size-5 .classic-empty,
  .classic-grid.size-6 .top-item,
  .classic-grid.size-6 .classic-cell,
  .classic-grid.size-6 .classic-empty{
    width:auto!important;
    min-width:0!important;
  }

  .classic-grid .top-item{
    height:112px!important;
  }
  .classic-grid .top-item span{
    max-height:104px!important;
    font-size:clamp(.54rem,.66vw,.70rem)!important;
  }
  .classic-grid .classic-cell,
  .classic-grid .classic-empty,
  .classic-grid .side-item{
    height:42px!important;
  }
  .classic-grid.size-6 .classic-cell,
  .classic-grid.size-6 .classic-empty,
  .classic-grid.size-6 .side-item{
    height:39px!important;
  }
}

/* iPad álló nézetben még kompaktabb legyen, de továbbra is egyben látszódjon. */
@media (min-width:761px) and (max-width:1100px){
  .main{
    width:calc(100% - 12px)!important;
  }
  .grid-card{
    padding:10px!important;
  }
  .classic-grid .cat-corner{
    width:98px!important;
    min-width:98px!important;
  }
  .classic-grid .side-cat{
    width:26px!important;
    min-width:26px!important;
  }
  .classic-grid .side-item{
    width:72px!important;
    min-width:72px!important;
    padding:0 5px!important;
    font-size:.62rem!important;
  }
  .classic-grid .top-item{
    height:102px!important;
  }
  .classic-grid .top-item span{
    max-height:96px!important;
    font-size:.56rem!important;
  }
  .classic-grid .classic-cell,
  .classic-grid .classic-empty,
  .classic-grid .side-item{
    height:37px!important;
  }
  .classic-grid.size-6 .classic-cell,
  .classic-grid.size-6 .classic-empty,
  .classic-grid.size-6 .side-item{
    height:34px!important;
  }
}

/* Mobilon marad a kényelmes, vízszintesen húzható nagy rács. */
@media (max-width:760px){
  .classic-grid-scroll{
    overflow-x:auto!important;
    overflow-y:visible!important;
  }
  .classic-grid.size-4{min-width:760px!important}
  .classic-grid.size-5{min-width:1100px!important}
  .classic-grid.size-6{min-width:1420px!important}
}


/* ===== v1.4.4 – külön görgethető állításablak a rács felett ===== */

/* PC + iPad: az állítások saját ablakban görgethetők,
   ezért a teljes oldal és a rács nem mozdul el olvasás közben. */
@media (min-width:761px){
  .clues-card{
    height:250px;
    min-height:250px;
    max-height:250px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }

  .clues-card .section-head{
    flex:0 0 auto;
    margin-bottom:8px;
  }

  .clues-card .story{
    flex:0 0 auto;
    margin:0 0 8px;
    line-height:1.35;
    font-size:.88rem;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .clues-card .clue-list{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    padding-right:8px;
    padding-bottom:4px;
    scroll-behavior:smooth;
    overscroll-behavior:contain;
  }

  .clues-card .clue-list li{
    padding:8px 10px;
    margin-right:2px;
    line-height:1.35;
    font-size:.86rem;
  }

  /* Vékony, PhotoLand stílusú saját görgetősáv */
  .clues-card .clue-list{
    scrollbar-width:thin;
    scrollbar-color:var(--gold) var(--panel2);
  }
  .clues-card .clue-list::-webkit-scrollbar{
    width:8px;
  }
  .clues-card .clue-list::-webkit-scrollbar-track{
    background:var(--panel2);
    border-radius:10px;
  }
  .clues-card .clue-list::-webkit-scrollbar-thumb{
    background:var(--gold);
    border-radius:10px;
  }

  /* A rács közvetlenül az állításablak alatt marad. */
  .game-layout{
    gap:10px!important;
  }
  .grid-card{
    margin-top:0;
  }
}

/* iPad álló nézetben még kisebb állításablak, hogy több rács látszódjon. */
@media (min-width:761px) and (max-width:1100px){
  .clues-card{
    height:220px;
    min-height:220px;
    max-height:220px;
    padding:12px!important;
  }
  .clues-card .story{
    font-size:.78rem;
  }
  .clues-card .clue-list li{
    font-size:.78rem;
    padding:7px 9px;
  }
}

/* Mobilon marad a természetesebb, külön görgethető lista,
   de nem kényszerítjük fix magasságra. */
@media (max-width:760px){
  .clues-card .clue-list{
    max-height:260px;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding-right:6px;
  }
}


/* ===== v1.4.5 – iPad feliratkezelés ===== */

/* A felső, függőlegesen írt elemek ne lógjanak ki a cellából. */
.classic-grid .top-item{
  overflow:hidden;
  position:relative;
}
.classic-grid .top-item span{
  display:block;
  box-sizing:border-box;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  line-height:1;
}

/* Hosszú szövegnél kisebb betű és szűkebb cella iPaden. */
@media (min-width:761px) and (max-width:1100px){
  .classic-grid .top-item{
    height:116px!important;
    padding:0 1px!important;
  }
  .classic-grid .top-item span{
    max-height:108px!important;
    font-size:.50rem!important;
    letter-spacing:-.01em!important;
    padding:4px 0!important;
  }

  /* A bal oldali sorfeliratok törhetnek két sorba, de a cellán belül maradnak. */
  .classic-grid .side-item{
    white-space:normal!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    line-height:1.08!important;
    word-break:break-word!important;
    overflow-wrap:anywhere!important;
    vertical-align:middle!important;
  }

  /* A kategóriafeliratok is maradjanak a saját függőleges sávjukban. */
  .classic-grid .side-cat{
    overflow:hidden!important;
  }
  .classic-grid .side-cat span{
    max-height:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:.58rem!important;
  }
}

/* 6×6 iPaden különösen tömör legyen. */
@media (min-width:761px) and (max-width:1100px){
  .classic-grid.size-6 .top-item span{
    font-size:.46rem!important;
  }
  .classic-grid.size-6 .side-item{
    font-size:.56rem!important;
  }
}


/* ===== v1.4.9 – klasszikus logikai lépcsős rács =====
   A nem használható mátrixrészek nem kapnak cellahálót vagy főkeretet.
   Csak a ténylegesen jelölhető blokkok látszanak, mint a klasszikus
   papír alapú logikai rejtvényeknél. */
.classic-grid .classic-empty{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  pointer-events:none!important;
}
.classic-grid .classic-empty.group-start,
.classic-grid .classic-empty.group-end{
  border:0!important;
}

/* A tényleges játékblokkok kerete marad hangsúlyos. */
.classic-grid .classic-cell.group-start{
  border-left:2px solid var(--gold)!important;
}
.classic-grid .classic-cell.group-end{
  border-right:2px solid var(--gold)!important;
}
.classic-grid tbody tr.row-group-start .classic-cell{
  border-top:2px solid var(--gold)!important;
}

/* Az üres lépcsős terület ne kapjon külön háttérlapot. */
.classic-grid{
  background:transparent!important;
}


/* ===== v1.4.11 – klasszikus arany keretes, négyzetes mátrix ===== */

/* A nem használható részek teljesen láthatatlanok maradnak. */
.classic-grid .classic-empty,
.classic-grid .classic-empty.group-start,
.classic-grid .classic-empty.group-end{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  pointer-events:none!important;
}

/* A tényleges mátrixblokkok szélei arany főkeretet kapnak. */
.classic-grid .classic-cell.group-start{
  border-left:2px solid var(--gold)!important;
}
.classic-grid .classic-cell.group-end{
  border-right:2px solid var(--gold)!important;
}
.classic-grid tbody tr.row-group-start .classic-cell{
  border-top:2px solid var(--gold)!important;
}
.classic-grid tbody tr.row-group-end .classic-cell{
  border-bottom:2px solid var(--gold)!important;
}

/* A bal oldali blokkcímkék is ugyanahhoz az arany kerethez igazodnak. */
.classic-grid tbody tr.row-group-start .side-cat,
.classic-grid tbody tr.row-group-start .side-item{
  border-top:2px solid var(--gold)!important;
}
.classic-grid tbody tr.row-group-end .side-item{
  border-bottom:2px solid var(--gold)!important;
}

/* Felső kategóriák: jól látható arany blokkhatárok. */
.classic-grid .top-cat{
  border-top:2px solid var(--gold)!important;
  border-left:2px solid var(--gold)!important;
  border-right:2px solid var(--gold)!important;
  border-bottom:2px solid var(--gold)!important;
}
.classic-grid .top-item.group-start{
  border-left:2px solid var(--gold)!important;
}
.classic-grid .top-item.group-end{
  border-right:2px solid var(--gold)!important;
}
.classic-grid thead tr:last-child .top-item{
  border-bottom:2px solid var(--gold)!important;
}

/* NÉGYZETES CELLA minden kiosztásban. */
.classic-grid.size-4{--cell:52px}
.classic-grid.size-5{--cell:44px}
.classic-grid.size-6{--cell:38px}

.classic-grid .classic-cell{
  width:var(--cell)!important;
  min-width:var(--cell)!important;
  max-width:var(--cell)!important;
  height:var(--cell)!important;
  min-height:var(--cell)!important;
  max-height:var(--cell)!important;
  padding:0!important;
  box-sizing:border-box!important;
}

.classic-grid .top-item{
  width:var(--cell)!important;
  min-width:var(--cell)!important;
  max-width:var(--cell)!important;
}

/* A sorfelirat magassága kövesse a négyzetes mátrixsort. */
.classic-grid .side-item{
  height:var(--cell)!important;
  min-height:var(--cell)!important;
  max-height:var(--cell)!important;
  box-sizing:border-box!important;
}

/* PC/iPad: ne nyújtsa szét a táblázat a négyzeteket. */
@media (min-width:761px){
  .classic-grid,
  .classic-grid.size-4,
  .classic-grid.size-5,
  .classic-grid.size-6{
    width:max-content!important;
    min-width:0!important;
    table-layout:fixed!important;
    margin:0 auto!important;
  }
  .classic-grid-scroll{
    overflow:visible!important;
    display:flex!important;
    justify-content:center!important;
  }
}

/* iPad álló nézet: kisebb, de továbbra is szabályos négyzetek. */
@media (min-width:761px) and (max-width:1100px){
  .classic-grid.size-4{--cell:44px}
  .classic-grid.size-5{--cell:36px}
  .classic-grid.size-6{--cell:30px}
}

/* Mobilon marad a görgethető nézet, de ott is négyzetesek a cellák. */
@media (max-width:760px){
  .classic-grid.size-4{--cell:50px}
  .classic-grid.size-5{--cell:48px}
  .classic-grid.size-6{--cell:46px}
  .classic-grid-scroll{
    overflow-x:auto!important;
    justify-content:flex-start!important;
  }
  .classic-grid,
  .classic-grid.size-4,
  .classic-grid.size-5,
  .classic-grid.size-6{
    width:max-content!important;
    min-width:max-content!important;
  }
}


/* ===== v1.4.12 – PC/iPad mátrix végleges reszponzív méretezése ===== */

/* PC + iPad: a teljes klasszikus rács töltse ki a rendelkezésre álló szélességet,
   ne zsugorodjon össze középre. */
@media (min-width:761px){

  .grid-card{
    width:100%!important;
    overflow:hidden!important;
  }

  .classic-grid-scroll{
    width:100%!important;
    overflow:hidden!important;
    display:block!important;
  }

  .classic-grid,
  .classic-grid.size-4,
  .classic-grid.size-5,
  .classic-grid.size-6{
    width:100%!important;
    min-width:100%!important;
    max-width:100%!important;
    margin:0!important;
    table-layout:fixed!important;
  }

  /* Fix bal oldali címkesáv; a fennmaradó helyen egyenletesen oszlanak el a négyzetek. */
  .classic-grid .cat-corner{
    width:132px!important;
    min-width:132px!important;
    max-width:132px!important;
  }

  .classic-grid .side-cat{
    width:36px!important;
    min-width:36px!important;
    max-width:36px!important;
  }

  .classic-grid .side-item{
    width:96px!important;
    min-width:96px!important;
    max-width:96px!important;
    padding:0 8px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:normal!important;
    line-height:1.08!important;
  }

  /* A tényleges cellaméretet a kiosztás szerint számoljuk.
     A 132 px-es bal sáv után a teljes hasznos szélesség felosztódik
     12 / 20 / 30 oszlopra. */
  .classic-grid.size-4{--pc-cell:calc((100% - 132px) / 12)}
  .classic-grid.size-5{--pc-cell:calc((100% - 132px) / 20)}
  .classic-grid.size-6{--pc-cell:calc((100% - 132px) / 30)}

  .classic-grid .classic-cell{
    width:var(--pc-cell)!important;
    min-width:var(--pc-cell)!important;
    max-width:var(--pc-cell)!important;
    height:var(--pc-cell)!important;
    min-height:var(--pc-cell)!important;
    max-height:var(--pc-cell)!important;
    padding:0!important;
    box-sizing:border-box!important;
  }

  .classic-grid .top-item{
    width:var(--pc-cell)!important;
    min-width:var(--pc-cell)!important;
    max-width:var(--pc-cell)!important;
    box-sizing:border-box!important;
  }

  .classic-grid .side-item{
    height:var(--pc-cell)!important;
    min-height:var(--pc-cell)!important;
    max-height:var(--pc-cell)!important;
  }

  /* A felső függőleges feliratok kapjanak elég magasságot, de ne nőjön túl a rács. */
  .classic-grid .top-item{
    height:112px!important;
    min-height:112px!important;
    max-height:112px!important;
    overflow:hidden!important;
  }

  .classic-grid .top-item span{
    max-height:104px!important;
    font-size:clamp(.48rem,.72vw,.72rem)!important;
    line-height:1!important;
    overflow:hidden!important;
  }

  /* A fő kategóriakeretek maradjanak aranyszínűek és jól láthatók. */
  .classic-grid .classic-cell.group-start{
    border-left:2px solid var(--gold)!important;
  }
  .classic-grid .classic-cell.group-end{
    border-right:2px solid var(--gold)!important;
  }
  .classic-grid tbody tr.row-group-start .classic-cell{
    border-top:2px solid var(--gold)!important;
  }
  .classic-grid tbody tr.row-group-end .classic-cell{
    border-bottom:2px solid var(--gold)!important;
  }

  /* A nem működő terület ne vegyen fel rácsot. */
  .classic-grid .classic-empty{
    border:0!important;
    background:transparent!important;
  }
}

/* iPad álló és kisebb tablet: ugyanaz az elv, kisebb bal címkesávval. */
@media (min-width:761px) and (max-width:1100px){

  .main{
    width:calc(100% - 10px)!important;
  }

  .grid-card{
    padding:10px!important;
  }

  .classic-grid .cat-corner{
    width:106px!important;
    min-width:106px!important;
    max-width:106px!important;
  }

  .classic-grid .side-cat{
    width:30px!important;
    min-width:30px!important;
    max-width:30px!important;
  }

  .classic-grid .side-item{
    width:76px!important;
    min-width:76px!important;
    max-width:76px!important;
    padding:0 5px!important;
    font-size:.60rem!important;
  }

  .classic-grid.size-4{--pc-cell:calc((100% - 106px) / 12)}
  .classic-grid.size-5{--pc-cell:calc((100% - 106px) / 20)}
  .classic-grid.size-6{--pc-cell:calc((100% - 106px) / 30)}

  .classic-grid .top-item{
    height:104px!important;
    min-height:104px!important;
    max-height:104px!important;
  }

  .classic-grid .top-item span{
    max-height:96px!important;
    font-size:clamp(.42rem,.70vw,.58rem)!important;
  }

  .classic-grid.size-6 .side-item{
    font-size:.54rem!important;
  }
}

/* Mobil: itt marad a már működő, vízszintesen görgethető elrendezés. */
@media (max-width:760px){
  .classic-grid-scroll{
    overflow-x:auto!important;
    display:block!important;
  }

  .classic-grid,
  .classic-grid.size-4,
  .classic-grid.size-5,
  .classic-grid.size-6{
    width:max-content!important;
    min-width:max-content!important;
    max-width:none!important;
    table-layout:fixed!important;
  }

  .classic-grid.size-4{--cell:50px}
  .classic-grid.size-5{--cell:48px}
  .classic-grid.size-6{--cell:46px}

  .classic-grid .classic-cell{
    width:var(--cell)!important;
    min-width:var(--cell)!important;
    max-width:var(--cell)!important;
    height:var(--cell)!important;
    min-height:var(--cell)!important;
    max-height:var(--cell)!important;
  }

  .classic-grid .top-item{
    width:var(--cell)!important;
    min-width:var(--cell)!important;
    max-width:var(--cell)!important;
  }

  .classic-grid .side-item{
    height:var(--cell)!important;
    min-height:var(--cell)!important;
    max-height:var(--cell)!important;
  }
}


/* ===== v1.4.13 – biztos jelölések ütközésének jelzése ===== */
.classic-grid .classic-cell.conflict{
  position:relative;
  outline:3px solid #ff5d5d!important;
  outline-offset:-3px;
  background:rgba(255,93,93,.18)!important;
  color:#ff8a8a!important;
  animation:logicConflictPulse 1.25s ease-in-out infinite;
}
.classic-grid .classic-cell.conflict::after{
  content:"!";
  position:absolute;
  right:3px;
  top:1px;
  font-size:.68rem;
  line-height:1;
  font-weight:900;
  color:#ff7474;
}
@keyframes logicConflictPulse{
  0%,100%{box-shadow:inset 0 0 0 0 rgba(255,93,93,.15)}
  50%{box-shadow:inset 0 0 0 4px rgba(255,93,93,.18)}
}


/* ===== v1.4.15 – 4×4 / 5×5 PC+iPad mátrix korrekció =====
   A 6×6 formázás változatlan marad. */

/* PC és iPad: 4×4 / 5×5 ne nyúljon szét teljes szélességre.
   Fix, arányos négyzetcellákkal középre rendezve jelenjen meg. */
@media (min-width:761px){

  .classic-grid-scroll:has(.classic-grid.size-4),
  .classic-grid-scroll:has(.classic-grid.size-5){
    overflow:visible!important;
    display:flex!important;
    justify-content:center!important;
    width:100%!important;
  }

  .classic-grid.size-4,
  .classic-grid.size-5{
    width:max-content!important;
    min-width:0!important;
    max-width:none!important;
    table-layout:fixed!important;
    margin:0 auto!important;
  }

  /* 4×4 – kényelmes, nagyobb négyzetek */
  .classic-grid.size-4{
    --fixed-cell:62px;
  }

  /* 5×5 – valamivel kisebb, de még jól olvasható */
  .classic-grid.size-5{
    --fixed-cell:50px;
  }

  .classic-grid.size-4 .classic-cell,
  .classic-grid.size-5 .classic-cell{
    width:var(--fixed-cell)!important;
    min-width:var(--fixed-cell)!important;
    max-width:var(--fixed-cell)!important;
    height:var(--fixed-cell)!important;
    min-height:var(--fixed-cell)!important;
    max-height:var(--fixed-cell)!important;
    padding:0!important;
    box-sizing:border-box!important;
  }

  .classic-grid.size-4 .top-item,
  .classic-grid.size-5 .top-item{
    width:var(--fixed-cell)!important;
    min-width:var(--fixed-cell)!important;
    max-width:var(--fixed-cell)!important;
  }

  .classic-grid.size-4 .side-item,
  .classic-grid.size-5 .side-item{
    height:var(--fixed-cell)!important;
    min-height:var(--fixed-cell)!important;
    max-height:var(--fixed-cell)!important;
  }

  .classic-grid.size-4 .cat-corner,
  .classic-grid.size-5 .cat-corner{
    width:132px!important;
    min-width:132px!important;
    max-width:132px!important;
  }

  .classic-grid.size-4 .side-cat,
  .classic-grid.size-5 .side-cat{
    width:36px!important;
    min-width:36px!important;
    max-width:36px!important;
  }

  .classic-grid.size-4 .side-item,
  .classic-grid.size-5 .side-item{
    width:96px!important;
    min-width:96px!important;
    max-width:96px!important;
    font-size:.72rem!important;
    padding:0 8px!important;
  }

  .classic-grid.size-4 .top-item,
  .classic-grid.size-5 .top-item{
    height:112px!important;
    min-height:112px!important;
    max-height:112px!important;
  }

  .classic-grid.size-4 .top-item span,
  .classic-grid.size-5 .top-item span{
    max-height:104px!important;
    font-size:.68rem!important;
  }
}

/* iPad álló / kisebb tablet */
@media (min-width:761px) and (max-width:1100px){

  .classic-grid.size-4{
    --fixed-cell:52px;
  }

  .classic-grid.size-5{
    --fixed-cell:42px;
  }

  .classic-grid.size-4 .cat-corner,
  .classic-grid.size-5 .cat-corner{
    width:108px!important;
    min-width:108px!important;
    max-width:108px!important;
  }

  .classic-grid.size-4 .side-cat,
  .classic-grid.size-5 .side-cat{
    width:30px!important;
    min-width:30px!important;
    max-width:30px!important;
  }

  .classic-grid.size-4 .side-item,
  .classic-grid.size-5 .side-item{
    width:78px!important;
    min-width:78px!important;
    max-width:78px!important;
    padding:0 5px!important;
    font-size:.60rem!important;
  }

  .classic-grid.size-4 .top-item,
  .classic-grid.size-5 .top-item{
    height:104px!important;
    min-height:104px!important;
    max-height:104px!important;
  }

  .classic-grid.size-4 .top-item span,
  .classic-grid.size-5 .top-item span{
    max-height:96px!important;
    font-size:.56rem!important;
  }
}

/* Mobil: a korábbi működő görgetős szabály maradjon. */
@media (max-width:760px){
  .classic-grid-scroll:has(.classic-grid.size-4),
  .classic-grid-scroll:has(.classic-grid.size-5){
    display:block!important;
    overflow-x:auto!important;
    justify-content:flex-start!important;
  }
}
