*{box-sizing:border-box}:root{--bg:#eef2f3;--card:#fff;--ink:#17242e;--muted:#6d7d88;--line:#dce4e8;--table:#286b4a;--table2:#1f593d;--red:#b8343b;--black:#1f252b;--blue:#315f8d}html,body{margin:0;background:var(--bg);font-family:Arial,Helvetica,sans-serif;color:var(--ink)}button{font:inherit}.durak-app{max-width:1180px;margin:0 auto;padding:18px;position:relative}.topbar{display:flex;justify-content:space-between;align-items:end;gap:18px}.eyebrow{font-size:10px;font-weight:900;letter-spacing:.13em;color:#71808b}h1{font-size:30px;margin:4px 0}.topbar p{margin:0;color:var(--muted);font-size:13px}.deck-info{display:flex;gap:7px}.deck-info>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 12px;min-width:90px}.deck-info span{display:block;font-size:9px;color:var(--muted);font-weight:900}.deck-info b{font-size:19px}.ai-zone,.player-zone,.discard-zone,.logic-help{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;margin-top:14px}.zone-head,.discard-head,.table-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.zone-label{display:block;font-size:9px;color:#73838e;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.zone-head b,.discard-head b{font-size:14px}.zone-head small{color:#84919a;font-size:10px}.status{font-size:10px;font-weight:900;background:#eef3f5;padding:7px 10px;border-radius:999px;color:#627581}.ai-hand,.player-hand{display:flex;justify-content:center;align-items:flex-end;min-height:118px;padding-top:10px;overflow-x:auto}.ai-hand .playing-card,.player-hand .playing-card{margin-left:-28px}.ai-hand .playing-card:first-child,.player-hand .playing-card:first-child{margin-left:0}.table{margin-top:14px;border-radius:20px;padding:16px;background:radial-gradient(circle at center,var(--table),var(--table2));color:#fff;box-shadow:inset 0 0 0 3px #ffffff12;min-height:330px}.table-head>div:first-child span{display:block;font-size:9px;text-transform:uppercase;opacity:.7;font-weight:900}.table-head>div:first-child b{font-size:14px}.trump-card-box{display:flex;align-items:center;gap:7px}.trump-card-box small{font-size:9px;opacity:.7}.battlefield{min-height:205px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:14px 0}.empty-table{opacity:.42;font-size:12px}.battle-pair{position:relative;width:105px;height:145px}.battle-pair .attack{position:absolute;left:0;top:0}.battle-pair .defense{position:absolute;left:25px;top:30px;transform:rotate(8deg)}.table-actions{display:flex;justify-content:center;gap:8px}.table-actions button{min-height:42px;border:0;border-radius:10px;padding:0 17px;font-weight:900;cursor:pointer;background:#edf3f0;color:#285941}.table-actions .danger{background:#f4dadc;color:#8f2e34}.message{margin-top:12px;background:#ffffff15;border:1px solid #ffffff20;border-radius:10px;padding:9px 11px;font-size:11px;line-height:1.4}.playing-card{position:relative;flex:0 0 76px;width:76px;height:108px;border-radius:9px;background:#fff;border:1px solid #cfd7db;color:#1d2931;box-shadow:0 4px 10px #0002;padding:6px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .12s,box-shadow .12s;user-select:none}.playing-card.red{color:var(--red)}.playing-card.black{color:var(--black)}button.playing-card{cursor:pointer}button.playing-card:hover{transform:translateY(-8px);box-shadow:0 9px 16px #0003}.card-top{font-weight:950;font-size:16px;line-height:1}.card-suit{font-size:29px;text-align:center}.card-bottom{font-weight:900;font-size:11px;text-align:right}.card-back{background:repeating-linear-gradient(45deg,#315f8d,#315f8d 5px,#d9e6ef 5px,#d9e6ef 9px);border:5px solid #fff;box-shadow:0 4px 10px #0003}.card-back:after{content:'';position:absolute;inset:9px;border:2px solid #fff8;border-radius:5px}.mini-card{transform:scale(.62);transform-origin:center;width:76px;height:108px;margin:-19px}.sort-buttons{display:flex;gap:5px}.sort-buttons button{min-height:36px;border:1px solid var(--line);background:#f5f7f8;border-radius:9px;padding:0 10px;font-size:10px;font-weight:900;color:#657681;cursor:pointer}.sort-buttons button.active{background:var(--blue);color:#fff;border-color:var(--blue)}.discard-pile{display:flex;flex-wrap:wrap;gap:4px;min-height:82px;padding-top:10px}.discard-empty{font-size:11px;color:#85929b;padding:10px}.logic-help h2{font-size:17px;margin:0 0 9px}.logic-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.logic-grid div{background:#f5f7f8;border-radius:9px;padding:8px;text-align:center}.logic-grid b{font-size:17px;display:block}.logic-grid span{font-size:9px;color:#6d7e89}.logic-help p{font-size:10px;color:#7b8993;margin:9px 0 0}.overlay{position:absolute;inset:0;z-index:50;background:#13283a9e;display:flex;align-items:center;justify-content:center;padding:20px}.overlay[hidden]{display:none}.deduction-card{width:min(920px,100%);background:#fff;border-radius:18px;padding:18px;box-shadow:0 22px 70px #0004}.deduction-head{display:flex;justify-content:space-between;gap:15px}.deduction-head h2{margin:4px 0}.deduction-head p{margin:0;color:#6d7d88;font-size:11px;max-width:620px}.selected-counter{background:#f2f5f7;border-radius:10px;padding:8px 11px;text-align:right}.selected-counter span{display:block;font-size:8px;color:#778690}.selected-counter b{font-size:18px}.deduction-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:5px;margin-top:14px}.deduce-card{min-height:54px;border:1px solid #dbe3e7;background:#fff;border-radius:8px;font-weight:900;cursor:pointer}.deduce-card.red{color:var(--red)}.deduce-card.black{color:var(--black)}.deduce-card.selected{outline:3px solid #d8a942;background:#fff8dc}.deduce-card.known-player{opacity:.26;text-decoration:line-through}.deduce-card.known-discard{opacity:.18;text-decoration:line-through}.deduction-message{margin-top:11px;padding:9px 10px;background:#f2f6f8;border-radius:9px;font-size:10px;color:#607480}.deduction-message.error{background:#f9e7e8;color:#93383e}.deduction-message.ok{background:#e1f3eb;color:#267256}.deduction-actions{display:flex;justify-content:flex-end;margin-top:10px}.deduction-actions button,.finish-card button{min-height:44px;border:0;border-radius:10px;background:var(--blue);color:#fff;font-weight:900;padding:0 18px;cursor:pointer}.finish-card{width:min(380px,100%);background:#fff;border-radius:18px;padding:24px;text-align:center}.finish-icon{font-size:55px}.finish-card h2{margin:6px 0}.finish-card p{color:#6c7d88}@media(max-width:700px){.durak-app{padding:10px}.topbar{align-items:center}.topbar h1{font-size:24px}.topbar p{font-size:11px}.deck-info{display:block}.deck-info>div{margin-top:5px}.playing-card{flex-basis:66px;width:66px;height:94px}.ai-hand,.player-hand{justify-content:flex-start}.battle-pair{width:90px;height:130px}.battle-pair .defense{left:20px;top:25px}.logic-grid{grid-template-columns:repeat(3,1fr)}.deduction-grid{grid-template-columns:repeat(6,1fr)}}@media(max-width:430px){.deduction-grid{grid-template-columns:repeat(4,1fr)}.sort-buttons{display:grid;grid-template-columns:1fr 1fr}.discard-head{align-items:flex-end}}

/* ===== MOBILE UX FIX v2 ===== */

/* Кнопки действий удобнее для пальца */
.table-actions button,
.sort-buttons button,
.deduction-actions button,
.finish-card button {
  min-height: 48px;
}

/* Окна логического этапа всегда помещаются в мобильный экран */
.overlay {
  position: fixed;
  overflow-y: auto;
  align-items: flex-start;
}
.deduction-card,
.finish-card {
  margin: 10px auto;
}
.deduction-card {
  max-height: calc(100svh - 20px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

@media (hover:hover) and (pointer:fine) {
  button.playing-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 9px 16px #0003;
  }
}

@media (max-width:700px) {
  html, body {
    overflow-x: hidden;
  }

  .durak-app {
    padding: 8px;
  }

  .topbar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    align-items: stretch;
  }

  .topbar h1 {
    font-size: 23px;
    line-height: 1.08;
  }

  .topbar p {
    font-size: 11px;
    line-height: 1.4;
  }

  .deck-info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
  }

  .deck-info>div {
    margin: 0;
    min-width: 0;
    padding: 8px 10px;
  }

  .ai-zone,
  .player-zone,
  .discard-zone,
  .logic-help {
    padding: 10px;
    margin-top: 9px;
    border-radius: 13px;
  }

  /* На телефоне рука не сжимается в кашу:
     карты чуть крупнее и перекрываются слабее */
  .ai-hand,
  .player-hand {
    justify-content: flex-start;
    min-height: 116px;
    padding: 10px 4px 8px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }

  .ai-hand .playing-card,
  .player-hand .playing-card {
    margin-left: -14px;
    scroll-snap-align: start;
  }

  .ai-hand .playing-card:first-child,
  .player-hand .playing-card:first-child {
    margin-left: 0;
  }

  .playing-card {
    flex: 0 0 72px;
    width: 72px;
    height: 102px;
    padding: 6px;
    border-radius: 9px;
  }

  button.playing-card {
    min-width: 72px;
    min-height: 102px;
    touch-action: manipulation;
  }

  button.playing-card:active {
    transform: translateY(-4px);
  }

  .card-top {
    font-size: 16px;
  }

  .card-suit {
    font-size: 28px;
  }

  .table {
    margin-top: 9px;
    padding: 11px;
    min-height: 300px;
    border-radius: 15px;
  }

  .table-head {
    align-items: flex-start;
  }

  .trump-card-box small {
    display: none;
  }

  .battlefield {
    min-height: 178px;
    gap: 4px;
    padding: 10px 0;
  }

  .battle-pair {
    width: 78px;
    height: 118px;
  }

  .battle-pair .playing-card {
    width: 66px;
    height: 94px;
    flex-basis: 66px;
  }

  .battle-pair .defense {
    left: 14px;
    top: 20px;
  }

  .table-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
  }

  .table-actions button {
    width: 100%;
    min-height: 50px;
    padding: 0 10px;
    font-size: 14px;
  }

  .message {
    font-size: 12px;
    padding: 10px;
  }

  .discard-head {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .sort-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    margin-top: 7px;
  }

  .sort-buttons button {
    min-height: 46px;
    font-size: 11px;
  }

  /* Вышедшие карты остаются постоянно видимыми,
     но занимают меньше места, чем карты в руке */
  .discard-pile {
    gap: 2px;
    padding-top: 8px;
    align-items: flex-start;
  }

  .discard-pile .mini-card {
    transform: none;
    width: 46px;
    height: 66px;
    flex: 0 0 46px;
    margin: 0;
    padding: 4px;
    border-radius: 6px;
  }

  .discard-pile .mini-card .card-top {
    font-size: 10px;
  }

  .discard-pile .mini-card .card-suit {
    font-size: 17px;
  }

  .discard-pile .mini-card .card-bottom {
    font-size: 8px;
  }

  .logic-help {
    overflow: hidden;
  }

  .logic-help h2 {
    font-size: 15px;
  }

  .logic-grid {
    grid-template-columns: repeat(3,1fr);
    gap: 4px;
  }

  .logic-grid div {
    padding: 7px 4px;
  }

  .deduction-card {
    width: 100%;
    padding: 12px;
    border-radius: 14px;
  }

  .deduction-head {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .selected-counter {
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .selected-counter span {
    font-size: 10px;
  }

  .deduction-grid {
    grid-template-columns: repeat(6,1fr);
    gap: 5px;
  }

  .deduce-card {
    min-height: 50px;
    font-size: 14px;
    touch-action: manipulation;
  }

  .deduction-actions {
    position: sticky;
    bottom: 0;
    background: #fff;
    padding-top: 8px;
  }

  .deduction-actions button {
    width: 100%;
    min-height: 50px;
    font-size: 14px;
  }
}

@media (max-width:430px) {
  .playing-card {
    flex-basis: 70px;
    width: 70px;
    height: 100px;
  }

  .ai-hand .playing-card,
  .player-hand .playing-card {
    margin-left: -12px;
  }

  .deduction-grid {
    grid-template-columns: repeat(4,1fr);
  }

  .deduce-card {
    min-height: 52px;
    font-size: 15px;
  }

  .discard-pile .mini-card {
    width: 44px;
    height: 64px;
    flex-basis: 44px;
  }
}
