:root{
  --bg:#eef3f8;
  --panel:#ffffff;
  --panel-soft:#f7fafc;
  --text:#1f2937;
  --muted:#5b6472;
  --line:#d7e0ea;
  --primary:#2f6fa3;
  --primary-soft:#dbeaf7;
  --accent:#f59e0b;
  --accent-soft:#fff4d6;
  --success:#dff5e8;
  --danger:#fde4e4;
  --shadow:0 8px 24px rgba(20, 35, 60, 0.08);
  --radius:14px;
  --radius-sm:10px;
  --home-rank-column:clamp(340px,34vw,380px);
}
html,body{margin:0;padding:0}
body{
  font-family: Arial, Helvetica, sans-serif;
  font-size:14px;
  line-height:1.35;
  color:var(--text);
  background:linear-gradient(180deg,#f6f9fc 0%,#eef3f8 100%);
  padding:18px;
}
a{color:#1f5d90;text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto}

.app-shell{max-width:1280px;margin:0 auto}
.app-header{
  max-width:1280px;
  margin:0 auto 18px auto;
  background:rgba(255,255,255,.88);
  backdrop-filter: blur(6px);
  border:1px solid var(--line);
  border-radius:15px;
  box-shadow:var(--shadow);
  padding:12px 18px 14px;
}
.app-header__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.app-title{font-size:22px;font-weight:700;letter-spacing:.2px;color:#1c3552;margin:0}
.app-subtitle{font-size:12px;color:var(--muted);margin:0}
.app-nav{display:flex;flex-wrap:wrap;gap:8px}
.app-nav a{
  display:inline-flex;align-items:center;justify-content:center;
  padding:7px 12px;border-radius:999px;border:1px solid #cddaea;
  background:#f8fbfe;color:#254e76;font-weight:600;font-size:13px;
}
.app-nav a:hover{background:#eef5fb;text-decoration:none}

center{display:block}
body > center:first-of-type{margin-bottom:14px}

hr{border:0;border-top:1px solid var(--line);margin:16px 0}

/* generic legacy tables */
table{
  border-collapse:separate !important;
  border-spacing:0;
  margin:10px auto;
}
table[bgcolor="#000000"],
table[bgcolor="#000"],
table[bgcolor="black"],
table[bgcolor="Black"],
table[bgcolor="BLACK"]{
  background:var(--panel) !important;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
}
table tr:first-child td:first-child{border-top-left-radius:var(--radius)}
table tr:first-child td:last-child{border-top-right-radius:var(--radius)}
table tr:last-child td:first-child{border-bottom-left-radius:var(--radius)}
table tr:last-child td:last-child{border-bottom-right-radius:var(--radius)}

td,th{
  padding:8px 10px;
  border-bottom:1px solid #e8eef5;
  vertical-align:middle;
}
tr:last-child > td{border-bottom:none}

td[bgcolor="#6699CC"], tr[bgcolor="#6699CC"] > td,
th{
  background:
    linear-gradient(180deg, rgba(7,14,32,.52) 0%, rgba(7,14,32,.36) 100%),
    url('../../images/header_bubble_bg.png') center center / cover no-repeat !important;
  color:#f8fbff !important;
  font-weight:800;
  letter-spacing:.2px;
  text-shadow:0 1px 8px rgba(0,0,0,.55);
  border-bottom:1px solid rgba(255,255,255,.10);
}
td[bgcolor="#99CCFF"], tr[bgcolor="#99CCFF"] > td{
  background:
    linear-gradient(180deg, rgba(10,20,42,.40) 0%, rgba(10,20,42,.26) 100%),
    url('../../images/header_bubble_bg.png') center center / cover no-repeat !important;
  color:#f5f9ff !important;
  font-weight:800;
  letter-spacing:.15px;
  text-shadow:0 1px 7px rgba(0,0,0,.45);
}
tr[bgcolor="#FF9900"] > td,
td[bgcolor="#FF9900"],
td[bgcolor="orange"], tr[bgcolor="orange"] > td{
  background:var(--accent-soft) !important;
}
tr[bgcolor="white"] > td, td[bgcolor="white"],
tr[bgcolor="#FFFFFF"] > td, td[bgcolor="#FFFFFF"]{
  background:#fff !important;
}
td[bgcolor="gray"], td[bgcolor="lightgray"], td[bgcolor="#AAAAAA"], td[bgcolor="#CCCCCC"]{
  background:#eef2f6 !important;
}
td[bgcolor="green"]{background:#dff3e4 !important}
td[bgcolor="black"]{background:transparent !important;border-bottom:none;padding:4px 0}

h1,h2,h3{margin:0;font-weight:700;line-height:1.2}
h2{font-size:18px}

input[type="text"], input[type="number"], select, textarea{
  font:inherit;
  color:var(--text);
  border:1px solid #cfd8e3;
  background:#fff;
  border-radius:10px;
  padding:7px 9px;
  box-sizing:border-box;
}
input[type="text"]:focus, input[type="number"]:focus, select:focus, textarea:focus{
  outline:none;border-color:#6aa3d7;box-shadow:0 0 0 3px rgba(106,163,215,.18)
}
input[disabled], input[readonly]{background:#f3f6f9}
input[type="submit"], input[type="button"], button{
  font:inherit;
  font-weight:700;
  color:#fff;
  background:linear-gradient(180deg,#2f7e45 0%,#26683a 100%);
  border:1px solid #215a31;
  border-radius:999px;
  padding:8px 14px;
  cursor:pointer;
  box-shadow:0 4px 10px rgba(38,104,58,.18);
}
input[type="submit"]:hover, input[type="button"]:hover, button:hover{filter:brightness(1.04)}
input[value="Poista"], input[name="poista"]{background:linear-gradient(180deg,#c95555 0%,#aa3f3f 100%);border-color:#933838}
input[value="Peru"], input[name="peru"]{background:linear-gradient(180deg,#738195 0%,#5f6c7f 100%);border-color:#566273}
textarea{min-height:84px;width:100%}

/* tighter tables used as lists */
table[width="300"], table[width="200"], table[width="600"]{width:min(100%, attr(width px))}

/* special layout helpers for old pages */
.notice, .error-note{max-width:520px;margin:0 auto 14px}
.small-muted{color:var(--muted);font-size:12px}




/* broader legacy table header coverage */
table > thead > tr:first-child > td,
table > tr:first-child > td{
  background:
    linear-gradient(180deg, rgba(7,14,32,.30) 0%, rgba(7,14,32,.12) 100%),
    url('../../images/header_bubble_bg.png') center center / cover no-repeat !important;
  color:#f8fbff !important;
  font-weight:800;
  letter-spacing:.2px;
  text-shadow:0 1px 8px rgba(0,0,0,.55);
}

/* table heading readability over banner artwork */
table tr:first-child > td,
table thead th,
table thead td{
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.08), inset 0 1px 0 rgba(255,255,255,.08);
}
.ranking-header h2,
.dashboard-filter-card h2,
.players-wrap h2,
.game-list-header h2{
  color:#eff6ff;
  text-shadow:0 2px 10px rgba(0,0,0,.42);
}

/* responsive */
@media (max-width: 900px){
  body{padding:12px}
  .app-header{padding:12px}
  .app-header__top{align-items:flex-start;flex-direction:column}
  td,th{padding:7px 8px}
  input[type="text"], input[type="number"], select{max-width:100%}
}

/* auth + responsive dashboard overrides */
body{background:linear-gradient(180deg,#d8e1ea 0%,#c8d4e2 100%)}
.app-shell{max-width:1120px;margin:0 auto;width:100%}
.app-header{max-width:1120px;width:100%;margin:0 auto 18px auto;padding:14px 18px 16px;background:rgba(255,255,255,.94)}
.app-header__top--centered{position:relative;justify-content:center;align-items:center;min-height:36px}
.app-brand--full{display:flex;justify-content:center;width:100%}
.app-title{text-align:center;width:100%;font-size:26px}
.app-nav--centered{justify-content:center;width:100%}
.app-userbar{position:absolute;right:0;top:0;display:flex;gap:10px;align-items:center;font-size:12px}
.app-userbar__name{color:var(--muted)}
.app-userbar__link{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;background:#e7f0fa;border:1px solid #c7d7ea;color:#244c74;font-weight:700;text-decoration:none}
.app-userbar__link:hover{text-decoration:none;background:#d9e8f7}
.hero-panel{max-width:1120px;margin:0 auto 18px auto;display:flex;align-items:stretch;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}
.hero-panel__image{flex:0 0 var(--home-rank-column);max-width:var(--home-rank-column);min-height:132px;overflow:hidden}
.hero-panel__image img{display:block;width:100%;height:100%;object-fit:cover}
.hero-panel__content{flex:1;padding:16px 18px;display:flex;flex-direction:column;justify-content:center}
.hero-panel__content h2{margin:0 0 6px 0}
.hero-panel__content p{margin:0;color:var(--muted)}
.hero-panel__content p + p{margin-top:8px}
.dashboard-grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:var(--home-rank-column) minmax(0,1fr);gap:18px;align-items:start}
.dashboard-grid__left,.dashboard-grid__right{min-width:0}
.dashboard-filter-card{position:relative;overflow:hidden;margin:0 0 12px 0;padding:12px 14px;background:rgba(255,255,255,.95);border:1px solid rgba(167,205,255,.42);border-radius:16px;box-shadow:var(--shadow)}
.dashboard-filter-card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(7,14,32,.28) 0%, rgba(7,14,32,.14) 100%), url('../../images/header_bubble_bg.png') center center / cover no-repeat;opacity:.92;z-index:0}
.dashboard-filter-card > *{position:relative;z-index:1}

.dashboard-filter-card--plain{background:#003192;border-color:#04245f;color:#eff6ff}
.dashboard-filter-card--plain::before{display:none}
.players-table tr.players-column-header > td{
  background:#d7e4f0 !important;
  color:#243b53 !important;
  font-weight:800;
  letter-spacing:.15px;
  text-shadow:none !important;
  border-bottom:1px solid #c4d3e2;
}
.players-table tr.players-column-header > td a{color:inherit !important}
.dashboard-filter-card h2{font-size:17px;margin:0 0 10px 0}
.game-filter-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:center}
.game-filter-bar select{min-width:170px;max-width:100%;background:rgba(10,19,42,.46);border:1px solid rgba(255,214,129,.38);color:#f8fbff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.game-filter-bar select option{color:#111827;background:#ffffff}
.game-filter-bar input[type="submit"],
.game-filter-bar .game-filter-self-button,
.game-filter-bar .admin-delete-games-button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 16px;color:#fff7dc !important;border:1px solid rgba(255,214,129,.55) !important;border-radius:999px;background:linear-gradient(180deg, rgba(17,27,56,.72) 0%, rgba(108,49,8,.58) 100%) !important;box-shadow:0 6px 16px rgba(0,0,0,.20), inset 0 0 0 1px rgba(255,255,255,.08);text-shadow:0 1px 3px rgba(0,0,0,.45);text-decoration:none;font:inherit;font-weight:700;line-height:1.15;white-space:nowrap;cursor:pointer;appearance:none;-webkit-appearance:none}
.game-filter-bar input[type="submit"]:hover,
.game-filter-bar .game-filter-self-button:hover,
.game-filter-bar .admin-delete-games-button:hover{background:linear-gradient(180deg, rgba(25,40,78,.84) 0%, rgba(144,64,12,.72) 100%) !important;text-decoration:none;transform:none;box-shadow:0 6px 16px rgba(0,0,0,.20), inset 0 0 0 1px rgba(255,255,255,.08)}
.game-filter-bar .game-filter-self-button{background:linear-gradient(180deg, rgba(35,98,68,.84) 0%, rgba(20,83,45,.74) 100%) !important;border-color:rgba(167,243,208,.65) !important}
.game-filter-bar .game-filter-self-button:hover{background:linear-gradient(180deg, rgba(46,125,84,.94) 0%, rgba(22,101,52,.86) 100%) !important}
.ranking-table,.game-list-table{width:100%;margin:0}
.ranking-table{table-layout:fixed}
.ranking-header{display:flex;align-items:center;justify-content:center;gap:8px;
  margin:-8px -10px;
  padding:10px 12px;
  background:#003192 !important;
  border-radius:inherit;
}
.ranking-table > thead > tr:first-child > td{padding:0 !important;}
.game-list-table > tbody > tr:first-child > td.game-list-title-cell{padding:0 !important;}
.game-list-header{
  display:flex;align-items:center;justify-content:center;gap:8px;
  margin:-8px -10px;
  padding:10px 12px;
  background:#003192 !important;
  border-radius:inherit;
}
.game-list-header h2{
  color:#eff6ff;
  text-shadow:0 2px 10px rgba(0,0,0,.42);
}

.rank-name-cell{width:auto;white-space:nowrap;padding-left:10px;padding-right:10px}

/* 2026-06-14: ranking-listan pienet avatarit */
.rank-player{display:flex;align-items:center;gap:8px;min-width:0;}
.rank-player-avatar{flex:0 0 28px;width:28px;height:28px;object-fit:cover;border-radius:8px;border:1px solid rgba(255,255,255,.72);box-shadow:0 1px 4px rgba(0,0,0,.18);background:#f8fbff;}
.rank-player-info{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-width:0;max-width:100%;line-height:1.12;overflow:hidden;}
.rank-player-name-line{display:block;min-width:0;max-width:100%;}
.rank-player-name-line .rank-player-name-link{display:block;}
.rank-player-info .online-badge{margin-left:0;margin-top:0;align-self:flex-start;}
.rank-player-name-link{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rank-score-cell{width:64px;white-space:nowrap;padding-left:6px;padding-right:6px}
.datetime-compact{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;line-height:1.05;gap:2px;white-space:nowrap}
.datetime-compact .date{font-weight:700}
.datetime-compact .time{font-size:10px;color:var(--muted)}
.game-datetime-cell{width:92px;padding-left:6px;padding-right:6px;white-space:nowrap}
.game-players-cell{width:190px;padding-left:8px;padding-right:8px}
.game-note-cell{width:auto}
.game-player-row{display:grid;grid-template-columns:24px 1fr 34px;gap:4px;align-items:baseline;font-size:13px;line-height:1.2;margin:0 0 2px 0}
.game-pos{text-align:right}
.game-player-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game-player-points{text-align:right;white-space:nowrap}
.players-wrap{max-width:980px;margin:0 auto}
.auth-card{max-width:560px;margin:0 auto 20px auto;padding:18px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.auth-card--wide{max-width:860px}
.auth-form .form-row{display:flex;flex-direction:column;gap:6px;margin:0 0 12px 0}
.auth-form .form-actions{display:flex;gap:8px;align-items:center;justify-content:flex-start;margin-top:10px}
.small-muted{color:var(--muted);font-size:12px}
@media (max-width: 900px){
  .app-userbar{position:absolute;right:0;top:0;display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:nowrap;margin-top:0;max-width:46%}
  .app-header__top--centered{flex-direction:column;padding-right:150px}
  .app-userbar__name{display:none}
  .hero-panel{flex-direction:column}
  .hero-panel__image{max-width:none;min-height:140px;flex:0 0 auto}
  .dashboard-grid{grid-template-columns:1fr}
}

input[type="password"]{font:inherit;color:var(--text);border:1px solid #cfd8e3;background:#fff;border-radius:10px;padding:7px 9px;box-sizing:border-box;}
input[type="password"]:focus{outline:none;border-color:#6aa3d7;box-shadow:0 0 0 3px rgba(106,163,215,.18)}

.button-link{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:999px;border:1px solid #cddaea;background:#f8fbfe;color:#254e76;font-weight:600;text-decoration:none}
.button-link:hover{background:#eef5fb;text-decoration:none}



.app-shell,
.app-header,
.hero-panel,
.dashboard-grid{
  width:100%;
  max-width:1120px;
  box-sizing:border-box;
}

.app-header{
  max-width:1120px;
}

.players-actions{
  max-width:980px;
  margin:0 auto 12px auto;
  display:flex;
  justify-content:flex-start;
  align-items:center;
  gap:10px;
}

.players-table,
.ranking-table,
.game-list-table{
  width:100%;
}

.players-table tr.data-row:nth-child(even) > td{
  background:#eef5fb !important;
}
.players-table tr.data-row:nth-child(odd) > td{
  background:#fff8e7 !important;
}

.players-table > tr:nth-child(2) > td{
  background:linear-gradient(rgba(0,0,0,.10), rgba(0,0,0,.10)), #eef5fb !important;
  color:#1f2937 !important;
  text-shadow:0 1px 3px rgba(255,255,255,.38) !important;
  font-weight:800;
}

.ranking-table tbody tr:nth-child(even) > td{
  background:#eef5fb !important;
}
.ranking-table tbody tr:nth-child(odd) > td{
  background:#fff8e7 !important;
}

.game-list-table tbody tr:nth-child(even) > td{
  background:#eef5fb !important;
}
.game-list-table tbody tr:nth-child(odd) > td{
  background:#fff8e7 !important;
}

.ranking-table tbody tr > td,
.game-list-table tbody tr > td,
.players-table tr.data-row > td{
  border-bottom:1px solid #dde7f1;
}

@media (max-width: 900px){
  .players-actions{
    justify-content:center;
  }
}



.app-header{
  position:relative;
  overflow:hidden;
  padding-top:12px;
}

.app-header__top--centered{
  min-height:84px;
  padding-right:150px;
}

.app-brand--full{
  display:flex;
  justify-content:center;
  align-items:center;
  width:100%;
  padding:2px 0 10px 0;
}

.app-logo-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:min(100%, 760px);
  text-decoration:none;
}

.app-logo-wordmark{
  display:block;
  width:min(100%, 760px);
  max-height:74px;
  object-fit:contain;
  object-position:center center;
}

.app-nav--centered{
  justify-content:center;
  width:100%;
  padding-top:2px;
}

.app-userbar{
  position:absolute;
  right:0;
  top:0;
  z-index:2;
}

@media (max-width: 900px){
  .app-header{
    padding-top:12px;
  }
  .app-header__top--centered{
    min-height:72px;
    padding-right:132px;
  }
  .app-logo-link{
    max-width:calc(100% - 12px);
  }
  .app-logo-wordmark{
    width:min(100%, 560px);
    max-height:56px;
  }
  .app-userbar{
    position:absolute;
    right:0;
    top:0;
    max-width:42%;
  }
}


.app-logo-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  max-width:min(100%, 760px);
}
.app-logo-wordmark{
  display:block;
  width:min(100%, 760px);
  max-height:96px;
  object-fit:contain;
  object-position:center center;
}
.app-header__top--centered{
  min-height:104px;
  padding-right:160px;
}
@media (max-width: 900px){
  .app-logo-wordmark{
    width:min(100%, 540px);
    max-height:72px;
  }
  .app-header__top--centered{
    min-height:82px;
    padding-right:140px;
  }
}


/* compact header */
.app-header{
  padding:8px 16px 10px !important;
  border-radius:16px !important;
}
.app-header__top--centered{
  min-height:64px !important;
  padding-right:148px !important;
  margin-bottom:4px !important;
}
.app-brand--full{
  padding:0 0 4px 0 !important;
}
.app-logo-link{
  max-width:min(100%, 520px) !important;
}
.app-logo-wordmark{
  width:min(100%, 520px) !important;
  max-height:58px !important;
  object-fit:contain !important;
}
.app-nav{
  gap:7px !important;
}
.app-nav a{
  padding:6px 11px !important;
}
.app-userbar{
  top:2px !important;
}
@media (max-width: 900px){
  .app-header{
    padding:8px 12px 10px !important;
  }
  .app-header__top--centered{
    min-height:52px !important;
    padding-right:118px !important;
    margin-bottom:4px !important;
  }
  .app-logo-link{
    max-width:min(100%, 360px) !important;
  }
  .app-logo-wordmark{
    width:min(100%, 360px) !important;
    max-height:42px !important;
  }
}




/* single full-width electric/fire bubble behind the whole top banner */
.app-header{
  position:relative;
  overflow:hidden;
  padding:10px 16px 12px !important;
  border-radius:22px !important;
  border:1px solid rgba(167,205,255,.55) !important;
  background:linear-gradient(180deg, rgba(8,18,42,.52) 0%, rgba(17,24,39,.36) 100%) !important;
  box-shadow:0 14px 34px rgba(13,24,45,.22), inset 0 0 0 1px rgba(255,255,255,.06) !important;
}
.app-header::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 18% 35%, rgba(255,176,58,.34) 0%, rgba(255,176,58,0) 26%),
    radial-gradient(circle at 80% 28%, rgba(74,182,255,.38) 0%, rgba(74,182,255,0) 24%),
    linear-gradient(90deg, rgba(255,123,0,.32) 0%, rgba(255,190,60,.22) 24%, rgba(80,190,255,.16) 56%, rgba(24,97,255,.30) 100%),
    url('../../images/header_bubble_bg.png') center center / cover no-repeat;
  filter:saturate(1.15) contrast(1.08);
  opacity:.82;
  z-index:0;
}
.app-header::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(115deg, rgba(255,199,87,.10) 0%, rgba(255,199,87,0) 34%),
    linear-gradient(245deg, rgba(71,187,255,.14) 0%, rgba(71,187,255,0) 36%),
    repeating-linear-gradient(118deg,
      rgba(255,255,255,.18) 0px,
      rgba(255,255,255,.18) 2px,
      rgba(255,255,255,0) 4px,
      rgba(255,255,255,0) 74px);
  mix-blend-mode:screen;
  opacity:.28;
  pointer-events:none;
  z-index:1;
}
.app-header > *{
  position:relative;
  z-index:2;
}
.app-header__top--centered{
  min-height:72px !important;
  box-sizing:border-box;
  width:calc(100% - 8px);
  margin:0 4px 4px 4px !important;
  padding:6px 148px 6px 10px !important;
  border-radius:18px;
  background:linear-gradient(180deg, rgba(6,14,34,.24) 0%, rgba(6,14,34,.10) 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);
}
.app-brand--full{
  padding:0 !important;
}
.app-logo-link{
  max-width:min(100%, 980px) !important;
}
.app-logo-wordmark{
  width:min(100%, 980px) !important;
  max-height:68px !important;
  object-fit:contain !important;
  object-position:center center !important;
  transform:scaleX(1.9) scaleY(1.5);
  transform-origin:center center;
  filter:drop-shadow(0 3px 10px rgba(0,0,0,.45));
}
.app-brand--full{overflow:visible !important;}
.app-userbar{
  top:10px !important;
  right:12px !important;
  z-index:3;
}
.app-userbar__name{
  color:#eef6ff !important;
  text-shadow:0 1px 6px rgba(0,0,0,.45);
}
.app-userbar__link,
.app-nav a{
  color:#fff7dc !important;
  border:1px solid rgba(255,214,129,.55) !important;
  background:linear-gradient(180deg, rgba(17,27,56,.72) 0%, rgba(108,49,8,.58) 100%) !important;
  box-shadow:0 6px 16px rgba(0,0,0,.20), inset 0 0 0 1px rgba(255,255,255,.08);
  text-shadow:0 1px 3px rgba(0,0,0,.45);
}
.app-userbar__link:hover,
.app-nav a:hover{
  background:linear-gradient(180deg, rgba(25,40,78,.84) 0%, rgba(144,64,12,.72) 100%) !important;
  text-decoration:none;
}
.app-nav--centered{
  justify-content:center;
  box-sizing:border-box;
  width:calc(100% - 8px);
  margin:0 4px;
  gap:8px !important;
  padding:4px 8px 2px 8px;
  border-radius:18px;
  background:linear-gradient(180deg, rgba(9,19,43,.24) 0%, rgba(9,19,43,.10) 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
}
@media (max-width: 900px){
  .app-header{
    padding:8px 10px 10px !important;
    border-radius:18px !important;
  }
  .app-header__top--centered{
    min-height:58px !important;
    box-sizing:border-box;
    width:calc(100% - 8px);
    margin:0 4px 4px 4px !important;
    padding:8px 118px 8px 8px !important;
  }
  .app-logo-link{
    max-width:min(100%, 520px) !important;
  }
  .app-logo-wordmark{
    width:min(100%, 520px) !important;
    max-height:46px !important;
  }
  .app-userbar{
    top:8px !important;
    right:8px !important;
    max-width:44%;
  }
  .app-nav--centered{
    width:calc(100% - 8px);
    margin:0 4px;
    gap:7px !important;
    padding:4px 6px 2px 6px;
  }
}


/* Uusimmat pelit: päivämäärä mustaksi, vain varjostus */
.game-list-table .datetime-compact .date,
.game-list-table .datetime-compact .time{
  color:#111111 !important;
  text-shadow:0 1px 4px rgba(255,255,255,.35), 0 1px 2px rgba(0,0,0,.18) !important;
}

/* Uusimmat pelit: ensimmäinen sarake hieman tummemmaksi kuin muut */
.game-list-table tbody tr:nth-child(even) > td:first-child{
  background:#d7e4f0 !important;
}
.game-list-table tbody tr:nth-child(odd) > td:first-child{
  background:#efe2c6 !important;
}


.rank-last-play-cell{width:76px;white-space:nowrap;padding-left:4px;padding-right:4px}
.rank-last-play-link{color:#1f2937;text-decoration:none;font-weight:400;text-shadow:0 1px 3px rgba(255,255,255,.45)}
.rank-last-play-link:hover{text-decoration:underline}
.rank-last-play-meta{display:flex;align-items:center;justify-content:center;min-height:18px;margin-bottom:4px}
.rank-recent-balls{display:flex;align-items:center;justify-content:center;gap:5px;min-height:14px}
.rank-recent-ball{display:inline-block;width:10px;height:10px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.32), 0 1px 2px rgba(0,0,0,.24)}
.rank-recent-ball--deep-red{background:#8b1e1e}
.rank-recent-ball--orange{background:#d97706}
.rank-recent-ball--yellow{background:#d4b106}
.rank-recent-ball--light-green{background:#7ccf5b}
.rank-recent-ball--deep-green{background:#1f7a1f}
.rank-recent-ball--empty{background:#d7dee6;opacity:.45}
.online-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:8px;
  padding:2px 7px;
  border-radius:999px;
  font-size:10px;
  line-height:1.2;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#ffffff;
  vertical-align:middle;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16), 0 1px 2px rgba(0,0,0,.18);
}
.online-badge--green{background:#2f9e44;}
.online-badge--yellow{background:#c99700;color:#1f2937;}
.online-badge--orange{background:#f08c00;color:#1f2937;}
.ranking-table tbody tr:nth-child(even) > td.rank-name-cell{
  background:linear-gradient(rgba(0,0,0,.10), rgba(0,0,0,.10)), #eef5fb !important;
}
.ranking-table tbody tr:nth-child(odd) > td.rank-name-cell{
  background:linear-gradient(rgba(0,0,0,.10), rgba(0,0,0,.10)), #fff8e7 !important;
}
@media (max-width: 900px){
  .rank-name-cell{
    width:auto;
    white-space:normal;
    font-size:13px;
    line-height:1.15;
    padding:6px 7px;
    vertical-align:top;
  }
  .rank-player{gap:6px;}
  .rank-player-avatar{flex-basis:24px;width:24px;height:24px;border-radius:7px;}
  .rank-player-info{display:block;min-width:0;}
  .rank-player-name-link{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .rank-name-cell .online-badge{
    display:inline-flex;
    margin-left:0;
    margin-top:4px;
    padding:1px 6px;
    font-size:9px;
  }
  .rank-last-play-cell{
    display:table-cell;
    width:72px;
    padding:5px 4px;
  }
  .rank-last-play-meta{
    min-height:0;
    margin-bottom:2px;
  }
  .rank-last-play-link{
    font-weight:400;
    font-size:11px;
    line-height:1.05;
  }
  .rank-recent-balls{
    gap:3px;
    min-height:10px;
  }
  .rank-recent-ball{
    width:8px;
    height:8px;
  }
  .rank-score-cell{
    width:58px;
    padding-left:4px;
    padding-right:4px;
    font-size:12px;
  }
}

@media (max-width: 560px){
  .rank-name-cell{font-size:12px;padding:5px 6px;}
  .rank-player{gap:5px;}
  .rank-player-avatar{flex-basis:22px;width:22px;height:22px;border-radius:6px;}
  .rank-last-play-cell{width:56px;padding-left:2px;padding-right:2px;}
  .rank-last-play-link{font-size:10px;font-weight:400;}
  .rank-recent-balls{gap:2px;}
  .rank-recent-ball{width:7px;height:7px;}
  .rank-score-cell{width:54px;font-size:11px;}
}


/* Jatka peliä / Näytä peli: vain taulukon otsikkorivi käyttää banneritaustaa */
.game-score-table{
  border-collapse:separate;
  border-spacing:0;
}
.game-score-table tr:first-child > td{
  background:#003192 !important;
  background-image:none !important;
  color:#f8fbff !important;
  text-shadow:0 2px 8px rgba(0,0,0,.45);
}
.game-score-table tr:first-child h2{
  color:#ffffff !important;
  text-shadow:0 2px 10px rgba(0,0,0,.50);
}
.game-score-table tr:nth-child(2n+2) > td{
  background:#eef5fb !important;
}
.game-score-table tr:nth-child(2n+3) > td{
  background:#fff8e7 !important;
}
.game-score-table tr:nth-child(2n+2) > td:first-child{
  background:linear-gradient(rgba(0,0,0,.10), rgba(0,0,0,.10)), #eef5fb !important;
}
.game-score-table tr:nth-child(2n+3) > td:first-child{
  background:linear-gradient(rgba(0,0,0,.10), rgba(0,0,0,.10)), #fff8e7 !important;
}
.game-score-table tr > td{
  border-bottom:1px solid #dde7f1;
}
.game-score-table tr:not(:first-child) > td:first-child{
  color:#1f2937 !important;
  font-weight:700;
  text-shadow:0 1px 3px rgba(255,255,255,.38);
}
.game-score-table input[type="text"],
.game-score-table textarea{
  max-width:100%;
}


/* Jatka peliä / Näytä peli: toimintanapit samaan tyyliin kuin päänäytön napit */
.game-score-table input[value="Välitallenna"],
.game-score-table input[value="OK"],
.game-score-table input#final{
  color:#fff7dc !important;
  border:1px solid rgba(255,214,129,.55) !important;
  background:linear-gradient(180deg, rgba(17,27,56,.72) 0%, rgba(108,49,8,.58) 100%) !important;
  box-shadow:0 6px 16px rgba(0,0,0,.20), inset 0 0 0 1px rgba(255,255,255,.08);
  text-shadow:0 1px 3px rgba(0,0,0,.45);
  border-radius:999px;
  padding:8px 16px;
  min-width:140px;
  font-weight:700;
}
.game-score-table input[value="Välitallenna"]:hover,
.game-score-table input[value="OK"]:hover,
.game-score-table input#final:hover{
  background:linear-gradient(180deg, rgba(25,40,78,.84) 0%, rgba(144,64,12,.72) 100%) !important;
}
.game-score-table input[value="OK"]:disabled,
.game-score-table input#final:disabled{
  color:#d9d9d9 !important;
  border:1px solid rgba(255,255,255,.18) !important;
  background:linear-gradient(180deg, rgba(70,70,70,.70) 0%, rgba(38,38,38,.78) 100%) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
  text-shadow:none;
  opacity:.72;
  cursor:not-allowed;
  filter:grayscale(.35);
}
.game-score-table input[value="OK"]:disabled:hover,
.game-score-table input#final:disabled:hover{
  background:linear-gradient(180deg, rgba(70,70,70,.70) 0%, rgba(38,38,38,.78) 100%) !important;
}




.main-menu-like-button{
  font:inherit !important;
  font-weight:700 !important;
  color:#fff !important;
  background:linear-gradient(180deg,#2f7e45 0%,#26683a 100%) !important;
  border:1px solid #215a31 !important;
  border-radius:999px !important;
  padding:8px 14px !important;
  cursor:pointer !important;
  box-shadow:0 4px 10px rgba(38,104,58,.18) !important;
}
.main-menu-like-button:hover{filter:brightness(1.04);}

/* Syötä uuden pelin alkutiedot: sama sininen otsikkotausta kuin hakupaneeleissa */
.new-game-setup-table tr:first-child > td{
  background:#003192 !important;
  color:#f8fbff !important;
  text-shadow:none !important;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.new-game-setup-table tr:not(:first-child) > td[bgcolor="#6699CC"],
.new-game-setup-table tr:not(:first-child)[bgcolor="#6699CC"] > td{
  background:linear-gradient(rgba(0,0,0,.10), rgba(0,0,0,.10)), #eef5fb !important;
  color:#1f2937 !important;
  text-shadow:0 1px 3px rgba(255,255,255,.38) !important;
}
.new-game-setup-table tr:not(:first-child) > td[bgcolor="#99CCFF"],
.new-game-setup-table tr:not(:first-child)[bgcolor="#99CCFF"] > td,
.new-game-setup-table tr:not(:first-child) > td[align="right"][bgcolor="#99CCFF"]{
  background:linear-gradient(rgba(0,0,0,.10), rgba(0,0,0,.10)), #fff8e7 !important;
  color:#1f2937 !important;
  text-shadow:0 1px 3px rgba(255,255,255,.38) !important;
}
.new-game-setup-table tr > td[bgcolor="#FF9900"],
.new-game-setup-table tr[bgcolor="#FF9900"] > td,
.new-game-setup-table tr > td[bgcolor="white"],
.new-game-setup-table tr[bgcolor="white"] > td,
.new-game-setup-table tr > td[bgcolor="#FFFFFF"],
.new-game-setup-table tr[bgcolor="#FFFFFF"] > td{
  color:#1f2937 !important;
  text-shadow:none !important;
}


.game-filter-actions{margin-top:10px;display:flex;justify-content:center}
.admin-delete-games-button,.delete-game-action-link{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:999px;text-decoration:none;font-weight:700;background:linear-gradient(180deg,#ffe28a 0%,#ff9d2f 52%,#db5d15 100%);color:#2b1400;border:1px solid rgba(88,33,0,.35);box-shadow:0 6px 18px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.45)}
.admin-delete-games-button:hover,.delete-game-action-link:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 8px 22px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.45)}
.delete-game-action-cell{padding:8px 10px;white-space:nowrap}

.stats-tabs-screen{
  max-width:1520px;
  margin:0 auto;
}
.stats-tab-bar{
  display:flex;
  gap:10px;
  justify-content:center;
  margin:8px auto 18px;
  flex-wrap:wrap;
}
.stats-tab-button{
  border:1px solid #d7e3ee;
  background:linear-gradient(180deg, rgba(16,45,74,.92), rgba(9,29,48,.92));
  color:#fff;
  padding:8px 16px;
  font-weight:700;
  cursor:pointer;
}
.stats-tab-button.is-active{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);
  filter:brightness(1.08);
}
.stats-tab-panel{display:none;}
.stats-tab-panel.is-active{display:block;}
.stats-player-detail-layout{
  display:grid;
  grid-template-columns:minmax(220px,270px) minmax(0,1fr);
  gap:24px;
  align-items:start;
}
.stats-player-detail-layout__sidebar{display:flex;flex-direction:column;gap:18px;}
.stats-player-detail-layout__sidebar > .stats-filter-card,
.stats-player-detail-layout__sidebar > .stats-player-card{
  width:100%;
  max-width:270px;
  box-sizing:border-box;
  margin-left:0;
  margin-right:0;
}
.stats-player-detail-layout__main{min-width:0;}
.section-title-box{
  display:inline-block;
  padding:6px 14px;
  border:1px solid rgba(242,248,255,.9);
  background:linear-gradient(180deg, rgba(17,43,69,.88), rgba(9,26,42,.9));
}
.section-title-box h2{margin:0;}
.section-title-box--stats{
  padding:7px 16px;
  background:linear-gradient(180deg, rgba(13,34,55,.94), rgba(8,21,36,.94));
  border:1px solid rgba(241,247,255,.9);
  box-shadow:0 10px 22px rgba(0,0,0,.16);
}
.stats-players-panel{
  display:flex;
  flex-direction:column;
  gap:18px;
  align-items:center;
}
.stats-filter-card{
  width:min(100%, 620px);
  margin:0 auto;
  text-align:center;
  color:#eef6ff;
  background:#003192;
  border-color:#04245f;
}
.stats-filter-card::before{display:none}
.stats-filter-card h2{
  margin:0 0 12px 0;
  color:#ffffff;
  text-shadow:0 1px 3px rgba(0,0,0,.35);
}
.stats-player-search-form{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}
.stats-player-search-form select,
.stats-player-search-form input[type="submit"],
.stats-player-search-form .stats-filter-self-button{
  min-height:38px;
}
.stats-player-search-form select{
  min-width:220px;
  max-width:100%;
  padding:8px 12px;
  background:rgba(13,27,48,.52);
  color:#f8fbff;
  border:1px solid rgba(255,214,129,.42);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
}
.stats-player-search-form select option{color:#111827;background:#fff;}
.stats-player-search-form input[type="submit"],
.stats-player-search-form .stats-filter-self-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 16px;
  color:#fff7dc !important;
  border:1px solid rgba(255,214,129,.55) !important;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(17,27,56,.72) 0%, rgba(108,49,8,.58) 100%) !important;
  box-shadow:0 6px 16px rgba(0,0,0,.20), inset 0 0 0 1px rgba(255,255,255,.08);
  text-shadow:0 1px 3px rgba(0,0,0,.45);
  text-decoration:none;
  font:inherit;
  font-weight:700;
  line-height:1.15;
  white-space:nowrap;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
}
.stats-player-search-form input[type="submit"]:hover,
.stats-player-search-form .stats-filter-self-button:hover{
  background:linear-gradient(180deg, rgba(25,40,78,.84) 0%, rgba(144,64,12,.72) 100%) !important;
  text-decoration:none;
  transform:none;
  box-shadow:0 6px 16px rgba(0,0,0,.20), inset 0 0 0 1px rgba(255,255,255,.08);
}
.stats-player-search-form .stats-filter-self-button{
  background:linear-gradient(180deg, rgba(35,98,68,.84) 0%, rgba(20,83,45,.74) 100%) !important;
  border-color:rgba(167,243,208,.65) !important;
}
.stats-player-search-form .stats-filter-self-button:hover{
  background:linear-gradient(180deg, rgba(46,125,84,.94) 0%, rgba(22,101,52,.86) 100%) !important;
}
.stats-player-detail-layout{
  grid-template-columns:minmax(285px,352px) minmax(0,1fr);
  gap:24px;
}
.stats-overview-card,
.stats-player-card{
  width:min(100%, 1180px);
  background:rgba(248,252,255,.96);
  border:1px solid rgba(152,175,201,.55);
  box-shadow:0 16px 30px rgba(15,23,42,.12);
  padding:18px 20px 20px;
}
.stats-player-card{width:100%;}
.stats-score-column--player-card .stats-score-column__title{
  background:#cedbea;
}
.stats-score-column--player-card .stats-score-row{
  grid-template-columns:78px minmax(0,1fr);
  padding:8px 12px;
}
.stats-score-column--player-card .stats-score-player{
  font-size:14px;
}
.stats-score-column--player-card .stats-score-date{
  font-size:11px;
}
.stats-overview-card__header,
.stats-player-card__header{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
  text-align:center;
}
.stats-overview-card__summary,
.stats-player-card__facts{
  color:#3d5268;
  font-size:15px;
}
.stats-player-card__name{
  font-size:28px;
  font-weight:700;
  color:#112b45;
}
.stats-player-card__facts{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px 18px;
}
.stats-player-summary{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  margin-bottom:18px;
}
.stats-player-summary__item{
  background:linear-gradient(180deg, rgba(245,249,253,.98), rgba(233,241,249,.98));
  border:1px solid #d5e1ec;
  padding:10px 12px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.stats-player-summary__label{
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#61758a;
}
.stats-player-summary__value{
  font-size:22px;
  line-height:1.1;
  color:#122f4b;
  font-variant-numeric:tabular-nums;
}
.stats-player-card__sections{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.stats-player-card__section{
  min-width:0;
}
.stats-score-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
}
.stats-score-grid--compact{gap:14px;}
.stats-score-column{
  background:#ffffff;
  border:1px solid #d5e0eb;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.stats-score-column__title{
  padding:10px 14px;
  text-align:center;
  font-weight:700;
  color:#20364a;
  background:#d5e2ef;
  border-bottom:1px solid #c2d2e1;
}
.stats-score-list{display:flex;flex-direction:column;}
.stats-score-row{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:9px 14px;
  border-bottom:1px solid #d7e2ec;
}
.stats-score-row:nth-child(odd){background:#f6faff;}
.stats-score-row:nth-child(even){background:#eaf2f9;}
.stats-score-row:last-child{border-bottom:none;}
.stats-score-row--empty{grid-template-columns:minmax(0,1fr);}
.stats-score-points{
  display:block;
  text-align:right;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  color:#173b5f;
  text-decoration:none;
  white-space:nowrap;
}
.stats-score-points:hover{text-decoration:underline;}
.stats-score-meta{
  display:flex;
  align-items:baseline;
  gap:8px;
  min-width:0;
  flex-wrap:wrap;
}
.stats-score-player{
  color:#0f2740;
  font-weight:600;
  text-decoration:none;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:100%;
}
.stats-score-player:hover{text-decoration:underline;}
.stats-score-date{
  color:#61758a;
  font-size:12px;
  white-space:nowrap;
}
.stats-score-empty{
  color:#6b7f93;
  text-align:center;
}

.stats-score-game-type{
  display:inline-flex;
  align-items:center;
  padding:1px 6px;
  border-radius:999px;
  background:#fff2c6;
  color:#6f4a00;
  border:1px solid #e1c05f;
  font-size:11px;
  font-weight:700;
  line-height:1.3;
  white-space:nowrap;
}
.stats-score-row--three-player .stats-score-points{
  color:#6f4a00;
}
.stats-placement-card{
  margin-top:18px;
  background:#fff;
  border:1px solid #d5e0eb;
  padding:14px;
}
.stats-placement-card__title{
  text-align:center;
  font-weight:700;
  color:#20364a;
  margin-bottom:12px;
}
.stats-placement-card--player-card{
  margin-top:0;
}
.stats-placement-row{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) 56px;
  gap:10px;
  align-items:center;
  padding:6px 0;
}
.stats-placement-row__label{font-weight:600;color:#28435f;}
.stats-placement-row__label span{color:#6b7f93;font-weight:500;}
.stats-placement-row__bar{
  height:14px;
  background:#e6eef6;
  border:1px solid #d3deea;
  overflow:hidden;
}
.stats-placement-row__bar span{
  display:block;
  height:100%;
  background:linear-gradient(180deg, #73a2d2 0%, #406d9a 100%);
}
.stats-placement-row__value{
  text-align:right;
  font-variant-numeric:tabular-nums;
  color:#22384f;
  font-weight:600;
}
.rank-analyzer-panel{
  background:rgba(255,255,255,.76);
  border:1px solid rgba(129,152,176,.5);
  padding:14px;
  backdrop-filter:blur(4px);
}
.rank-analyzer-panel.is-fullscreen{
  padding:20px;
  background:rgba(243,248,252,.98);
  box-sizing:border-box;
  height:100%;
  overflow:hidden;
}
.rank-analyzer-layout{
  display:grid;
  grid-template-columns:minmax(250px,290px) minmax(0,1fr);
  gap:18px;
  align-items:start;
}
.rank-analyzer-panel.is-fullscreen .rank-analyzer-layout{
  height:100%;
  align-items:stretch;
}
.rank-analyzer-sidebar{
  background:#f5f8fc;
  color:#173a59;
  border:1px solid #c8d8e8;
  border-radius:16px;
  padding:0 10px 10px;
  box-shadow:0 8px 22px rgba(24,60,95,.10);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.rank-analyzer-sidebar__title{
  margin:0 -10px 10px;
  padding:12px 14px;
  background:linear-gradient(180deg,#286795 0%,#184a74 100%);
  color:#fff;
  font-weight:800;
  font-size:16px;
  text-align:left;
  letter-spacing:.01em;
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.14);
}
.rank-player-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  flex:1 1 auto;
  min-height:0;
}
.rank-player-list__head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  padding:0 8px 6px;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#57728b;
  font-weight:800;
}
.rank-player-list__body{
  max-height:560px;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:2px 4px 2px 0;
  flex:1 1 auto;
  min-height:0;
}
.rank-analyzer-panel.is-fullscreen .rank-player-list__body{
  max-height:none;
}
.rank-player-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  width:100%;
  border:1px solid #d7e3ee;
  border-radius:12px;
  background:#fff;
  color:#1d425f;
  padding:8px 10px;
  text-align:left;
  cursor:pointer;
  min-height:38px;
  box-shadow:0 2px 7px rgba(24,60,95,.06);
  transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease;
}
.rank-player-row:hover{background:#f4f9fd;transform:translateY(-1px);box-shadow:0 5px 12px rgba(24,60,95,.12);border-color:#9ebbd3;}
.rank-player-row.is-selected{
  background:linear-gradient(180deg,#e8f3fb 0%,#d9ebf8 100%);
  border-color:var(--player-color,#477ca6);
  box-shadow:inset 4px 0 0 var(--player-color,#477ca6),0 4px 12px rgba(24,60,95,.12);
}
.rank-player-row__lead{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.rank-player-row__swatch{
  width:14px;
  height:14px;
  flex:0 0 14px;
  background:var(--player-color, #9db7cf);
  border:2px solid #fff;
  border-radius:50%;
  box-shadow:0 0 0 1px rgba(24,60,95,.26);
}
.rank-player-row__name{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:13px;
  font-weight:750;
  line-height:1.2;
}
.rank-player-row__score{
  padding:4px 7px;
  border-radius:999px;
  background:#eaf1f7;
  font-size:12px;
  font-weight:800;
  color:#274f70;
  white-space:nowrap;
}
.rank-analyzer-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.rank-analyzer-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-bottom:10px;
  flex-wrap:wrap;
}
.rank-analyzer-header h2{
  margin:0;
}
.rank-analyzer-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.rank-analyzer-btn{
  border:1px solid rgba(24,60,95,.35);
  background:#f2f7fb;
  color:#163650;
  padding:8px 12px;
  font-weight:700;
  cursor:pointer;
}
.rank-graph-stage{
  position:relative;
  min-height:620px;
  background:#eef4f8;
  border:1px solid rgba(139,164,186,.72);
  overflow:hidden;
  padding:16px 18px 142px 112px;
  box-sizing:border-box;
  flex:1 1 auto;
}
.rank-analyzer-panel.is-fullscreen .rank-graph-stage{
  min-height:0;
}
.rank-graph-svg{
  width:100%;
  height:100%;
  display:block;
  cursor:crosshair;
}
.rank-graph-tooltip{
  position:absolute;
  z-index:20;
  max-width:min(380px, calc(100% - 24px));
  background:rgba(8,26,42,.94);
  color:#fff;
  border:1px solid rgba(225,236,246,.55);
  padding:8px 10px;
  pointer-events:none;
  box-shadow:0 8px 22px rgba(0,0,0,.24);
}
.rank-graph-tooltip__line{font-weight:700; margin-bottom:2px;}
.rank-graph-tooltip__subline{font-size:12px; line-height:1.3; color:#dce8f3;}
.rank-graph-empty{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#27435b;
  font-weight:700;
  background:rgba(238,244,248,.82);
}
.rank-graph-time-filter{
  position:absolute;
  left:112px;
  right:18px;
  bottom:14px;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px 12px;
  border:1px solid rgba(24,60,95,.18);
  background:rgba(255,255,255,.92);
  box-shadow:0 4px 10px rgba(12,32,51,.08);
}
.rank-graph-time-presets{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  padding-bottom:8px;
  margin-bottom:1px;
  border-bottom:1px solid rgba(24,60,95,.12);
}
.rank-graph-time-presets__label{
  margin-right:2px;
  color:#27435b;
  font-size:11px;
  font-weight:800;
}
.rank-graph-time-preset{
  appearance:none;
  border:1px solid #9db6cc;
  border-radius:999px;
  background:#f5f9fc;
  color:#1f4a6d;
  padding:5px 10px;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 2px 6px rgba(24,60,95,.08);
}
.rank-graph-time-preset:hover,
.rank-graph-time-preset:focus-visible{
  background:#e6f1f9;
  border-color:#5686ac;
  outline:none;
}
.rank-graph-time-preset.is-active{
  background:#184f7b;
  border-color:#184f7b;
  color:#fff;
}
.rank-graph-time-filter__row{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 82px;
  gap:10px;
  align-items:center;
}
.rank-graph-time-filter__title,
.rank-graph-time-filter__value,
.rank-graph-y-filter__title,
.rank-graph-y-filter__value{
  font-size:12px;
  font-weight:700;
  color:#27435b;
  white-space:nowrap;
}
.rank-graph-time-filter__value{text-align:right;}
.rank-graph-time-filter__input,
.rank-graph-y-filter__input{
  -webkit-appearance:none;
  appearance:none;
  background:transparent;
  width:100%;
  margin:0;
}
.rank-graph-time-filter__input::-webkit-slider-runnable-track,
.rank-graph-y-filter__input::-webkit-slider-runnable-track{
  height:6px;
  border:none;
  border-radius:999px;
  background:rgba(24,60,95,.18);
}
.rank-graph-time-filter__input::-moz-range-track,
.rank-graph-y-filter__input::-moz-range-track{
  height:6px;
  border:none;
  border-radius:999px;
  background:rgba(24,60,95,.18);
}
.rank-graph-time-filter__input::-webkit-slider-thumb,
.rank-graph-y-filter__input::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#143b63;
  border:2px solid #f7fbff;
  box-shadow:0 2px 8px rgba(12,32,51,.24);
  cursor:pointer;
  margin-top:-6px;
}
.rank-graph-time-filter__input::-moz-range-thumb,
.rank-graph-y-filter__input::-moz-range-thumb{
  width:18px;
  height:18px;
  border-radius:50%;
  background:#143b63;
  border:2px solid #f7fbff;
  box-shadow:0 2px 8px rgba(12,32,51,.24);
  cursor:pointer;
}
.rank-graph-y-filter{
  position:absolute;
  left:12px;
  top:18px;
  bottom:104px;
  width:88px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:center;
}
.rank-graph-y-filter__control{
  width:100%;
  height:48%;
  display:grid;
  grid-template-rows:auto 1fr auto;
  justify-items:center;
  gap:8px;
  padding:8px 6px;
  border:1px solid rgba(24,60,95,.14);
  background:rgba(255,255,255,.9);
  box-shadow:0 4px 10px rgba(12,32,51,.06);
}
.rank-graph-y-filter__input-wrap{
  position:relative;
  width:100%;
  min-height:220px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.rank-graph-y-filter__input-wrap::before{
  content:"";
  position:absolute;
  left:50%;
  top:8px;
  bottom:8px;
  width:6px;
  transform:translateX(-50%);
  border-radius:999px;
  background:rgba(24,60,95,.18);
}
.rank-graph-y-filter__input{
  position:absolute;
  width:220px;
  transform:rotate(-90deg);
  transform-origin:center;
}
@media (max-width: 1100px){
  .stats-player-detail-layout,
  .rank-analyzer-layout,
  .stats-score-grid{
    grid-template-columns:1fr;
  }
  .stats-player-detail-layout__sidebar{
    align-items:center;
  }
  .stats-player-detail-layout__sidebar > .stats-filter-card,
  .stats-player-detail-layout__sidebar > .stats-player-card{
    margin-left:auto;
    margin-right:auto;
  }
  .rank-player-list__body{max-height:260px;}
  .rank-graph-stage{padding:16px 14px 164px 88px; min-height:590px;}
  .rank-graph-time-filter{left:88px; right:14px;}
  .rank-graph-y-filter{width:68px;}
  .rank-graph-y-filter__control{padding:6px 4px;}
  .rank-graph-y-filter__title,
  .rank-graph-y-filter__value,
  .rank-graph-time-filter__title,
  .rank-graph-time-filter__value{font-size:11px;}
}


@media (max-width: 900px){
  .stats-player-summary{
    grid-template-columns:1fr;
  }
}



.section-title-box h2,
.section-title-box--stats h2{
  color:#ffffff !important;
  text-shadow:0 2px 10px rgba(0,0,0,.42);
}

.stats-overview-card,
.stats-player-card,
.stats-rounds-card{
  border-radius:18px;
  overflow:hidden;
}

.stats-score-column,
.stats-placement-card,
.stats-rounds-table-wrap{
  border-radius:16px;
  overflow:hidden;
}

.stats-score-column{
  border:1px solid #d5e0eb;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.stats-score-column__title,
.stats-placement-card__title,
.stats-rounds-table thead th{
  background:linear-gradient(rgba(0,0,0,.10), rgba(0,0,0,.10)), #d7e4f0 !important;
  color:#1f2937 !important;
  text-shadow:0 1px 3px rgba(255,255,255,.38) !important;
  border-bottom:1px solid #c4d3e2;
}
.stats-score-row:nth-child(odd),
.stats-rounds-table tbody tr:nth-child(odd){
  background:#fff8e7;
}
.stats-score-row:nth-child(even),
.stats-rounds-table tbody tr:nth-child(even){
  background:#eef5fb;
}
.stats-rounds-panel{
  display:flex;
  flex-direction:column;
  gap:18px;
  align-items:center;
}
.stats-rounds-card{
  width:min(100%, 820px);
  background:rgba(248,252,255,.96);
  border:1px solid rgba(152,175,201,.55);
  box-shadow:0 16px 30px rgba(15,23,42,.12);
  padding:18px 20px 20px;
}
.stats-rounds-card__header{
  display:flex;
  justify-content:center;
  margin-bottom:16px;
}
.stats-rounds-summary,
.stats-rounds-empty{
  text-align:center;
  color:#3d5268;
  margin-bottom:14px;
}
.stats-rounds-table-wrap{
  border:1px solid #d5e0eb;
  background:#ffffff;
}
.stats-rounds-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}
.stats-rounds-table thead th{
  padding:11px 14px;
  font-weight:700;
  text-align:left;
}
.stats-rounds-table tbody td{
  padding:10px 14px;
  border-bottom:1px solid #dde7f1;
  color:#1f2937;
}
.stats-rounds-table tbody tr:last-child td{
  border-bottom:none;
}
.stats-rounds-table tbody td:last-child{
  font-variant-numeric:tabular-nums;
}
.stats-rounds-table--compare tbody td{
  font-weight:400 !important;
  text-align:center !important;
}
.stats-rounds-table--compare tbody td:last-child{
  font-weight:400 !important;
  text-align:center !important;
}
.stats-score-date{
  color:#61758a;
  font-size:12px;
  white-space:nowrap;
  text-decoration:none;
}
.stats-score-date:hover{text-decoration:underline;}
@media (max-width: 900px){
  .stats-score-grid{grid-template-columns:1fr;}
  .stats-player-detail-layout{grid-template-columns:1fr;}
}


.stats-player-search-form--rounds{
  flex-direction:column;
  align-items:center;
}
.stats-player-search-form__multiselect{
  width:min(100%, 360px);
  min-width:280px;
  min-height:190px !important;
}
.stats-player-search-form__hint{
  font-size:13px;
  color:#dbe8f4;
}
.stats-rounds-card{
  width:min(100%, 1180px);
}
.stats-rounds-table--compare thead th,
.stats-rounds-table--compare tbody td{
  text-align:center;
}
.stats-rounds-table--compare thead th:first-child,
.stats-rounds-table--compare tbody td:first-child{
  text-align:left;
}
.stats-rounds-player-head{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.stats-rounds-player-head__name{
  color:#163650;
  font-weight:700;
  text-decoration:none;
}
.stats-rounds-player-head__name:hover{
  text-decoration:underline;
}
.stats-rounds-player-head__count{
  font-size:12px;
  color:#4b6074;
  font-weight:600;
}


/* Pelaajat- ja Asetukset-näkymien otsikot samaan siniseen tyyliin */
.players-table > tr:first-child > td,
.players-table > tbody > tr:first-child > td{
  background:#003192 !important;
  background-image:none !important;
  color:#f8fbff !important;
  text-shadow:none !important;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.players-table > tr:first-child > td h2,
.players-table > tbody > tr:first-child > td h2{
  color:#eff6ff !important;
  text-shadow:0 2px 10px rgba(0,0,0,.42) !important;
}
.settings-panel-header{
  margin:-18px -18px 14px -18px;
  padding:10px 12px;
  background:#003192;
  border-radius:18px 18px 0 0;
  text-align:center;
}
.settings-panel-header h2{
  margin:0;
  color:#eff6ff;
  text-shadow:0 2px 10px rgba(0,0,0,.42);
}


/* Pelaajat-listan otsikko varmasti samaan siniseen tyyliin */
.players-wrap .players-table tr:first-child,
.players-wrap .players-table > tbody > tr:first-child{
  background:#003192 !important;
  background-image:none !important;
}
.players-wrap .players-table tr:first-child > td[colspan],
.players-wrap .players-table > tbody > tr:first-child > td[colspan],
.players-wrap .players-table tr:first-child > td,
.players-wrap .players-table > tbody > tr:first-child > td{
  background:#003192 !important;
  background-image:none !important;
  color:#f8fbff !important;
  text-align:center !important;
}
.players-wrap .players-table tr:first-child > td h2,
.players-wrap .players-table > tbody > tr:first-child > td h2{
  color:#eff6ff !important;
  text-shadow:0 2px 10px rgba(0,0,0,.42) !important;
}

.game-score-layout{
  --game-shared-width:min(100%, 980px);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  width:100%;
  max-width:var(--game-shared-width);
  margin:12px auto 10px;
}
.game-score-layout__table{
  min-width:0;
  width:100%;
  display:flex;
  justify-content:center;
}
.game-score-layout__table .game-score-table{
  margin:0 auto !important;
  width:auto !important;
  max-width:100%;
}
.game-chat-wrap{
  width:100%;
  max-width:var(--game-shared-width, min(100%, 980px));
  margin:12px auto 18px;
  box-sizing:border-box;
}
.game-chat-panel{
  width:100%;
  min-width:0;
  background:rgba(255,255,255,.96);
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:var(--shadow);
  overflow:hidden;
  font-size:13px;
}
.game-chat-panel__header{
  background:#003192;
  color:#eff6ff;
  padding:12px 14px 11px;
}
.game-chat-panel__header h2{color:#fff;margin:0 0 3px 0;font-size:16px;text-shadow:0 2px 10px rgba(0,0,0,.36);}
.game-chat-panel__sub{font-size:11px;opacity:.9;line-height:1.35;}
.game-chat-notice{margin:10px 12px 0;padding:8px 10px;border-radius:12px;font-weight:700;font-size:12px;}
.game-chat-notice--success{background:#dff5e8;color:#1f5f38;}
.game-chat-notice--error{background:#fde4e4;color:#9b2c2c;}
.game-chat-list{padding:10px;display:flex;flex-direction:column;gap:8px;max-height:720px;overflow:auto;background:#f7fbff;}
.game-chat-empty,.game-chat-login-note{padding:12px;color:var(--muted);text-align:center;font-size:12px;}
.game-chat-message{
  min-width:0;
  background:#fff;
  border:1px solid #dce7f2;
  border-radius:14px;
  padding:8px 10px;
  box-shadow:0 4px 12px rgba(20,35,60,.05);
}
.game-chat-message,
.game-chat-message *{
  writing-mode:horizontal-tb;
  text-orientation:mixed;
}
.game-chat-message__meta{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:5px;}
.game-chat-message__sender{font-weight:800;color:#183b62;font-size:14px;}
.game-chat-message__time{font-size:11px;color:#607086;white-space:nowrap;}
.game-chat-message__text{
  display:block;
  min-width:0;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:normal;
  color:#1f2937;
  line-height:1.45;
  font-size:13px;
}
.game-chat-attachment{display:flex;flex-direction:column;gap:6px;align-items:flex-start;margin-top:8px;min-width:0;}
.game-chat-attachment__image-link{display:inline-flex;max-width:100%;flex:0 0 auto;}
.game-chat-attachment__thumb{
  display:block;
  width:auto;
  height:auto;
  max-width:min(100%, 400px);
  max-height:260px;
  object-fit:contain;
  border-radius:12px;
  border:1px solid #d6e1ec;
  box-shadow:0 2px 8px rgba(20,35,60,.08);
  background:#fff;
}
.game-chat-attachment__meta{display:flex;flex-direction:column;gap:3px;min-width:0;max-width:100%;}
.game-chat-attachment__meta a{font-weight:700;word-break:break-word;font-size:12px;}
.game-chat-attachment__meta span{font-size:11px;color:#607086;}
.game-chat-form{padding:10px;border-top:1px solid #e2ebf4;background:#fff;}
.game-chat-form textarea{width:100%;min-height:64px;resize:vertical;font-size:13px;padding:8px 10px;}
.game-chat-form__actions{display:flex;gap:8px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-top:8px;}
.game-chat-file-input{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 12px;
  border:2px dashed #9ab8dc;
  border-radius:14px;
  background:#f5f9ff;
  color:#1f4d7c;
  font-weight:700;
  font-size:12px;
  cursor:pointer;
  overflow:hidden;
}
.game-chat-file-input input[type="file"]{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}
.game-chat-help{margin-top:8px;font-size:11px;color:#607086;line-height:1.35;}
@media (max-width: 1260px){
  .game-score-layout{grid-template-columns:1fr;}
  .game-chat-list{max-height:none;}
}


.stats-score-column--player-card .stats-score-points{
  font-size:13px;
  font-weight:600;
}
.stats-score-column--player-card .stats-score-player{
  font-size:13px;
  font-weight:600;
}
.stats-score-column--player-card .stats-score-date{
  font-size:12px;
}


.game-score-layout{
  gap:12px;
  width:100%;
  max-width:var(--game-shared-width);
}
.game-score-layout__table{
  min-width:0;
  width:100%;
  display:flex;
  justify-content:center;
}
.game-score-shell{
  min-width:0;
  position:relative;
  width:100%;
  display:flex;
  justify-content:center;
}
.game-score-title-cell{
  position:relative;
  padding:14px 72px 14px 14px;
}
.game-score-title-cell h2{
  margin:0 0 4px;
}
.game-score-title-fullscreen-btn{
  position:absolute;
  top:10px;
  right:10px;
}
.game-score-shell__floating-actions{
  display:none;
  position:sticky;
  top:0;
  z-index:20;
  width:100%;
  padding:0;
  margin:0;
  pointer-events:none;
}
.game-score-floating-exit{
  display:inline-flex;
  margin:0;
  pointer-events:auto;
}
.game-panel-fullscreen-btn{
  min-height:34px;
  padding:7px 12px;
  font-size:12px;
  border-radius:999px;
}
.game-score-shell .game-score-table{
  margin:0 auto !important;
  width:auto !important;
  max-width:100%;
}
.game-chat-panel{
  align-self:start;
  width:100%;
  max-width:100%;
  display:flex;
  flex-direction:column;
  box-sizing:border-box;
}
.game-chat-panel__header{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.game-chat-panel__header-main{min-width:0;flex:1 1 auto;}
.game-chat-panel__header-actions{flex:0 0 auto;}
.game-chat-fullscreen-score{display:none;}
.game-chat-fullscreen-score.is-active{display:block;padding:10px 12px 6px;background:#f4f8fe;border-bottom:1px solid #dde7f1;overflow:auto;}
.game-chat-fullscreen-score.is-active .game-score-shell{width:100%;height:auto;padding:0;overflow:visible;background:transparent;}
.game-chat-fullscreen-score.is-active .game-score-table{margin:0 auto !important;width:auto !important;max-width:100%;}
.game-chat-fullscreen-score.is-active .game-score-table input,
.game-chat-fullscreen-score.is-active .game-score-table textarea{font-size:16px !important;}
.game-chat-fullscreen-score.is-active .game-score-title-fullscreen-btn{display:none !important;}
.game-chat-fullscreen-score.is-active .game-score-table > tbody > tr:first-child{display:none;}
.game-chat-fullscreen-score.is-active{padding:6px 8px 4px;background:#f4f8fe;border-bottom:1px solid #dde7f1;}
.game-chat-fullscreen-score__inner{max-height:min(26vh, 220px);overflow:auto;}
.game-chat-fullscreen-score.is-active .game-score-table--compact-readonly{margin:0 auto !important;width:auto !important;max-width:100%;border-collapse:separate;}
.game-chat-fullscreen-score.is-active .game-score-table--compact-readonly > tbody > tr:nth-child(-n+3),
.game-chat-fullscreen-score.is-active .game-score-table--compact-readonly > tbody > tr:nth-last-child(-n+4){display:none;}
.game-chat-fullscreen-score__inner--show-all .game-score-table--compact-readonly > tbody > tr:nth-child(-n+3),
.game-chat-fullscreen-score__inner--show-all .game-score-table--compact-readonly > tbody > tr:nth-last-child(-n+4){display:table-row;}
.game-chat-fullscreen-score.is-active .game-score-table--compact-readonly td{padding:2px 3px !important;font-size:11px;line-height:1.05;white-space:nowrap;vertical-align:middle;}
.game-chat-fullscreen-score.is-active .game-score-table--compact-readonly td:first-child{font-size:10px;font-weight:700;}
.game-chat-fullscreen-score.is-active .game-score-readonly-field{display:inline-block;min-width:2.1em;padding:0 1px;font-size:11px;font-weight:700;line-height:1.05;color:inherit;background:transparent;border:0;}
.game-chat-fullscreen-score.is-active .game-score-readonly-field--multiline{display:block;white-space:normal;text-align:left;}
.game-chat-mini-score{
  display:none;
  padding:10px 12px 8px;
  border-bottom:1px solid #dde7f1;
  background:#f4f8fe;
}
.game-chat-mini-score__title{
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#35567e;
  margin-bottom:6px;
}
.game-chat-mini-score__table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  table-layout:fixed;
}
.game-chat-mini-score__table th,
.game-chat-mini-score__table td{
  border:1px solid #d6e1ec;
  padding:5px 4px;
  text-align:center;
  font-size:11px;
}
.game-chat-mini-score__table th{
  background:#ffffff;
  color:#163a61;
  font-weight:700;
}
.game-chat-mini-score__table td{
  background:#fff7df;
  color:#2b3848;
  font-weight:700;
}
.game-chat-mini-score__empty{
  font-size:11px;
  color:#607086;
}
.game-chat-list{
  max-height:640px;
}
.game-chat-panel.is-fullscreen .game-chat-fullscreen-score,
.game-chat-panel.is-fullscreen-fallback .game-chat-fullscreen-score{
  display:block;
}
.game-chat-form textarea{
  min-height:56px;
  font-size:12px;
}
.game-chat-panel.is-fullscreen,
.game-chat-panel.is-fullscreen-fallback,
.game-score-shell.is-fullscreen,
.game-score-shell.is-fullscreen-fallback{
  background:#fff;
}
.game-chat-panel.is-fullscreen,
.game-chat-panel.is-fullscreen-fallback{
  width:100%;
  max-width:none;
  height:100%;
  max-height:none;
  border-radius:0;
  display:flex;
  flex-direction:column;
}
.game-chat-panel.is-fullscreen-fallback,
.game-score-shell.is-fullscreen-fallback{
  background:#fff;
}
.game-chat-panel.is-fullscreen .game-chat-list,
.game-chat-panel.is-fullscreen-fallback .game-chat-list{
  max-height:none;
  height:auto;
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
}
.game-chat-panel.is-fullscreen .game-chat-form,
.game-chat-panel.is-fullscreen-fallback .game-chat-form{
  margin-top:auto;
}
.game-score-shell.is-fullscreen,
.game-score-shell.is-fullscreen-fallback{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  padding:18px 12px 12px;
  overflow:auto;
  box-sizing:border-box;
}
.game-score-shell.is-fullscreen .game-score-panel__toolbar,
.game-score-shell.is-fullscreen-fallback .game-score-panel__toolbar{
  position:sticky;
  top:0;
  z-index:6;
  padding:4px 0 10px;
  background:#fff;
}
.game-score-shell.is-fullscreen .game-score-shell__floating-actions,
.game-score-shell.is-fullscreen-fallback .game-score-shell__floating-actions{
  display:block;
  position:fixed;
  top:14px;
  right:16px;
  width:auto;
  padding:0;
  margin:0;
  z-index:10001;
  pointer-events:none;
}
.game-score-shell.is-fullscreen .game-score-title-fullscreen-btn,
.game-score-shell.is-fullscreen-fallback .game-score-title-fullscreen-btn{
  display:none !important;
}
.game-score-shell.is-fullscreen .game-score-floating-exit,
.game-score-shell.is-fullscreen-fallback .game-score-floating-exit{
  width:auto;
  max-width:none;
}
.game-score-shell.is-fullscreen .game-score-table,
.game-score-shell.is-fullscreen-fallback .game-score-table{
  margin:0 auto !important;
}
.game-score-shell.is-fullscreen .game-score-table > tbody > tr:nth-child(-n+3),
.game-score-shell.is-fullscreen-fallback .game-score-table > tbody > tr:nth-child(-n+3){
  display:none;
}
.game-score-shell.is-fullscreen .game-score-table input,
.game-score-shell.is-fullscreen-fallback .game-score-table input{
  font-size:22px !important;
  min-height:44px;
}
.game-score-shell.is-fullscreen .game-score-table td,
.game-score-shell.is-fullscreen-fallback .game-score-table td{
  padding:6px 5px;
}
.game-score-shell.is-fullscreen .game-score-table td:first-child,
.game-score-shell.is-fullscreen-fallback .game-score-table td:first-child{
  font-size:15px;
  white-space:nowrap;
}
.game-score-shell.is-fullscreen-fallback,
.game-chat-panel.is-fullscreen-fallback{
  position:fixed !important;
  inset:0 !important;
  z-index:9999 !important;
  margin:0 !important;
}
body.game-panel-fullscreen-active{
  overflow:hidden;
}
@media (max-width: 1260px){
  .game-score-layout{grid-template-columns:1fr;}
  .game-chat-panel{max-width:none;}
}
@media (max-width: 760px){
  .game-panel-fullscreen-btn{width:100%;}
  .game-score-title-cell{
    padding:14px 78px 12px 12px;
    text-align:left !important;
  }
  .game-score-title-cell h2{
    text-align:left;
    margin-right:0;
  }
  .game-score-title-fullscreen-btn{
    left:auto;
    right:10px;
    top:10px;
    width:auto !important;
    max-width:calc(100% - 20px);
    min-height:28px;
    padding:5px 10px;
    font-size:11px;
    white-space:nowrap;
  }
  .game-chat-panel__header{flex-direction:column;align-items:stretch;}
  .game-chat-panel__header-actions .game-panel-fullscreen-btn{width:100%;}
  .game-score-shell.is-fullscreen .game-score-shell__floating-actions,
  .game-score-shell.is-fullscreen-fallback .game-score-shell__floating-actions{top:10px;right:10px;}
  .game-score-shell.is-fullscreen .game-score-floating-exit,
  .game-score-shell.is-fullscreen-fallback .game-score-floating-exit{
    width:auto !important;
    min-height:28px;
    padding:5px 10px;
    font-size:11px;
    white-space:nowrap;
  }
}


/* Pelaajatilastojen tilastokortin tekstikoot ja viimeisimpien pelien pallurat */
.stats-player-card__header{
  text-align:center;
}
.stats-player-card__name{
  font-size:22px;
  line-height:1.15;
}
.stats-player-card__facts{
  font-size:12px;
}
.stats-player-card__recent-form{
  display:flex;
  justify-content:center;
  align-items:center;
  margin:6px 0 2px;
}
.stats-player-card__recent-form .rank-recent-balls{
  min-height:16px;
  gap:6px;
}
.stats-player-card__recent-form .rank-recent-ball{
  width:11px;
  height:11px;
}
.stats-player-summary{
  gap:10px;
}
.stats-player-summary__item{
  padding:10px 10px;
}
.stats-player-summary__label{
  font-size:11px;
  line-height:1.2;
}
.stats-player-summary__value{
  display:block;
  font-size:15px;
  line-height:1.15;
  white-space:nowrap;
}
.stats-player-summary__item:last-child .stats-player-summary__value,
.stats-player-summary__item:last-child .stats-player-summary__label{
  font-size:10px;
}
.stats-player-summary__item:last-child .stats-player-summary__value{
  font-size:14px;
}
.stats-player-card .stats-score-column__title,
.stats-player-card .stats-placement-card__title{
  font-size:14px;
}
.stats-player-card .stats-score-row{
  font-size:12px;
}
.stats-player-card .stats-score-date,
.stats-player-card .stats-score-player,
.stats-player-card .stats-score-points{
  font-size:12px !important;
}

@media (max-width: 900px){
  .stats-player-card__name{font-size:20px;}
  .stats-player-summary__value{white-space:normal;}
}


/* Tilastokortin lopulliset hienosäädöt */
.stats-player-card__header{
  gap:6px;
  margin-bottom:10px;
}
.stats-player-card__name{
  font-size:20px !important;
  line-height:1.1;
}
.stats-player-card__facts{
  display:block;
  font-size:11px !important;
  line-height:1.2;
  margin-top:1px;
}
.stats-player-card__recent-form{
  display:flex;
  justify-content:center;
  align-items:center;
  margin:2px 0 0;
  min-height:18px;
}
.stats-player-card__recent-form .rank-recent-balls{
  display:inline-flex !important;
  justify-content:center;
  align-items:center;
  gap:7px;
  min-height:16px;
  padding:1px 0;
}
.stats-player-card__recent-form .rank-recent-ball{
  width:12px !important;
  height:12px !important;
  border-radius:50%;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55), 0 0 0 1px rgba(17,43,69,.20), 0 1px 2px rgba(0,0,0,.18);
  flex:0 0 12px;
}
.stats-placement-card--summary-top{
  margin:0 0 12px;
}
.stats-player-summary{
  gap:10px;
  margin-bottom:14px;
}
.stats-player-summary__item{
  padding:8px 10px;
}
.stats-player-summary__label{
  font-size:10px !important;
  line-height:1.15;
}
.stats-player-summary__value{
  font-size:13px !important;
  line-height:1.1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.stats-player-card .stats-score-column__title,
.stats-player-card .stats-placement-card__title{
  font-size:13px !important;
}
.stats-player-card .stats-score-row{
  font-size:11px !important;
}
.stats-player-card .stats-score-date,
.stats-player-card .stats-score-player,
.stats-player-card .stats-score-points{
  font-size:11px !important;
  line-height:1.15;
}
.stats-player-card .stats-placement-row__label,
.stats-player-card .stats-placement-row__value{
  font-size:11px;
}
@media (max-width: 900px){
  .stats-player-card__name{font-size:18px !important;}
  .stats-player-summary__value{font-size:12px !important;white-space:normal;}
}

.game-score-shell.is-embedded-in-chat-fullscreen{display:flex;justify-content:center;}
.game-chat-panel.is-fullscreen .game-chat-form,
.game-chat-panel.is-fullscreen-fallback .game-chat-form{padding-bottom:calc(10px + env(safe-area-inset-bottom, 0px));}


@media (max-width: 640px){
  .game-score-layout{
    --game-shared-width:calc(100vw - 12px);
    margin:8px auto 8px;
    gap:8px;
  }
  .game-score-layout__table,
  .game-score-shell{
    width:100%;
  }
  .game-score-shell .game-score-table,
  .game-score-layout__table .game-score-table{
    width:100% !important;
    max-width:100% !important;
    table-layout:fixed;
  }
  .game-score-table tr > td{
    padding:3px 2px;
    font-size:12px;
    line-height:1.15;
  }
  .game-score-table tr:not(:first-child) > td:first-child{
    width:100px;
    min-width:100px;
    font-size:11px;
    line-height:1.1;
    white-space:normal;
    word-break:break-word;
  }
  .game-score-table tr > td:last-child{
    width:36px;
    min-width:36px;
  }
  .game-score-table input[type="text"]{
    width:100%;
    min-width:0;
    max-width:42px;
    padding:3px 1px;
    font-size:16px !important;
    line-height:1.05;
    box-sizing:border-box;
    text-align:center;
  }
  .game-score-table textarea{
    width:100%;
    min-height:72px;
    box-sizing:border-box;
    font-size:14px;
  }
  .game-score-table tr:first-child h2{
    font-size:18px;
    line-height:1.15;
  }
  .game-score-title-cell{
    padding-right:14px;
  }
  .game-score-table td[bgcolor="#99CCFF"][align="right"],
  .game-score-table td[bgcolor="#D9D9D9"][align="right"],
  .game-score-table td[bgcolor="gray"][align="center"]{
    font-size:11px;
  }
}

@media (max-width: 420px){
  .game-score-layout{
    --game-shared-width:calc(100vw - 8px);
  }
  .game-score-table tr > td{
    padding:2px 1px;
    font-size:11px;
  }
  .game-score-table tr:not(:first-child) > td:first-child{
    width:88px;
    min-width:88px;
    font-size:10px;
  }
  .game-score-table tr > td:last-child{
    width:32px;
    min-width:32px;
  }
  .game-score-table input[type="text"]{
    max-width:36px;
    padding:2px 0;
    font-size:16px !important;
  }
  .game-score-table textarea{
    min-height:64px;
    font-size:13px;
  }
  .game-score-table tr:first-child h2{
    font-size:16px;
  }
}


.stats-score-grid--overview{
  width:min(100%, 860px);
  margin:0 auto;
  gap:14px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
}
.stats-score-column--overview{
  max-width:420px;
  margin:0 auto;
}
.stats-score-column--overview .stats-score-column__title{
  padding:9px 12px;
}
.stats-score-column--overview .stats-score-row{
  grid-template-columns:76px minmax(0,1fr);
  gap:10px;
  padding:7px 10px;
}
.stats-score-column--overview .stats-score-meta{
  gap:6px;
}
.stats-score-column--overview .stats-score-points{
  font-size:14px;
}
.stats-score-column--overview .stats-score-player{
  font-size:14px;
}
.stats-score-column--overview .stats-score-date{
  font-size:11px;
}
@media (max-width: 900px){
  .stats-score-grid--overview{
    width:min(100%, 780px);
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px){
  .stats-score-grid--overview{
    grid-template-columns:1fr;
    width:min(100%, 420px);
  }
}

.live-game-list-badge{display:inline-flex;align-items:center;gap:6px;margin-bottom:8px;padding:4px 10px;border-radius:999px;background:#173f6b;color:#fff7dc;font-size:12px;font-weight:700;}
.live-game-list-badge--active{background:#f97316;color:#fff;box-shadow:0 4px 10px rgba(249,115,22,.28);}
#live-game-player-status{font-size:12px;color:#183b62;}
.new-game-submit-button:disabled{opacity:.55;cursor:not-allowed;}
.live-game-view{
  position:relative;
  min-height:calc(100vh - 120px);
  margin:0 auto 28px;
  padding:16px;
  border-radius:28px;
  background:radial-gradient(circle at 50% 45%, rgba(40,118,73,.96) 0%, rgba(18,78,49,.96) 38%, rgba(9,39,25,.98) 100%);
  box-shadow:0 20px 48px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.08);
  color:#f8fbff;
  overflow:hidden;
}
.live-game-view__topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;}
.live-game-view__brand img{display:block;width:auto;height:64px;object-fit:contain;}
.live-game-view__actions{display:flex;flex-direction:column;align-items:flex-end;gap:4px;}
.live-game-view__action-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.live-game-view__meta{font-size:12px;color:rgba(255,255,255,.78);text-shadow:0 1px 2px rgba(0,0,0,.45);}
.live-game-banner{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 auto 18px;padding:10px 14px;border-radius:16px;font-weight:700;background:rgba(0,0,0,.26);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);}
.live-game-banner.is-online{background:rgba(47,158,68,.24);}
.live-game-banner.is-waiting{background:rgba(201,151,0,.22);}
.live-game-banner__done{display:inline-flex;margin-left:auto;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.14);font-size:12px;}
.live-game-stage-wrap{display:flex;justify-content:center;align-items:center;}
.live-game-stage{
  position:relative;
  width:min(100%, 1120px);
  min-height:660px;
  border-radius:38px;
  background:linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,.02) 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);
}
.live-player-seat{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:200px;max-width:240px;padding:12px 16px;border-radius:22px;background:rgba(8,24,17,.6);backdrop-filter:blur(6px);box-shadow:0 12px 28px rgba(0,0,0,.24), inset 0 0 0 1px rgba(255,255,255,.08);text-align:center;z-index:2;}
.live-player-seat.is-self{background:rgba(18,53,97,.82);}
.live-player-seat--bottom{left:50%;bottom:22px;transform:translateX(-50%);}
.live-player-seat--top{left:50%;top:18px;transform:translateX(-50%);}
.live-player-seat--left{left:18px;top:50%;transform:translateY(-50%);}
.live-player-seat--right{right:18px;top:50%;transform:translateY(-50%);}
.live-player-seat__label{font-size:22px;font-weight:800;line-height:1.1;display:flex;gap:8px;flex-wrap:wrap;justify-content:center;align-items:center;}
.live-player-seat__label .online-badge{position:static;margin-left:0;}
.live-player-seat__sub{margin-top:6px;font-size:12px;opacity:.86;letter-spacing:.04em;text-transform:uppercase;}
.live-table-core{
  position:absolute;
  inset:92px 110px 92px 110px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:18px;
  border-radius:50px;
  background:radial-gradient(circle at 50% 50%, rgba(64,143,91,.96) 0%, rgba(21,89,55,.94) 58%, rgba(15,61,39,.98) 100%);
  box-shadow:inset 0 0 0 2px rgba(255,227,139,.25), 0 12px 40px rgba(0,0,0,.22);
}
.live-table-core__title{font-size:28px;font-weight:900;text-shadow:0 3px 16px rgba(0,0,0,.32);}
.live-table-core__subtitle{max-width:720px;font-size:14px;text-align:center;color:rgba(255,255,255,.86);}
.live-table-core__zones{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:16px;width:min(100%, 860px);padding:0 18px;}
.live-zone{padding:16px;border-radius:24px;background:rgba(4,23,14,.35);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);min-height:170px;display:flex;flex-direction:column;justify-content:flex-start;gap:12px;}
.live-zone--wide{min-width:0;}
.live-zone__title{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#ffe18c;}
.live-zone__content{font-size:14px;line-height:1.45;color:rgba(255,255,255,.88);white-space:pre-wrap;word-break:break-word;}
.live-cards,.live-trick-slots{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;min-height:100px;}
.live-cards span,.live-trick-slots span{display:inline-block;width:64px;height:92px;border-radius:12px;background:linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(230,235,244,.95) 100%);box-shadow:0 8px 18px rgba(0,0,0,.22);}
.live-cards span:nth-child(2){transform:translateY(-6px);}
.live-trick-slots span{width:72px;height:104px;background:linear-gradient(180deg, rgba(255,245,214,.98) 0%, rgba(252,238,196,.96) 100%);}
.live-game-footer{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:center;margin-top:18px;padding:12px 2px 2px;color:rgba(255,255,255,.84);font-size:13px;}
.live-order-bubble{padding:8px 10px;border-radius:14px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);font-weight:700;line-height:1.35;}
.live-order-bubble--stack{display:flex;flex-direction:column;align-items:stretch;gap:6px;background:transparent;box-shadow:none;padding:0;}
.live-order-pill{display:flex;align-items:center;justify-content:space-between;min-height:40px;padding:8px 10px;border-radius:14px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);font-size:13px;font-weight:700;line-height:1.2;color:#fff;max-width:100%;width:100%;word-break:break-word;box-sizing:border-box;}
.live-order-arrow{display:none;}
.live-game-footer__hint{opacity:.82;}
@media (max-width: 980px){
  .live-game-stage{min-height:780px;}
  .live-table-core{inset:120px 24px 140px 24px;}
  .live-table-core__zones{grid-template-columns:1fr;}
  .live-player-seat--left{left:12px;top:auto;bottom:150px;transform:none;}
  .live-player-seat--right{right:12px;top:auto;bottom:150px;transform:none;}
}
@media (max-width: 760px){
  .live-game-view{padding:12px;border-radius:20px;}
  .live-game-view__brand img{height:48px;}
  .live-game-view__topbar{flex-direction:column;align-items:flex-start;}
  .live-game-view__actions{align-items:flex-start;}
  .live-game-view__action-row{width:100%;}
  .live-game-banner{flex-direction:column;align-items:flex-start;}
  .live-game-stage{min-height:860px;}
  .live-table-core{inset:150px 12px 180px 12px;border-radius:30px;}
  .live-player-seat{min-width:150px;max-width:180px;padding:10px 12px;}
  .live-player-seat__label{font-size:18px;}
  .live-player-seat--top{top:16px;}
  .live-player-seat--left{left:8px;bottom:184px;}
  .live-player-seat--right{right:8px;bottom:184px;}
  .live-player-seat--bottom{bottom:12px;width:calc(100% - 24px);max-width:none;}
}

/* Live card game stage */
.live-game-app-frame{margin-top:16px;max-width:100%;overflow-x:hidden;overflow-x:clip;}
.live-load-placeholder,.live-load-error{padding:24px 18px;border-radius:18px;background:rgba(5,15,26,.55);color:#fff;text-align:center;font-weight:700;}
.live-game-shell{display:grid;grid-template-columns:minmax(0,1fr) 236px;gap:14px;align-items:start;max-width:100%;}
.live-game-shell__message{grid-column:1 / -1;min-width:0;max-width:100%;}
.live-game-shell__stage,.live-game-shell__sidebar{min-width:0;max-width:100%;}
.live-message-card{padding:12px 14px;border-radius:18px;background:rgba(8,25,42,.62);box-shadow:0 12px 28px rgba(0,0,0,.25), inset 0 0 0 1px rgba(255,255,255,.06);}
.live-message-card--compact{padding:8px 12px 8px;}
.live-message-card__top-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;}
.live-message-card__title-group{display:flex;align-items:center;gap:8px;min-width:0;flex:0 1 auto;}
.live-message-card__turn-slot{display:flex;align-items:center;flex:0 1 auto;min-width:0;}
.live-message-card__progress-slot{display:flex;align-items:center;flex:1 1 320px;min-width:240px;}
.live-message-card__tools{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;margin-left:0;}
.live-message-card__title{font-size:19px;font-weight:900;color:#ffffff;line-height:1;}
.live-message-card__text{margin-top:4px;font-size:14px;font-weight:700;color:#fff6d9;min-height:1.35em;line-height:1.35;}
.live-message-card__text.is-empty{visibility:hidden;}
.live-help-badge{appearance:none;position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;border-radius:999px;background:linear-gradient(180deg,#ffe58a 0%,#f2bc34 100%);box-shadow:0 6px 16px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.55);cursor:pointer;flex:0 0 auto;transition:transform .15s ease,box-shadow .15s ease;}
.live-help-badge:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.62);}
.live-help-badge:focus-visible{outline:3px solid rgba(255,255,255,.94);outline-offset:3px;}
.live-help-badge__icon{font-size:18px;font-weight:900;color:#5a3b00;font-family:Arial,sans-serif;line-height:1;}
.live-round-help-dialog{position:fixed;inset:0;z-index:60000;display:grid;place-items:center;padding:clamp(14px,4vw,42px);}
.live-round-help-dialog__backdrop{position:absolute;inset:0;background:rgba(1,8,16,.76);backdrop-filter:blur(5px);}
.live-round-help-dialog__surface{position:relative;z-index:1;width:min(760px,100%);max-height:min(84vh,760px);overflow:auto;border:1px solid rgba(255,220,116,.42);border-radius:22px;background:linear-gradient(155deg,rgba(17,43,61,.98),rgba(6,20,34,.98));color:#f7fbff;box-shadow:0 28px 80px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.08);}
.live-round-help-dialog__close{appearance:none;position:sticky;float:right;top:12px;right:12px;z-index:2;display:grid;place-items:center;width:38px;height:38px;margin:12px 12px 0 8px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(3,12,22,.74);color:#fff;font-size:25px;line-height:1;cursor:pointer;box-shadow:0 7px 18px rgba(0,0,0,.3);}
.live-round-help-dialog__close:hover{background:rgba(154,35,35,.88);}
.live-round-help-dialog__close:focus-visible{outline:3px solid #ffe07a;outline-offset:2px;}
.live-round-help-dialog__header{padding:24px 68px 14px 28px;border-bottom:1px solid rgba(255,255,255,.1);}
.live-round-help-dialog__header span{display:block;margin-bottom:5px;color:#ffd96e;font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;}
.live-round-help-dialog__header h2{margin:0;color:#fff;font-size:clamp(23px,4vw,32px);line-height:1.1;}
.live-round-help-dialog__body{padding:22px 28px 28px;font-size:16px;line-height:1.62;}
.live-round-help-dialog__body p{margin:0;}
.live-round-help-dialog__body p+p{margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);}
.live-round-help-dialog__body strong{color:#ffd96e;}
.live-scorebook-badge{position:relative;display:inline-flex;align-items:flex-start;justify-content:flex-end;padding-left:6px;cursor:default;flex:0 0 auto;}
.live-scorebook-badge__sheet{position:relative;display:block;width:52px;height:68px;border-radius:8px 10px 9px 9px;background:linear-gradient(180deg,#fbf9ef 0%,#f3efdf 100%);box-shadow:0 10px 20px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.85);border:1px solid rgba(126,102,64,.34);transform:rotate(20deg);overflow:hidden;}
.live-scorebook-badge__spiral{position:absolute;left:7px;top:4px;width:38px;height:7px;border-radius:999px;background:repeating-linear-gradient(90deg,#747d87 0 3px, transparent 3px 7px);opacity:.9;}
.live-scorebook-badge__grid{position:absolute;inset:12px 5px 5px 5px;background:
  repeating-linear-gradient(0deg, rgba(109,155,217,.2) 0 1px, transparent 1px 11px),
  repeating-linear-gradient(90deg, rgba(109,155,217,.14) 0 1px, transparent 1px 11px),
  linear-gradient(90deg, rgba(226,86,86,.35) 0 1px, transparent 1px 100%);
  border-radius:4px;}
.live-scorebook-badge__scribble{position:absolute;font-family:"Comic Sans MS","Bradley Hand",cursive;color:#234d93;font-weight:700;letter-spacing:.02em;z-index:2;pointer-events:none;}
.live-scorebook-badge__scribble--title{left:11px;top:17px;font-size:9px;transform:rotate(-7deg);}
.live-scorebook-badge__scribble--line1{left:12px;top:30px;font-size:10px;transform:rotate(-6deg);}
.live-scorebook-badge__scribble--line2{left:15px;top:42px;font-size:10px;transform:rotate(-3deg);}
.live-scorebook-badge__scribble--line3{left:13px;top:54px;font-size:10px;transform:rotate(-8deg);}
.live-scorebook-badge__tooltip{position:absolute;right:0;top:calc(100% + 12px);min-width:280px;max-width:min(360px, calc(100vw - 44px));padding:12px 12px 10px;border-radius:16px;background:rgba(8,18,30,.97);color:#fff8dc;box-shadow:0 18px 34px rgba(0,0,0,.34);opacity:0;pointer-events:none;transform:translateY(6px);transition:opacity .16s ease, transform .16s ease;z-index:34;}
.live-scorebook-badge:hover .live-scorebook-badge__tooltip{opacity:1;transform:translateY(0);}
.live-scorebook-badge__tooltip-title{display:block;font-size:13px;font-weight:900;color:#fff8dc;}
.live-scorebook-badge__tooltip-round{display:block;margin-top:2px;margin-bottom:8px;font-size:12px;font-weight:700;color:#d8e7ff;}
.live-scorebook-table{width:100%;border-collapse:collapse;font-size:12px;}
.live-scorebook-table th,.live-scorebook-table td{padding:6px 7px;text-align:left;border-bottom:1px solid rgba(255,255,255,.08);}
.live-scorebook-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#ffd86f;}
.live-scorebook-table td:nth-child(n+2),.live-scorebook-table th:nth-child(n+2){text-align:center;}
.live-scorebook-table tbody tr:last-child td{border-bottom:0;}
.live-turn-banner{display:inline-flex;align-items:center;margin-top:0;padding:6px 10px;border-radius:14px;background:rgba(154,255,149,.16);color:#ecffe9;font-size:14px;font-weight:900;box-shadow:inset 0 0 0 1px rgba(167,255,165,.26);white-space:nowrap;}
.live-status-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.live-status-row--inline{margin-top:0;justify-content:flex-start;flex:1 1 auto;}
.live-status-chip{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:12px;font-weight:700;}
@media (max-width: 900px){.live-message-card__top-row{align-items:flex-start;gap:6px;}.live-message-card__progress-slot{flex:1 1 100%;min-width:0;}.live-status-row--inline{justify-content:flex-start;flex:1 1 100%;}}
.live-banner{display:inline-flex;margin-top:10px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;}
.live-banner--waiting{background:rgba(233,177,0,.2);color:#ffe38f;}
.live-banner--active{background:rgba(67,160,71,.2);color:#cbffd6;}
.live-banner--done{background:rgba(106,110,255,.18);color:#d9ddff;}
.live-room-stage{position:relative;min-height:840px;border-radius:34px;overflow:hidden;background:radial-gradient(circle at center, var(--live-table-tone-center,#206748) 0%, var(--live-table-tone-mid,#11402d) 38%, var(--live-table-tone-edge,#0a241a) 70%, var(--live-table-tone-outer,#081810) 100%);box-shadow:0 24px 54px rgba(0,0,0,.34), inset 0 0 0 2px rgba(255,255,255,.05);}
.live-room-stage__felt{position:absolute;inset:0;border-radius:inherit;border:none;box-shadow:none;pointer-events:none;}
.live-room-stage__deck{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;pointer-events:none;}
.live-room-stage__table{position:absolute;left:50%;top:50%;width:min(34vw,300px);height:min(24vw,210px);transform:translate(-50%,-50%);z-index:4;display:flex;align-items:center;justify-content:center;overflow:visible;}
.live-deck-stack{position:relative;width:var(--live-card-width, 110px);height:calc(var(--live-card-width, 110px) * 1.45);} .live-deck-stack--empty{display:none;} .live-deck-stack__empty-label{display:none;}
.live-deck-stack__count{position:absolute;left:50%;bottom:-36px;transform:translateX(-50%);padding:5px 10px;border-radius:999px;background:rgba(0,0,0,.45);color:#fff;font-size:12px;font-weight:800;white-space:nowrap;}
.live-deck-card{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;border-radius:12px;box-shadow:0 12px 22px rgba(0,0,0,.35);transform:translate(calc(var(--deck-offset) * 1px), calc(var(--deck-offset) * -1px)) rotate(calc(var(--deck-offset) * -1deg));}
.live-deck-card.is-shuffling{animation:kingiLiveDeckShake 1.1s ease-in-out infinite;animation-delay:calc(var(--deck-offset) * -0.08s);}
.live-deal-layer{position:absolute;inset:0;z-index:5;pointer-events:none;}
.live-deal-card{position:absolute;left:50%;top:50%;width:min(10vw,96px);height:calc(min(10vw,96px) * 1.45);margin-left:calc(min(10vw,96px) * -0.5);margin-top:calc(min(10vw,96px) * -0.72);border-radius:14px;box-shadow:0 12px 24px rgba(0,0,0,.32);opacity:0;animation:kingiLiveDeal var(--deal-duration,2400ms) ease-out forwards;animation-delay:var(--deal-delay,0ms);}
.live-deal-card--bottom{--deal-x:0px;--deal-y:300px;--deal-r:0deg;}
.live-deal-card--top{--deal-x:0px;--deal-y:-300px;--deal-r:180deg;}
.live-deal-card--left{--deal-x:-360px;--deal-y:120px;--deal-r:-90deg;}
.live-deal-card--right{--deal-x:360px;--deal-y:120px;--deal-r:90deg;}
@keyframes kingiLiveDeal{0%{opacity:1;transform:translate(0,0) rotate(0deg) scale(1);}70%{opacity:1;}100%{opacity:.0;transform:translate(var(--deal-x),var(--deal-y)) rotate(var(--deal-r)) scale(.96);}}

@keyframes kingiLiveDeckShake{0%,100%{transform:translate(calc(var(--deck-offset) * 1px), calc(var(--deck-offset) * -1px)) rotate(-2deg);}25%{transform:translate(calc(var(--deck-offset) * 2px + 8px), calc(var(--deck-offset) * -1px - 4px)) rotate(8deg);}50%{transform:translate(calc(var(--deck-offset) * -1px - 8px), calc(var(--deck-offset) * -1px + 6px)) rotate(-10deg);}75%{transform:translate(calc(var(--deck-offset) * 1px + 5px), calc(var(--deck-offset) * -1px + 3px)) rotate(5deg);}}
.live-seat{--live-card-width:clamp(38px, calc((100vw - 280px) / 9), 70px);position:absolute;display:flex;flex-direction:column;gap:8px;min-width:160px;max-width:min(92vw, 720px);padding:8px 10px 10px;border-radius:20px;background:rgba(8,22,18,.58);backdrop-filter:blur(4px);box-shadow:0 12px 24px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.06);z-index:6;}
.live-seat.is-self{background:rgba(17,43,75,.82);}
.live-seat.is-last-winner{box-shadow:0 0 0 2px rgba(255,228,128,.38), 0 16px 30px rgba(0,0,0,.32), inset 0 0 0 1px rgba(255,255,255,.08);}
.live-seat.is-current-turn{box-shadow:0 0 0 3px rgba(166,255,158,.52), 0 0 24px rgba(137,255,120,.18), 0 16px 30px rgba(0,0,0,.32), inset 0 0 0 1px rgba(255,255,255,.12);}
.live-seat--bottom{left:50%;bottom:10px;transform:translateX(-50%);width:min(96vw, 1220px);}
.live-seat--top{left:50%;top:10px;transform:translateX(-50%);min-width:220px;}
.live-seat--left{left:10px;top:50%;transform:translateY(-50%);min-width:130px;max-width:156px;}
.live-seat--right{right:10px;top:50%;transform:translateY(-50%);min-width:130px;max-width:156px;}
.live-seat__header,.live-seat__footer{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap;} .live-seat__name-wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap;} .live-seat__tricks{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:rgba(255,215,112,.18);color:#fff1b8;font-size:11px;font-weight:900;box-shadow:inset 0 0 0 1px rgba(255,230,150,.16);}
.live-seat__name{font-size:15px;font-weight:900;color:#fff7d4;line-height:1.05;}
.live-seat__badges{display:flex;flex-wrap:wrap;gap:6px;}
.live-seat-badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;}
.live-seat-badge--online{background:rgba(46,204,113,.18);color:#beffd3;}
.live-seat-badge--offline{background:rgba(255,87,87,.16);color:#ffd0d0;}
.live-seat-badge--present{background:rgba(101,164,255,.2);color:#dce7ff;}
.live-seat-badge--waiting{background:rgba(255,209,71,.18);color:#fff0bc;}
.live-seat-badge--turn{background:rgba(255,245,157,.25);color:#fff8cf;}
.live-hand{display:flex;align-items:flex-end;position:relative;min-height:110px;}
.live-hand--self{display:flex;justify-content:center;align-items:flex-end;flex-wrap:nowrap;overflow-x:visible;overflow-y:visible;width:100%;padding:18px 18px 10px;gap:0;min-height:170px;}
.live-hand--backs{display:block;overflow:visible;--fan-size:calc(var(--live-card-width, 110px) * 2.25);width:var(--fan-size);height:var(--fan-size);min-height:var(--fan-size);}
.live-hand--top{margin:0 auto 4px;}
.live-hand--left,.live-hand--right{margin:0 auto;}
.live-seat--bottom .live-seat__body{width:100%;display:flex;justify-content:center;}
.live-seat--bottom .live-card-button{flex:0 1 auto;display:flex;justify-content:center;align-items:flex-end;margin-right:calc(clamp(118px, 10.6vw, var(--live-self-card-width, 132px)) * -0.09);min-width:0;position:relative;z-index:calc(var(--fan-index, 0) + 1);}
.live-seat--bottom .live-card-button:last-child{margin-right:0;}
.live-seat--bottom .live-card{width:clamp(118px, 10.6vw, var(--live-self-card-width, 132px));height:calc(clamp(118px, 10.6vw, var(--live-self-card-width, 132px)) * 1.45);transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * 1.6deg));transform-origin:center bottom;}
.live-seat--bottom .live-card-button:hover{transform:translateY(-6px);z-index:40;}
.live-seat--bottom .live-card-button.is-selected{transform:translateY(-16px) scale(1.04);z-index:50;}
.live-card-button{position:relative;flex:0 0 auto;padding:0;margin-right:calc(var(--live-card-width, 110px) * -0.18);border:0;background:transparent;cursor:pointer;transition:transform .18s ease;}
.live-card-button:last-child{margin-right:0;}
.live-card-button:hover{transform:translateY(-4px);}
.live-card-button.is-selected{transform:translateY(-14px) scale(1.035);z-index:3;}
.live-card-button.is-disabled{cursor:default;opacity:.92;}
.live-card-button.is-disabled:hover{transform:none;}
.live-card{display:block;width:var(--live-card-width, 110px);height:calc(var(--live-card-width, 110px) * 1.45);border-radius:0;object-fit:contain;box-shadow:0 8px 15px rgba(0,0,0,.26);background:transparent;}
.live-card--back{position:absolute;left:50%;top:50%;z-index:calc(var(--fan-index) + 1);margin:0;}
.live-hand--top .live-card--back{transform-origin:88% 100%;transform:translate(-88%, -88%) rotate(calc(var(--fan-start, 45deg) + (var(--fan-spread, 90deg) * var(--fan-index) / max(1, calc(var(--fan-count) - 1)))));}
.live-hand--left .live-card--back{transform-origin:100% 88%;transform:translate(-78%, -50%) rotate(calc(var(--fan-start, 135deg) + (var(--fan-spread, 90deg) * var(--fan-index) / max(1, calc(var(--fan-count) - 1)))));}
.live-hand--right .live-card--back{transform-origin:0% 88%;transform:translate(-22%, -50%) rotate(calc(var(--fan-start, 135deg) + (var(--fan-spread, 90deg) * var(--fan-index) / max(1, calc(var(--fan-count) - 1)))));}

.live-room-stage__table{position:absolute;left:50%;top:50%;width:min(34vw,300px);height:min(24vw,210px);transform:translate(-50%,-50%);z-index:6;display:flex;align-items:center;justify-content:center;overflow:visible;}
.live-previous-trick-toggle{position:absolute;right:12px;bottom:10px;display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid rgba(255,224,143,.58);border-radius:999px;background:linear-gradient(180deg,rgba(42,19,6,.92) 0%,rgba(20,9,3,.94) 100%);color:#ffe8ab;font-weight:900;font-size:12px;letter-spacing:.02em;box-shadow:0 10px 22px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.12);cursor:pointer;z-index:8;}
.live-previous-trick-toggle:hover{transform:translateY(-1px);}
.live-previous-trick-toggle.is-open{background:linear-gradient(180deg,rgba(78,39,9,.96) 0%,rgba(31,15,5,.98) 100%);box-shadow:0 12px 24px rgba(0,0,0,.34), 0 0 0 1px rgba(255,228,142,.16), inset 0 1px 0 rgba(255,255,255,.14);}
.live-previous-trick-toggle__icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 30%, #fef1b5 0%, #d6a53a 45%, #7b4b0c 100%);color:#4a2d00;box-shadow:0 0 0 1px rgba(108,67,8,.72), inset 0 1px 0 rgba(255,255,255,.42);font-size:14px;line-height:1;}
.live-room-stage.is-showing-previous-trick .live-room-stage__table,.live-room-stage.is-showing-previous-trick .live-turn-compass{opacity:0;visibility:hidden;pointer-events:none;}
.live-room-stage.is-showing-previous-trick .live-previous-trick{pointer-events:auto;}
.live-previous-trick::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center, rgba(7,32,21,.08) 0%, rgba(3,16,10,.20) 58%, rgba(1,8,5,.34) 100%);border-radius:inherit;}
.live-previous-trick__badge{z-index:1;}
.live-previous-trick .live-trick-card{z-index:1;}
.live-previous-trick-toggle{z-index:10;}
.live-previous-trick-toggle__text{white-space:nowrap;}
.live-previous-trick{position:absolute;inset:0;pointer-events:none;z-index:9;cursor:pointer;}
.live-previous-trick__badge{position:absolute;left:50%;top:8px;transform:translateX(-50%);padding:6px 12px;border-radius:999px;background:rgba(8,20,14,.78);color:#fff2c0;font-size:12px;font-weight:900;letter-spacing:.03em;box-shadow:0 8px 16px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,240,188,.12);}
.live-history__item.is-latest-preview{cursor:pointer;transition:transform .16s ease, box-shadow .16s ease, background .16s ease;}
.live-history__item.is-latest-preview:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(0,0,0,.18);background:rgba(255,240,188,.12);}
.live-trick-card--preview{opacity:1;}
.live-previous-trick.is-animating .live-trick-card--preview{animation-duration:720ms;animation-timing-function:cubic-bezier(.2,.8,.2,1);animation-fill-mode:both;animation-delay:var(--preview-delay, 0ms);}
.live-previous-trick.is-animating .live-trick-card--preview.is-previewing-from-bottom{animation-name:kingiLivePreviewFromBottom;}
.live-previous-trick.is-animating .live-trick-card--preview.is-previewing-from-top{animation-name:kingiLivePreviewFromTop;}
.live-previous-trick.is-animating .live-trick-card--preview.is-previewing-from-left{animation-name:kingiLivePreviewFromLeft;}
.live-previous-trick.is-animating .live-trick-card--preview.is-previewing-from-right{animation-name:kingiLivePreviewFromRight;}
@keyframes kingiLivePreviewFromBottom{0%{opacity:0;transform:translate(-50%, calc(-50% + 240px)) scale(.84) rotate(calc(var(--card-rotate) * .2));}100%{opacity:1;transform:translate(-50%,-50%) rotate(var(--card-rotate));}}
@keyframes kingiLivePreviewFromTop{0%{opacity:0;transform:translate(-50%, calc(-50% - 240px)) scale(.84) rotate(calc(var(--card-rotate) * .2));}100%{opacity:1;transform:translate(-50%,-50%) rotate(var(--card-rotate));}}
@keyframes kingiLivePreviewFromLeft{0%{opacity:0;transform:translate(calc(-50% - 240px),-50%) scale(.84) rotate(calc(var(--card-rotate) * .2));}100%{opacity:1;transform:translate(-50%,-50%) rotate(var(--card-rotate));}}
@keyframes kingiLivePreviewFromRight{0%{opacity:0;transform:translate(calc(-50% + 240px),-50%) scale(.84) rotate(calc(var(--card-rotate) * .2));}100%{opacity:1;transform:translate(-50%,-50%) rotate(var(--card-rotate));}}

.live-trick-card{position:absolute;overflow:visible;transition:transform .36s ease, opacity .36s ease;will-change:transform,opacity;}
.live-trick-card--bottom{left:50%;top:68%;transform:translate(-50%,-50%) rotate(var(--card-rotate));}
.live-trick-card--top{left:50%;top:32%;transform:translate(-50%,-50%) rotate(var(--card-rotate));}
.live-trick-card--left{left:24%;top:50%;transform:translate(-50%,-50%) rotate(var(--card-rotate));}
.live-trick-card--right{left:76%;top:50%;transform:translate(-50%,-50%) rotate(var(--card-rotate));}
.live-trick-card.is-entering{animation:kingiLiveTrickIn .28s ease-out;}
.live-trick-card.is-collecting{animation-duration:1.4s;animation-timing-function:ease-in;animation-fill-mode:forwards;}
.live-trick-card.is-collecting.is-collecting-to-bottom{animation-name:kingiLiveCollectBottom;}
.live-trick-card.is-collecting.is-collecting-to-top{animation-name:kingiLiveCollectTop;}
.live-trick-card.is-collecting.is-collecting-to-left{animation-name:kingiLiveCollectLeft;}
.live-trick-card.is-collecting.is-collecting-to-right{animation-name:kingiLiveCollectRight;}
@keyframes kingiLiveCollectBottom{to{opacity:0;transform:translate(-50%, calc(-50% + 250px)) rotate(var(--card-rotate));}}
@keyframes kingiLiveCollectTop{to{opacity:0;transform:translate(-50%, calc(-50% - 250px)) rotate(var(--card-rotate));}}
@keyframes kingiLiveCollectLeft{to{opacity:0;transform:translate(calc(-50% - 260px),-50%) rotate(var(--card-rotate));}}
@keyframes kingiLiveCollectRight{to{opacity:0;transform:translate(calc(-50% + 260px),-50%) rotate(var(--card-rotate));}}

@keyframes kingiLiveTrickIn{0%{opacity:.2;transform:translate(-50%, calc(-50% + 10px)) scale(.96) rotate(var(--card-rotate));}100%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(var(--card-rotate));}}
.live-card--table{display:block;width:min(10vw, 96px);height:calc(min(10vw, 96px) * 1.45);object-fit:contain;max-width:none;background:transparent;border-radius:0;}
.live-side-card{padding:12px;border-radius:20px;background:rgba(8,22,36,.62);box-shadow:0 12px 24px rgba(0,0,0,.24), inset 0 0 0 1px rgba(255,255,255,.05);color:#fff;}
.live-side-card h3{margin:0 0 8px;font-size:15px;color:#fff4cc;}
.live-order-list,.live-history__list{display:flex;flex-direction:column;gap:6px;}
.live-order-list__item,.live-history__item{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:14px;background:rgba(255,255,255,.06);font-size:13px;font-weight:700;}
.live-history__empty{font-size:13px;color:rgba(255,255,255,.78);}
.live-side-card--compact{padding:10px 11px;border-radius:18px;}
.live-order-pill--history{background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);}
.live-order-pill--history:hover{background:rgba(255,255,255,.10);}

@media (max-width: 1120px){
  .live-game-shell{grid-template-columns:1fr;}
  .live-game-shell__sidebar{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .live-room-stage{min-height:760px;}
}
@media (max-width: 700px){
  .live-message-card__top-row{align-items:flex-start;}
  .live-message-card__title{font-size:18px;}
  .live-round-help-dialog{padding:10px;place-items:end center;}
  .live-round-help-dialog__surface{width:100%;max-height:88vh;border-radius:20px 20px 14px 14px;}
  .live-round-help-dialog__header{padding:21px 58px 12px 20px;}
  .live-round-help-dialog__body{padding:18px 20px 24px;font-size:15px;line-height:1.55;}
  .live-room-stage{min-height:700px;}
}
@media (max-width: 900px){
  .live-room-stage{min-height:680px;}
  .live-seat--left{left:8px;top:auto;bottom:142px;transform:none;max-width:150px;}
  .live-seat--right{right:8px;top:auto;bottom:142px;transform:none;max-width:150px;}
  .live-seat--top{top:10px;max-width:88vw;min-width:0;width:auto;}
  .live-seat--bottom{bottom:8px;width:calc(100% - 16px);max-width:none;}
  .live-room-stage__table{width:min(54vw,280px);height:min(34vw,190px);}
}
@media (max-width: 640px){
  .live-game-shell__sidebar{grid-template-columns:1fr;}
  .live-seat{padding:8px 10px;}
  .live-hand--self{min-height:144px;padding:14px 8px 8px;gap:0;}
  .live-seat--bottom .live-card{width:clamp(88px, 16vw, var(--live-self-card-width-mobile, 104px));height:calc(clamp(88px, 16vw, var(--live-self-card-width-mobile, 104px)) * 1.45);}
  .live-seat__name{font-size:14px;}
  .live-seat--left,.live-seat--right{bottom:132px;max-width:128px;min-width:108px;}
  .live-room-stage{min-height:680px;}
}

.live-game-debugbar{margin:10px auto 14px;padding:10px 14px;border-radius:16px;background:rgba(255,255,255,.86);box-shadow:0 8px 18px rgba(0,0,0,.08);}
.live-game-debugbar__form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.live-game-debugbar__form select{min-width:180px;padding:7px 10px;border-radius:10px;border:1px solid #c8d2db;background:#fff;}
.live-game-debugbar__hint{font-size:13px;color:#425466;}


.live-card-button.is-animating-play{opacity:.08;pointer-events:none;transform:translateY(4px) scale(.96);}
.live-card-button.is-dragging{opacity:.2;}
.live-drag-card-ghost{position:fixed;left:0;top:0;transform:translate3d(-50%,-50%,0) rotate(8deg);border-radius:0;pointer-events:none;z-index:9999;box-shadow:0 18px 38px rgba(0,0,0,.34);will-change:transform;backface-visibility:hidden;}
.live-flying-card{position:absolute;border-radius:0;box-shadow:0 16px 34px rgba(0,0,0,.34);pointer-events:none;z-index:20;transform:translate3d(0,0,0) rotate(var(--fly-start-rotate, 0deg)) scale(1);opacity:1;will-change:transform,opacity;backface-visibility:hidden;contain:layout paint style;}
.live-flying-card.is-active{animation:kingiLivePlayToTable var(--fly-duration,560ms) cubic-bezier(.22,.72,.18,1) forwards;}
@keyframes kingiLivePlayToTable{0%{opacity:1;transform:translate(0,0) rotate(var(--fly-start-rotate, 0deg)) scale(1,1);}22%{opacity:1;transform:translate(calc(var(--fly-x) * .16), calc(var(--fly-y) * .04 - 18px)) rotate(calc((var(--fly-start-rotate, 0deg) * .78) + (var(--fly-end-rotate, 0deg) * .22))) scale(.985,.985);}58%{opacity:1;transform:translate(calc(var(--fly-x) * .62), calc(var(--fly-y) * .64 - 8px)) rotate(calc((var(--fly-start-rotate, 0deg) * .34) + (var(--fly-end-rotate, 0deg) * .66))) scale(calc(1 + ((var(--fly-end-scale-x, .94) - 1) * .38)),calc(1 + ((var(--fly-end-scale-y, .94) - 1) * .38)));}82%{opacity:1;transform:translate(calc(var(--fly-x) * .9), calc(var(--fly-y) * 1.03)) rotate(calc((var(--fly-start-rotate, 0deg) * .08) + (var(--fly-end-rotate, 0deg) * .92))) scale(calc(1 + ((var(--fly-end-scale-x, .94) - 1) * .82)),calc(1 + ((var(--fly-end-scale-y, .94) - 1) * .82)));}100%{opacity:1;transform:translate(var(--fly-x), var(--fly-y)) rotate(var(--fly-end-rotate, 0deg)) scale(var(--fly-end-scale-x, .94), var(--fly-end-scale-y, .94));}}


.live-seat--left .live-seat__header{align-items:flex-start;justify-content:space-between;gap:6px;}
.live-seat__tricks--left{order:-1;align-self:flex-start;margin-right:auto;margin-bottom:4px;}
.live-turn-compass{position:absolute;left:50%;top:50%;width:232px;height:232px;transform:translate(-50%,-50%);z-index:3;pointer-events:none;filter:drop-shadow(0 16px 26px rgba(0,0,0,.24));opacity:.98;}
.live-turn-compass__ring{position:absolute;left:50%;top:50%;width:74px;height:74px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 35%, rgba(255,249,215,.98) 0%, rgba(37,92,69,.94) 28%, rgba(12,48,35,.98) 60%, rgba(6,22,18,.98) 100%);border:2px solid rgba(255,219,120,.85);box-shadow:0 0 0 3px rgba(113,74,13,.52), 0 0 0 8px rgba(255,225,150,.10), inset 0 0 0 1px rgba(255,249,214,.42);}
.live-turn-compass__ring::before,.live-turn-compass__ring::after{content:"";position:absolute;left:50%;top:50%;width:108px;height:28px;transform:translate(-50%,-50%);border-radius:999px;border-top:2px solid rgba(255,220,132,.62);border-bottom:2px solid rgba(119,77,13,.42);opacity:.92;}
.live-turn-compass__ring::after{transform:translate(-50%,-50%) rotate(90deg);}
.live-turn-compass__needle{position:absolute;left:50%;top:50%;width:24px;height:122px;transform:translate(-50%,-96%) rotate(var(--turn-angle,0deg));transform-origin:50% 96%;transition:transform .9s cubic-bezier(.22,.8,.2,1);filter:drop-shadow(0 8px 10px rgba(0,0,0,.30));}
.live-turn-compass__needle::before{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);width:24px;height:96px;clip-path:polygon(50% 0%, 73% 13%, 85% 26%, 96% 66%, 100% 77%, 70% 74%, 62% 100%, 50% 92%, 38% 100%, 30% 74%, 0% 77%, 4% 66%, 15% 26%, 27% 13%);background:linear-gradient(180deg,#fff2b6 0%,#f2ca66 22%,#b77a16 54%,#f7de8e 72%,#7c4d0b 100%);border:1px solid rgba(111,67,7,.88);box-shadow:inset 0 1px 0 rgba(255,255,255,.58), inset 0 -2px 4px rgba(80,41,0,.34);}
.live-turn-compass__needle::after{content:"";position:absolute;left:50%;bottom:10px;transform:translateX(-50%);width:10px;height:42px;border-radius:999px;background:linear-gradient(180deg,#f6d57b 0%, #9d6410 58%, #5f3606 100%);box-shadow:0 0 0 1px rgba(96,55,5,.72), inset 0 1px 0 rgba(255,255,255,.34);}
.live-turn-compass__core{position:absolute;left:50%;top:50%;width:28px;height:28px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 30%, #d7fff3 0%, #63d5a4 24%, #14905e 48%, #0c4c35 68%, #08241a 100%);box-shadow:0 0 0 3px rgba(255,224,136,.92), 0 0 0 7px rgba(120,75,10,.54), 0 5px 12px rgba(0,0,0,.34), inset 0 2px 4px rgba(255,255,255,.34);}
.live-turn-compass__core::before,.live-turn-compass__core::after{content:"";position:absolute;left:50%;top:50%;width:54px;height:14px;transform:translate(-50%,-50%);border-radius:999px;background:linear-gradient(90deg, rgba(255,223,133,0) 0%, rgba(255,223,133,.95) 18%, rgba(123,76,10,.85) 50%, rgba(255,223,133,.95) 82%, rgba(255,223,133,0) 100%);opacity:.82;z-index:-1;}
.live-turn-compass__core::after{transform:translate(-50%,-50%) rotate(90deg);}

.live-history__item.is-latest-preview{cursor:pointer;}
.live-history__item.is-latest-preview.is-open{box-shadow:0 0 0 2px rgba(255,224,143,.28) inset;}
button.live-history__item{appearance:none;-webkit-appearance:none;display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;border:none;padding:8px 10px;border-radius:14px;background:rgba(255,255,255,.06);color:inherit;font:inherit;text-align:left;box-sizing:border-box;cursor:pointer;}
button.live-history__item b,button.live-history__item span{display:block;}


/* 2026-04-04: live game hand spacing, previous trick button, larger logo */
.live-seat--bottom{
  width:min(96vw, 1280px);
}
.live-hand--self{
  justify-content:center;
  padding:18px 56px 12px;
  min-height:176px;
}
.live-seat--bottom .live-seat__body{
  overflow:visible;
}
.live-seat--bottom .live-card-button{
  overflow:visible;
  margin-right:calc(clamp(100px, 9.1vw, var(--live-self-card-width, 118px)) * -0.028);
}
.live-seat--bottom .live-card-button:first-child{
  margin-left:22px;
}
.live-seat--bottom .live-card-button:last-child{
  margin-right:22px;
}
.live-seat--bottom .live-card{
  width:clamp(100px, 9.1vw, var(--live-self-card-width, 118px));
  height:calc(clamp(100px, 9.1vw, var(--live-self-card-width, 118px)) * 1.45);
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * 0.68deg));
  transform-origin:center bottom;
}
.live-seat--bottom .live-card-button:hover{
  transform:translateY(-6px);
}
.live-seat--bottom .live-card-button.is-selected{
  transform:translateY(-16px) scale(1.04);
}

.live-previous-trick-toggle{
  right:14px;
  bottom:12px;
  gap:8px;
  padding:8px 14px;
  border:1px solid rgba(255,228,142,.38);
  border-radius:999px;
  background:linear-gradient(180deg, rgba(182,148,46,.34) 0%, rgba(103,77,19,.34) 100%);
  color:#fff7d4;
  font-size:13px;
  font-weight:900;
  box-shadow:0 8px 18px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.06);
}
.live-previous-trick-toggle:hover{
  transform:translateY(-1px);
  background:linear-gradient(180deg, rgba(205,167,54,.42) 0%, rgba(120,90,22,.42) 100%);
}
.live-previous-trick-toggle.is-open{
  background:linear-gradient(180deg, rgba(236,194,67,.56) 0%, rgba(145,105,20,.48) 100%);
  box-shadow:0 10px 22px rgba(0,0,0,.28), 0 0 0 2px rgba(255,235,156,.16), inset 0 1px 0 rgba(255,255,255,.16);
}
.live-previous-trick-toggle__icon{
  width:18px;
  height:18px;
  font-size:12px;
  background:none;
  color:inherit;
  box-shadow:none;
}
.live-previous-trick-toggle__text{
  font-weight:900;
}

.app-logo-link{
  max-width:min(100%, 920px) !important;
}
.app-logo-wordmark{
  width:min(100%, 920px) !important;
  max-height:116px !important;
}
.app-header__top--centered{
  min-height:108px !important;
}
@media (max-width: 900px){
  .live-hand--self{
    padding:14px 24px 10px;
    min-height:150px;
  }
  .live-seat--bottom .live-card-button{
    margin-right:calc(clamp(84px, 13.2vw, var(--live-self-card-width-mobile, 98px)) * -0.03);
  }
  .live-seat--bottom .live-card-button:first-child{
    margin-left:10px;
  }
  .live-seat--bottom .live-card-button:last-child{
    margin-right:10px;
  }
  .live-seat--bottom .live-card{
    width:clamp(84px, 13.2vw, var(--live-self-card-width-mobile, 98px));
    height:calc(clamp(84px, 13.2vw, var(--live-self-card-width-mobile, 98px)) * 1.45);
    transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * 0.58deg));
  }
  .app-logo-link{
    max-width:min(100%, 720px) !important;
  }
  .app-logo-wordmark{
    width:min(100%, 720px) !important;
    max-height:84px !important;
  }
  .app-header__top--centered{
    min-height:84px !important;
  }
}
@media (max-width: 640px){
  .live-hand--self{
    padding:12px 18px 8px;
    min-height:140px;
  }
  .live-seat--bottom .live-card-button{
    margin-right:calc(clamp(78px, 14.8vw, var(--live-self-card-width-mobile, 92px)) * -0.032);
  }
  .live-seat--bottom .live-card{
    width:clamp(78px, 14.8vw, var(--live-self-card-width-mobile, 92px));
    height:calc(clamp(78px, 14.8vw, var(--live-self-card-width-mobile, 92px)) * 1.45);
    transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * 0.5deg));
  }
}

/* 2026-04-04: shift side/top info seats away from main hand and closer to edges */
.live-seat--left,
.live-seat--right{
  top:42%;
}
.live-seat--left{
  left:4px;
}
.live-seat--right{
  right:4px;
}
.live-seat--top{
  top:2px;
}
.live-seat--left .live-seat__body,
.live-seat--right .live-seat__body,
.live-seat--top .live-seat__body{
  overflow:visible;
}
.live-seat--left .live-hand--left{
  margin-left:-14px;
  margin-right:auto;
}
.live-seat--right .live-hand--right{
  margin-right:-14px;
  margin-left:auto;
}
.live-seat--top .live-hand--top{
  margin-top:-10px;
  margin-bottom:0;
}

@media (max-width: 900px){
  .live-seat--left,
  .live-seat--right{
    bottom:168px;
  }
  .live-seat--left{left:4px;}
  .live-seat--right{right:4px;}
  .live-seat--top{top:2px;}
  .live-seat--left .live-hand--left{margin-left:-10px;}
  .live-seat--right .live-hand--right{margin-right:-10px;}
  .live-seat--top .live-hand--top{margin-top:-6px;}
}

@media (max-width: 640px){
  .live-seat--left,
  .live-seat--right{
    bottom:154px;
  }
}


/* 2026-04-04: remove separate previous trick button; make latest history row match others */
.live-previous-trick-toggle{display:none !important;}
.live-history__item{align-items:center;min-height:52px;box-sizing:border-box;}
.live-history__item b,.live-history__item span{line-height:1.2;}
.live-history__item.is-latest-preview{background:rgba(255,255,255,.06);}
.live-history__item.is-latest-preview:hover{background:rgba(255,255,255,.10);}


.avatar-edit-block{display:flex;flex-direction:column;gap:14px}
.avatar-current img{width:88px;height:88px;object-fit:cover;border-radius:20px;border:2px solid rgba(0,0,0,.15)}
.avatar-gallery{display:flex;flex-wrap:wrap;gap:10px}
.avatar-choice{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;border:1px solid rgba(0,0,0,.12);border-radius:14px;background:#faf7ef;min-width:86px;cursor:pointer}
.avatar-choice img{width:64px;height:64px;object-fit:cover;border-radius:16px}
.avatar-choice.is-disabled{opacity:.45;cursor:not-allowed}
.avatar-choice--none,.avatar-choice--upload{min-width:120px;justify-content:center}
.avatar-upload{display:flex;flex-direction:column;gap:8px}
.form-help{font-size:12px;opacity:.85}
.live-seat__avatar-wrap{flex:0 0 auto;display:flex;align-items:center;justify-content:center;margin-right:14px}
.live-seat__avatar{width:140px;height:140px;object-fit:cover;border-radius:36px;box-shadow:0 10px 28px rgba(0,0,0,.28);border:3px solid rgba(255,255,255,.68);background:rgba(255,255,255,.08)}
@media (max-width: 1280px){
  .live-seat__avatar{width:120px;height:120px;border-radius:32px;}
}
@media (max-width: 980px){
  .live-seat__avatar-wrap{margin-right:10px}
  .live-seat__avatar{width:96px;height:96px;border-radius:26px;}
}

/* 2026-04-04: show full cards in live hand without cropping */
.live-card,
.live-card--face,
.live-card--table,
.live-flying-card,
.live-drag-card-ghost{
  object-fit:contain !important;
  background:#fff;
}

.live-seat--bottom .live-seat__body{
  overflow:visible;
}
.live-hand--self{
  overflow:visible;
}
.live-seat--bottom .live-card-button{
  overflow:visible;
  margin-right:calc(clamp(78px, 9.2vw, 108px) * -0.16);
}
.live-seat--bottom .live-card-button:first-child{
  margin-left:8px;
}
.live-seat--bottom .live-card-button:last-child{
  margin-right:8px;
}
.live-seat--bottom .live-card{
  width:clamp(78px, 9.2vw, 108px);
  height:calc(clamp(78px, 9.2vw, 108px) * 1.45);
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * 0.55deg));
  transform-origin:center bottom;
}

@media (max-width: 900px){
  .live-seat--bottom .live-card-button{
    margin-right:calc(clamp(66px, 12.5vw, 92px) * -0.18);
  }
  .live-seat--bottom .live-card{
    width:clamp(66px, 12.5vw, 92px);
    height:calc(clamp(66px, 12.5vw, 92px) * 1.45);
  }
}

@media (max-width: 640px){
  .live-seat--bottom .live-card-button{
    margin-right:calc(clamp(54px, 14vw, 78px) * -0.20);
  }
  .live-seat--bottom .live-card{
    width:clamp(54px, 14vw, 78px);
    height:calc(clamp(54px, 14vw, 78px) * 1.45);
  }
}


/* 2026-04-04: move self avatar left of hand and enlarge 1.5x */
.live-seat__body-row{display:flex;align-items:flex-end;justify-content:center;gap:18px;width:100%;}
.live-seat__body-main{min-width:0;flex:1 1 auto;display:flex;justify-content:center;}
.live-seat--bottom .live-seat__avatar-wrap{order:-1;align-self:flex-end;margin:0 8px 10px 0;}
.live-seat--bottom .live-seat__avatar{width:210px;height:210px;border-radius:48px;border-width:4px;box-shadow:0 14px 36px rgba(0,0,0,.30);}
.live-seat--bottom .live-hand--self{justify-content:flex-start;}
@media (max-width: 1280px){
  .live-seat--bottom .live-seat__avatar{width:180px;height:180px;border-radius:42px;}
  .live-seat__body-row{gap:14px;}
}
@media (max-width: 980px){
  .live-seat--bottom .live-seat__avatar{width:144px;height:144px;border-radius:34px;}
  .live-seat__body-row{align-items:center;gap:10px;}
}
@media (max-width: 760px){
  .live-seat__body-row{flex-direction:column;align-items:center;}
  .live-seat--bottom .live-seat__avatar-wrap{margin:0 0 8px 0;}
  .live-seat--bottom .live-hand--self{justify-content:center;}
}

/* 2026-04-04: lower top player block by lifting top fan upward aggressively */
.live-seat--top{
  padding:6px 10px 2px;
}
.live-seat--top .live-seat__header{
  position:relative;
  z-index:2;
  margin-bottom:-20px;
}
.live-seat--top .live-seat__body{
  margin-top:-28px;
  margin-bottom:-12px;
  min-height:78px;
}
.live-seat--top .live-hand--top{
  margin-top:-42px;
  margin-bottom:-22px;
}

@media (max-width: 900px){
  .live-seat--top{
    padding:5px 8px 2px;
  }
  .live-seat--top .live-seat__header{
    margin-bottom:-16px;
  }
  .live-seat--top .live-seat__body{
    margin-top:-22px;
    margin-bottom:-10px;
    min-height:68px;
  }
  .live-seat--top .live-hand--top{
    margin-top:-34px;
    margin-bottom:-18px;
  }
}

@media (max-width: 640px){
  .live-seat--top .live-seat__header{
    margin-bottom:-12px;
  }
  .live-seat--top .live-seat__body{
    margin-top:-18px;
    margin-bottom:-8px;
    min-height:60px;
  }
  .live-seat--top .live-hand--top{
    margin-top:-26px;
    margin-bottom:-14px;
  }
}


/* 2026-04-04: avatars integrated into seat bubbles and all hand fans centered upward */
.live-seat{overflow:visible;}
.live-seat__header,.live-seat__footer,.live-seat__badges,.live-seat-badge{display:none !important;}
.live-seat__body{width:100%;display:flex;align-items:center;gap:12px;overflow:visible;}
.live-seat__body--self{justify-content:flex-start;gap:14px;}
.live-seat__body--stacked{flex-direction:column;justify-content:flex-start;align-items:center;gap:10px;}
.live-seat__identity{display:flex;align-items:center;gap:12px;flex:0 0 auto;}
.live-seat__identity--self{min-width:220px;max-width:280px;}
.live-seat__identity--stacked{flex-direction:column;align-items:center;text-align:center;gap:8px;width:100%;}
.live-seat__meta{display:flex;flex-direction:column;justify-content:center;gap:4px;}
.live-seat__identity--stacked .live-seat__meta{align-items:center;}
.live-seat__name{font-size:16px;font-weight:900;color:#fff7d4;line-height:1.05;}
.live-seat__line{font-size:12px;font-weight:800;color:#dfeaff;line-height:1.15;}
.live-seat__line--status{text-transform:uppercase;letter-spacing:.04em;}
.live-seat__avatar-wrap{display:none !important;}
.live-seat__avatar{flex:0 0 auto;display:block;width:140px;height:140px;object-fit:cover;border-radius:28px;box-shadow:0 10px 28px rgba(0,0,0,.28);border:3px solid rgba(255,255,255,.68);background:rgba(255,255,255,.08);}
.live-seat__avatar--placeholder{background:rgba(255,255,255,.05);border-style:dashed;opacity:.45;}
.live-seat__cards{flex:1 1 auto;min-width:0;width:100%;display:flex;justify-content:center;align-items:flex-end;overflow:visible;}
.live-seat--bottom{width:min(96vw, 1260px);}
.live-seat--bottom .live-seat__body{justify-content:flex-start;}
.live-seat--bottom .live-seat__avatar{width:140px;height:140px;border-radius:30px;}
.live-seat--bottom .live-seat__cards{justify-content:flex-start;}
.live-seat--bottom .live-hand--self{justify-content:flex-start;padding:10px 8px 6px;min-height:158px;}
.live-seat--bottom .live-card-button{margin-right:calc(clamp(94px, 8.5vw, var(--live-self-card-width, 112px)) * -0.19);}
.live-seat--bottom .live-card{width:clamp(94px, 8.5vw, var(--live-self-card-width, 112px));height:calc(clamp(94px, 8.5vw, var(--live-self-card-width, 112px)) * 1.45);transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * 1.2deg));}
.live-seat--top,.live-seat--left,.live-seat--right{padding-top:10px;}
.live-seat--left,.live-seat--right{min-width:168px;max-width:188px;}
.live-seat--top{min-width:240px;max-width:340px;}
.live-seat--left .live-seat__avatar,.live-seat--right .live-seat__avatar,.live-seat--top .live-seat__avatar{width:96px;height:96px;border-radius:24px;}
.live-hand--backs{display:flex;justify-content:center;align-items:flex-end;width:100%;min-height:118px;height:auto;overflow:visible;}
.live-hand--top,.live-hand--left,.live-hand--right{margin:0 auto;}
.live-hand--backs .live-card--back{position:relative;left:auto;top:auto;margin:0 0 0 calc(var(--live-card-width, 110px) * -0.24);transform-origin:center bottom;transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * 1.12deg));}
.live-hand--backs .live-card--back:first-child{margin-left:0;}
.live-seat--top .live-hand--backs .live-card--back,.live-seat--left .live-hand--backs .live-card--back,.live-seat--right .live-hand--backs .live-card--back{width:clamp(44px, 4.2vw, 62px);height:calc(clamp(44px, 4.2vw, 62px) * 1.45);}
@media (max-width: 1280px){.live-seat--bottom .live-seat__avatar{width:124px;height:124px;}.live-seat--left .live-seat__avatar,.live-seat--right .live-seat__avatar,.live-seat--top .live-seat__avatar{width:86px;height:86px;}}
@media (max-width: 980px){.live-seat--bottom .live-seat__body{gap:10px;}.live-seat--bottom .live-seat__identity--self{min-width:170px;max-width:190px;}.live-seat--bottom .live-seat__avatar{width:108px;height:108px;border-radius:24px;}.live-seat--left,.live-seat--right{min-width:152px;max-width:164px;}.live-seat--top{max-width:280px;}.live-hand--backs{min-height:104px;}}
@media (max-width: 640px){.live-seat--bottom .live-seat__body{flex-direction:column;align-items:flex-start;}.live-seat--bottom .live-seat__identity--self{min-width:0;max-width:none;width:100%;}.live-seat--bottom .live-seat__cards{width:100%;}.live-seat--bottom .live-hand--self{width:100%;}}

/* 2026-04-04: tighten top/side fans, enlarge avatars, top seat avatar+meta side by side, self hand background tightened */
.live-seat--left .live-seat__avatar,
.live-seat--right .live-seat__avatar,
.live-seat--top .live-seat__avatar{
  width:134px;
  height:134px;
  border-radius:30px;
}
.live-seat--bottom .live-seat__avatar{
  width:196px;
  height:196px;
  border-radius:38px;
}

.live-seat--left .live-seat__body,
.live-seat--right .live-seat__body{
  gap:6px;
}
.live-seat--left .live-seat__identity,
.live-seat--right .live-seat__identity{
  gap:6px;
}
.live-seat--left .live-seat__meta,
.live-seat--right .live-seat__meta{
  gap:2px;
}
.live-seat--left .live-hand--backs .live-card--back,
.live-seat--right .live-hand--backs .live-card--back,
.live-seat--top .live-hand--backs .live-card--back{
  margin-left:calc(var(--live-card-width, 110px) * -0.34);
}
.live-seat--left .live-hand--backs,
.live-seat--right .live-hand--backs,
.live-seat--top .live-hand--backs{
  min-height:98px;
}
.live-seat--top{
  min-width:320px;
  max-width:420px;
}
.live-seat--top .live-seat__body{
  flex-direction:column;
  align-items:center;
  gap:8px;
}
.live-seat--top .live-seat__identity{
  width:100%;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  text-align:left;
  gap:12px;
}
.live-seat--top .live-seat__meta{
  align-items:flex-start;
  justify-content:center;
  gap:2px;
}
.live-seat--top .live-seat__cards{
  justify-content:center;
}

.live-seat--bottom .live-seat__body{
  align-items:flex-end;
  gap:10px;
}
.live-seat--bottom .live-seat__cards{
  align-self:flex-end;
}
.live-seat--bottom .live-hand--self{
  padding:0 4px 0;
  min-height:auto;
  align-items:flex-end;
}
.live-seat--bottom .live-card-button,
.live-seat--bottom .live-card{
  display:block;
  line-height:0;
  vertical-align:bottom;
}
.live-seat--bottom .live-card{
  background:#fff;
  border-radius:12px;
}

@media (max-width: 1280px){
  .live-seat--left .live-seat__avatar,
  .live-seat--right .live-seat__avatar,
  .live-seat--top .live-seat__avatar{width:118px;height:118px;border-radius:28px;}
  .live-seat--bottom .live-seat__avatar{width:172px;height:172px;border-radius:34px;}
  .live-seat--top{min-width:290px;max-width:380px;}
}
@media (max-width: 980px){
  .live-seat--left .live-seat__avatar,
  .live-seat--right .live-seat__avatar,
  .live-seat--top .live-seat__avatar{width:102px;height:102px;border-radius:24px;}
  .live-seat--bottom .live-seat__avatar{width:148px;height:148px;border-radius:30px;}
  .live-seat--left .live-hand--backs .live-card--back,
  .live-seat--right .live-hand--backs .live-card--back,
  .live-seat--top .live-hand--backs .live-card--back{margin-left:calc(var(--live-card-width, 110px) * -0.38);}
  .live-seat--top{min-width:250px;max-width:330px;}
}
@media (max-width: 640px){
  .live-seat--left .live-seat__avatar,
  .live-seat--right .live-seat__avatar,
  .live-seat--top .live-seat__avatar{width:84px;height:84px;border-radius:20px;}
  .live-seat--bottom .live-seat__avatar{width:120px;height:120px;border-radius:26px;}
  .live-seat--bottom .live-hand--self{padding:0;}
}

/* 2026-04-04: fix avatar crop, keep opponent fans centered inside bubbles, and match card aspect ratio */
:root{
  --kingi-card-ratio: 1.4108;
}

.live-seat__avatar{
  object-position:center top;
}

.live-card,
.live-card--face,
.live-card--table,
.live-flying-card,
.live-drag-card-ghost,
.live-deal-card,
.live-deck-card{
  background:transparent !important;
}

.live-seat--top .live-hand--backs .live-card--back,
.live-seat--left .live-hand--backs .live-card--back,
.live-seat--right .live-hand--backs .live-card--back{
  height:calc(clamp(44px, 4.2vw, 62px) * var(--kingi-card-ratio)) !important;
}

.live-trick-card .live-card,
.live-trick-card .live-card--table,
.live-previous-trick .live-card,
.live-previous-trick .live-card--table{
  background:transparent !important;
  height:calc(var(--live-card-width, 110px) * var(--kingi-card-ratio)) !important;
}

@media (max-width: 900px){
  .live-seat--bottom .live-card,
  .live-seat--bottom .live-card--face,
  .live-seat--bottom .live-card--table{
    height:calc(clamp(66px, 12.5vw, 92px) * var(--kingi-card-ratio)) !important;
  }
}

@media (max-width: 640px){
  .live-seat--bottom .live-card,
  .live-seat--bottom .live-card--face,
  .live-seat--bottom .live-card--table{
    height:calc(clamp(54px, 14vw, 78px) * var(--kingi-card-ratio)) !important;
  }
}


/* 2026-04-05: refined compass, transparent card corners, top meta centered, and bottom fan shifted right */
.live-turn-compass{
  width:464px;
  height:464px;
  filter:drop-shadow(0 22px 34px rgba(0,0,0,.26));
}
.live-turn-compass__ring{
  width:186px;
  height:186px;
  background:
    repeating-conic-gradient(
      from -90deg,
      rgba(255,224,146,.98) 0deg 1.2deg,
      rgba(255,224,146,0) 1.2deg 9deg,
      rgba(136,88,14,.92) 9deg 10deg,
      rgba(136,88,14,0) 10deg 15deg
    ),
    radial-gradient(circle at center,
      transparent 0 39%,
      rgba(10,44,32,.0) 39.5%,
      rgba(255,237,175,.92) 40%,
      rgba(171,119,27,.95) 45%,
      rgba(34,95,70,.96) 58%,
      rgba(11,41,30,.98) 69%,
      rgba(255,235,171,.84) 76%,
      rgba(85,55,9,.9) 82%,
      rgba(255,230,160,.65) 86%,
      rgba(255,230,160,0) 87%
    );
  border:none;
  box-shadow:
    0 0 0 3px rgba(88,58,10,.55),
    0 0 0 9px rgba(255,226,154,.12),
    inset 0 0 0 1px rgba(255,245,213,.34);
}
.live-turn-compass__ring::before,
.live-turn-compass__ring::after{
  content:"";
  position:absolute;
  inset:18px;
  border-radius:50%;
  border:1px solid rgba(255,233,177,.22);
  transform:none;
  width:auto;
  height:auto;
  opacity:.8;
}
.live-turn-compass__ring::after{
  inset:30px;
  border-color:rgba(111,76,18,.34);
}
.live-turn-compass__needle{
  width:42px;
  height:246px;
  transform:translate(-50%,-95%) rotate(var(--turn-angle,0deg));
  transform-origin:50% 95%;
  transition:transform .92s cubic-bezier(.2,.82,.2,1);
  filter:drop-shadow(0 10px 14px rgba(0,0,0,.30));
}
.live-turn-compass__needle::before{
  width:42px;
  height:188px;
  clip-path:polygon(50% 0%, 61% 7%, 78% 22%, 92% 46%, 100% 64%, 83% 63%, 72% 86%, 61% 100%, 50% 92%, 39% 100%, 28% 86%, 17% 63%, 0 64%, 8% 46%, 22% 22%, 39% 7%);
  background:linear-gradient(180deg,#fff8dd 0%,#d5d9de 10%,#f4db89 22%,#caa13b 41%,#a06d14 57%,#f4d57a 75%,#d8dde2 88%,#8a5a10 100%);
  border:1px solid rgba(90,58,9,.9);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72), inset 0 -3px 6px rgba(75,41,0,.28);
}
.live-turn-compass__needle::after{
  width:16px;
  height:78px;
  bottom:16px;
  background:linear-gradient(180deg,#eceff3 0%, #acb5bf 22%, #f3da87 42%, #bb8a28 66%, #6e4810 100%);
  box-shadow:0 0 0 1px rgba(92,58,12,.82), inset 0 1px 0 rgba(255,255,255,.36);
}
.live-turn-compass__core{
  width:42px;
  height:42px;
  background:transparent;
  box-shadow:none;
  border:2px solid rgba(255,227,150,.92);
}
.live-turn-compass__core::before,
.live-turn-compass__core::after{display:none;}

.live-card,
.live-card--face,
.live-card--table,
.live-flying-card,
.live-drag-card-ghost,
.live-deal-card,
.live-deck-card{
  background:transparent !important;
}

.live-seat--top .live-seat__identity{
  justify-content:center;
}
.live-seat--top .live-seat__meta{
  align-items:center;
  text-align:center;
}

.live-seat--bottom .live-seat__cards{
  padding-left:26px;
}
.live-seat--bottom .live-hand--self{
  padding-left:18px;
}
.live-seat--bottom .live-card-button:first-child{
  margin-left:34px;
}

@media (max-width: 1280px){
  .live-turn-compass{width:400px;height:400px;}
  .live-turn-compass__ring{width:160px;height:160px;}
  .live-turn-compass__needle{height:214px;}
  .live-turn-compass__needle::before{height:164px;}
  .live-turn-compass__needle::after{height:66px;}
  .live-seat--bottom .live-seat__cards{padding-left:18px;}
  .live-seat--bottom .live-card-button:first-child{margin-left:26px;}
}

@media (max-width: 980px){
  .live-turn-compass{width:332px;height:332px;}
  .live-turn-compass__ring{width:132px;height:132px;}
  .live-turn-compass__needle{width:34px;height:178px;}
  .live-turn-compass__needle::before{width:34px;height:136px;}
  .live-turn-compass__needle::after{width:13px;height:54px;}
  .live-turn-compass__core{width:34px;height:34px;}
  .live-seat--bottom .live-seat__cards{padding-left:12px;}
  .live-seat--bottom .live-hand--self{padding-left:10px;}
  .live-seat--bottom .live-card-button:first-child{margin-left:18px;}
}


/* 2026-04-05 live scoring + round-end score overlay */
.live-room-stage__round-score{position:absolute;left:18px;top:50%;transform:translateY(-50%);z-index:7;pointer-events:none;}
.live-scoreboard{min-width:240px;max-width:min(30vw,360px);padding:12px 12px 10px;border-radius:18px;background:rgba(7,16,28,.92);color:#fff7dc;box-shadow:0 18px 32px rgba(0,0,0,.34), inset 0 0 0 1px rgba(255,255,255,.08);}
.live-scoreboard--compact{min-width:280px;max-width:min(420px, calc(100vw - 44px));padding:0;background:transparent;box-shadow:none;border-radius:0;}
.live-scoreboard__title{font-size:13px;font-weight:900;color:#fff1bf;}
.live-scoreboard__round{margin-top:2px;margin-bottom:8px;font-size:12px;font-weight:700;color:#d8e7ff;}
.live-scoreboard__table{width:100%;border-collapse:collapse;font-size:12px;table-layout:auto;}
.live-scoreboard__table th,.live-scoreboard__table td{padding:6px 7px;border-bottom:1px solid rgba(255,255,255,.08);text-align:center;white-space:nowrap;}
.live-scoreboard__table th:first-child,.live-scoreboard__table td:first-child{text-align:left;white-space:normal;}
.live-scoreboard__table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#ffd86f;}
.live-scoreboard__table tbody tr:last-child td{border-bottom:0;}
.live-scorebook-badge__tooltip{min-width:320px;}
.live-scorebook-badge__tooltip .live-scoreboard__round{margin-bottom:6px;}
.live-room-stage.is-shuffling .live-room-stage__deck .live-deck-card{animation:kingiLiveDeckShuffle 1.05s cubic-bezier(.42,0,.2,1) infinite;}
.live-room-stage.is-shuffling .live-room-stage__deck .live-deck-card:nth-child(2n){animation-duration:1.2s;}
.live-room-stage.is-shuffling .live-room-stage__deck .live-deck-card:nth-child(3n){animation-duration:.92s;}
@keyframes kingiLiveDeckShuffle{0%{transform:translate(calc(var(--deck-offset) * 1px), calc(var(--deck-offset) * -1px)) rotate(calc(var(--deck-offset) * -1deg));}20%{transform:translate(calc(var(--deck-offset) * -4px), calc(var(--deck-offset) * -6px)) rotate(-10deg);}45%{transform:translate(calc(var(--deck-offset) * 6px), calc(var(--deck-offset) * 4px)) rotate(11deg);}70%{transform:translate(calc(var(--deck-offset) * -3px), calc(var(--deck-offset) * 2px)) rotate(-8deg);}100%{transform:translate(calc(var(--deck-offset) * 1px), calc(var(--deck-offset) * -1px)) rotate(calc(var(--deck-offset) * -1deg));}}
@media (max-width: 1100px){.live-room-stage__round-score{left:12px;top:86px;transform:none;}.live-scoreboard{max-width:min(44vw,320px);}}
@media (max-width: 900px){.live-room-stage__round-score{position:relative;left:auto;top:auto;transform:none;margin:12px 12px 0 12px;}.live-scoreboard{max-width:none;width:calc(100% - 0px);}}


/* 2026-04-05: self hand auto-fit sizing so cards stay playable and fit the live window */
.live-seat--bottom .live-seat__body{
  display:grid !important;
  grid-template-columns:clamp(128px, 15vw, 182px) minmax(0, 1fr);
  align-items:end;
  gap:12px;
}
.live-seat--bottom .live-seat__identity--self{
  min-width:0 !important;
  max-width:none !important;
  width:100%;
}
.live-seat--bottom .live-seat__cards{
  min-width:0;
  width:100%;
  overflow:hidden;
  justify-content:flex-start;
  padding-left:0 !important;
}
.live-seat--bottom .live-hand--self{
  --self-card-width: clamp(62px, calc((100% - 24px) / ((var(--self-hand-count, 13) * 0.72) + 0.85)), 108px);
  width:100%;
  min-width:0;
  justify-content:flex-start;
  align-items:flex-end;
  padding:6px 6px 4px !important;
  min-height:calc((var(--self-card-width) * var(--kingi-card-ratio)) + 24px);
}
.live-seat--bottom .live-card-button{
  margin-right:calc(var(--self-card-width) * -0.30) !important;
}
.live-seat--bottom .live-card-button:first-child{
  margin-left:0 !important;
}
.live-seat--bottom .live-card-button:last-child{
  margin-right:0 !important;
}
.live-seat--bottom .live-card,
.live-seat--bottom .live-card--face,
.live-seat--bottom .live-card--table{
  width:var(--self-card-width) !important;
  height:calc(var(--self-card-width) * var(--kingi-card-ratio)) !important;
  max-width:none;
}
.live-seat--bottom .live-card{
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * 0.78deg));
}
.live-seat--bottom .live-card-button.is-selected{
  transform:translateY(-14px) scale(1.03);
}

@media (max-width: 980px){
  .live-seat--bottom .live-seat__body{
    grid-template-columns:120px minmax(0, 1fr);
    gap:10px;
  }
  .live-seat--bottom .live-hand--self{
    --self-card-width: clamp(54px, calc((100% - 18px) / ((var(--self-hand-count, 13) * 0.74) + 0.8)), 90px);
    padding:4px 4px 2px !important;
  }
  .live-seat--bottom .live-card-button{
    margin-right:calc(var(--self-card-width) * -0.32) !important;
  }
}

@media (max-width: 640px){
  .live-seat--bottom .live-seat__body{
    grid-template-columns:1fr;
    align-items:start;
  }
  .live-seat--bottom .live-seat__identity--self{
    display:flex;
    justify-content:flex-start;
  }
  .live-seat--bottom .live-seat__cards{
    width:100%;
  }
  .live-seat--bottom .live-hand--self{
    --self-card-width: clamp(42px, calc((100% - 12px) / ((var(--self-hand-count, 13) * 0.78) + 0.75)), 72px);
    justify-content:center;
  }
  .live-seat--bottom .live-card-button{
    margin-right:calc(var(--self-card-width) * -0.34) !important;
  }
}

/* 2026-04-05: balance live table layout - taller top seat, narrower opponent fans, smaller trick cards */
.live-room-stage{
  min-height:860px;
}
.live-room-stage__table{
  width:min(28vw, 248px);
  height:min(20vw, 176px);
}

.live-card--table,
.live-trick-card .live-card,
.live-trick-card .live-card--table,
.live-previous-trick .live-card,
.live-previous-trick .live-card--table{
  width:min(8.1vw, 78px) !important;
  height:calc(min(8.1vw, 78px) * var(--kingi-card-ratio)) !important;
}
.live-trick-card--bottom{top:66%;}
.live-trick-card--top{top:34%;}
.live-trick-card--left{left:27%;}
.live-trick-card--right{left:73%;}

.live-seat--top{
  top:8px;
  min-width:300px;
  max-width:380px;
  min-height:224px;
  padding:18px 14px 12px;
}
.live-seat--top .live-seat__body{
  justify-content:flex-start;
  gap:12px;
}
.live-seat--top .live-seat__identity{
  padding-top:4px;
}
.live-seat--top .live-seat__cards{
  min-height:86px;
  align-items:flex-start;
}
.live-seat--top .live-hand--top,
.live-seat--top .live-hand--backs{
  min-height:82px;
}

.live-seat--left,
.live-seat--right{
  min-width:150px;
  max-width:164px;
}
.live-seat--left .live-seat__avatar,
.live-seat--right .live-seat__avatar,
.live-seat--top .live-seat__avatar{
  width:108px;
  height:108px;
  border-radius:26px;
}
.live-seat--left .live-hand--backs,
.live-seat--right .live-hand--backs,
.live-seat--top .live-hand--backs{
  min-height:88px;
}
.live-seat--left .live-hand--backs .live-card--back,
.live-seat--right .live-hand--backs .live-card--back,
.live-seat--top .live-hand--backs .live-card--back{
  width:clamp(36px, 3.4vw, 50px) !important;
  height:calc(clamp(36px, 3.4vw, 50px) * var(--kingi-card-ratio)) !important;
  margin-left:calc(clamp(36px, 3.4vw, 50px) * -0.46) !important;
}
.live-seat--top .live-hand--backs .live-card--back{
  margin-left:calc(clamp(36px, 3.4vw, 50px) * -0.42) !important;
}
.live-seat--left .live-hand--backs .live-card--back:first-child,
.live-seat--right .live-hand--backs .live-card--back:first-child,
.live-seat--top .live-hand--backs .live-card--back:first-child{
  margin-left:0 !important;
}

@media (max-width: 1280px){
  .live-room-stage{min-height:800px;}
  .live-room-stage__table{width:min(32vw, 230px);height:min(22vw, 164px);}
  .live-seat--top{min-width:270px;max-width:340px;min-height:204px;padding-top:16px;}
  .live-seat--left .live-seat__avatar,
  .live-seat--right .live-seat__avatar,
  .live-seat--top .live-seat__avatar{width:94px;height:94px;border-radius:22px;}
  .live-seat--left .live-hand--backs .live-card--back,
  .live-seat--right .live-hand--backs .live-card--back,
  .live-seat--top .live-hand--backs .live-card--back{
    width:clamp(34px, 3.2vw, 44px) !important;
    height:calc(clamp(34px, 3.2vw, 44px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(34px, 3.2vw, 44px) * -0.48) !important;
  }
  .live-card--table,
  .live-trick-card .live-card,
  .live-trick-card .live-card--table,
  .live-previous-trick .live-card,
  .live-previous-trick .live-card--table{
    width:min(7.6vw, 72px) !important;
    height:calc(min(7.6vw, 72px) * var(--kingi-card-ratio)) !important;
  }
}

@media (max-width: 980px){
  .live-room-stage{min-height:720px;}
  .live-room-stage__table{width:min(42vw, 210px);height:min(28vw, 150px);}
  .live-seat--top{min-width:230px;max-width:290px;min-height:182px;padding:14px 10px 10px;}
  .live-seat--left,
  .live-seat--right{min-width:132px;max-width:144px;}
  .live-seat--left .live-seat__avatar,
  .live-seat--right .live-seat__avatar,
  .live-seat--top .live-seat__avatar{width:82px;height:82px;border-radius:20px;}
  .live-seat--left .live-hand--backs .live-card--back,
  .live-seat--right .live-hand--backs .live-card--back,
  .live-seat--top .live-hand--backs .live-card--back{
    width:clamp(30px, 4vw, 40px) !important;
    height:calc(clamp(30px, 4vw, 40px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(30px, 4vw, 40px) * -0.5) !important;
  }
  .live-card--table,
  .live-trick-card .live-card,
  .live-trick-card .live-card--table,
  .live-previous-trick .live-card,
  .live-previous-trick .live-card--table{
    width:min(10vw, 64px) !important;
    height:calc(min(10vw, 64px) * var(--kingi-card-ratio)) !important;
  }
}

@media (max-width: 640px){
  .live-room-stage__table{width:min(48vw, 188px);height:min(34vw, 136px);}
  .live-seat--top{top:6px;min-width:200px;max-width:250px;min-height:164px;padding-top:12px;}
  .live-seat--left,
  .live-seat--right{min-width:118px;max-width:128px;}
  .live-seat--left .live-seat__avatar,
  .live-seat--right .live-seat__avatar,
  .live-seat--top .live-seat__avatar{width:68px;height:68px;border-radius:17px;}
  .live-seat--left .live-hand--backs .live-card--back,
  .live-seat--right .live-hand--backs .live-card--back,
  .live-seat--top .live-hand--backs .live-card--back{
    width:clamp(26px, 5vw, 34px) !important;
    height:calc(clamp(26px, 5vw, 34px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(26px, 5vw, 34px) * -0.52) !important;
  }
  .live-card--table,
  .live-trick-card .live-card,
  .live-trick-card .live-card--table,
  .live-previous-trick .live-card,
  .live-previous-trick .live-card--table{
    width:min(11vw, 54px) !important;
    height:calc(min(11vw, 54px) * var(--kingi-card-ratio)) !important;
  }
}


/* 2026-04-05: self player info row above hand + live list action links */
.live-seat--bottom .live-seat__body{
  display:grid !important;
  grid-template-columns:clamp(128px, 15vw, 182px) minmax(0, 1fr);
  align-items:end;
  gap:14px;
}
.live-seat--bottom .live-seat__avatar-area{
  display:flex;
  align-items:flex-end;
  justify-content:center;
  min-width:0;
}
.live-seat--bottom .live-seat__identity--self{
  width:100%;
  justify-content:center;
}
.live-seat--bottom .live-seat__cards-area{
  min-width:0;
  width:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:8px;
}
.live-seat--bottom .live-seat__meta--self-inline{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  flex-wrap:wrap;
  padding:0 6px;
  min-height:28px;
  position:relative;
}
.live-seat--bottom .live-seat__meta--self-inline .live-seat__name,
.live-seat--bottom .live-seat__meta--self-inline .live-seat__line{
  margin:0;
}
.live-seat--bottom .live-seat__meta--self-inline .live-seat__line{
  display:inline-flex;
  align-items:center;
  padding:4px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
}
.live-seat--bottom .live-seat__meta--self-inline .live-seat__line--status{
  background:rgba(104, 211, 145, .18);
}
.live-seat--bottom .live-seat__cards{
  min-width:0;
  width:100%;
  overflow:hidden;
  justify-content:flex-start;
  padding-left:0 !important;
}
.live-seat--bottom .live-hand--self{
  padding:2px 6px 4px !important;
}
@media (max-width: 980px){
  .live-seat--bottom .live-seat__body{
    grid-template-columns:120px minmax(0, 1fr);
  }
  .live-seat--bottom .live-seat__meta--self-inline{
    gap:8px;
    padding:0 4px;
  }
  .live-seat--bottom .live-seat__meta--self-inline .live-seat__name{font-size:15px;}
  .live-seat--bottom .live-seat__meta--self-inline .live-seat__line{font-size:11px;padding:4px 8px;}
}
@media (max-width: 640px){
  .live-seat--bottom .live-seat__body{
    grid-template-columns:1fr;
    align-items:start;
  }
  .live-seat--bottom .live-seat__avatar-area{
    justify-content:flex-start;
  }
  .live-seat--bottom .live-seat__cards-area{
    gap:6px;
  }
  .live-seat--bottom .live-seat__meta--self-inline{
    padding:0 2px;
  }
}

.game-live-actions{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-top:6px;
}
.game-live-actions a{
  display:inline-block;
}


.live-game-shell__message{position:relative;}
.live-inline-notice{display:none;position:absolute;left:50%;top:100%;transform:translate(-50%, 12px);z-index:35;max-width:min(92vw, 680px);padding:12px 16px;border-radius:16px;font-size:14px;font-weight:900;line-height:1.35;text-align:center;box-shadow:0 16px 34px rgba(0,0,0,.34), inset 0 0 0 1px rgba(255,255,255,.08);backdrop-filter:blur(8px);pointer-events:none;}
.live-inline-notice.is-visible{display:block;animation:kingiLiveInlineNoticeIn .18s ease-out;}
.live-inline-notice--error{background:rgba(117,17,17,.94);color:#ffe0e0;}
.live-inline-notice--success{background:rgba(18,97,54,.94);color:#ddffe9;}
@keyframes kingiLiveInlineNoticeIn{0%{opacity:0;transform:translate(-50%, 4px) scale(.98);}100%{opacity:1;transform:translate(-50%, 12px) scale(1);}}
@media (max-width: 900px){.live-inline-notice{max-width:calc(100vw - 28px);font-size:13px;padding:10px 12px;}}



/* 2026-04-05: self info single row + playable/non-playable card highlighting */
.live-seat--bottom .live-seat__body{
  grid-template-columns:clamp(112px, 13vw, 156px) minmax(0, 1fr) !important;
  align-items:end !important;
  gap:10px !important;
}
.live-seat--bottom .live-seat__cards-area{
  gap:10px !important;
}
.live-seat--bottom .live-seat__meta--self-inline{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto auto !important;
  align-items:center !important;
  column-gap:10px !important;
  row-gap:0 !important;
  flex-wrap:nowrap !important;
  min-width:0;
  width:100%;
}
.live-seat--bottom .live-seat__meta--self-inline .live-seat__name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-seat--bottom .live-seat__meta--self-inline .live-seat__line{
  white-space:nowrap;
}
.live-seat--bottom .live-seat__cards{
  overflow:visible !important;
}
.live-card-button{
  position:relative;
  background:none;
}
.live-card-button__bg{
  position:absolute;
  left:50%;
  bottom:-8px;
  transform:translateX(-50%);
  width:calc(var(--self-card-width, 72px) + 12px);
  height:26px;
  border-radius:12px;
  opacity:.95;
  pointer-events:none;
  z-index:0;
  transition:transform .18s ease, opacity .18s ease, box-shadow .18s ease;
}
.live-card-button .live-card{position:relative;z-index:1;}
.live-card-button.is-playable .live-card-button__bg{
  background:linear-gradient(180deg, rgba(61, 184, 92, .88) 0%, rgba(23, 111, 47, .90) 100%);
  box-shadow:0 10px 18px rgba(8, 48, 18, .30), inset 0 0 0 1px rgba(212,255,221,.30);
}
.live-card-button.is-blocked .live-card-button__bg{
  background:linear-gradient(180deg, rgba(218, 74, 74, .88) 0%, rgba(122, 20, 20, .90) 100%);
  box-shadow:0 10px 18px rgba(58, 8, 8, .28), inset 0 0 0 1px rgba(255,216,216,.24);
}
.live-card-button.is-selected .live-card-button__bg{
  transform:translateX(-50%) translateY(-4px);
}
.live-card-button.is-blocked,
.live-card-button.is-blocked *{
  cursor:not-allowed !important;
}
.live-card-button.is-blocked .live-card{
  filter:saturate(.88) brightness(.95);
}
@media (max-width: 980px){
  .live-seat--bottom .live-seat__body{
    grid-template-columns:96px minmax(0,1fr) !important;
    gap:8px !important;
  }
  .live-seat--bottom .live-seat__meta--self-inline{
    column-gap:8px !important;
  }
  .live-seat--bottom .live-seat__meta--self-inline .live-seat__name{font-size:14px;}
  .live-seat--bottom .live-seat__meta--self-inline .live-seat__line{font-size:11px;padding:4px 8px;}
}
@media (max-width: 640px){
  .live-seat--bottom .live-seat__body{
    grid-template-columns:84px minmax(0,1fr) !important;
    align-items:end !important;
  }
  .live-seat--bottom .live-seat__meta--self-inline{
    grid-template-columns:minmax(0,1fr) auto auto !important;
    column-gap:6px !important;
  }
  .live-seat--bottom .live-seat__meta--self-inline .live-seat__name{font-size:13px;}
  .live-seat--bottom .live-seat__meta--self-inline .live-seat__line{font-size:10px;padding:3px 7px;}
  .live-card-button__bg{height:22px;bottom:-6px;}
}


/* 2026-04-05: direct drag-to-table for playable cards + tighter opponent fans */
.live-room-stage__table{
  transition:box-shadow .18s ease, transform .18s ease, background .18s ease;
}
.live-room-stage__table.is-drop-target-ready{
  box-shadow:0 0 0 2px rgba(125, 211, 146, .18), inset 0 0 0 1px rgba(255,255,255,.04);
}
.live-room-stage__table.is-drop-target-hover{
  background:radial-gradient(circle at center, rgba(46, 160, 67, .18) 0%, rgba(46, 160, 67, .06) 45%, rgba(46, 160, 67, 0) 72%);
  box-shadow:0 0 0 2px rgba(125, 211, 146, .42), 0 18px 30px rgba(15, 61, 27, .20), inset 0 0 0 1px rgba(226,255,233,.18);
}
.live-card-button.is-playable{cursor:grab;}
.live-card-button.is-playable:active{cursor:grabbing;}
.live-card-button.is-disabled.is-blocked,
.live-card-button.is-blocked[aria-disabled="true"]{
  pointer-events:auto;
}

.live-seat--left,
.live-seat--right{
  max-width:148px !important;
  min-width:134px !important;
  overflow:hidden;
}
.live-seat--left .live-seat__cards,
.live-seat--right .live-seat__cards,
.live-seat--left .live-hand--backs,
.live-seat--right .live-hand--backs{
  width:100%;
  max-width:100%;
  overflow:hidden;
  justify-content:center;
}
.live-seat--left .live-hand--backs .live-card--back,
.live-seat--right .live-hand--backs .live-card--back{
  width:clamp(30px, 2.8vw, 42px) !important;
  height:calc(clamp(30px, 2.8vw, 42px) * var(--kingi-card-ratio)) !important;
  margin-left:calc(clamp(30px, 2.8vw, 42px) * -0.60) !important;
}
.live-seat--top .live-hand--backs .live-card--back{
  width:clamp(32px, 3vw, 44px) !important;
  height:calc(clamp(32px, 3vw, 44px) * var(--kingi-card-ratio)) !important;
  margin-left:calc(clamp(32px, 3vw, 44px) * -0.54) !important;
}

@media (max-width: 1280px){
  .live-seat--left,
  .live-seat--right{max-width:138px !important;min-width:124px !important;}
  .live-seat--left .live-hand--backs .live-card--back,
  .live-seat--right .live-hand--backs .live-card--back{
    width:clamp(28px, 3vw, 38px) !important;
    height:calc(clamp(28px, 3vw, 38px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(28px, 3vw, 38px) * -0.62) !important;
  }
  .live-seat--top .live-hand--backs .live-card--back{
    width:clamp(30px, 3.1vw, 40px) !important;
    height:calc(clamp(30px, 3.1vw, 40px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(30px, 3.1vw, 40px) * -0.56) !important;
  }
}

@media (max-width: 980px){
  .live-seat--left,
  .live-seat--right{max-width:126px !important;min-width:114px !important;}
  .live-seat--left .live-hand--backs .live-card--back,
  .live-seat--right .live-hand--backs .live-card--back{
    width:clamp(24px, 3.6vw, 34px) !important;
    height:calc(clamp(24px, 3.6vw, 34px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(24px, 3.6vw, 34px) * -0.64) !important;
  }
  .live-seat--top .live-hand--backs .live-card--back{
    width:clamp(28px, 3.8vw, 36px) !important;
    height:calc(clamp(28px, 3.8vw, 36px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(28px, 3.8vw, 36px) * -0.58) !important;
  }
}

@media (max-width: 640px){
  .live-seat--left,
  .live-seat--right{max-width:112px !important;min-width:102px !important;}
  .live-seat--left .live-hand--backs .live-card--back,
  .live-seat--right .live-hand--backs .live-card--back{
    width:clamp(22px, 4.2vw, 28px) !important;
    height:calc(clamp(22px, 4.2vw, 28px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(22px, 4.2vw, 28px) * -0.66) !important;
  }
  .live-seat--top .live-hand--backs .live-card--back{
    width:clamp(24px, 4.6vw, 30px) !important;
    height:calc(clamp(24px, 4.6vw, 30px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(24px, 4.6vw, 30px) * -0.60) !important;
  }
}


/* 2026-04-05: drag-drop fix, single trick-end animation, compass label */
.live-turn-compass__label{
  position:absolute;
  left:50%;
  top:-10px;
  transform:translate(-50%, -100%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:96px;
  padding:8px 16px;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(20,56,40,.92) 0%, rgba(9,28,20,.96) 100%);
  color:#fff5c3;
  font-size:22px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  box-shadow:0 10px 24px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,236,171,.20);
  z-index:2;
  pointer-events:none;
  white-space:nowrap;
}
@media (max-width: 900px){
  .live-turn-compass__label{
    min-width:72px;
    padding:6px 12px;
    font-size:16px;
  }
}

/* 2026-04-05: full-width self seat, clearer drop target, and live table chat overlay */
.live-seat--bottom{
  left:18px !important;
  right:18px !important;
  bottom:12px !important;
  transform:none !important;
  width:auto !important;
  max-width:none !important;
}
.live-seat--bottom .live-seat__body{
  grid-template-columns:clamp(108px, 11vw, 150px) minmax(0, 1fr) !important;
  width:100% !important;
}
.live-seat--bottom .live-seat__cards-area{
  width:100%;
}
.live-seat--bottom .live-hand--self{
  --self-card-width: clamp(74px, calc((100% - 20px) / ((var(--self-hand-count, 13) * 0.70) + 0.62)), 128px);
  min-height:calc((var(--self-card-width) * var(--kingi-card-ratio)) + 24px);
}
.live-seat--bottom .live-card-button{
  margin-right:calc(var(--self-card-width) * -0.28) !important;
}
.live-seat--bottom .live-card-button__bg{
  width:calc(var(--self-card-width, 78px) + 14px);
  height:30px;
  bottom:-10px;
}
.live-room-stage__table.is-drop-target-ready{
  background:radial-gradient(circle at center, rgba(170, 227, 185, .10) 0%, rgba(74, 166, 95, .05) 36%, rgba(0,0,0,0) 72%);
  box-shadow:0 0 0 3px rgba(125, 211, 146, .24), inset 0 0 0 1px rgba(226,255,233,.10);
}
.live-room-stage__table.is-drop-target-hover{
  background:radial-gradient(circle at center, rgba(74, 201, 102, .28) 0%, rgba(74, 201, 102, .12) 38%, rgba(74, 201, 102, 0) 72%);
  box-shadow:0 0 0 3px rgba(125, 211, 146, .65), 0 0 38px rgba(72, 186, 97, .22), inset 0 0 0 2px rgba(233,255,238,.20);
  transform:translate(-50%,-50%) scale(1.03);
}
.live-room-stage__table.is-drop-target-ready::after,
.live-room-stage__table.is-drop-target-hover::after{
  content:none;
  display:none;
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  padding:10px 16px;
  border-radius:999px;
  background:rgba(15, 60, 28, .72);
  color:#ebfff0;
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
  box-shadow:0 10px 24px rgba(0,0,0,.24);
  pointer-events:none;
}
.live-room-stage__table.is-drop-target-ready:not(.is-drop-target-hover)::after{
  opacity:.76;
  transform:translate(-50%,-50%) scale(.96);
}
.live-message-card__tools{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.live-chat-launch{
  border:0;
  border-radius:999px;
  padding:9px 14px;
  font-weight:900;
  color:#ecfff4;
  background:linear-gradient(180deg, rgba(39,115,180,.96) 0%, rgba(25,72,130,.96) 100%);
  box-shadow:0 10px 18px rgba(6,28,57,.24), inset 0 0 0 1px rgba(255,255,255,.10);
  cursor:pointer;
}
.live-chat-launch:hover{transform:translateY(-1px);}
.live-table-chat{
  position:absolute;
  left:50%;
  top:50%;
  width:min(54vw, 420px);
  max-width:92%;
  transform:translate(-50%,-50%);
  z-index:1;
  pointer-events:none;
  opacity:.34;
  filter:blur(.15px);
}
.live-table-chat__title{
  display:inline-flex;
  margin:0 auto 10px;
  padding:4px 10px;
  border-radius:999px;
  background:rgba(8,18,14,.48);
  color:rgba(244,255,247,.84);
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.live-table-chat__list{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.live-table-chat__item,
.live-table-chat__empty{
  padding:8px 12px;
  border-radius:14px;
  background:rgba(6,12,10,.32);
  color:rgba(245,252,246,.82);
  backdrop-filter:blur(3px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}
.live-table-chat__sender{display:block;font-weight:900;font-size:11px;margin-bottom:2px;color:rgba(226,250,233,.92);}
.live-table-chat__text{display:block;font-size:12px;line-height:1.35;overflow-wrap:anywhere;}
.live-chat-modal[hidden]{display:none !important;}
.live-chat-modal{position:fixed;inset:0;z-index:10020;}
.live-chat-modal__backdrop{position:absolute;inset:0;background:rgba(3,7,10,.56);backdrop-filter:blur(6px);}
.live-chat-modal__dialog{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(92vw, 720px);max-height:min(86vh, 820px);display:flex;flex-direction:column;overflow:hidden;border-radius:26px;background:linear-gradient(180deg, rgba(10,25,45,.97) 0%, rgba(13,33,60,.95) 100%);box-shadow:0 34px 80px rgba(0,0,0,.44), inset 0 0 0 1px rgba(255,255,255,.08);color:#eef5ff;}
.live-chat-modal__header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 14px;border-bottom:1px solid rgba(255,255,255,.08);}
.live-chat-modal__header h3{margin:0 0 4px;font-size:24px;color:#fff;}
.live-chat-modal__sub{font-size:13px;color:rgba(226,236,255,.80);}
.live-chat-modal__close{border:0;background:rgba(255,255,255,.08);color:#fff;width:42px;height:42px;border-radius:50%;font-size:28px;line-height:1;cursor:pointer;}
.live-chat-modal__header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto;}
.live-chat-modal__restore-table{min-height:38px;padding:8px 12px;border:1px solid rgba(255,226,138,.48);border-radius:11px;background:linear-gradient(180deg,#397daa,#245779);color:#fff;font-size:12px;font-weight:900;cursor:pointer;box-shadow:0 5px 13px rgba(0,0,0,.24);}
.live-chat-modal__restore-table:hover{background:linear-gradient(180deg,#4993c5,#2b678f);transform:translateY(-1px);}
.live-chat-modal__restore-table:focus-visible{outline:3px solid #ffe178;outline-offset:2px;}
.live-chat-modal__messages{padding:16px 18px;overflow:auto;display:flex;flex-direction:column;gap:10px;background:rgba(255,255,255,.03);}
.live-chat-modal__message{padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);}
.live-chat-modal__meta{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:4px;font-size:12px;color:#d7e7ff;}
.live-chat-modal__text{font-size:14px;line-height:1.45;color:#f6fbff;white-space:pre-wrap;overflow-wrap:anywhere;}
.live-chat-modal__empty{padding:18px;border-radius:16px;background:rgba(255,255,255,.05);text-align:center;color:#d6e3f8;}
.live-chat-modal__form{padding:16px 18px 18px;border-top:1px solid rgba(255,255,255,.08);background:rgba(7,18,34,.94);}
.live-chat-modal__form textarea{width:100%;min-height:110px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:rgba(255,255,255,.08);color:#fff;padding:12px 14px;font-size:14px;resize:vertical;}
.live-chat-modal__actions{margin-top:12px;display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;}
.live-chat-modal__hint{font-size:12px;color:rgba(220,233,255,.78);}
body.live-chat-modal-open{overflow:hidden;}
@media (max-width: 980px){
  .live-seat--bottom{left:12px !important;right:12px !important;}
  .live-seat--bottom .live-hand--self{--self-card-width: clamp(62px, calc((100% - 16px) / ((var(--self-hand-count, 13) * 0.72) + 0.64)), 102px);} 
  .live-table-chat{width:min(66vw, 360px);}
}
@media (max-width: 640px){
  .live-seat--bottom .live-seat__body{grid-template-columns:76px minmax(0,1fr) !important;}
  .live-seat--bottom .live-hand--self{--self-card-width: clamp(48px, calc((100% - 10px) / ((var(--self-hand-count, 13) * 0.78) + 0.7)), 78px);} 
  .live-table-chat{width:min(74vw, 280px); opacity:.26;}
  .live-chat-modal__dialog{width:min(96vw, 720px); max-height:90vh;}
  .live-chat-modal__header{flex-wrap:wrap;}
  .live-chat-modal__header-actions{width:100%;justify-content:space-between;}
  .live-chat-modal__header h3{font-size:20px;}
}


/* 2026-04-05: move live table chat left, remove compass ring, keep chat modal stable */
.live-turn-compass__ring{display:none !important;}
.live-turn-compass__core{box-shadow:0 0 0 2px rgba(255,224,136,.88), 0 4px 10px rgba(0,0,0,.28), inset 0 2px 4px rgba(255,255,255,.30) !important;}
.live-turn-compass__label{top:-10px !important; transform:translate(-50%, -100%) !important;}
.live-table-chat{
  left:14px !important;
  right:auto !important;
  top:auto !important;
  bottom:168px !important;
  transform:none !important;
  width:min(22vw, 220px) !important;
  max-width:220px;
  z-index:0 !important;
  pointer-events:none;
  opacity:.22;
}
.live-table-chat__title,
.live-table-chat__list,
.live-table-chat__item,
.live-table-chat__empty{
  pointer-events:none;
}
.live-table-chat__list{max-height:min(31vh, 250px);}
.live-trick-card,
.live-trick-card .live-card,
.live-trick-card .live-card--table{
  z-index:2;
}
@media (max-width: 980px){
  .live-table-chat{left:10px !important; right:auto !important; top:auto !important; bottom:150px !important; transform:none !important; width:min(26vw, 200px) !important; max-width:200px; opacity:.18;}
}
@media (max-width: 640px){
  .live-table-chat{left:8px !important; right:auto !important; top:auto !important; bottom:138px !important; transform:none !important; width:min(40vw, 156px) !important; max-width:156px; opacity:.14;}
  .live-table-chat__title{margin-bottom:6px; font-size:10px;}
  .live-table-chat__item,
  .live-table-chat__empty{padding:6px 8px; border-radius:12px;}
  .live-table-chat__sender{font-size:10px;}
  .live-table-chat__text{font-size:11px; line-height:1.25;}
}
.live-chat-modal{z-index:10040 !important;}
.live-chat-modal__dialog{z-index:10041;}
.live-chat-modal__messages{min-height:180px;}
.live-chat-modal__form textarea{position:relative; z-index:2;}


/* 2026-04-05: fix self-card highlight bars in fullscreen and prevent chat modal scroll lock */
.live-seat--bottom .live-card-button{
  width:var(--self-card-width) !important;
  min-width:var(--self-card-width) !important;
  max-width:var(--self-card-width) !important;
  padding:0 0 14px !important;
  box-sizing:border-box;
  align-items:flex-end !important;
}
.live-seat--bottom .live-card-button__bg{
  left:50% !important;
  right:auto !important;
  width:calc(100% - 8px) !important;
  min-width:calc(100% - 8px) !important;
  max-width:calc(100% - 8px) !important;
  bottom:2px !important;
  transform:translateX(-50%) !important;
}
.live-seat--bottom .live-card-button.is-selected .live-card-button__bg{
  transform:translateX(-50%) translateY(-4px) !important;
}
.live-seat--bottom .live-card-button .live-card{
  display:block;
  width:100% !important;
  height:auto !important;
  aspect-ratio:1 / var(--kingi-card-ratio);
}
body.live-chat-modal-open{
  overflow:auto !important;
}


/* 2026-04-05: fix persistent drag-drop and tighten side fans / reposition table chat */
.live-seat--left,
.live-seat--right{
  min-width:118px !important;
  max-width:126px !important;
}
.live-seat--left .live-seat__cards,
.live-seat--right .live-seat__cards,
.live-seat--left .live-hand--backs,
.live-seat--right .live-hand--backs{
  overflow:visible !important;
}
.live-seat--left .live-hand--backs .live-card--back,
.live-seat--right .live-hand--backs .live-card--back{
  width:clamp(28px, 2.35vw, 36px) !important;
  height:calc(clamp(28px, 2.35vw, 36px) * var(--kingi-card-ratio)) !important;
  margin-left:calc(clamp(28px, 2.35vw, 36px) * -0.74) !important;
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * 0.78deg)) !important;
}
.live-seat--top .live-hand--backs .live-card--back{
  width:clamp(30px, 2.55vw, 38px) !important;
  height:calc(clamp(30px, 2.55vw, 38px) * var(--kingi-card-ratio)) !important;
  margin-left:calc(clamp(30px, 2.55vw, 38px) * -0.68) !important;
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * 0.76deg)) !important;
}
.live-table-chat{
  left:clamp(240px, 19vw, 300px) !important;
  right:auto !important;
  top:auto !important;
  bottom:clamp(206px, 22vh, 274px) !important;
  transform:none !important;
  width:min(20vw, 240px) !important;
  max-width:240px !important;
  z-index:0 !important;
}
@media (max-width: 1280px){
  .live-seat--left,
  .live-seat--right{max-width:118px !important; min-width:110px !important;}
  .live-seat--left .live-hand--backs .live-card--back,
  .live-seat--right .live-hand--backs .live-card--back{
    width:clamp(26px, 2.55vw, 34px) !important;
    height:calc(clamp(26px, 2.55vw, 34px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(26px, 2.55vw, 34px) * -0.78) !important;
  }
  .live-seat--top .live-hand--backs .live-card--back{
    width:clamp(28px, 2.75vw, 36px) !important;
    height:calc(clamp(28px, 2.75vw, 36px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(28px, 2.75vw, 36px) * -0.72) !important;
  }
  .live-table-chat{
    left:clamp(214px, 18vw, 272px) !important;
    bottom:clamp(188px, 20vh, 244px) !important;
    width:min(21vw, 220px) !important;
    max-width:220px !important;
  }
}
@media (max-width: 980px){
  .live-seat--left,
  .live-seat--right{max-width:104px !important; min-width:96px !important;}
  .live-seat--left .live-hand--backs .live-card--back,
  .live-seat--right .live-hand--backs .live-card--back{
    width:clamp(22px, 3vw, 30px) !important;
    height:calc(clamp(22px, 3vw, 30px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(22px, 3vw, 30px) * -0.82) !important;
  }
  .live-seat--top .live-hand--backs .live-card--back{
    width:clamp(24px, 3.2vw, 32px) !important;
    height:calc(clamp(24px, 3.2vw, 32px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(24px, 3.2vw, 32px) * -0.76) !important;
  }
  .live-table-chat{
    left:clamp(170px, 17vw, 214px) !important;
    bottom:clamp(164px, 18vh, 206px) !important;
    width:min(24vw, 188px) !important;
    max-width:188px !important;
  }
}
@media (max-width: 640px){
  .live-table-chat{
    left:96px !important;
    bottom:132px !important;
    width:min(34vw, 148px) !important;
    max-width:148px !important;
  }
}


/* 2026-04-05: place table chat to the LEFT of center cards, and tighten side fans further */
.live-room-stage__table{
  overflow:visible !important;
}
.live-table-chat{
  left:auto !important;
  right:calc(100% + clamp(22px, 2.3vw, 34px)) !important;
  top:50% !important;
  bottom:auto !important;
  transform:translateY(-50%) !important;
  width:clamp(180px, 15vw, 220px) !important;
  max-width:220px !important;
  z-index:0 !important;
  opacity:.18 !important;
}
.live-trick-card,
.live-trick-card .live-card,
.live-trick-card .live-card--table,
.live-room-stage__table > *:not(.live-table-chat){
  position:relative;
  z-index:2;
}
.live-seat--left,
.live-seat--right{
  min-width:110px !important;
  max-width:118px !important;
}
.live-seat--left .live-hand--backs,
.live-seat--right .live-hand--backs{
  width:100% !important;
  justify-content:center !important;
}
.live-seat--left .live-hand--backs .live-card--back,
.live-seat--right .live-hand--backs .live-card--back{
  width:clamp(26px, 2.05vw, 32px) !important;
  height:calc(clamp(26px, 2.05vw, 32px) * var(--kingi-card-ratio)) !important;
  margin-left:calc(clamp(26px, 2.05vw, 32px) * -0.88) !important;
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * 0.55deg)) !important;
  transform-origin:center bottom !important;
}
.live-seat--left .live-hand--backs .live-card--back:first-child,
.live-seat--right .live-hand--backs .live-card--back:first-child{
  margin-left:0 !important;
}
@media (max-width: 1280px){
  .live-table-chat{
    right:calc(100% + 20px) !important;
    width:clamp(164px, 14vw, 196px) !important;
    max-width:196px !important;
  }
  .live-seat--left,
  .live-seat--right{
    min-width:104px !important;
    max-width:112px !important;
  }
  .live-seat--left .live-hand--backs .live-card--back,
  .live-seat--right .live-hand--backs .live-card--back{
    width:clamp(24px, 2vw, 30px) !important;
    height:calc(clamp(24px, 2vw, 30px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(24px, 2vw, 30px) * -0.90) !important;
  }
}
@media (max-width: 980px){
  .live-table-chat{
    right:calc(100% + 14px) !important;
    width:clamp(144px, 16vw, 176px) !important;
    max-width:176px !important;
    opacity:.14 !important;
  }
  .live-seat--left,
  .live-seat--right{
    min-width:94px !important;
    max-width:102px !important;
  }
  .live-seat--left .live-hand--backs .live-card--back,
  .live-seat--right .live-hand--backs .live-card--back{
    width:clamp(20px, 2.4vw, 26px) !important;
    height:calc(clamp(20px, 2.4vw, 26px) * var(--kingi-card-ratio)) !important;
    margin-left:calc(clamp(20px, 2.4vw, 26px) * -0.92) !important;
  }
}
@media (max-width: 640px){
  .live-table-chat{
    right:calc(100% + 10px) !important;
    width:124px !important;
    max-width:124px !important;
    opacity:.12 !important;
  }
}

/* 2026-04-05: tighten top player bubble height to remove empty lower space */
.live-seat--top{
  min-height:188px !important;
  padding:14px 14px 6px !important;
}
.live-seat--top .live-seat__body{
  gap:8px !important;
}
.live-seat--top .live-seat__identity{
  padding-top:0 !important;
}
.live-seat--top .live-seat__cards{
  min-height:68px !important;
  padding-bottom:0 !important;
}
.live-seat--top .live-hand--top,
.live-seat--top .live-hand--backs{
  min-height:68px !important;
  height:auto !important;
}
@media (max-width: 980px){
  .live-seat--top{
    min-height:174px !important;
    padding:12px 12px 6px !important;
  }
  .live-seat--top .live-seat__cards,
  .live-seat--top .live-hand--top,
  .live-seat--top .live-hand--backs{
    min-height:60px !important;
  }
}


/* 2026-04-05: dynamic opponent fan fill — fewer cards => less overlap and wider spread */
.live-seat--top .live-hand--backs,
.live-seat--left .live-hand--backs,
.live-seat--right .live-hand--backs{
  display:flex !important;
  align-items:flex-end !important;
  justify-content:center !important;
  width:100% !important;
  max-width:100% !important;
  gap:0 !important;
  min-height:calc((var(--dynamic-card-width, 34px) * var(--kingi-card-ratio)) + 4px) !important;
}
.live-seat--top .live-hand--backs .live-card--back,
.live-seat--left .live-hand--backs .live-card--back,
.live-seat--right .live-hand--backs .live-card--back{
  position:relative !important;
  left:auto !important;
  top:auto !important;
  width:var(--dynamic-card-width, 34px) !important;
  height:calc(var(--dynamic-card-width, 34px) * var(--kingi-card-ratio)) !important;
  margin-left:calc(var(--dynamic-step, 0px) - var(--dynamic-card-width, 34px)) !important;
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--dynamic-rotation, 0.6deg))) !important;
  transform-origin:center bottom !important;
}
.live-seat--top .live-hand--backs .live-card--back:first-child,
.live-seat--left .live-hand--backs .live-card--back:first-child,
.live-seat--right .live-hand--backs .live-card--back:first-child{
  margin-left:0 !important;
}
.live-seat--top .live-seat__cards,
.live-seat--left .live-seat__cards,
.live-seat--right .live-seat__cards{
  width:100% !important;
}


/* Final live trick layout override: compact central stack for current and previous trick */
.live-room-stage__table{overflow:visible;}
.live-trick-card,
.live-previous-trick .live-trick-card{transition:transform .18s ease, opacity .18s ease;}
.live-trick-card--bottom{left:50%;top:57%;transform:translate(-50%,-50%) rotate(var(--card-rotate)) !important;}
.live-trick-card--top{left:50%;top:43%;transform:translate(-50%,-50%) rotate(var(--card-rotate)) !important;}
.live-trick-card--left{left:45%;top:52%;transform:translate(-50%,-50%) rotate(var(--card-rotate)) !important;}
.live-trick-card--right{left:55%;top:50%;transform:translate(-50%,-50%) rotate(var(--card-rotate)) !important;}
.live-trick-card--preview.live-trick-card--bottom{left:50%;top:57%;}
.live-trick-card--preview.live-trick-card--top{left:50%;top:43%;}
.live-trick-card--preview.live-trick-card--left{left:45%;top:52%;}
.live-trick-card--preview.live-trick-card--right{left:55%;top:50%;}
@media (max-width: 1100px){
  .live-trick-card--bottom{top:58% !important;}
  .live-trick-card--top{top:44% !important;}
  .live-trick-card--left{left:46% !important;top:52% !important;}
  .live-trick-card--right{left:54% !important;top:50% !important;}
}

/* chat position now follows live layout editor settings */

/* 2026-04-05: enlarge played cards and keep compact central overlap */
.live-card--table,
.live-trick-card .live-card,
.live-trick-card .live-card--table,
.live-previous-trick .live-card,
.live-previous-trick .live-card--table{
  width:min(12.15vw, 117px) !important;
  height:calc(min(12.15vw, 117px) * var(--kingi-card-ratio)) !important;
}
@media (max-width: 1100px){
  .live-card--table,
  .live-trick-card .live-card,
  .live-trick-card .live-card--table,
  .live-previous-trick .live-card,
  .live-previous-trick .live-card--table{
    width:min(11vw, 98px) !important;
    height:calc(min(11vw, 98px) * var(--kingi-card-ratio)) !important;
  }
}
@media (max-width: 700px){
  .live-card--table,
  .live-trick-card .live-card,
  .live-trick-card .live-card--table,
  .live-previous-trick .live-card,
  .live-previous-trick .live-card--table{
    width:min(10vw, 84px) !important;
    height:calc(min(10vw, 84px) * var(--kingi-card-ratio)) !important;
  }
}

/* 2026-04-05: layout editor managed elements must be freely scalable and share one visual coordinate system */
.live-seat[data-layout-id],
.live-table-chat[data-layout-id],
.live-turn-compass[data-layout-id],
.live-trick-card[data-layout-id]{
  min-width:0 !important;
  max-width:none !important;
  min-height:0 !important;
  max-height:none !important;
  box-sizing:border-box !important;
}
.live-seat[data-layout-id] .live-seat__body,
.live-seat[data-layout-id] .live-seat__cards,
.live-seat[data-layout-id] .live-seat__meta,
.live-seat[data-layout-id] .live-hand,
.live-seat[data-layout-id] .live-hand--backs,
.live-seat[data-layout-id] .live-hand--top,
.live-seat[data-layout-id] .live-hand--left,
.live-seat[data-layout-id] .live-hand--right,
.live-seat[data-layout-id] .live-hand--self,
.live-table-chat[data-layout-id] .live-table-chat__title,
.live-table-chat[data-layout-id] .live-table-chat__list{
  min-width:0 !important;
  max-width:none !important;
  min-height:0 !important;
  max-height:none !important;
  box-sizing:border-box !important;
}

/* 2026-04-05: fixed preset stage system for live game + pixel editor */
.live-room-viewport{
  position:relative;
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  overflow-x:clip;
  overflow-y:visible;
}
.live-room-scale{
  position:absolute;
  left:0;
  top:0;
  transform-origin:top left;
  will-change:transform;
}
.live-room-stage[data-stage-width]{
  width:var(--live-stage-width) !important;
  height:var(--live-stage-height) !important;
  min-height:0 !important;
  max-height:none !important;
}
.live-room-stage[data-stage-width] .live-room-stage__felt{
  inset:0 !important;
  border:none !important;
  box-shadow:none !important;
  border-radius:inherit !important;
}
.live-room-stage[data-stage-width] .live-room-stage__table{
  width:var(--live-table-zone-width) !important;
  height:var(--live-table-zone-height) !important;
  max-width:none !important;
  max-height:none !important;
}
.live-room-stage[data-stage-width] .live-deck-stack,
.live-room-stage[data-stage-width] .live-card--table,
.live-room-stage[data-stage-width] .live-trick-card .live-card,
.live-room-stage[data-stage-width] .live-trick-card .live-card--table,
.live-room-stage[data-stage-width] .live-previous-trick .live-card,
.live-room-stage[data-stage-width] .live-previous-trick .live-card--table,
.live-room-stage[data-stage-width] .live-deal-card{
  width:var(--live-table-card-width-stage) !important;
  height:calc(var(--live-table-card-width-stage) * var(--kingi-card-ratio)) !important;
  max-width:none !important;
}
.live-room-stage[data-stage-width] .live-deal-card{
  margin-left:calc(var(--live-table-card-width-stage) * -0.5) !important;
  margin-top:calc(var(--live-table-card-width-stage) * var(--kingi-card-ratio) * -0.5) !important;
}
.live-room-stage[data-stage-width] .live-seat{
  --live-card-width:var(--live-back-card-width-stage) !important;
  min-width:0 !important;
  max-width:none !important;
}
.live-room-stage[data-stage-width] .live-seat--bottom{
  width:auto !important;
  max-width:none !important;
}
.live-room-stage[data-stage-width] .live-seat--bottom .live-card-button{
  margin-right:calc(var(--live-self-card-width-stage) * -0.12) !important;
}
.live-room-stage[data-stage-width] .live-seat--bottom .live-card-button:last-child{
  margin-right:0 !important;
}
.live-room-stage[data-stage-width] .live-seat--bottom .live-card,
.live-room-stage[data-stage-width] .live-seat--bottom .live-card--face,
.live-room-stage[data-stage-width] .live-seat--bottom .live-card--table{
  width:var(--live-self-card-width-stage) !important;
  height:calc(var(--live-self-card-width-stage) * var(--kingi-card-ratio)) !important;
}
.live-room-stage[data-stage-width] .live-hand--backs{
  --fan-size:calc(var(--live-back-card-width-stage) * 2.8) !important;
  width:var(--fan-size) !important;
  height:var(--fan-size) !important;
  min-height:var(--fan-size) !important;
}
.live-room-stage[data-stage-width] .live-seat--top .live-hand--backs .live-card--back,
.live-room-stage[data-stage-width] .live-seat--left .live-hand--backs .live-card--back,
.live-room-stage[data-stage-width] .live-seat--right .live-hand--backs .live-card--back{
  width:var(--live-back-card-width-stage) !important;
  height:calc(var(--live-back-card-width-stage) * var(--kingi-card-ratio)) !important;
  margin-left:calc(var(--live-back-card-width-stage) * -0.30) !important;
}
.live-room-stage[data-stage-width] .live-seat--top .live-hand--backs .live-card--back:first-child,
.live-room-stage[data-stage-width] .live-seat--left .live-hand--backs .live-card--back:first-child,
.live-room-stage[data-stage-width] .live-seat--right .live-hand--backs .live-card--back:first-child{
  margin-left:0 !important;
}
.live-room-stage[data-stage-width] .live-seat__avatar{
  width:var(--live-avatar-size-stage) !important;
  height:var(--live-avatar-size-stage) !important;
  border-radius:calc(var(--live-avatar-size-stage) * 0.24) !important;
}
.live-room-stage[data-stage-width] .live-seat--bottom .live-seat__avatar{
  width:var(--live-self-avatar-size-stage) !important;
  height:var(--live-self-avatar-size-stage) !important;
  border-radius:calc(var(--live-self-avatar-size-stage) * 0.24) !important;
}
.live-room-stage[data-stage-width] .live-turn-compass{
  width:var(--live-compass-size-stage) !important;
  height:var(--live-compass-size-stage) !important;
}
.live-room-stage[data-stage-width] .live-turn-compass__ring{
  width:var(--live-compass-ring-size-stage) !important;
  height:var(--live-compass-ring-size-stage) !important;
}
.live-room-stage[data-stage-width] .live-turn-compass__ring::before,
.live-room-stage[data-stage-width] .live-turn-compass__ring::after{
  width:calc(var(--live-compass-ring-size-stage) * 1.45) !important;
  height:calc(var(--live-compass-ring-size-stage) * 0.38) !important;
}
.live-room-stage[data-stage-width] .live-turn-compass__needle{
  width:calc(var(--live-compass-ring-size-stage) * 0.22) !important;
  height:var(--live-compass-needle-height-stage) !important;
}
.live-room-stage[data-stage-width] .live-turn-compass__needle::before{
  width:calc(var(--live-compass-ring-size-stage) * 0.22) !important;
  height:calc(var(--live-compass-needle-height-stage) * 0.78) !important;
}
.live-room-stage[data-stage-width] .live-turn-compass__needle::after{
  width:calc(var(--live-compass-ring-size-stage) * 0.09) !important;
  height:calc(var(--live-compass-needle-height-stage) * 0.32) !important;
}
.live-room-stage[data-stage-width] .live-turn-compass__core{
  width:calc(var(--live-compass-ring-size-stage) * 0.38) !important;
  height:calc(var(--live-compass-ring-size-stage) * 0.38) !important;
}


/* 2026-04-05: fan bounding box from layout editor controls card size and overlap */
.live-seat__cards[data-layout-id="fan_top"],
.live-seat__cards[data-layout-id="fan_left"],
.live-seat__cards[data-layout-id="fan_right"],
.live-seat__cards[data-layout-id="fan_bottom"]{
  overflow:visible !important;
}
.live-seat__cards[data-layout-id="fan_top"] .live-hand,
.live-seat__cards[data-layout-id="fan_left"] .live-hand,
.live-seat__cards[data-layout-id="fan_right"] .live-hand,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand{
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-width:100% !important;
  overflow:visible !important;
  display:flex !important;
  justify-content:center !important;
  align-items:flex-end !important;
  padding:0 !important;
}
.live-seat__cards[data-layout-id="fan_top"] .live-card--back,
.live-seat__cards[data-layout-id="fan_left"] .live-card--back,
.live-seat__cards[data-layout-id="fan_right"] .live-card--back{
  width:var(--layout-fan-card-width, 34px) !important;
  height:var(--layout-fan-card-height, 48px) !important;
  margin-left:calc(var(--layout-fan-step, 0px) - var(--layout-fan-card-width, 34px)) !important;
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--layout-fan-rotation, 0.6deg))) !important;
  transform-origin:center bottom !important;
}
.live-seat__cards[data-layout-id="fan_top"] .live-card--back:first-child,
.live-seat__cards[data-layout-id="fan_left"] .live-card--back:first-child,
.live-seat__cards[data-layout-id="fan_right"] .live-card--back:first-child{
  margin-left:0 !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button{
  flex:0 0 auto !important;
  margin-right:calc(var(--layout-fan-step, 0px) - var(--layout-fan-card-width, 34px)) !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button:last-child{
  margin-right:0 !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card--face,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card--back{
  width:var(--layout-fan-card-width, 34px) !important;
  height:var(--layout-fan-card-height, 48px) !important;
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--layout-fan-rotation, 1deg))) !important;
  transform-origin:center bottom !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card--back{
  position:relative !important;
  left:auto !important;
  top:auto !important;
  margin:0 0 0 calc(var(--layout-fan-step, 0px) - var(--layout-fan-card-width, 34px)) !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card--back:first-child{
  margin-left:0 !important;
}

/* 2026-05-18: deal animation uses the layout fan box also for bottom-player backs, not the large self-hand face-card size. */
.live-seat--bottom.is-dealing .live-seat__cards[data-layout-id="fan_bottom"] .live-card--back,
.live-seat--bottom.is-dealing .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card--back{
  width:var(--layout-fan-card-width, 34px) !important;
  height:var(--layout-fan-card-height, 48px) !important;
  max-width:none !important;
  position:relative !important;
  left:auto !important;
  top:auto !important;
}


/* 2026-04-05: seat text boxes centered and inline preview when meta box is wide enough */
.live-seat__meta[data-layout-id$="_meta"],
.live-layout-detached-proxy[data-layout-proxy-id$="_meta"]{
  display:grid !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  box-sizing:border-box !important;
  align-content:center !important;
  justify-content:center !important;
  justify-items:center !important;
  text-align:center !important;
  row-gap:6px !important;
  column-gap:10px !important;
  padding:6px 8px !important;
}
.live-seat__meta[data-layout-id$="_meta"] > .live-seat__name,
.live-seat__meta[data-layout-id$="_meta"] > .live-seat__line,
.live-layout-detached-proxy[data-layout-proxy-id$="_meta"] > .live-seat__name,
.live-layout-detached-proxy[data-layout-proxy-id$="_meta"] > .live-seat__line{
  margin:0 !important;
  max-width:100% !important;
  text-align:center !important;
}
.live-seat__meta[data-layout-id$="_meta"] > .live-seat__name,
.live-layout-detached-proxy[data-layout-proxy-id$="_meta"] > .live-seat__name{
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.live-seat__meta[data-layout-id$="_meta"].live-seat__meta--layout-stacked,
.live-layout-detached-proxy[data-layout-proxy-id$="_meta"].live-seat__meta--layout-stacked{
  grid-template-columns:minmax(0, 1fr) !important;
  grid-auto-flow:row !important;
}
.live-seat__meta[data-layout-id$="_meta"].live-seat__meta--layout-inline,
.live-layout-detached-proxy[data-layout-proxy-id$="_meta"].live-seat__meta--layout-inline{
  grid-template-columns:minmax(0, max-content) max-content max-content !important;
  grid-auto-flow:column !important;
  align-items:center !important;
}
.live-seat__meta[data-layout-id$="_meta"].live-seat__meta--layout-inline > .live-seat__name,
.live-layout-detached-proxy[data-layout-proxy-id$="_meta"].live-seat__meta--layout-inline > .live-seat__name,
.live-seat__meta[data-layout-id$="_meta"].live-seat__meta--layout-inline > .live-seat__line,
.live-layout-detached-proxy[data-layout-proxy-id$="_meta"].live-seat__meta--layout-inline > .live-seat__line{
  white-space:nowrap !important;
}


/* 2026-04-05: editor must be able to grab detached fans and compass */
.live-layout-editing .live-turn-compass[data-layout-id],
.live-layout-editing .live-seat__cards[data-layout-id^="fan_"]{
  pointer-events:auto !important;
}


/* 2026-04-05: layout editor must support horizontal scrolling for wide stage presets */
.live-game-shell__stage{
  min-width:0;
}
.live-layout-editing .live-game-shell__stage{
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
.live-layout-editing .live-room-viewport{
  overflow:auto;
  max-width:none;
}
.live-layout-editing .live-room-scale{
  position:relative;
}


/* 2026-04-05: normalize live table chat as a single free layout object */
.live-table-chat{
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  right:auto !important;
  bottom:auto !important;
  transform:none !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  gap:10px !important;
  box-sizing:border-box !important;
  width:240px;
  min-width:140px !important;
  min-height:120px !important;
  max-width:none !important;
  padding:0 !important;
  overflow:hidden !important;
}
.live-table-chat__title{
  flex:0 0 auto;
  margin:0 auto !important;
}
.live-table-chat__list{
  display:flex !important;
  flex-direction:column-reverse !important;
  justify-content:flex-start !important;
  gap:8px !important;
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:hidden !important;
}


/* 2026-04-05: detached bottom hand must stay interactive and stack right cards above left cards */
.live-seat__cards[data-layout-id="fan_bottom"]{
  display:flex !important;
  justify-content:flex-start !important;
  align-items:flex-end !important;
  overflow:visible !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self{
  justify-content:flex-start !important;
  align-items:flex-end !important;
  width:100% !important;
  min-height:0 !important;
  padding:10px 8px 6px !important;
  gap:0 !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button{
  position:relative !important;
  flex:0 0 auto !important;
  display:flex !important;
  justify-content:center !important;
  align-items:flex-end !important;
  width:var(--layout-fan-card-width, 96px) !important;
  min-width:var(--layout-fan-card-width, 96px) !important;
  max-width:var(--layout-fan-card-width, 96px) !important;
  padding:0 0 14px !important;
  box-sizing:border-box !important;
  margin-right:calc(var(--layout-fan-step, 0px) - var(--layout-fan-card-width, 96px)) !important;
  z-index:calc(var(--fan-index, 0) + 1) !important;
  pointer-events:auto !important;
  transition:transform .18s ease !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button:first-child{
  margin-left:0 !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button:last-child{
  margin-right:0 !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button:hover{
  transform:translateY(-6px) !important;
  z-index:200 !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-selected{
  transform:translateY(-16px) scale(1.04) !important;
  z-index:220 !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-disabled:hover,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-blocked:hover{
  transform:none !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button__bg{
  left:50% !important;
  right:auto !important;
  width:calc(100% - 8px) !important;
  min-width:calc(100% - 8px) !important;
  max-width:calc(100% - 8px) !important;
  bottom:2px !important;
  transform:translateX(-50%) !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-selected .live-card-button__bg{
  transform:translateX(-50%) translateY(-4px) !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card--face{
  display:block !important;
  width:100% !important;
  height:auto !important;
  aspect-ratio:1 / var(--kingi-card-ratio) !important;
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--layout-fan-rotation, 1deg))) !important;
  transform-origin:center bottom !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-playable{
  cursor:grab !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-playable:active{
  cursor:grabbing !important;
}

/* 2026-05-18: bottom dealing backs must not inherit the self-hand face-card scaling rule above. */
.live-seat__cards[data-layout-id="fan_bottom"] .live-card--back,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card--back{
  display:block !important;
  width:var(--layout-fan-card-width, 34px) !important;
  min-width:var(--layout-fan-card-width, 34px) !important;
  max-width:var(--layout-fan-card-width, 34px) !important;
  height:var(--layout-fan-card-height, 48px) !important;
  min-height:var(--layout-fan-card-height, 48px) !important;
  max-height:var(--layout-fan-card-height, 48px) !important;
  aspect-ratio:auto !important;
  position:relative !important;
  left:auto !important;
  top:auto !important;
  margin:0 0 0 calc(var(--layout-fan-step, 0px) - var(--layout-fan-card-width, 34px)) !important;
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--layout-fan-rotation, 1deg))) !important;
  transform-origin:center bottom !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-card--back:first-child,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card--back:first-child{
  margin-left:0 !important;
}


.game-online-pill{display:inline-flex;align-items:center;justify-content:center;margin-left:8px;padding:3px 12px;border-radius:999px;background:linear-gradient(180deg,#41be5e 0%,#2ca448 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 2px 6px rgba(10,40,12,.25);color:#fff;font-size:11px;font-weight:900;letter-spacing:.04em;vertical-align:middle;}
.game-score-player-name{display:inline-block;vertical-align:middle;}
.live-scoreboard__legacy-wrap{display:block;}
.live-scoreboard__legacy-wrap.game-chat-fullscreen-score.is-active{width:100%;background:transparent;}
.live-scoreboard__legacy-wrap .game-chat-fullscreen-score__inner{display:flex;justify-content:center;}
.live-scoreboard__legacy-wrap .game-score-table{margin:0 auto !important;width:auto !important;max-width:100%;border-collapse:separate;}
.live-scoreboard__legacy-wrap .game-score-table--compact-readonly > tbody > tr:first-child{display:none;}
.live-scoreboard__legacy-wrap .live-score-grid > tbody > tr:first-child{display:table-row !important;}
.live-scoreboard__legacy-wrap .game-score-table--compact-readonly td{padding:2px 3px !important;font-size:11px;line-height:1.05;white-space:nowrap;vertical-align:middle;}
.live-scoreboard__legacy-wrap .game-score-table--compact-readonly td:first-child{font-size:10px;font-weight:700;white-space:normal;}
.live-scoreboard__legacy-wrap .game-score-readonly-field{display:inline-block;min-width:2.1em;padding:0 1px;font-size:11px;font-weight:700;line-height:1.05;color:inherit;background:transparent;border:0;}
.live-scorebook-badge__tooltip{min-width:520px;max-width:min(92vw,920px);overflow:auto;}
.live-scorebook-badge__tooltip .live-scoreboard--compact{min-width:0;max-width:none;}
.live-room-stage__round-score .live-scoreboard{max-width:none;background:transparent;box-shadow:none;padding:0;}
.live-room-stage__round-score .live-scoreboard__legacy-wrap .game-score-table--compact-readonly > tbody > tr:first-child{display:table-row;}
.live-room-stage__round-score .live-scoreboard__legacy-wrap .game-score-table--compact-readonly td{padding:4px 6px !important;font-size:13px;line-height:1.15;}
.live-room-stage__round-score .live-scoreboard__legacy-wrap .game-score-table--compact-readonly td:first-child{font-size:12px;}
.live-room-stage__round-score .live-scoreboard__legacy-wrap .game-score-readonly-field{font-size:13px;}


/* 2026-04-06: live game must be able to break out of app-shell max-width and use full browser width */
.live-game-view{
  width:calc(100vw - 24px) !important;
  max-width:none !important;
  margin-left:calc(50% - 50vw + 12px) !important;
  margin-right:calc(50% - 50vw + 12px) !important;
  overflow:visible !important;
}
.live-game-app-frame,
.live-game-shell,
.live-game-shell__stage,
.live-room-viewport{
  width:100% !important;
  max-width:none !important;
}
.live-game-shell__stage{
  overflow:visible !important;
}
.live-room-scale{
  max-width:none !important;
}
@media (max-width: 760px){
  .live-game-view{
    width:calc(100vw - 12px) !important;
    margin-left:calc(50% - 50vw + 6px) !important;
    margin-right:calc(50% - 50vw + 6px) !important;
  }
}


/* 2026-04-06: fix bottom hand first-card auto-hover lift with full 13-card fan */
.live-seat--bottom .live-card-button:hover,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button:hover{
  transform:none !important;
}
.live-seat--bottom .live-card-button.is-selected,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-selected{
  transform:translateY(-14px) scale(1.03) !important;
  z-index:220 !important;
}
.live-seat--bottom .live-card-button.is-disabled:hover,
.live-seat--bottom .live-card-button.is-blocked:hover,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-disabled:hover,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-blocked:hover{
  transform:none !important;
}


/* 2026-04-06 scoreboard/deal/collection refinements */
.live-scoreboard__legacy-wrap--plain{width:100%;background:transparent;overflow:visible;}
.live-score-grid{margin:0 auto !important;width:auto !important;max-width:100%;border-collapse:separate;border-spacing:1px;background:#000;}
.live-score-grid thead th{background:linear-gradient(rgba(0,0,0,.10), rgba(0,0,0,.10)), #eef5fb !important;background-image:none !important;color:#10283a !important;text-shadow:none !important;box-shadow:none !important;font-size:11px;font-weight:800;padding:3px 5px !important;white-space:nowrap;}
.live-score-grid thead th:first-child{background:linear-gradient(rgba(0,0,0,.10), rgba(0,0,0,.10)), #eef5fb !important;background-image:none !important;color:#10283a !important;}
.live-score-grid tbody th{background-image:none !important;color:#153245 !important;text-shadow:none !important;box-shadow:none !important;text-align:right;font-size:10px;font-weight:800;padding:2px 5px !important;white-space:normal;}
.live-score-grid tbody tr:nth-child(2n+1) th{background:linear-gradient(rgba(0,0,0,.10), rgba(0,0,0,.10)), #eef5fb !important;}
.live-score-grid tbody tr:nth-child(2n) th{background:linear-gradient(rgba(0,0,0,.10), rgba(0,0,0,.10)), #fff8e7 !important;}
.live-score-grid tbody td{color:#111;text-align:center;padding:2px 4px !important;font-size:11px;white-space:nowrap;}
.live-score-grid tbody tr:nth-child(2n+1) td{background:linear-gradient(rgba(0,0,0,.10), rgba(0,0,0,.10)), #eef5fb !important;}
.live-score-grid tbody tr:nth-child(2n) td{background:linear-gradient(rgba(0,0,0,.10), rgba(0,0,0,.10)), #fff8e7 !important;}
.live-score-grid tbody tr.is-summary th,.live-score-grid tbody tr.is-summary td{background:#D9D9D9 !important;}
.live-score-grid tbody tr.is-total th,.live-score-grid tbody tr.is-total td{background:orange !important;}
.live-score-grid .game-score-readonly-field{display:inline-block;min-width:1.6em;padding:0;font-size:11px;font-weight:800;line-height:1.05;background:transparent;border:0;}
.live-scorebook-badge__tooltip{overflow:visible;min-width:0;}
.live-scorebook-badge__tooltip .live-score-grid{transform:scale(.96);transform-origin:top center;}
.live-room-stage__round-score .live-score-grid tbody th{font-size:11px;}
.live-room-stage__round-score .live-score-grid tbody td,.live-room-stage__round-score .live-score-grid .game-score-readonly-field{font-size:12px;}
.live-room-stage__round-score .live-score-grid{box-shadow:none;}

.live-deal-layer .live-room-stage__deck,.live-deal-layer .live-room-stage__deck{display:block;}
.live-deal-layer .live-deck-stack{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);}
.live-deck-stack{position:relative;width:88px;height:128px;}
.live-deck-card{position:absolute;left:0;top:0;width:88px;height:128px;border-radius:12px;transform:translate(calc(var(--deck-offset, 0) * .35px), calc(var(--deck-offset, 0) * .55px));box-shadow:0 10px 22px rgba(0,0,0,.28);}
.live-deck-stack__count{position:absolute;left:50%;bottom:-26px;transform:translateX(-50%);padding:5px 10px;border-radius:999px;background:rgba(7,18,14,.84);color:#fff4c2;font-weight:900;font-size:12px;white-space:nowrap;}
.live-room-stage__deck .live-deck-stack{left:50%;top:50%;transform:translate(-50%,-50%);}
.live-room-stage__deck{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;}
.live-deal-card{z-index:6;}
@keyframes kingiLiveDeal{0%{opacity:1;transform:translate(0,0) rotate(0deg) scale(1);}80%{opacity:1;}100%{opacity:0;transform:translate(var(--deal-x),var(--deal-y)) rotate(var(--deal-r)) scale(.88);}}
.live-trick-card.is-collecting{animation-timing-function:cubic-bezier(.2,.8,.2,1);animation-fill-mode:forwards;}
@keyframes kingiLiveCollectBottom{to{opacity:0;transform:translate(calc(-50% + var(--collect-dx, 0px)), calc(-50% + var(--collect-dy, 0px))) scale(.24) rotate(var(--card-rotate));}}
@keyframes kingiLiveCollectTop{to{opacity:0;transform:translate(calc(-50% + var(--collect-dx, 0px)), calc(-50% + var(--collect-dy, 0px))) scale(.24) rotate(var(--card-rotate));}}
@keyframes kingiLiveCollectLeft{to{opacity:0;transform:translate(calc(-50% + var(--collect-dx, 0px)), calc(-50% + var(--collect-dy, 0px))) scale(.24) rotate(var(--card-rotate));}}
@keyframes kingiLiveCollectRight{to{opacity:0;transform:translate(calc(-50% + var(--collect-dx, 0px)), calc(-50% + var(--collect-dy, 0px))) scale(.24) rotate(var(--card-rotate));}}

.live-status-chip--trump{
  background: linear-gradient(180deg, rgba(244,206,120,.28), rgba(164,108,28,.34));
  border-color: rgba(244,206,120,.48);
  color: #fff2bf;
}
.live-order-pill.is-current-turn{
  background: linear-gradient(180deg, rgba(242,208,96,.30), rgba(182,120,24,.34));
  border-color: rgba(242,208,96,.55);
  color: #fff4cb;
  box-shadow: 0 0 0 1px rgba(255,226,144,.18) inset, 0 10px 18px rgba(0,0,0,.22);
}
.live-action-panel{
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(7,25,20,.54);
  border: 1px solid rgba(255,255,255,.10);
}
.live-action-panel__title{
  font-weight: 700;
  color: #f4efd7;
  margin-bottom: 10px;
}
.live-action-panel__hint{
  margin-top: 10px;
  font-size: 12px;
  color: rgba(255,255,255,.74);
}
.live-choice-grid{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.live-choice-grid--two .live-choice-button{
  min-width: 140px;
}
.live-choice-grid--suits .live-choice-button{
  min-width: 110px;
}
.live-choice-button{
  appearance: none;
  border: 1px solid rgba(240,240,240,.18);
  background: linear-gradient(180deg, rgba(249,248,242,.98), rgba(215,222,231,.92));
  color: #17352a;
  border-radius: 16px;
  padding: 12px 16px;
  min-width: 64px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 10px 18px rgba(0,0,0,.18);
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.live-choice-button:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 22px rgba(0,0,0,.22);
}
.live-choice-button.is-selected,
.live-choice-button--primary{
  border-color: rgba(245,205,107,.72);
  background: linear-gradient(180deg, rgba(255,245,204,.98), rgba(232,207,125,.96));
  color: #3f2a09;
}
.live-final-panel{
  display: grid;
  gap: 14px;
}
.live-final-panel__section{
  background: rgba(9,25,21,.42);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 18px;
  padding: 12px;
}
.live-final-panel__section h3{
  margin: 0 0 10px;
  color: #f5eed1;
}
.live-final-table{
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.live-final-table th,
.live-final-table td{
  padding: 8px 10px;
  border-bottom: 1px solid rgba(255,255,255,.10);
  text-align: left;
}
.live-final-table thead th,
.live-final-table tfoot th{
  color: #f6eed0;
  background: rgba(255,255,255,.06);
}
.live-final-table tbody tr:nth-child(even) td{
  background: rgba(255,255,255,.03);
}
.live-final-panel__actions{
  margin-top: 12px;
  display: flex;
  justify-content: flex-end;
}
.live-final-panel__acknowledged{
  display: inline-flex;
  align-items: center;
  padding: 10px 14px;
  border-radius: 14px;
  background: rgba(143,201,127,.18);
  border: 1px solid rgba(143,201,127,.28);
  color: #e7f9df;
  font-weight: 700;
}
.live-inline-note{
  margin: 8px 0 12px;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16);
  font-weight: 700;
}

/* 2026-05-18 live round score overlay, real deal animation and bidding bubbles */
.live-room-stage__round-score--topmost{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:3200;
  width:min(720px, calc(100% - 220px));
  max-height:min(72vh, 620px);
  overflow:auto;
  padding:12px;
  border-radius:22px;
  background:rgba(5,18,14,.88);
  border:1px solid rgba(255,231,160,.38);
  box-shadow:0 28px 70px rgba(0,0,0,.58), 0 0 0 9999px rgba(0,0,0,.10);
  pointer-events:auto;
}
.live-room-stage__round-score--topmost .live-score-grid{
  margin:0 auto !important;
  box-shadow:0 16px 34px rgba(0,0,0,.28);
}
.live-deal-layer{
  z-index:3100 !important;
}
.live-deal-layer .live-deck-stack{
  left:calc(50% + min(34vw, 380px)) !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
}
.live-deal-layer__deck-label{
  position:absolute;
  left:calc(50% + min(34vw, 380px));
  top:calc(50% - 118px);
  transform:translateX(-50%);
  z-index:2;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(7,18,14,.86);
  color:#fff2bf;
  font-size:12px;
  font-weight:900;
  letter-spacing:.03em;
  white-space:nowrap;
  box-shadow:0 10px 24px rgba(0,0,0,.32), inset 0 0 0 1px rgba(255,235,174,.18);
}
.live-seat.is-dealing .live-seat__cards{
  min-height:86px;
}
.live-hand--backs.is-empty{
  min-width:72px;
  min-height:92px;
  opacity:.24;
}
.live-seat.is-dealing .live-card--back{
  animation:kingiLiveDealtCardSettle .34s cubic-bezier(.2,.78,.22,1) both;
}
@keyframes kingiLiveDealtCardSettle{
  0%{opacity:0;transform:translateY(-10px) scale(.94) rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--dynamic-rotation, .58deg)));}
  100%{opacity:1;transform:translateX(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--dynamic-step, 18px))) rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--dynamic-rotation, .58deg)));}
}
.live-bid-bubble{
  position:absolute;
  z-index:3400;
  pointer-events:none;
  max-width:210px;
  padding:8px 12px;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(255,247,211,.98), rgba(238,209,128,.98));
  color:#3f2a09;
  font-size:14px;
  font-weight:950;
  line-height:1.1;
  text-align:center;
  box-shadow:0 14px 28px rgba(0,0,0,.32), inset 0 0 0 1px rgba(116,76,12,.22);
  border:1px solid rgba(255,236,170,.82);
  animation:kingiLiveBidBubbleIn .22s ease-out both;
}
.live-bid-bubble--bottom{left:50%;top:-20px;transform:translate(-50%,-100%);} 
.live-bid-bubble--top{left:50%;bottom:-20px;transform:translate(-50%,100%);} 
.live-bid-bubble--left{left:100%;top:50%;transform:translate(12px,-50%);} 
.live-bid-bubble--right{right:100%;top:50%;transform:translate(-12px,-50%);} 
@keyframes kingiLiveBidBubbleIn{0%{opacity:0;filter:blur(2px);transform:translateY(4px) scale(.96);}100%{opacity:1;filter:blur(0);}}
.live-trick-card.is-waiting-collection .live-card--table{
  box-shadow:0 18px 34px rgba(0,0,0,.36), 0 0 0 2px rgba(255,228,142,.16);
}
.live-trick-card.is-collecting-hidden{
  opacity:0 !important;
  transition:opacity .14s ease !important;
}
@media (max-width: 980px){
  .live-room-stage__round-score--topmost{width:min(94vw, 640px);top:42%;max-height:56vh;}
  .live-deal-layer .live-deck-stack{left:50% !important;top:22% !important;}
  .live-deal-layer__deck-label{left:50%;top:calc(22% - 108px);}
}

/* 2026-05-18: Tikin keruu vaiheittain: 3 s näkyvissä, kääntö, 1 s selkäpuoli, sitten liuku voittajalle. */
.live-trick-card.is-flipping-to-back,
.live-trick-card.is-back-up{
  perspective:900px;
  z-index:5200 !important;
}
.live-trick-card.is-flipping-to-back .live-card--table{
  animation:kingiLiveFlipTrickToBack .52s cubic-bezier(.2,.72,.16,1) both;
  transform-origin:50% 50%;
  backface-visibility:hidden;
  will-change:transform,filter;
}
.live-trick-card.is-back-up .live-card--table{
  transform:rotateY(0deg) translateZ(0);
  filter:brightness(.98);
}
.live-trick-card.is-collecting-hidden{
  opacity:0 !important;
  visibility:hidden !important;
  transition:none !important;
}
@keyframes kingiLiveFlipTrickToBack{
  0%{transform:rotateY(0deg) translateZ(0);filter:brightness(1);}
  48%{transform:rotateY(88deg) translateZ(6px);filter:brightness(1.12);}
  52%{transform:rotateY(88deg) translateZ(6px);filter:brightness(1.12);}
  100%{transform:rotateY(0deg) translateZ(0);filter:brightness(.98);}
}

/* 2026-05-18: jaon pakka ja lentävät kortit käyttävät lavan omaa koordinaatistoa. */
.live-deal-layer{
  z-index:5400 !important;
  overflow:visible !important;
}
.live-deal-layer__deck-anchor{
  position:absolute !important;
  transform:translate(-50%,-50%) !important;
  z-index:4 !important;
  pointer-events:none !important;
}
.live-deal-layer__deck-anchor .live-deck-stack{
  position:relative !important;
  left:auto !important;
  top:auto !important;
  transform:none !important;
}
.live-deal-layer__deck-label{
  transform:translateX(-50%) !important;
  z-index:5 !important;
}
.live-room-stage .live-seat--bottom.is-dealing .live-seat__cards[data-layout-id="fan_bottom"] .live-hand--backs,
.live-room-stage .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--backs{
  display:flex !important;
  justify-content:flex-start !important;
  align-items:flex-end !important;
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
  padding:0 !important;
  overflow:visible !important;
  gap:0 !important;
}
.live-room-stage .live-seat--bottom.is-dealing .live-seat__cards[data-layout-id="fan_bottom"] .live-hand--backs .live-card--back,
.live-room-stage .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--backs .live-card--back{
  display:block !important;
  position:relative !important;
  left:auto !important;
  top:auto !important;
  flex:0 0 auto !important;
  width:var(--layout-fan-card-width, 34px) !important;
  min-width:var(--layout-fan-card-width, 34px) !important;
  max-width:var(--layout-fan-card-width, 34px) !important;
  height:var(--layout-fan-card-height, 48px) !important;
  min-height:var(--layout-fan-card-height, 48px) !important;
  max-height:var(--layout-fan-card-height, 48px) !important;
  aspect-ratio:auto !important;
  margin:0 0 0 calc(var(--layout-fan-step, 0px) - var(--layout-fan-card-width, 34px)) !important;
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--layout-fan-rotation, 1deg))) !important;
  transform-origin:center bottom !important;
}
.live-room-stage .live-seat--bottom.is-dealing .live-seat__cards[data-layout-id="fan_bottom"] .live-hand--backs .live-card--back:first-child,
.live-room-stage .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--backs .live-card--back:first-child{
  margin-left:0 !important;
}

/* 2026-05-19: tarjouskuplat ja väliajan pistetaulu sidotaan pelipöydän omaan koordinaatistoon. */
.live-room-stage > .live-bid-bubble{
  position:absolute !important;
  z-index:6400 !important;
  pointer-events:none !important;
  right:auto !important;
  bottom:auto !important;
  max-width:210px;
  white-space:nowrap;
  animation:kingiLiveBidBubbleFadeIn .18s ease-out both !important;
}
.live-room-stage > .live-bid-bubble--top{transform:translate(-50%,0) !important;}
.live-room-stage > .live-bid-bubble--bottom{transform:translate(-50%,-100%) !important;}
.live-room-stage > .live-bid-bubble--left{transform:translate(0,-50%) !important;}
.live-room-stage > .live-bid-bubble--right{transform:translate(-100%,-50%) !important;}
@keyframes kingiLiveBidBubbleFadeIn{
  0%{opacity:0;filter:blur(2px);}
  100%{opacity:1;filter:blur(0);}
}
.live-room-stage__round-score--topmost{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  right:auto !important;
  bottom:auto !important;
  transform:translate(-50%,-50%) !important;
  z-index:6500 !important;
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:min(760px, calc(100% - 48px)) !important;
  max-width:calc(100% - 48px) !important;
  max-height:calc(100% - 56px) !important;
  overflow:auto !important;
  pointer-events:auto !important;
}
.live-room-stage__round-score--topmost .live-scoreboard,
.live-room-stage__round-score--topmost .live-scoreboard__legacy-wrap{
  width:100% !important;
  max-width:100% !important;
}
@media (max-width: 980px){
  .live-room-stage__round-score--topmost{
    left:50% !important;
    top:50% !important;
    transform:translate(-50%,-50%) !important;
    width:min(94vw, calc(100% - 28px)) !important;
    max-height:calc(100% - 32px) !important;
  }
  .live-room-stage > .live-bid-bubble{font-size:12px;padding:7px 10px;max-width:180px;}
}

/* 2026-05-19: Canvas-renderöity pelipöydän liikkuva grafiikka */
.live-canvas-layer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:6600;
  pointer-events:none;
}
.live-room-stage__felt{z-index:0;}
.live-room-stage__table{z-index:4;}
.live-seat{z-index:6;}
.live-layout-grid,.live-layout-marker,.live-layout-preview-fan,.live-layout-outline,.live-layout-resize-handle{z-index:140;}
.live-seat.is-dealing .live-hand--backs,
.live-seat.is-dealing .live-seat__cards{
  overflow:visible;
}
.live-seat.is-dealing .live-hand--backs .live-card--back,
.live-seat--bottom.is-dealing .live-hand--backs .live-card--back,
.live-seat--bottom.is-dealing .live-card--back{
  --deal-card-width:clamp(34px, 3.4vw, 50px);
  width:var(--deal-card-width) !important;
  height:calc(var(--deal-card-width) * var(--kingi-card-ratio)) !important;
  max-width:none !important;
  transform-origin:center bottom !important;
}
.live-seat--bottom.is-dealing .live-hand--backs{
  min-height:calc(clamp(34px, 3.4vw, 50px) * var(--kingi-card-ratio) + 18px) !important;
}
.live-seat--bottom.is-dealing .live-card--back{
  margin-left:calc(clamp(34px, 3.4vw, 50px) * -0.38) !important;
  margin-right:0 !important;
}
.live-seat--bottom.is-dealing .live-card--back:first-child{margin-left:0 !important;}
.live-seat--bottom.is-dealing .live-hand--backs .live-card--back{
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * 0.72deg)) !important;
}

/* 2026-05-19: lyöntianimaation alussa kortti poistuu viuhkasta heti. */
.live-seat--bottom .live-card-button.is-animating-play,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-animating-play,
.live-card-button.is-animating-play{
  display:none!important;
  opacity:0!important;
  pointer-events:none!important;
}
.live-status-chip--trump-picker{
  background:rgba(255,216,107,.18);
  color:#fff7d1;
  border:1px solid rgba(255,216,107,.35);
}


/* 2026-05-19: loppupisteet piirretään canvasilla pöydän keskelle; sivupalkkiin jää vain kuittaus. */
.live-final-panel--actions-only{gap:10px;}
.live-final-panel--actions-only .live-final-panel__section{background:rgba(9,25,21,.58);}
.live-inline-note--success{background:rgba(143,201,127,.16);border-color:rgba(143,201,127,.30);color:#e7f9df;}

/* 2026-06-06: Livepelin full screen keskitetään koko näyttöön. */
#live-game-view.is-live-fullscreen,
#live-game-view:fullscreen,
#live-game-view:-webkit-full-screen{
  width:100vw !important;
  height:100vh !important;
  min-height:100vh !important;
  margin:0 !important;
  padding:12px !important;
  border-radius:0 !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  box-sizing:border-box !important;
}
#live-game-view.is-live-fullscreen .live-game-view__topbar,
#live-game-view:fullscreen .live-game-view__topbar,
#live-game-view:-webkit-full-screen .live-game-view__topbar{
  flex:0 0 auto !important;
  margin-bottom:8px !important;
}
#live-game-view.is-live-fullscreen .live-game-app-frame,
#live-game-view:fullscreen .live-game-app-frame,
#live-game-view:-webkit-full-screen .live-game-app-frame{
  flex:1 1 auto !important;
  min-height:0 !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}
#live-game-view.is-live-fullscreen .live-game-shell,
#live-game-view:fullscreen .live-game-shell,
#live-game-view:-webkit-full-screen .live-game-shell{
  flex:1 1 auto !important;
  min-height:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  width:100% !important;
}
#live-game-view.is-live-fullscreen .live-game-shell__message,
#live-game-view:fullscreen .live-game-shell__message,
#live-game-view:-webkit-full-screen .live-game-shell__message{
  flex:0 0 auto !important;
}
#live-game-view.is-live-fullscreen .live-game-shell__stage,
#live-game-view:fullscreen .live-game-shell__stage,
#live-game-view:-webkit-full-screen .live-game-shell__stage{
  flex:1 1 auto !important;
  min-height:0 !important;
  width:100% !important;
  display:block !important;
  overflow:hidden !important;
}
#live-game-view.is-live-fullscreen .live-game-shell__sidebar,
#live-game-view:fullscreen .live-game-shell__sidebar,
#live-game-view:-webkit-full-screen .live-game-shell__sidebar{
  display:none !important;
}
#live-game-view.is-live-fullscreen .live-room-viewport,
#live-game-view:fullscreen .live-room-viewport,
#live-game-view:-webkit-full-screen .live-room-viewport{
  width:100% !important;
  max-width:none !important;
  overflow:hidden !important;
}
#live-game-view.is-live-fullscreen .live-room-scale,
#live-game-view:fullscreen .live-room-scale,
#live-game-view:-webkit-full-screen .live-room-scale{
  max-width:none !important;
}

/* 2026-06-06: full screen - yläpalkki seuraa keskitetyn pelipöydän leveyttä. */
#live-game-view.is-live-fullscreen .live-game-shell__message,
#live-game-view:fullscreen .live-game-shell__message,
#live-game-view:-webkit-full-screen .live-game-shell__message{
  width:var(--live-fullscreen-stage-visible-width, 100%) !important;
  max-width:100% !important;
  margin-left:var(--live-fullscreen-stage-offset-left, 0px) !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}
#live-game-view.is-live-fullscreen .live-message-card,
#live-game-view:fullscreen .live-message-card,
#live-game-view:-webkit-full-screen .live-message-card{
  width:100% !important;
  box-sizing:border-box !important;
}

/* 2026-06-06: Livepelin avatarien vilkkumisen esto.
   Avatarit pidetään renderöinnissä mahdollisimman vakaina ja poistetaan kuvien
   turhat siirtymät/animaatiot, jotta pollaus ei näy välähdyksinä. */
.live-seat__avatar,
.live-layout-detached-proxy.live-seat__avatar{
  animation:none !important;
  transition:none !important;
  backface-visibility:hidden;
  transform:translateZ(0);
  will-change:auto;
}

/* 2026-06-06: uuden jaon jälkeen käden hover-nosto estetään, kunnes pelaaja liikuttaa hiirtä/kosketusta.
   Tämä ehkäisee tilanteen, jossa vanha osoittimen sijainti nostaa ensimmäisen kortin automaattisesti
   ja kortti peittää viereisen kortin heti jaon jälkeen. */
.live-hand--self.is-hover-suppressed .live-card-button:not(.is-selected):hover,
.live-seat--bottom .live-hand--self.is-hover-suppressed .live-card-button:not(.is-selected):hover,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.is-hover-suppressed .live-card-button:not(.is-selected):hover{
  transform:none !important;
  z-index:calc(var(--fan-index, 0) + 1) !important;
}

/* 2026-06-06: Livepelin lopputuloksiin rankivaikutus. */
.live-final-table-wrap{overflow-x:auto;margin-top:12px;}
.live-final-rank-table{min-width:560px;}
.live-final-table__num{text-align:right !important;font-variant-numeric:tabular-nums;}
.live-final-rank-table th:nth-child(3),
.live-final-rank-table th:nth-child(4),
.live-final-rank-table th:nth-child(5),
.live-final-rank-table th:nth-child(6){text-align:right;}

/* Online-tilan värit livepelissä */
.live-online-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:2px 7px;
  border-radius:999px;
  font-size:10px;
  line-height:1.2;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16), 0 1px 2px rgba(0,0,0,.18);
}
.live-online-status--green{background:#2f9e44;}
.live-online-status--yellow{background:#c99700;color:#1f2937;}
.live-online-status--orange{background:#f08c00;color:#1f2937;}
.live-online-status--offline{background:rgba(148,163,184,.35);color:#e5e7eb;}

/* Livepelin jälkikatselu ja pelihuomiot */
.live-replay-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 8px 0 6px;
  padding: 8px 10px;
  border-radius: 14px;
  background: rgba(255,255,255,.08);
}
.live-replay-controls__status {
  font-weight: 700;
  color: #fff7cf;
  min-width: 120px;
  text-align: center;
}
.live-replay-btn {
  min-width: 42px;
  height: 34px;
  border: 0;
  border-radius: 999px;
  background: #2d7d57;
  color: #fff;
  font-size: 24px;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(0,0,0,.22);
}
.live-replay-btn--double { min-width: 48px; }
.live-replay-btn:disabled,
.live-replay-btn[aria-disabled="true"] {
  opacity: .38;
  cursor: default;
  box-shadow: none;
}
.live-hand--replay .live-card-button {
  cursor: default;
  pointer-events: none;
}
.live-game-notes-panel {
  margin-top: 14px;
  padding: 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.08);
}
.live-game-notes-panel h4 {
  margin: 0 0 8px;
  color: #fff7cf;
}
.live-game-notes-panel__textarea {
  width: 100%;
  min-height: 105px;
  box-sizing: border-box;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(5,20,14,.92);
  color: #fff;
  padding: 10px;
  resize: vertical;
}
.live-game-notes-panel__readonly,
.live-game-notes-panel__empty {
  color: #fff;
  line-height: 1.4;
}
.game-notes-admin-form textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* 2026-06-06: jälkikatselussa kortit ovat avoimia, mutta käyttävät livepelin normaalia viuhkageometriaa. */
.live-hand--replay-visible .live-card--replay-face{
  pointer-events:none !important;
  user-select:none !important;
  -webkit-user-drag:none !important;
}
.live-hand--backs.live-hand--replay-visible .live-card--replay-face{
  display:block !important;
  object-fit:contain !important;
}

/* 2026-06-06: jälkikatselun korttiviuhkan suurennettu hover-esikatselu ja Play-painike. */
.live-hand--replay-visible{
  pointer-events:auto !important;
}
.live-replay-btn--play{
  min-width:54px;
  font-size:18px;
  letter-spacing:.02em;
}
.live-replay-btn--play.is-playing{
  background:#c99700;
  color:#1f2937;
}
.live-replay-hand-popup{
  display:none !important;
}
.live-replay-hand-fixed-preview{
  position:fixed;
  z-index:2147483000;
  max-width:min(680px, calc(100vw - 24px));
  max-height:calc(100vh - 24px);
  overflow:auto;
  padding:10px 12px 12px;
  border-radius:15px;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(5,20,14,.96);
  box-shadow:0 18px 46px rgba(0,0,0,.42), inset 0 0 0 1px rgba(255,255,255,.08);
  pointer-events:none;
  box-sizing:border-box;
}
.live-replay-hand-fixed-preview__title{
  margin:0 0 10px;
  color:#fff7cf;
  font-size:14px;
  font-weight:900;
  text-align:center;
  letter-spacing:.02em;
}
.live-replay-hand-fixed-preview__cards{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  justify-content:center;
  gap:6px;
}
.live-replay-hand-fixed-preview__card{
  display:block;
  width:clamp(54px, 5.4vw, 86px);
  height:auto;
  border-radius:8px;
  box-shadow:0 5px 14px rgba(0,0,0,.35);
  user-select:none;
  -webkit-user-drag:none;
}
@media (max-width: 720px){
  .live-replay-hand-fixed-preview__card{width:clamp(46px, 10vw, 68px);}
  .live-replay-hand-fixed-preview{padding:8px;}
}
#live-game-view.is-live-fullscreen .live-replay-hand-fixed-preview,
#live-game-view:fullscreen .live-replay-hand-fixed-preview,
#live-game-view:-webkit-full-screen .live-replay-hand-fixed-preview{
  max-width:min(620px, calc(100vw - 24px));
  max-height:calc(100vh - 24px);
}
#live-game-view.is-live-fullscreen .live-replay-hand-fixed-preview__card,
#live-game-view:fullscreen .live-replay-hand-fixed-preview__card,
#live-game-view:-webkit-full-screen .live-replay-hand-fixed-preview__card{
  width:clamp(48px, 4.8vw, 76px);
}

/* 2026-06-06: Pyöreät läpinäkyvät pelikortit sekä miinuskierroksen yhden kerran ajettava lopetusanimaatio. */
:root{
  --live-playing-card-radius: clamp(7px, 0.9vw, 16px);
}
.live-card,
.live-card--face,
.live-card--back,
.live-card--table,
.live-flying-card,
.live-deck-card,
.live-trick-card .live-card,
.live-trick-card .live-card--table,
.live-previous-trick .live-card,
.live-previous-trick .live-card--table,
.live-round-dump-card__face{
  border-radius:var(--live-playing-card-radius) !important;
  -webkit-clip-path:inset(0 round var(--live-playing-card-radius));
  clip-path:inset(0 round var(--live-playing-card-radius));
  overflow:hidden !important;
  background:transparent !important;
}
.live-card,
.live-card--face,
.live-card--back,
.live-card--table,
.live-flying-card,
.live-deck-card,
.live-round-dump-card__face{
  display:block;
}
.live-round-dump{
  position:absolute;
  inset:0;
  z-index:3300;
  pointer-events:none;
  overflow:visible;
  perspective:1200px;
}
.live-round-dump__label{
  position:absolute;
  left:50%;
  top:calc(50% - 56px);
  transform:translate(-50%,-50%);
  z-index:200;
  max-width:min(720px, 78%);
  padding:10px 16px;
  border-radius:999px;
  background:rgba(255,246,211,.96);
  color:#173529;
  border:1px solid rgba(94,69,17,.22);
  box-shadow:0 14px 34px rgba(0,0,0,.30);
  font-weight:900;
  font-size:14px;
  line-height:1.25;
  text-align:center;
  animation:liveRoundDumpLabel 10.8s ease-in-out both;
}
.live-round-dump-card{
  position:absolute;
  left:var(--from-x);
  top:var(--from-y);
  z-index:var(--z,80);
  width:clamp(42px, var(--live-table-card-width-stage, 72px), 82px);
  aspect-ratio:0.69;
  opacity:0;
  transform:translate(-50%,-50%) scale(.48) rotate(calc(var(--rot,0deg) * -0.6));
  transform-style:preserve-3d;
  animation:liveRoundDumpMove 10.8s cubic-bezier(.2,.78,.18,1) var(--delay,0ms) forwards;
  will-change:left,top,transform,opacity;
}
.live-round-dump-card__inner{
  position:absolute;
  inset:0;
  transform-style:preserve-3d;
  animation:liveRoundDumpFlip 10.8s ease-in-out var(--delay,0ms) forwards;
}
.live-round-dump-card__face{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  backface-visibility:hidden;
  box-shadow:0 14px 26px rgba(0,0,0,.34);
}
.live-round-dump-card__back{
  transform:rotateY(180deg);
}
.live-round-dump--steady .live-round-dump__label,
.live-round-dump--steady .live-round-dump-card,
.live-round-dump--steady .live-round-dump-card__inner{
  animation-play-state:running;
}
@keyframes liveRoundDumpMove{
  0%{left:var(--from-x);top:var(--from-y);opacity:0;transform:translate(-50%,-50%) scale(.42) rotate(calc(var(--rot,0deg) * -0.6));}
  12%{opacity:1;}
  20%{left:var(--to-x);top:var(--to-y);opacity:1;transform:translate(-50%,-50%) scale(1) rotate(var(--rot,0deg));}
  82%{left:var(--to-x);top:var(--to-y);opacity:1;transform:translate(-50%,-50%) scale(1) rotate(var(--rot,0deg));}
  100%{left:50%;top:50%;opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(calc(var(--rot,0deg) + 34deg));}
}
@keyframes liveRoundDumpFlip{
  0%,80%{transform:rotateY(0deg);}
  90%,100%{transform:rotateY(180deg);}
}
@keyframes liveRoundDumpLabel{
  0%{opacity:0;transform:translate(-50%,-62%) scale(.96);}
  10%,78%{opacity:1;transform:translate(-50%,-50%) scale(1);}
  100%{opacity:0;transform:translate(-50%,-42%) scale(.98);}
}
.live-round-dump__label{animation-delay:var(--dump-elapsed,0ms);}


/* 2026-06-07: varmista pelaajien korttiviuhkojen näkyminen full screen -jaon aikana.
   Canvas-animaatio piirretään omalle tasolleen, mutta jaon aikana pelaajien viuhkat
   ja layout-editorin irrotetut viuhkaproxyt nostetaan sen yläpuolelle. */
.live-room-stage.is-dealing-stage .live-seat,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"]{
  z-index:6900 !important;
  visibility:visible !important;
  opacity:1 !important;
}
.live-room-stage.is-dealing-stage .live-seat__cards,
.live-room-stage.is-dealing-stage .live-hand--backs,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"] .live-hand--backs{
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  overflow:visible !important;
  min-width:48px !important;
  min-height:64px !important;
}
.live-room-stage.is-dealing-stage .live-hand--backs .live-card--back,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"] .live-card--back{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  filter:none !important;
}
#live-game-view.is-live-fullscreen .live-room-stage.is-dealing-stage .live-seat,
#live-game-view:fullscreen .live-room-stage.is-dealing-stage .live-seat,
#live-game-view:-webkit-full-screen .live-room-stage.is-dealing-stage .live-seat,
#live-game-view.is-live-fullscreen .live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"],
#live-game-view:fullscreen .live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"],
#live-game-view:-webkit-full-screen .live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"]{
  z-index:7000 !important;
}


/* 2026-06-07: miinuskierroksen loppukorttien pöydätysanimaation varmistus.
   Animaatio näkyy aina päällimmäisenä myös full screenissä ja elää selainpuolen
   paikallisella aikajanalla, jotta myöhäinen pollaus ei hyppää animaatiota ohi. */
.live-room-stage.is-round-dump-stage .live-round-dump{
  z-index:8200 !important;
}
.live-room-stage.is-round-dump-stage .live-seat,
.live-room-stage.is-round-dump-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"]{
  visibility:visible !important;
  opacity:1 !important;
}
.live-room-stage.is-round-dump-stage .live-canvas-layer{
  z-index:6500 !important;
}
.live-room-stage.is-round-dump-stage .live-round-dump-card{
  --round-dump-card-width:clamp(54px, var(--live-table-card-width-stage, 78px), 96px);
  width:var(--round-dump-card-width) !important;
  height:calc(var(--round-dump-card-width) * 1.45) !important;
  aspect-ratio:auto !important;
  animation-duration:12.8s !important;
  animation-timing-function:cubic-bezier(.2,.78,.18,1) !important;
}
.live-room-stage.is-round-dump-stage .live-round-dump-card__inner{
  animation-duration:12.8s !important;
}
.live-room-stage.is-round-dump-stage .live-round-dump__label{
  animation-duration:12.8s !important;
}
#live-game-view.is-live-fullscreen .live-room-stage.is-round-dump-stage .live-round-dump,
#live-game-view:fullscreen .live-room-stage.is-round-dump-stage .live-round-dump,
#live-game-view:-webkit-full-screen .live-room-stage.is-round-dump-stage .live-round-dump{
  z-index:8400 !important;
}
@keyframes liveRoundDumpMove{
  0%{left:var(--from-x);top:var(--from-y);opacity:0;transform:translate(-50%,-50%) scale(.36) rotate(calc(var(--rot,0deg) * -0.7));}
  8%{opacity:1;}
  18%{left:var(--to-x);top:var(--to-y);opacity:1;transform:translate(-50%,-50%) scale(1) rotate(var(--rot,0deg));}
  82%{left:var(--to-x);top:var(--to-y);opacity:1;transform:translate(-50%,-50%) scale(1) rotate(var(--rot,0deg));}
  100%{left:50%;top:50%;opacity:0;transform:translate(-50%,-50%) scale(.32) rotate(calc(var(--rot,0deg) + 38deg));}
}
@keyframes liveRoundDumpFlip{
  0%,81%{transform:rotateY(0deg);}
  91%,100%{transform:rotateY(180deg);}
}
@keyframes liveRoundDumpLabel{
  0%{opacity:0;transform:translate(-50%,-62%) scale(.96);}
  8%,80%{opacity:1;transform:translate(-50%,-50%) scale(1);}
  100%{opacity:0;transform:translate(-50%,-42%) scale(.98);}
}


/* 2026-06-07: ensimmäisen jaon näkyvyyskorjaus.
   Pelaajien avatarit ja kasvavat korttiviuhkat pidetään jaossa canvas-tason päällä,
   jotta ne eivät näy himmeinä kuplien läpi eivätkä katoa full screenissä. */
.live-room-stage.is-dealing-stage .live-canvas-layer{
  z-index:6200 !important;
}
.live-room-stage.is-dealing-stage .live-seat{
  z-index:7600 !important;
  opacity:1 !important;
  visibility:visible !important;
  isolation:isolate !important;
}
.live-room-stage.is-dealing-stage .live-seat__body,
.live-room-stage.is-dealing-stage .live-seat__identity,
.live-room-stage.is-dealing-stage .live-seat__avatar-area,
.live-room-stage.is-dealing-stage .live-seat__cards-area,
.live-room-stage.is-dealing-stage .live-seat__cards{
  position:relative !important;
  opacity:1 !important;
  visibility:visible !important;
  filter:none !important;
  mix-blend-mode:normal !important;
}
.live-room-stage.is-dealing-stage .live-seat__identity,
.live-room-stage.is-dealing-stage .live-seat__avatar-area{
  z-index:4 !important;
}
.live-room-stage.is-dealing-stage .live-seat__avatar{
  position:relative !important;
  z-index:5 !important;
  opacity:1 !important;
  visibility:visible !important;
  filter:none !important;
  mix-blend-mode:normal !important;
}
.live-room-stage.is-dealing-stage .live-seat__cards,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"]{
  z-index:6 !important;
  opacity:1 !important;
  visibility:visible !important;
}
.live-room-stage.is-dealing-stage .live-hand--backs,
.live-room-stage.is-dealing-stage .live-hand--backs .live-card--back,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"] .live-hand--backs,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"] .live-card--back{
  opacity:1 !important;
  visibility:visible !important;
  filter:none !important;
  mix-blend-mode:normal !important;
}
.live-room-stage.is-dealing-stage .live-deal-layer{
  z-index:6400 !important;
}
.live-room-stage.is-dealing-stage .live-deck-stack{
  width:116px !important;
  height:168px !important;
}
.live-room-stage.is-dealing-stage .live-deck-card{
  width:116px !important;
  height:168px !important;
}
#live-game-view.is-live-fullscreen .live-room-stage.is-dealing-stage .live-seat,
#live-game-view:fullscreen .live-room-stage.is-dealing-stage .live-seat,
#live-game-view:-webkit-full-screen .live-room-stage.is-dealing-stage .live-seat{
  z-index:7800 !important;
}
#live-game-view.is-live-fullscreen .live-room-stage.is-dealing-stage .live-canvas-layer,
#live-game-view:fullscreen .live-room-stage.is-dealing-stage .live-canvas-layer,
#live-game-view:-webkit-full-screen .live-room-stage.is-dealing-stage .live-canvas-layer{
  z-index:6200 !important;
}


/* 2026-06-07: varmista, ettei animaatio-/layoutkerros estä pelattavan kortin klikkausta. */
.live-canvas-layer,
.live-deal-layer,
.live-round-dump,
.live-room-stage__felt,
.live-room-stage__table{
  pointer-events:none !important;
}
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"],
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button,
.live-seat--bottom .live-card-button{
  pointer-events:auto !important;
}
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"]{
  z-index:7900 !important;
}
.live-card-button.is-playable:not(.is-disabled):not(.is-blocked){
  cursor:pointer !important;
}

/* 2026-06-07: live-jaon animaatiokorjaus: isompi pakka, avatarit päällimmäiseksi ja jaossa kasvavat korttideckit näkyviin. */
.live-room-stage.is-dealing-stage .live-canvas-layer{
  z-index:6200 !important;
}
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id$="_avatar"]{
  position:absolute !important;
  z-index:8150 !important;
  opacity:.92 !important;
  visibility:visible !important;
  filter:drop-shadow(0 14px 26px rgba(0,0,0,.42)) !important;
  mix-blend-mode:normal !important;
  pointer-events:none !important;
}
.live-room-stage.is-dealing-stage .live-seat__avatar{
  position:relative !important;
  z-index:8150 !important;
  opacity:.92 !important;
  visibility:visible !important;
  filter:drop-shadow(0 14px 26px rgba(0,0,0,.42)) !important;
  mix-blend-mode:normal !important;
}
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id$="_meta"]{
  z-index:8160 !important;
  visibility:visible !important;
  opacity:1 !important;
}
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"],
.live-room-stage.is-dealing-stage .live-seat__cards[data-layout-id^="fan_"]{
  z-index:8050 !important;
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  overflow:visible !important;
}
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"] .live-hand--backs,
.live-room-stage.is-dealing-stage .live-seat__cards[data-layout-id^="fan_"] .live-hand--backs{
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  justify-content:center !important;
  align-items:flex-end !important;
  overflow:visible !important;
  min-width:72px !important;
  min-height:96px !important;
}
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"] .live-card--back,
.live-room-stage.is-dealing-stage .live-seat__cards[data-layout-id^="fan_"] .live-card--back{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.32)) !important;
  mix-blend-mode:normal !important;
}
.live-room-stage.is-dealing-stage .live-deck-stack{
  width:148px !important;
  height:215px !important;
}
.live-room-stage.is-dealing-stage .live-deck-card{
  width:148px !important;
  height:215px !important;
}
.live-room-stage.is-dealing-stage .live-deck-stack__count{
  bottom:-32px !important;
  font-size:13px !important;
}
#live-game-view.is-live-fullscreen .live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id$="_avatar"],
#live-game-view:fullscreen .live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id$="_avatar"],
#live-game-view:-webkit-full-screen .live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id$="_avatar"]{
  z-index:8350 !important;
}
#live-game-view.is-live-fullscreen .live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"],
#live-game-view:fullscreen .live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"],
#live-game-view:-webkit-full-screen .live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id^="fan_"]{
  z-index:8250 !important;
}

/* 2026-06-07: avatar-proxyt pidetään normaalissakin live-näkymässä pelaajakuplien päällä. */
.live-room-stage .live-layout-detached-proxy[data-layout-proxy-id$="_avatar"]{
  z-index:90 !important;
  opacity:.92;
  visibility:visible !important;
  mix-blend-mode:normal !important;
  pointer-events:none !important;
}
.live-room-stage .live-layout-detached-proxy[data-layout-proxy-id$="_meta"]{
  z-index:95 !important;
}
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id$="_avatar"]{
  z-index:8150 !important;
}
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id$="_meta"]{
  z-index:8160 !important;
}


/* 2026-06-07: live-pelin full screenissä näytetään sama sivupaneeli (ei klooneja)
   oikean reunan päällä, jotta viimeiset tikit ja lyöntijärjestys pysyvät näkyvissä. */
#live-game-view.is-live-fullscreen .live-game-shell,
#live-game-view:fullscreen .live-game-shell,
#live-game-view:-webkit-full-screen .live-game-shell{
  position:relative !important;
}
#live-game-view.is-live-fullscreen .live-game-shell__sidebar,
#live-game-view:fullscreen .live-game-shell__sidebar,
#live-game-view:-webkit-full-screen .live-game-shell__sidebar{
  display:grid !important;
  position:absolute !important;
  right:12px !important;
  top:96px !important;
  bottom:14px !important;
  width:min(248px, 24vw) !important;
  max-width:calc(100vw - 24px) !important;
  grid-template-columns:1fr !important;
  align-content:start !important;
  gap:8px !important;
  z-index:9100 !important;
  overflow:auto !important;
  padding:0 3px 8px 0 !important;
  pointer-events:none !important;
}
#live-game-view.is-live-fullscreen .live-game-shell__sidebar .live-side-card,
#live-game-view:fullscreen .live-game-shell__sidebar .live-side-card,
#live-game-view:-webkit-full-screen .live-game-shell__sidebar .live-side-card{
  pointer-events:auto !important;
  background:rgba(7,18,26,.86) !important;
  backdrop-filter:blur(8px) !important;
  -webkit-backdrop-filter:blur(8px) !important;
  box-shadow:0 14px 34px rgba(0,0,0,.36), inset 0 0 0 1px rgba(255,255,255,.08) !important;
}
#live-game-view.is-live-fullscreen .live-game-shell__sidebar .live-history__list,
#live-game-view:fullscreen .live-game-shell__sidebar .live-history__list,
#live-game-view:-webkit-full-screen .live-game-shell__sidebar .live-history__list{
  max-height:42vh !important;
  overflow:auto !important;
}
@media (max-width: 900px){
  #live-game-view.is-live-fullscreen .live-game-shell__sidebar,
  #live-game-view:fullscreen .live-game-shell__sidebar,
  #live-game-view:-webkit-full-screen .live-game-shell__sidebar{
    top:auto !important;
    left:10px !important;
    right:10px !important;
    bottom:10px !important;
    width:auto !important;
    grid-template-columns:1fr 1fr !important;
    max-height:30vh !important;
  }
}

/* 2026-06-07: alapelaajan kortin sääntötausta kallistetaan samaan kulmaan kuin kortti.
   Ilman tätä vihreä/punainen taustanelikulmio voi pilkottaa kortin yläreunasta fanin äärikorteissa. */
.live-seat--bottom .live-card-button__bg,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button__bg,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button__bg{
  --live-rule-bg-tilt:calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--layout-fan-rotation, .72deg));
  transform:translateX(-50%) rotate(var(--live-rule-bg-tilt)) !important;
  transform-origin:center bottom !important;
}
.live-seat--bottom .live-card-button.is-selected .live-card-button__bg,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-selected .live-card-button__bg,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button.is-selected .live-card-button__bg{
  transform:translateX(-50%) translateY(-4px) rotate(var(--live-rule-bg-tilt)) !important;
  transform-origin:center bottom !important;
}

/* 2026-06-07: live-jaon alapelaajan deck käyttää samaa fan_bottom-laatikkoa,
   kokoa ja askelta kuin varsinainen oma korttiviuhka. Lisäksi tyhjä jaon
   alku ei näytä haamukorttia ennen ensimmäistä jaettua korttia. */
.live-room-stage.is-dealing-stage .live-hand--backs.is-empty,
.live-seat.is-dealing .live-hand--backs.is-empty{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
.live-room-stage.is-dealing-stage .live-seat--bottom .live-seat__cards[data-layout-id="fan_bottom"],
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"]{
  overflow:visible !important;
}
.live-room-stage.is-dealing-stage .live-seat--bottom .live-seat__cards[data-layout-id="fan_bottom"] .live-hand--backs,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--backs{
  display:flex !important;
  justify-content:flex-start !important;
  align-items:flex-end !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  max-width:100% !important;
  max-height:none !important;
  padding:10px 8px 6px !important;
  gap:0 !important;
  overflow:visible !important;
  box-sizing:border-box !important;
}
.live-room-stage.is-dealing-stage .live-seat--bottom .live-seat__cards[data-layout-id="fan_bottom"] .live-hand--backs .live-card--back,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--backs .live-card--back{
  display:block !important;
  position:relative !important;
  left:auto !important;
  top:auto !important;
  flex:0 0 auto !important;
  width:var(--layout-fan-card-width, 96px) !important;
  min-width:var(--layout-fan-card-width, 96px) !important;
  max-width:var(--layout-fan-card-width, 96px) !important;
  height:var(--layout-fan-card-height, calc(var(--layout-fan-card-width, 96px) * var(--kingi-card-ratio))) !important;
  min-height:var(--layout-fan-card-height, calc(var(--layout-fan-card-width, 96px) * var(--kingi-card-ratio))) !important;
  max-height:var(--layout-fan-card-height, calc(var(--layout-fan-card-width, 96px) * var(--kingi-card-ratio))) !important;
  aspect-ratio:auto !important;
  margin:0 calc(var(--layout-fan-step, 0px) - var(--layout-fan-card-width, 96px)) 0 0 !important;
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--layout-fan-rotation, 1deg))) !important;
  transform-origin:center bottom !important;
}
.live-room-stage.is-dealing-stage .live-seat--bottom .live-seat__cards[data-layout-id="fan_bottom"] .live-hand--backs .live-card--back:last-child,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--backs .live-card--back:last-child{
  margin-right:0 !important;
}
.live-room-stage.is-dealing-stage .live-seat--bottom .live-seat__cards[data-layout-id="fan_bottom"] .live-hand--backs .live-card--back,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--backs .live-card--back{
  animation:none !important;
}


/* 2026-06-07: alapelaajan jaon aikainen selkädeck samaan ankkuriin kuin yhden kortin oikea paikka.
   Ensimmäinen jaettu selkäkortti pysyy keskellä fan_bottom-laatikkoa; pakka kasvaa siitä oikealle
   eikä hypähdä eri kohtaan tai eri kokoiseksi korttimäärän kasvaessa. Tyhjä jaon alku ei piirrä
   paikkamerkkikorttia lainkaan. */
.live-room-stage.is-dealing-stage .live-seat--bottom .live-seat__cards[data-layout-id="fan_bottom"] .live-hand--backs,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--backs{
  position:relative !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  padding:0 !important;
  overflow:visible !important;
}
.live-room-stage.is-dealing-stage .live-seat--bottom .live-seat__cards[data-layout-id="fan_bottom"] .live-hand--backs.is-empty,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--backs.is-empty{
  opacity:0 !important;
  visibility:hidden !important;
}
.live-room-stage.is-dealing-stage .live-seat--bottom .live-seat__cards[data-layout-id="fan_bottom"] .live-hand--backs .live-card--back,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--backs .live-card--back{
  position:absolute !important;
  left:calc(50% - (var(--layout-fan-card-width, 34px) / 2) + var(--layout-card-centered-offset-x, var(--layout-card-offset-x, 0px))) !important;
  right:auto !important;
  top:auto !important;
  bottom:0 !important;
  display:block !important;
  width:var(--layout-fan-card-width, 34px) !important;
  min-width:var(--layout-fan-card-width, 34px) !important;
  max-width:var(--layout-fan-card-width, 34px) !important;
  height:var(--layout-fan-card-height, 48px) !important;
  min-height:var(--layout-fan-card-height, 48px) !important;
  max-height:var(--layout-fan-card-height, 48px) !important;
  margin:0 !important;
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--layout-fan-rotation, 1deg))) !important;
  transform-origin:center bottom !important;
}

/* 2026-06-07: jaon aikana käytetään vain yhtä kasvavaa deckiä per pelaaja.
   Layout-proxy on näkyvä deck; alkuperäinen live-seat__cards on pelkkä lähde,
   ettei sama korttiviuhka piirry pienempänä toisessa kohdassa. */
.live-room-stage.is-dealing-stage .live-seat__cards[data-layout-proxy-source^="fan_"]{
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.live-room-stage.is-dealing-stage .live-seat__cards[data-layout-proxy-source^="fan_"] .live-hand--backs,
.live-room-stage.is-dealing-stage .live-seat__cards[data-layout-proxy-source^="fan_"] .live-card--back{
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

/* 2026-06-07: alapelaajan viuhkan osuma-alue kohdistetaan varsinaiseen korttikuvaan.
   Viuhkan kortit ovat limittäin; jos koko buttonin läpinäkyvä laatikko ottaa klikin,
   vasemman reunan kortti voi jäädä seuraavan kortin näkymättömän hitboxin alle.
   Button saa edelleen tapahtuman kuplinnalla, mutta hiiri osuu vain näkyvään korttikuvaan. */
.live-seat--bottom .live-card-button,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button{
  pointer-events:none !important;
}
.live-seat--bottom .live-card-button .live-card,
.live-seat--bottom .live-card-button .live-card--face,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button .live-card,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button .live-card--face,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button .live-card,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button .live-card--face{
  pointer-events:auto !important;
}
.live-seat--bottom .live-card-button__bg,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button__bg,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button__bg{
  pointer-events:none !important;
}
.live-seat--bottom .live-card-button.is-playable:not(.is-disabled):not(.is-blocked) .live-card,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-playable:not(.is-disabled):not(.is-blocked) .live-card,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button.is-playable:not(.is-disabled):not(.is-blocked) .live-card{
  cursor:pointer !important;
}

/* 2026-06-07: lopullinen duplikaattideckin esto jaon aikana.
   Varsinaiset live-seat__cards-lähteet piilotetaan aina, myös silloin kun niihin
   ei jostain syystä ole vielä ehtinyt data-layout-proxy-source-attribuuttia.
   Näkyvä ja kasvava deck saa olla vain lavalle irrotetussa fan_* layout-proxyssä. */
.live-room-stage.is-dealing-stage .live-seat .live-seat__cards{
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.live-room-stage.is-dealing-stage .live-seat .live-seat__cards .live-hand--backs,
.live-room-stage.is-dealing-stage .live-seat .live-seat__cards .live-card--back{
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.live-room-stage.is-dealing-stage > .live-layout-detached-proxy[data-layout-proxy-id^="fan_"]{
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:none !important;
  overflow:visible !important;
}
.live-room-stage.is-dealing-stage > .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"]{
  pointer-events:auto !important;
}
.live-room-stage.is-dealing-stage > .live-layout-detached-proxy[data-layout-proxy-id^="fan_"] .live-hand--backs,
.live-room-stage.is-dealing-stage > .live-layout-detached-proxy[data-layout-proxy-id^="fan_"] .live-card--back{
  visibility:visible !important;
  opacity:1 !important;
}

/* 2026-06-07: drag&drop-pudotusalue näkyviin heti raahauksen aikana ja jaon lentokortit paneelien yläpuolelle. */
.live-card-button,
.live-card-button .live-card,
.live-card-button .live-card--face{
  user-select:none !important;
  -webkit-user-select:none !important;
  -webkit-user-drag:none !important;
  touch-action:none !important;
}
.live-room-stage.is-card-dragging::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:min(38vw, 340px);
  height:min(27vw, 230px);
  transform:translate(-50%,-50%);
  border:3px dashed rgba(236,255,240,.72);
  border-radius:28px;
  background:rgba(18,79,38,.18);
  box-shadow:0 18px 42px rgba(0,0,0,.28), inset 0 0 0 9999px rgba(0,0,0,.03);
  z-index:9300;
  pointer-events:none;
}
.live-room-stage.is-card-dragging::after{
  content:"Pudota tähän";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  padding:12px 18px;
  border-radius:999px;
  background:rgba(15,60,28,.88);
  color:#ebfff0;
  font-size:15px;
  font-weight:900;
  letter-spacing:.04em;
  box-shadow:0 14px 30px rgba(0,0,0,.34), inset 0 0 0 1px rgba(255,255,255,.18);
  z-index:9301;
  pointer-events:none;
}
.live-room-stage.is-card-dragging-over-table::before{
  border-color:rgba(182,255,183,.95);
  background:rgba(35,132,57,.26);
}
.live-room-stage.is-card-dragging-over-table::after{
  background:rgba(32,128,52,.95);
  transform:translate(-50%,-50%) scale(1.04);
}
.live-room-stage__table.is-drop-target-ready{
  z-index:9302 !important;
}
.live-room-stage.is-dealing-stage .live-canvas-layer,
#live-game-view.is-live-fullscreen .live-room-stage.is-dealing-stage .live-canvas-layer,
#live-game-view:fullscreen .live-room-stage.is-dealing-stage .live-canvas-layer,
#live-game-view:-webkit-full-screen .live-room-stage.is-dealing-stage .live-canvas-layer{
  z-index:8900 !important;
}
.live-room-stage.is-dealing-stage .live-flying-card{
  z-index:8900 !important;
}

/* Live-pelin oman vuoron muistutus: näytetään oman pelaajapaneelin päällä ilman, että elementit kasvavat. */
.live-turn-reminder{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:7px;max-width:min(230px,46vw);margin:0;padding:5px 10px;border-radius:999px;background:rgba(255,135,0,.24);color:#fff4df;box-shadow:inset 0 0 0 1px rgba(255,170,58,.62),0 8px 20px rgba(0,0,0,.24),0 0 18px rgba(255,138,0,.22);pointer-events:none;z-index:7;white-space:nowrap;animation:kingiLiveTurnReminderPulse 1.1s ease-in-out 0s 3;}
.live-turn-reminder__icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:22px;height:22px;border-radius:999px;background:#ff8a00;color:#201000;font-size:17px;font-weight:1000;line-height:1;box-shadow:0 0 0 3px rgba(255,138,0,.18),0 0 14px rgba(255,138,0,.36);animation:kingiLiveTurnReminderIcon 1.1s ease-in-out 0s 3;}
.live-turn-reminder__body{display:inline-flex;align-items:center;gap:0;min-width:0;font-size:clamp(12px,1.15vw,15px);font-weight:1000;line-height:1.05;}
.live-turn-reminder__notice{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.live-turn-reminder strong{color:#ffffff;text-transform:uppercase;letter-spacing:.035em;text-shadow:0 1px 3px rgba(0,0,0,.42);}
.live-seat.is-turn-reminding{box-shadow:0 0 0 2px rgba(255,138,0,.58),0 0 18px rgba(255,138,0,.22),0 16px 30px rgba(0,0,0,.32),inset 0 0 0 1px rgba(255,255,255,.12);animation:kingiLiveTurnSeatPulse 1.1s ease-in-out 0s 3;}
@keyframes kingiLiveTurnReminderPulse{0%,100%{transform:translateY(-50%) scale(1);filter:brightness(1);}45%{transform:translateY(-50%) scale(1.035);filter:brightness(1.28);}}
@keyframes kingiLiveTurnReminderIcon{0%,100%{transform:scale(1);}45%{transform:scale(1.13);}}
@keyframes kingiLiveTurnSeatPulse{0%,100%{filter:brightness(1);}45%{filter:brightness(1.18);}}
@media (max-width: 900px){.live-turn-reminder{right:4px;padding:4px 8px;gap:5px;max-width:50vw;}.live-turn-reminder__icon{width:20px;height:20px;font-size:16px;}.live-turn-reminder__body{font-size:12px;}}
@media (max-width: 560px){.live-turn-reminder{top:0;right:2px;transform:translateY(-34%);}.live-turn-reminder__body{font-size:11px;}}

/* 2026-06-15: Apple-kirjautumisen painike kirjautumissivulle */
.apple-login-separator{display:flex;align-items:center;gap:10px;margin:16px 0 10px 0;color:#6b7280;font-size:.92rem}
.apple-login-separator:before,.apple-login-separator:after{content:"";height:1px;flex:1;background:#d7dde8}
.apple-login-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:9px 18px;border-radius:999px;background:#050505;color:#fff !important;text-decoration:none;font-weight:700;border:1px solid rgba(0,0,0,.75);box-shadow:0 6px 16px rgba(0,0,0,.18);line-height:1.1}
.apple-login-button:hover{background:#222;text-decoration:none;filter:brightness(1.05)}
.apple-login-logo{display:inline-flex;align-items:center;justify-content:center;width:18px;height:22px;color:#fff;flex:0 0 auto}
.apple-login-logo svg{display:block;width:18px;height:22px}

.apple-settings-hint{margin:10px 0 14px 0;padding:10px 12px;border:1px solid #cfd8e3;border-radius:12px;background:#f8fbfe;color:#243b53;font-size:13px;line-height:1.45}
.apple-settings-hint code{display:inline-block;max-width:100%;overflow-wrap:anywhere;background:#eef3f8;border:1px solid #d6e1ed;border-radius:8px;padding:3px 6px;color:#172033}
.apple-settings-warning{margin-top:8px;padding:8px 10px;border-radius:10px;background:#fff7e6;border:1px solid #f1c879;color:#7a4a06}

/* 2026-06-15: live-pelin oma korttitaustan valinta */
/* 2026-06-15: tiivistetty valitsin: ei tekstilabelia eikä esikatselukuvaa */
.live-card-back-picker{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:34px;
  margin-left:12px;
  padding:3px 6px 3px 7px;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(16,45,74,.86), rgba(9,25,43,.92));
  border:1px solid rgba(255,214,129,.30);
  box-shadow:0 7px 14px rgba(6,28,57,.16), inset 0 0 0 1px rgba(255,255,255,.07);
  color:#fff7dc;
  font-size:11px;
  font-weight:900;
  line-height:1;
}
.live-card-back-picker__icon{
  width:34px;
  height:34px;
  border-radius:10px;
  object-fit:cover;
  box-shadow:0 4px 10px rgba(0,0,0,.24);
  flex:0 0 auto;
}
.live-card-back-picker__label,
.live-card-back-picker__preview{
  display:none!important;
}
.live-card-back-picker__select{
  min-width:96px;
  max-width:128px;
  height:27px;
  border:0;
  border-radius:999px;
  padding:4px 24px 4px 8px;
  color:#10283a;
  background:#fff8e2;
  font-size:11px;
  font-weight:900;
  cursor:pointer;
}
.live-card-back-picker__select:focus{
  outline:2px solid rgba(255,216,111,.72);
  outline-offset:2px;
}
.live-card-back-picker__select option{
  color:#10283a;
  background:#fff8e2;
}
@media (max-width: 760px){
  .live-card-back-picker{
    margin-left:8px;
    gap:4px;
    padding:2px 5px 2px 6px;
  }
  .live-card-back-picker__icon{
    width:32px;
    height:32px;
  }
  .live-card-back-picker__select{
    min-width:82px;
    max-width:112px;
    height:26px;
    font-size:10px;
  }
}


/* 2026-06-15: live-chatin kuvaliitteet, drag & drop ja käsikorttikamera */
.live-seat__line--with-actions{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.live-chat-modal__dropzone{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 10px;
  padding:10px 12px;
  border:1px dashed rgba(210,229,255,.42);
  border-radius:16px;
  background:rgba(255,255,255,.055);
  color:rgba(235,244,255,.86);
  font-size:13px;
}
.live-chat-modal__dropzone.is-drag-over{
  border-color:#ffe08a;
  background:rgba(255,224,138,.14);
  box-shadow:0 0 0 3px rgba(255,224,138,.10) inset;
}
.live-chat-modal__image-btn,
.live-chat-modal__remove-image,
.live-chat-modal__cancel-image{
  border:0;
  border-radius:999px;
  padding:8px 12px;
  font-weight:900;
  cursor:pointer;
}
.live-chat-modal__image-btn{
  background:#fff8e2;
  color:#12314a;
  box-shadow:0 4px 12px rgba(0,0,0,.20);
}
.live-chat-modal__pending-image{
  display:grid;
  grid-template-columns:minmax(110px,180px) 1fr auto;
  gap:12px;
  align-items:center;
  margin:0 0 12px;
  padding:10px;
  border-radius:18px;
  background:rgba(255,255,255,.075);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.live-chat-modal__pending-image img{
  display:block;
  width:100%;
  max-height:140px;
  object-fit:contain;
  border-radius:12px;
  background:#091522;
  box-shadow:0 8px 20px rgba(0,0,0,.28);
}
.live-chat-modal__pending-meta{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
  color:#eef6ff;
  font-size:13px;
}
.live-chat-modal__pending-meta strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-chat-modal__pending-meta span{
  color:rgba(225,237,255,.72);
  font-size:12px;
}
.live-chat-modal__remove-image,
.live-chat-modal__cancel-image{
  background:rgba(255,255,255,.10);
  color:#f6fbff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
}
.live-chat-modal__cancel-image{
  display:inline-flex;
}
.live-chat-modal__attachment{
  display:inline-flex;
  max-width:min(100%, 420px);
  margin-top:6px;
  border-radius:14px;
  overflow:hidden;
  background:rgba(0,0,0,.20);
  box-shadow:0 10px 24px rgba(0,0,0,.30), inset 0 0 0 1px rgba(255,255,255,.10);
}
.live-chat-modal__attachment img{
  display:block;
  max-width:100%;
  max-height:260px;
  object-fit:contain;
}
.live-chat-modal__text--empty{
  opacity:.7;
  font-style:italic;
}
.live-table-chat__image-note{
  font-weight:900;
  color:#fff8df;
}
@media (max-width:760px){
  .live-chat-modal__pending-image{
    grid-template-columns:96px 1fr;
  }
  .live-chat-modal__remove-image{
    grid-column:1 / -1;
    width:100%;
  }
  .live-chat-modal__dropzone{
    align-items:stretch;
    flex-direction:column;
  }
  .live-chat-modal__image-btn{
    width:100%;
  }
}

/* 2026-06-15: oikeaa aikaa käyvä viisarikello lyöntijärjestyksen alle */
.live-analog-clock{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin:12px auto 2px;
  padding:10px 8px 8px;
  border-radius:18px;
  background:
    radial-gradient(circle at 50% 36%, rgba(255,255,255,.18), rgba(255,255,255,0) 42%),
    linear-gradient(180deg, rgba(10,34,48,.76), rgba(5,20,32,.90));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10), 0 10px 24px rgba(0,0,0,.24);
}
.live-analog-clock__face{
  position:relative;
  width:92px;
  height:92px;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, #fff9dc 0 5%, transparent 6%),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.96) 0 58%, rgba(247,230,177,.96) 59% 66%, rgba(72,41,13,.95) 67% 71%, rgba(247,229,171,.98) 72% 77%, rgba(22,47,42,.94) 78% 100%);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.72),
    inset 0 -10px 18px rgba(74,44,13,.16),
    0 8px 16px rgba(0,0,0,.34);
  overflow:hidden;
}
.live-analog-clock__face::before{
  content:"";
  position:absolute;
  inset:11px;
  border-radius:50%;
  border:1px solid rgba(83,59,28,.20);
  box-shadow:inset 0 0 16px rgba(255,255,255,.42);
}
.live-analog-clock__brand{
  position:absolute;
  left:50%;
  top:28%;
  transform:translateX(-50%);
  color:rgba(45,38,22,.60);
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.live-analog-clock__tick{
  position:absolute;
  left:50%;
  top:50%;
  width:2px;
  height:8px;
  margin-left:-1px;
  margin-top:-42px;
  border-radius:99px;
  background:rgba(52,37,18,.58);
  transform-origin:1px 42px;
}
.live-analog-clock__tick:nth-child(3n){
  width:3px;
  height:11px;
  margin-left:-1.5px;
  background:rgba(48,31,12,.78);
}
.live-analog-clock__tick--0{transform:rotate(0deg);}
.live-analog-clock__tick--1{transform:rotate(30deg);}
.live-analog-clock__tick--2{transform:rotate(60deg);}
.live-analog-clock__tick--3{transform:rotate(90deg);}
.live-analog-clock__tick--4{transform:rotate(120deg);}
.live-analog-clock__tick--5{transform:rotate(150deg);}
.live-analog-clock__tick--6{transform:rotate(180deg);}
.live-analog-clock__tick--7{transform:rotate(210deg);}
.live-analog-clock__tick--8{transform:rotate(240deg);}
.live-analog-clock__tick--9{transform:rotate(270deg);}
.live-analog-clock__tick--10{transform:rotate(300deg);}
.live-analog-clock__tick--11{transform:rotate(330deg);}
.live-analog-clock__hand{
  position:absolute;
  left:50%;
  bottom:50%;
  transform-origin:50% 100%;
  border-radius:999px;
  box-shadow:0 1px 2px rgba(0,0,0,.28);
}
.live-analog-clock__hand--hour{
  width:5px;
  height:26px;
  margin-left:-2.5px;
  background:#243a32;
  animation:kingiAnalogHour 43200s linear infinite;
}
.live-analog-clock__hand--minute{
  width:3px;
  height:34px;
  margin-left:-1.5px;
  background:#172b27;
  animation:kingiAnalogMinute 3600s linear infinite;
}
.live-analog-clock__hand--second{
  width:1.5px;
  height:38px;
  margin-left:-.75px;
  background:#b92822;
  box-shadow:0 0 5px rgba(185,40,34,.35);
  animation:kingiAnalogSecond 60s steps(60, end) infinite;
}
.live-analog-clock__pin{
  position:absolute;
  left:50%;
  top:50%;
  width:10px;
  height:10px;
  margin-left:-5px;
  margin-top:-5px;
  border-radius:50%;
  background:radial-gradient(circle, #fff8dc 0 25%, #b92822 26% 54%, #371b14 55% 100%);
  box-shadow:0 1px 3px rgba(0,0,0,.32);
}
.live-analog-clock__caption{
  color:rgba(255,247,222,.84);
  font-size:11px;
  font-weight:900;
  letter-spacing:.03em;
  text-shadow:0 1px 3px rgba(0,0,0,.35);
}
@keyframes kingiAnalogSecond{
  from{transform:rotate(var(--clock-second-start));}
  to{transform:rotate(calc(var(--clock-second-start) + 360deg));}
}
@keyframes kingiAnalogMinute{
  from{transform:rotate(var(--clock-minute-start));}
  to{transform:rotate(calc(var(--clock-minute-start) + 360deg));}
}
@keyframes kingiAnalogHour{
  from{transform:rotate(var(--clock-hour-start));}
  to{transform:rotate(calc(var(--clock-hour-start) + 360deg));}
}
@media (max-width: 760px){
  .live-analog-clock{
    margin-top:10px;
    padding:8px 6px 7px;
  }
  .live-analog-clock__face{
    width:78px;
    height:78px;
  }
  .live-analog-clock__tick{
    margin-top:-36px;
    transform-origin:1px 36px;
  }
  .live-analog-clock__hand--hour{height:22px;}
  .live-analog-clock__hand--minute{height:29px;}
  .live-analog-clock__hand--second{height:32px;}
  .live-analog-clock__caption{font-size:10px;}
}

/* 2026-06-15: vanha keskikompassi pois, tilalle punaiset litteät kolmionuolet pelaajapaneelin viereen */
.live-turn-compass,
.live-turn-compass__ring,
.live-turn-compass__needle,
.live-turn-compass__core{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
}
.live-seat.is-current-turn::after{
  content:"";
  position:absolute;
  width:2cm;
  height:1.5cm;
  clip-path:polygon(50% 0%, 100% 100%, 0% 100%);
  background:linear-gradient(180deg,#ff5b4f 0%,#e30613 48%,#9f0009 100%);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.20),0 7px 16px rgba(0,0,0,.34),0 0 18px rgba(227,6,19,.38);
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.35));
  z-index:75;
  pointer-events:none;
}
.live-seat.live-seat--top.is-current-turn::after{
  left:50%;
  top:calc(100% + .08cm);
  transform:translateX(-50%);
}
.live-seat.live-seat--bottom.is-current-turn::after{
  left:50%;
  bottom:calc(100% + .08cm);
  transform:translateX(-50%) rotate(180deg);
}
.live-seat.live-seat--left.is-current-turn::after{
  left:calc(100% + .08cm);
  top:50%;
  transform:translateY(-50%) rotate(-90deg);
}
.live-seat.live-seat--right.is-current-turn::after{
  right:calc(100% + .08cm);
  top:50%;
  transform:translateY(-50%) rotate(90deg);
}
@media (max-width: 760px){
  .live-seat.is-current-turn::after{
    width:1.65cm;
    height:1.25cm;
  }
}


/* 2026-06-15: vuoronuoli näkyviin aina vuorossa olevalle pelaajalle ja litteämmäksi */
.live-seat.is-current-turn::after{
  width:2cm !important;
  height:.9cm !important;
  clip-path:polygon(50% 0%, 100% 100%, 0% 100%) !important;
}
@media (max-width: 760px){
  .live-seat.is-current-turn::after{
    width:1.75cm !important;
    height:.78cm !important;
  }
}


/* 2026-06-15: live-pöydän chat näyttää myös kuvat */
.live-table-chat{
  opacity:.58 !important;
}
.live-table-chat__text{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}
.live-table-chat__message-text{
  display:block;
  overflow-wrap:anywhere;
}
.live-table-chat__image-wrap{
  display:block;
  width:100%;
  max-width:160px;
  border-radius:10px;
  overflow:hidden;
  background:rgba(0,0,0,.24);
  box-shadow:0 4px 12px rgba(0,0,0,.30), inset 0 0 0 1px rgba(255,255,255,.10);
}
.live-table-chat__thumb{
  display:block;
  width:100%;
  max-height:110px;
  object-fit:cover;
}
@media (max-width: 640px){
  .live-table-chat{
    opacity:.46 !important;
  }
  .live-table-chat__image-wrap{
    max-width:128px;
  }
  .live-table-chat__thumb{
    max-height:88px;
  }
}


/* 2026-06-15: varma vuoronuoli myös laitapelaajille */
.live-seat.is-current-turn::after{
  content:none !important;
  display:none !important;
}
.live-seat__turn-arrow{
  position:absolute;
  display:block;
  width:2cm;
  height:.82cm;
  clip-path:polygon(50% 0%, 100% 100%, 0% 100%);
  background:linear-gradient(180deg,#ff6b61 0%,#e30613 52%,#9f0009 100%);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.22),0 7px 16px rgba(0,0,0,.34),0 0 18px rgba(227,6,19,.40);
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.38));
  z-index:140;
  pointer-events:none;
}
.live-seat--top .live-seat__turn-arrow{
  left:50%;
  top:calc(100% + .04cm);
  transform:translateX(-50%);
}
.live-seat--bottom .live-seat__turn-arrow{
  left:50%;
  bottom:calc(100% + .04cm);
  transform:translateX(-50%) rotate(180deg);
}
.live-seat--left .live-seat__turn-arrow{
  right:.08cm;
  top:50%;
  transform:translateY(-50%) rotate(-90deg);
}
.live-seat--right .live-seat__turn-arrow{
  left:.08cm;
  top:50%;
  transform:translateY(-50%) rotate(90deg);
}
@media (max-width: 760px){
  .live-seat__turn-arrow{
    width:1.65cm;
    height:.68cm;
  }
}


/* 2026-06-15: chat-kuvat 1,5-kertaisiksi, jotta korteista saa selvää */
.live-table-chat__image-wrap{
  max-width:240px !important;
}
.live-table-chat__thumb{
  max-height:165px !important;
}
.live-chat-modal__attachment{
  max-width:min(100%, 630px) !important;
}
.live-chat-modal__attachment img{
  max-height:390px !important;
}
@media (max-width: 640px){
  .live-table-chat__image-wrap{
    max-width:192px !important;
  }
  .live-table-chat__thumb{
    max-height:132px !important;
  }
}


/* 2026-06-15: laitapelaajan vuoronuoli pöydän puolelle, kärki paneeliin kiinni */
.live-seat--left .live-seat__turn-arrow{
  left:100% !important;
  right:auto !important;
  top:50% !important;
  width:.82cm !important;
  height:2cm !important;
  clip-path:polygon(0% 50%, 100% 0%, 100% 100%) !important;
  transform:translateY(-50%) !important;
}
.live-seat--right .live-seat__turn-arrow{
  right:100% !important;
  left:auto !important;
  top:50% !important;
  width:.82cm !important;
  height:2cm !important;
  clip-path:polygon(100% 50%, 0% 0%, 0% 100%) !important;
  transform:translateY(-50%) !important;
}
@media (max-width: 760px){
  .live-seat--left .live-seat__turn-arrow,
  .live-seat--right .live-seat__turn-arrow{
    width:.68cm !important;
    height:1.65cm !important;
  }
}


/* 2026-06-15: livepelin äänenvoimakkuuden valitsin pistetaulukkoikonin viereen */
.live-sound-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:34px;
  padding:5px 9px;
  border:1px solid rgba(255,214,129,.32);
  border-radius:999px;
  background:linear-gradient(180deg, rgba(16,45,74,.88), rgba(9,25,43,.94));
  color:#fff7dc;
  box-shadow:0 7px 14px rgba(6,28,57,.18), inset 0 0 0 1px rgba(255,255,255,.07);
  cursor:pointer;
  font-size:12px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
}
.live-sound-toggle:hover,
.live-sound-toggle:focus-visible{
  transform:translateY(-1px);
  outline:none;
  border-color:rgba(255,226,145,.62);
  box-shadow:0 9px 18px rgba(6,28,57,.22),0 0 0 3px rgba(255,214,129,.16), inset 0 0 0 1px rgba(255,255,255,.10);
}
.live-sound-toggle__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  font-size:17px;
  line-height:1;
}
.live-sound-toggle__level{
  font-size:10px;
  letter-spacing:.02em;
  opacity:.95;
}
.live-sound-toggle--off{
  color:#d9e3ee;
  border-color:rgba(210,220,232,.24);
  background:linear-gradient(180deg, rgba(47,59,72,.86), rgba(20,28,38,.94));
}
.live-sound-toggle--low{
  color:#dff7ff;
}
.live-sound-toggle--medium{
  color:#fff7dc;
}
.live-sound-toggle--high{
  color:#fff1b7;
  border-color:rgba(255,226,145,.56);
}
@media (max-width:760px){
  .live-sound-toggle{
    min-height:32px;
    padding:4px 7px;
    gap:3px;
  }
  .live-sound-toggle__level{
    display:none;
  }
  .live-sound-toggle__icon{
    width:21px;
    height:21px;
    font-size:16px;
  }
}


/* 2026-06-15: vuoronuoli erilliselle stage-kerrokselle, ei pelaajapaneelin sisään */
.live-turn-arrow-layer{
  position:absolute;
  inset:0;
  z-index:9800;
  pointer-events:none;
  overflow:visible !important;
}
.live-turn-arrow-layer__arrow{
  position:absolute;
  display:block;
  pointer-events:none;
  background:linear-gradient(180deg,#ff6b61 0%,#e30613 52%,#9f0009 100%);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.22),0 7px 16px rgba(0,0,0,.34),0 0 18px rgba(227,6,19,.45);
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.42));
  transform:none !important;
  opacity:1 !important;
  visibility:visible !important;
}
.live-turn-arrow-layer__arrow--left,
.live-turn-arrow-layer__arrow--right{
  width:.82cm;
  height:2cm;
}
.live-turn-arrow-layer__arrow--top,
.live-turn-arrow-layer__arrow--bottom{
  width:2cm;
  height:.82cm;
}
.live-turn-arrow-layer__arrow--left{
  clip-path:polygon(0% 50%, 100% 0%, 100% 100%);
}
.live-turn-arrow-layer__arrow--right{
  clip-path:polygon(100% 50%, 0% 0%, 0% 100%);
}
.live-turn-arrow-layer__arrow--top{
  clip-path:polygon(50% 0%, 100% 100%, 0% 100%);
}
.live-turn-arrow-layer__arrow--bottom{
  clip-path:polygon(50% 100%, 100% 0%, 0% 0%);
}
/* Vanhat paneelin sisäiset nuolet pois, jotta sivupaneelien overflow ei voi piilottaa käytössä olevaa nuolta. */
.live-seat__turn-arrow{
  display:none !important;
}
@media (max-width:760px){
  .live-turn-arrow-layer__arrow--left,
  .live-turn-arrow-layer__arrow--right{
    width:.68cm;
    height:1.65cm;
  }
  .live-turn-arrow-layer__arrow--top,
  .live-turn-arrow-layer__arrow--bottom{
    width:1.65cm;
    height:.68cm;
  }
}


/* 2026-06-15: ääni-ikoni varmasti näkyviin pistelaskuruutuvihkon välittömään viereen */
.live-scorebook-controls{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  flex:0 0 auto !important;
  position:relative !important;
  z-index:60 !important;
  min-height:40px;
  overflow:visible !important;
  vertical-align:middle;
}
.live-scorebook-controls .live-scorebook-badge{
  flex:0 0 auto !important;
}
.live-scorebook-controls .live-sound-toggle{
  display:inline-flex !important;
  visibility:visible !important;
  opacity:1 !important;
  flex:0 0 auto !important;
  min-width:58px;
  min-height:36px;
  margin-left:2px;
  position:relative;
  z-index:62;
}
.live-scorebook-controls .live-sound-toggle__label{
  display:inline-block;
  font-size:10px;
  font-weight:900;
  letter-spacing:.03em;
}
.live-scorebook-controls .live-sound-toggle__level{
  display:inline-block;
}
@media (max-width:760px){
  .live-scorebook-controls{
    gap:4px !important;
  }
  .live-scorebook-controls .live-sound-toggle{
    min-width:38px;
    min-height:34px;
    padding:4px 7px;
  }
  .live-scorebook-controls .live-sound-toggle__label,
  .live-scorebook-controls .live-sound-toggle__level{
    display:none;
  }
}


/* 2026-06-15: live-chat-otsikkokupla näkyviin yläpelaajan paneelin alapuolelle */
.live-table-chat{
  overflow:visible !important;
}
.live-table-chat[data-layout-id]{
  overflow:visible !important;
}
.live-table-chat__title,
.live-table-chat__list{
  transform:translateY(var(--live-table-chat-title-drop, 0px)) !important;
}
.live-table-chat__title{
  position:relative;
  z-index:6;
  will-change:transform;
}
.live-table-chat__list{
  will-change:transform;
}
.live-table-chat.is-title-dropped .live-table-chat__title{
  box-shadow:0 6px 16px rgba(0,0,0,.26), inset 0 0 0 1px rgba(255,255,255,.08);
}


/* 2026-06-20: livepelikutsu ja pelinäytön valmiusmerkinnät */
.kingi-live-invite-overlay{
  position:fixed;
  inset:0;
  z-index:20000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(4,12,22,.58);
  backdrop-filter:blur(6px);
}
.kingi-live-invite-dialog{
  width:min(94vw, 520px);
  border-radius:24px;
  padding:22px 22px 18px;
  background:linear-gradient(180deg, rgba(10,37,65,.98), rgba(9,24,42,.98));
  color:#fff7df;
  box-shadow:0 28px 70px rgba(0,0,0,.42), inset 0 0 0 1px rgba(255,255,255,.10);
  text-align:left;
}
.kingi-live-invite-dialog__badge{
  display:inline-flex;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(255,216,111,.18);
  color:#ffe7a2;
  font-size:12px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.kingi-live-invite-dialog h2{
  margin:12px 0 8px;
  font-size:24px;
  line-height:1.12;
  color:#fff;
}
.kingi-live-invite-dialog p{
  margin:0 0 12px;
  color:rgba(239,247,255,.86);
  line-height:1.45;
}
.kingi-live-invite-dialog__meta{
  margin:12px 0;
  padding:12px;
  border-radius:16px;
  background:rgba(255,255,255,.08);
  color:#eef7ff;
  line-height:1.45;
  font-size:14px;
}
.kingi-live-invite-dialog__actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
  margin-top:16px;
}
.kingi-live-invite-dialog__primary,
.kingi-live-invite-dialog__secondary{
  border:0;
  border-radius:999px;
  padding:10px 16px;
  font-weight:900;
  cursor:pointer;
}
.kingi-live-invite-dialog__primary{
  background:linear-gradient(180deg,#ffe18a,#f7b733);
  color:#16233a;
}
.kingi-live-invite-dialog__secondary{
  background:rgba(255,255,255,.10);
  color:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);
}
.kingi-live-invite-dialog__hint{
  margin-top:10px;
  color:rgba(238,247,255,.70);
  font-size:12px;
}
.live-screen-ready{
  display:inline-flex;
  align-items:center;
  margin-left:5px;
  padding:2px 6px;
  border-radius:999px;
  font-size:10px;
  font-weight:900;
  line-height:1.2;
  white-space:nowrap;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.live-screen-ready--yes{
  background:rgba(75,255,142,.18);
  color:#dfffdf;
}
.live-screen-ready--no{
  background:rgba(255,93,93,.16);
  color:#ffdede;
}
.live-status-chip--ready{
  background:rgba(102,220,255,.14) !important;
  color:#dcf8ff !important;
}
.live-action-panel--waiting{
  border-color:rgba(102,220,255,.28) !important;
}
.live-waiting-players{
  margin-top:8px;
  padding:8px 10px;
  border-radius:12px;
  background:rgba(255,255,255,.08);
  color:#fff2d5;
  font-size:13px;
  font-weight:800;
}
@media (max-width:640px){
  .kingi-live-invite-dialog{
    padding:18px 16px 16px;
    border-radius:20px;
  }
  .kingi-live-invite-dialog h2{
    font-size:21px;
  }
  .kingi-live-invite-dialog__actions{
    justify-content:stretch;
  }
  .kingi-live-invite-dialog__primary,
  .kingi-live-invite-dialog__secondary{
    flex:1 1 150px;
  }
}


/* 2026-06-20: iPad/Safari fullscreen-varatila livepeliin */
html.kingi-live-fullscreen-active,
body.kingi-live-fullscreen-active{
  width:100% !important;
  height:100% !important;
  overflow:hidden !important;
  overscroll-behavior:none !important;
  touch-action:manipulation;
}
.live-game-view.is-live-fullscreen-fallback{
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  height:calc(var(--kingi-live-vh, 1vh) * 100) !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  z-index:19980 !important;
  background:#07111e !important;
  overflow:hidden !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
.live-game-view.is-live-fullscreen-fallback .live-game-view__topbar{
  position:relative;
  z-index:20010;
  margin:0 !important;
  border-radius:0 !important;
}
.live-game-view.is-live-fullscreen-fallback .live-game-app-frame{
  height:calc((var(--kingi-live-vh, 1vh) * 100) - 58px) !important;
  min-height:0 !important;
  overflow:hidden !important;
}
.live-game-view.is-live-fullscreen-fallback .live-game-shell{
  height:100% !important;
  min-height:0 !important;
}
.live-game-view.is-live-fullscreen-fallback .live-game-shell__stage{
  height:100% !important;
  min-height:0 !important;
  overflow:hidden !important;
}
.live-game-view.is-live-fullscreen-fallback .live-room-stage{
  max-width:none !important;
}
@media (max-width:760px){
  .live-game-view.is-live-fullscreen-fallback .live-game-view__topbar{
    min-height:48px;
  }
  .live-game-view.is-live-fullscreen-fallback .live-game-app-frame{
    height:calc((var(--kingi-live-vh, 1vh) * 100) - 48px) !important;
  }
}


/* 2026-06-20: vanhan iPad/Safarin varma vuoronuoli ilman clip-pathia */
.live-turn-arrow-layer__arrow{
  width:0 !important;
  height:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.46)) !important;
  clip-path:none !important;
  border:0 solid transparent;
}
.live-turn-arrow-layer__arrow--left{
  border-top:1cm solid transparent !important;
  border-bottom:1cm solid transparent !important;
  border-right:.82cm solid #e30613 !important;
}
.live-turn-arrow-layer__arrow--right{
  border-top:1cm solid transparent !important;
  border-bottom:1cm solid transparent !important;
  border-left:.82cm solid #e30613 !important;
}
.live-turn-arrow-layer__arrow--top{
  border-left:1cm solid transparent !important;
  border-right:1cm solid transparent !important;
  border-bottom:.82cm solid #e30613 !important;
}
.live-turn-arrow-layer__arrow--bottom{
  border-left:1cm solid transparent !important;
  border-right:1cm solid transparent !important;
  border-top:.82cm solid #e30613 !important;
}
@media (max-width:760px){
  .live-turn-arrow-layer__arrow--left{
    border-top:.825cm solid transparent !important;
    border-bottom:.825cm solid transparent !important;
    border-right:.68cm solid #e30613 !important;
  }
  .live-turn-arrow-layer__arrow--right{
    border-top:.825cm solid transparent !important;
    border-bottom:.825cm solid transparent !important;
    border-left:.68cm solid #e30613 !important;
  }
  .live-turn-arrow-layer__arrow--top{
    border-left:.825cm solid transparent !important;
    border-right:.825cm solid transparent !important;
    border-bottom:.68cm solid #e30613 !important;
  }
  .live-turn-arrow-layer__arrow--bottom{
    border-left:.825cm solid transparent !important;
    border-right:.825cm solid transparent !important;
    border-top:.68cm solid #e30613 !important;
  }
}


/* 2026-06-20: livepelikutsu ylös päävalikon alle, ei koko ruudun overlayksi */
.kingi-live-invite-anchor{
  width:min(1120px, calc(100% - 24px));
  margin:10px auto 14px;
  position:relative;
  z-index:1200;
}
.kingi-live-invite-anchor .kingi-live-invite-dialog,
.kingi-live-invite-dialog--inline{
  width:100%;
  max-width:980px;
  margin:0 auto;
  border-radius:22px;
  padding:16px 18px 14px;
  background:linear-gradient(180deg, rgba(13,55,90,.98), rgba(10,35,61,.98));
  color:#fff7df;
  box-shadow:0 12px 32px rgba(0,0,0,.24), inset 0 0 0 1px rgba(255,255,255,.12);
  text-align:left;
}
.kingi-live-invite-anchor .kingi-live-invite-dialog h2,
.kingi-live-invite-dialog--inline h2{
  margin:7px 0 5px;
  font-size:21px;
}
.kingi-live-invite-anchor .kingi-live-invite-dialog p,
.kingi-live-invite-dialog--inline p{
  margin:0 0 8px;
}
.kingi-live-invite-anchor .kingi-live-invite-dialog__meta{
  margin:8px 0;
}
.kingi-live-invite-anchor .kingi-live-invite-dialog__actions{
  margin-top:10px;
}
.kingi-live-invite-overlay{
  position:static !important;
  inset:auto !important;
  display:block !important;
  padding:0 !important;
  background:transparent !important;
  backdrop-filter:none !important;
}
@media (max-width:640px){
  .kingi-live-invite-anchor{
    width:calc(100% - 14px);
    margin:7px auto 10px;
  }
  .kingi-live-invite-anchor .kingi-live-invite-dialog,
  .kingi-live-invite-dialog--inline{
    border-radius:18px;
    padding:14px 12px 12px;
  }
  .kingi-live-invite-anchor .kingi-live-invite-dialog h2,
  .kingi-live-invite-dialog--inline h2{
    font-size:18px;
  }
}


/* 2026-06-20: asetussivun välilehdet */
.settings-tabbed-form{
  display:block;
}
.settings-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:18px 0 16px;
  padding:6px;
  border-radius:18px;
  background:rgba(15,45,76,.08);
  box-shadow:inset 0 0 0 1px rgba(23,70,110,.10);
}
.settings-tab{
  appearance:none;
  border:0;
  border-radius:14px;
  padding:10px 14px;
  background:rgba(255,255,255,.76);
  color:#173452;
  font-weight:900;
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(23,70,110,.14);
}
.settings-tab:hover{
  background:#fff;
}
.settings-tab.is-active{
  background:linear-gradient(180deg,#1b5f91,#123d62);
  color:#fff;
  box-shadow:0 8px 20px rgba(12,48,80,.20);
}
.settings-tab-panel{
  display:none;
  border-radius:18px;
  padding:16px 16px 12px;
  background:rgba(255,255,255,.72);
  box-shadow:inset 0 0 0 1px rgba(23,70,110,.10);
}
.settings-tab-panel.is-active{
  display:block;
}
.settings-tab-panel h3{
  margin-top:0;
}
.settings-tab-extra{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid rgba(23,70,110,.12);
}
.settings-form-actions{
  margin-top:16px;
}
@media (max-width:640px){
  .settings-tabs{
    gap:6px;
    padding:5px;
  }
  .settings-tab{
    flex:1 1 100%;
    text-align:center;
  }
  .settings-tab-panel{
    padding:12px 10px;
  }
}


/* 2026-06-20: pelipöydän chat mahtumaan ylä- ja alapelaajan väliin */
.live-table-chat.is-chat-fitted{
  max-height:var(--live-table-chat-max-height, 190px) !important;
  min-height:0 !important;
  overflow:hidden !important;
  transform:translateY(var(--live-table-chat-raise, 0px)) !important;
}
.live-table-chat.is-chat-fitted .live-table-chat__list{
  max-height:var(--live-table-chat-list-max-height, 156px) !important;
  min-height:0 !important;
  overflow:hidden !important;
  gap:5px !important;
}
.live-table-chat.is-chat-fitted .live-table-chat__item,
.live-table-chat.is-chat-fitted .live-table-chat__empty{
  padding:5px 8px !important;
  border-radius:10px !important;
  font-size:11px !important;
  line-height:1.18 !important;
}
.live-table-chat.is-chat-fitted .live-table-chat__title{
  padding:5px 10px !important;
  font-size:11px !important;
  line-height:1.1 !important;
}
.live-table-chat.is-chat-fitted .live-table-chat__image-wrap{
  max-width:150px !important;
}
.live-table-chat.is-chat-fitted .live-table-chat__thumb{
  max-height:86px !important;
}
@media (max-width:760px){
  .live-table-chat.is-chat-fitted{
    max-height:var(--live-table-chat-max-height, 150px) !important;
  }
  .live-table-chat.is-chat-fitted .live-table-chat__list{
    max-height:var(--live-table-chat-list-max-height, 118px) !important;
  }
  .live-table-chat.is-chat-fitted .live-table-chat__item,
  .live-table-chat.is-chat-fitted .live-table-chat__empty{
    padding:4px 6px !important;
    font-size:10px !important;
  }
  .live-table-chat.is-chat-fitted .live-table-chat__image-wrap{
    max-width:112px !important;
  }
  .live-table-chat.is-chat-fitted .live-table-chat__thumb{
    max-height:64px !important;
  }
}


/* 2026-06-20: pöydän chat oikeasti alapelaajan yläpuolelle ja uusin viesti näkyviin */
.live-table-chat.is-chat-fitted{
  max-height:var(--live-table-chat-max-height, 160px) !important;
  height:var(--live-table-chat-max-height, 160px) !important;
  min-height:0 !important;
  overflow:hidden !important;
  opacity:.62 !important;
}
.live-table-chat.is-chat-fitted .live-table-chat__title,
.live-table-chat.is-chat-fitted .live-table-chat__list{
  transform:none !important;
}
.live-table-chat.is-chat-fitted .live-table-chat__list{
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  max-height:var(--live-table-chat-list-max-height, 130px) !important;
  min-height:0 !important;
  overflow:hidden !important;
  gap:4px !important;
}
.live-table-chat.is-chat-fitted .live-table-chat__item,
.live-table-chat.is-chat-fitted .live-table-chat__empty{
  flex:0 0 auto !important;
  padding:4px 7px !important;
  border-radius:9px !important;
  font-size:10.5px !important;
  line-height:1.14 !important;
}
.live-table-chat.is-chat-fitted .live-table-chat__title{
  flex:0 0 auto !important;
  padding:4px 9px !important;
  font-size:10.5px !important;
  line-height:1.1 !important;
}
.live-table-chat.is-chat-fitted .live-table-chat__image-wrap{
  max-width:118px !important;
}
.live-table-chat.is-chat-fitted .live-table-chat__thumb{
  max-height:58px !important;
}
@media (max-width:760px){
  .live-table-chat.is-chat-fitted{
    max-height:var(--live-table-chat-max-height, 132px) !important;
    height:var(--live-table-chat-max-height, 132px) !important;
  }
  .live-table-chat.is-chat-fitted .live-table-chat__list{
    max-height:var(--live-table-chat-list-max-height, 104px) !important;
  }
  .live-table-chat.is-chat-fitted .live-table-chat__item,
  .live-table-chat.is-chat-fitted .live-table-chat__empty{
    padding:3px 5px !important;
    font-size:9.5px !important;
  }
  .live-table-chat.is-chat-fitted .live-table-chat__image-wrap{
    max-width:92px !important;
  }
  .live-table-chat.is-chat-fitted .live-table-chat__thumb{
    max-height:46px !important;
  }
}


/* 2026-06-20: oman käden korttien arvojärjestyksen liukuvipu */
.live-card-sort-toggle{
  display:inline-flex !important;
  align-items:center !important;
  gap:5px !important;
  margin-top:5px !important;
  padding:3px 6px !important;
  border-radius:999px !important;
  background:rgba(7,24,39,.58) !important;
  border:1px solid rgba(255,222,142,.24) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05) !important;
  color:#fff7df !important;
  font-size:10px !important;
  line-height:1 !important;
  font-weight:900 !important;
  user-select:none !important;
  -webkit-user-select:none !important;
}
.live-card-sort-toggle__title{
  opacity:.9 !important;
}
.live-card-sort-toggle__option{
  opacity:.48 !important;
  white-space:nowrap !important;
}
.live-card-sort-toggle__option.is-active{
  opacity:1 !important;
  color:#ffe28a !important;
}
.live-card-sort-toggle__switch{
  position:relative !important;
  display:inline-flex !important;
  width:32px !important;
  height:16px !important;
  flex:0 0 32px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.20) !important;
  border:1px solid rgba(255,255,255,.25) !important;
  box-shadow:inset 0 1px 3px rgba(0,0,0,.28) !important;
}
.live-card-sort-toggle__switch input{
  position:absolute !important;
  inset:0 !important;
  opacity:0 !important;
  cursor:pointer !important;
  margin:0 !important;
}
.live-card-sort-toggle__knob{
  position:absolute !important;
  left:2px !important;
  top:2px !important;
  width:12px !important;
  height:12px !important;
  border-radius:50% !important;
  background:#fff6d7 !important;
  box-shadow:0 1px 4px rgba(0,0,0,.35) !important;
  transition:transform .16s ease !important;
}
.live-card-sort-toggle__switch input:checked + .live-card-sort-toggle__knob{
  transform:translateX(16px) !important;
}
.live-card-sort-toggle:has(input:focus-visible){
  outline:2px solid rgba(255,226,138,.72) !important;
  outline-offset:2px !important;
}

/* 2026-06-20: tikkikortit pysyvät kuvapuolella yhtä kauan, mutta selkäpuolelle käännön jälkeinen keruu nopeutuu */
.live-trick-card.is-flipping-to-back .live-card--table{
  animation-duration:.32s !important;
}


/* 2026-06-20: edellisen jaon käsikortit kellon alta */
.live-prev-round-hands-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  margin:6px auto 0 !important;
  padding:6px 9px !important;
  border:1px solid rgba(255,222,142,.34) !important;
  border-radius:999px !important;
  background:linear-gradient(180deg, rgba(255,248,226,.96), rgba(239,218,156,.92)) !important;
  color:#143047 !important;
  font-size:10.5px !important;
  font-weight:900 !important;
  cursor:pointer !important;
  box-shadow:0 5px 14px rgba(0,0,0,.20) !important;
}
.live-prev-round-hands-btn.is-disabled,
.live-prev-round-hands-btn:disabled{
  opacity:.45 !important;
  cursor:not-allowed !important;
}
.live-prev-round-hands-modal{
  position:absolute !important;
  inset:0 !important;
  z-index:9900 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  pointer-events:auto !important;
}
.live-prev-round-hands-modal__backdrop{
  position:absolute !important;
  inset:0 !important;
  background:rgba(3,10,18,.62) !important;
  backdrop-filter:blur(3px) !important;
}
.live-prev-round-hands-modal__panel{
  position:relative !important;
  width:min(92%, 940px) !important;
  max-height:86% !important;
  overflow:auto !important;
  border-radius:20px !important;
  padding:16px !important;
  background:linear-gradient(180deg, rgba(15,49,72,.98), rgba(7,23,39,.98)) !important;
  border:1px solid rgba(255,222,142,.35) !important;
  box-shadow:0 20px 60px rgba(0,0,0,.55) !important;
  color:#fff8df !important;
}
.live-prev-round-hands-modal__header{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin-bottom:12px !important;
}
.live-prev-round-hands-modal__header h3{
  margin:0 0 4px !important;
  font-size:18px !important;
}
.live-prev-round-hands-modal__header p{
  margin:0 !important;
  font-size:12px !important;
  opacity:.78 !important;
}
.live-prev-round-hands-modal__close{
  appearance:none !important;
  display:inline-grid !important;
  place-items:center !important;
  flex:0 0 36px !important;
  width:36px !important;
  min-width:36px !important;
  height:36px !important;
  min-height:36px !important;
  margin:0 !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.68) !important;
  border-radius:50% !important;
  background:linear-gradient(180deg,#fffdf4,#eadcae) !important;
  color:#17324a !important;
  cursor:pointer !important;
  box-shadow:0 5px 13px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.92) !important;
  transition:transform .15s ease,background .15s ease,box-shadow .15s ease !important;
}
.live-prev-round-hands-modal__close svg{
  display:block !important;
  width:17px !important;
  height:17px !important;
  overflow:visible !important;
}
.live-prev-round-hands-modal__close path{
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:2.5 !important;
  stroke-linecap:round !important;
}
.live-prev-round-hands-modal__close:hover{
  transform:translateY(-1px) !important;
  background:linear-gradient(180deg,#fff6d9,#e5c96d) !important;
  box-shadow:0 7px 16px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.94) !important;
}
.live-prev-round-hands-modal__close:focus-visible{
  outline:3px solid #ffe178 !important;
  outline-offset:3px !important;
}
.live-prev-round-hands__grid{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  gap:12px !important;
}
.live-prev-round-hands__player{
  min-width:0 !important;
  border-radius:16px !important;
  padding:10px !important;
  background:rgba(255,255,255,.07) !important;
  border:1px solid rgba(255,255,255,.12) !important;
}
.live-prev-round-hands__player h4{
  margin:0 0 8px !important;
  font-size:13px !important;
}
.live-prev-round-hands__cards{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:flex-end !important;
  gap:4px !important;
}
.live-prev-round-hands__card{
  width:clamp(34px, 4.2vw, 56px) !important;
  height:auto !important;
  border-radius:6px !important;
  box-shadow:0 5px 12px rgba(0,0,0,.28) !important;
}
.live-prev-round-hands__empty{
  font-size:12px !important;
  opacity:.72 !important;
}
@media (max-width: 760px){
  .live-prev-round-hands__grid{grid-template-columns:1fr !important;}
  .live-prev-round-hands-modal__panel{width:94% !important;max-height:88% !important;padding:12px !important;}
}

/* 2026-06-20: pääuutiset full screen -tilan vasempaan tyhjään tilaan */
.live-news-toggle{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:34px !important;
  height:34px !important;
  min-width:34px !important;
  border:0 !important;
  border-radius:999px !important;
  background:linear-gradient(180deg,#fff8e2,#e9d391) !important;
  color:#143047 !important;
  box-shadow:0 5px 14px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.65) !important;
  font-size:18px !important;
  cursor:pointer !important;
}
.live-news-toggle.is-active{
  outline:2px solid rgba(255,226,138,.78) !important;
  background:linear-gradient(180deg,#ffe58d,#f6bd3b) !important;
}
.live-news-ticker{
  display:none !important;
}
body.kingi-live-fullscreen-active .live-news-ticker:not(.is-shell-left-panel){
  display:block !important;
  position:absolute !important;
  left:12px !important;
  top:18% !important;
  width:230px !important;
  max-height:62% !important;
  overflow:hidden !important;
  z-index:1650 !important;
  pointer-events:auto !important;
  border-radius:16px !important;
  padding:10px !important;
  background:linear-gradient(180deg, rgba(5,22,35,.82), rgba(4,14,25,.70)) !important;
  border:1px solid rgba(255,222,142,.28) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.34), inset 0 0 0 1px rgba(255,255,255,.05) !important;
  color:#fff7df !important;
  backdrop-filter:blur(5px) !important;
}
.live-news-ticker__title{
  display:flex !important;
  align-items:center !important;
  gap:6px !important;
  margin-bottom:8px !important;
  font-size:12px !important;
  font-weight:900 !important;
  color:#ffe28a !important;
}
.live-news-ticker__item{
  display:block !important;
  color:inherit !important;
  text-decoration:none !important;
}
.live-news-ticker__image{
  display:block !important;
  width:100% !important;
  max-height:94px !important;
  object-fit:cover !important;
  border-radius:10px !important;
  margin:0 0 7px !important;
  opacity:.92 !important;
}
.live-news-ticker__meta{
  display:flex !important;
  justify-content:space-between !important;
  gap:6px !important;
  margin-bottom:5px !important;
  font-size:9.5px !important;
  opacity:.75 !important;
}
.live-news-ticker__source{
  color:#ffe28a !important;
  font-weight:900 !important;
}
.live-news-ticker strong{
  display:block !important;
  font-size:13px !important;
  line-height:1.15 !important;
  margin-bottom:5px !important;
}
.live-news-ticker p{
  margin:0 !important;
  font-size:11px !important;
  line-height:1.2 !important;
  opacity:.83 !important;
}
.live-news-ticker__empty{
  font-size:11px !important;
  line-height:1.25 !important;
  opacity:.82 !important;
}
@media (max-width: 980px), (max-height: 620px){
  body.kingi-live-fullscreen-active .live-news-ticker:not(.is-shell-left-panel){
    display:none !important;
  }
}


/* 2026-06-20: korttijärjestys tiiviiksi ikonipainikkeeksi */
.live-card-sort-toggle.live-card-sort-toggle--icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:34px !important;
  height:24px !important;
  min-width:34px !important;
  max-width:34px !important;
  margin-top:4px !important;
  padding:0 !important;
  border-radius:999px !important;
  border:1px solid rgba(255,222,142,.34) !important;
  background:rgba(7,24,39,.66) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05), 0 3px 10px rgba(0,0,0,.18) !important;
  cursor:pointer !important;
  color:#ffe28a !important;
  overflow:hidden !important;
}
.live-card-sort-toggle.live-card-sort-toggle--icon .live-card-sort-icon{
  display:inline-flex !important;
  align-items:flex-end !important;
  justify-content:center !important;
  gap:2px !important;
  width:22px !important;
  height:16px !important;
}
.live-card-sort-toggle.live-card-sort-toggle--icon .live-card-sort-icon span{
  display:block !important;
  width:4px !important;
  height:var(--h, 8px) !important;
  border-radius:2px 2px 0 0 !important;
  background:#ffe28a !important;
  box-shadow:0 0 5px rgba(255,226,138,.28) !important;
}
.live-card-sort-toggle.live-card-sort-toggle--icon.is-desc .live-card-sort-icon span{
  background:#ffcf5d !important;
}
.live-card-sort-toggle.live-card-sort-toggle--icon:focus-visible{
  outline:2px solid rgba(255,226,138,.72) !important;
  outline-offset:2px !important;
}

/* 2026-06-20: uutiset näkyvät myös natiivissa full screenissä, vaikka body-luokka päivittyisi viiveellä */
.live-news-ticker.is-live-visible{
  display:block !important;
  position:absolute !important;
  left:12px !important;
  top:18% !important;
  width:250px !important;
  max-height:64% !important;
  overflow:hidden !important;
  z-index:1650 !important;
  pointer-events:auto !important;
  border-radius:16px !important;
  padding:10px !important;
  background:linear-gradient(180deg, rgba(5,22,35,.84), rgba(4,14,25,.72)) !important;
  border:1px solid rgba(255,222,142,.30) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.34), inset 0 0 0 1px rgba(255,255,255,.05) !important;
  color:#fff7df !important;
  backdrop-filter:blur(5px) !important;
}
/* Piilotetaan uutiset vain oikeasti ahtailla näytöillä. Isoilla näytöillä vasen tila käytetään. */
@media (max-width: 760px), (max-height: 520px){
  .live-news-ticker.is-live-visible,
  body.kingi-live-fullscreen-active .live-news-ticker{
    display:none !important;
  }
}

/* 2026-06-20: live-chat kellon alapuolen tasolle oikeaan reunaan */
.live-table-chat.is-chat-right-under-clock{
  opacity:.72 !important;
}


/* 2026-06-20: päivämäärä stanssattuna Kingi-kellon kellotauluun */
.live-analog-clock__date{
  position:absolute !important;
  left:50% !important;
  top:63% !important;
  transform:translateX(-50%) !important;
  padding:1px 5px !important;
  border-radius:4px !important;
  color:rgba(45,38,22,.58) !important;
  background:rgba(255,248,217,.34) !important;
  border:1px solid rgba(82,57,24,.18) !important;
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.50),
    inset 0 -1px 1px rgba(87,56,18,.14) !important;
  font-size:7.2px !important;
  line-height:1.05 !important;
  font-weight:900 !important;
  letter-spacing:.035em !important;
  white-space:nowrap !important;
  text-transform:uppercase !important;
}

/* 2026-06-20: pääuutiset vain full screenissä, kokonaan vasemman pelaajan vasemmalle puolelle */
.live-news-ticker.is-positioned-left-of-player{
  display:block !important;
  box-sizing:border-box !important;
  pointer-events:auto !important;
  border-radius:16px !important;
  padding:12px !important;
  background:linear-gradient(180deg, rgba(5,22,35,.87), rgba(4,14,25,.74)) !important;
  border:1px solid rgba(255,222,142,.32) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.36), inset 0 0 0 1px rgba(255,255,255,.05) !important;
  color:#fff7df !important;
  backdrop-filter:blur(5px) !important;
}
.live-news-ticker.is-positioned-left-of-player .live-news-ticker__image{
  max-height:128px !important;
}
.live-news-ticker.is-positioned-left-of-player strong{
  font-size:14px !important;
  line-height:1.18 !important;
}
.live-news-ticker.is-positioned-left-of-player p{
  font-size:12px !important;
  line-height:1.28 !important;
}

/* 2026-06-20: live-chat oikean pelaajan oikealle puolelle ja kellon alapuolelta alanurkkaan */
.live-table-chat.is-chat-right-of-player{
  box-sizing:border-box !important;
  opacity:.76 !important;
}
.live-table-chat.is-chat-right-of-player .live-table-chat__list{
  max-height:var(--live-table-chat-list-max-height, 220px) !important;
}
@media (max-width:760px){
  .live-analog-clock__date{
    font-size:6.4px !important;
    padding:1px 4px !important;
  }
}


/* 2026-06-20: pluskierroksen valtin osto näkyviin tilariville */
.live-status-chip--trump-purchase{
  background:linear-gradient(180deg, rgba(255,232,149,.94), rgba(225,167,62,.90)) !important;
  color:#2f2308 !important;
  border-color:rgba(116,73,15,.32) !important;
  box-shadow:0 4px 12px rgba(0,0,0,.18), inset 0 0 0 1px rgba(255,255,255,.38) !important;
  font-weight:900 !important;
}


/* 2026-06-20: korttijärjestysnapin kevyt busy/progress-viiva */
.live-card-sort-toggle.live-card-sort-toggle--icon{
  position:relative !important;
}
.live-card-sort-toggle.live-card-sort-toggle--icon.is-sorting::after{
  content:"" !important;
  position:absolute !important;
  left:4px !important;
  right:4px !important;
  bottom:2px !important;
  height:2px !important;
  border-radius:999px !important;
  background:linear-gradient(90deg, rgba(255,226,138,.15), rgba(255,226,138,.98), rgba(255,226,138,.15)) !important;
  transform-origin:left center !important;
  animation:kingiCardSortProgress .42s linear infinite !important;
}
@keyframes kingiCardSortProgress{
  0%{transform:scaleX(.12);opacity:.45;}
  50%{transform:scaleX(1);opacity:1;}
  100%{transform:scaleX(.12);opacity:.45;}
}


/* 2026-06-20: pääuutiset pakotetaan full screenissä suoraan näytön vasempaan laitaan */
.live-news-ticker.is-screen-left-fixed{
  display:block !important;
  position:fixed !important;
  left:10px !important;
  right:auto !important;
  transform:none !important;
  box-sizing:border-box !important;
  pointer-events:auto !important;
  border-radius:16px !important;
  padding:12px !important;
  background:linear-gradient(180deg, rgba(5,22,35,.90), rgba(4,14,25,.78)) !important;
  border:1px solid rgba(255,222,142,.34) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.38), inset 0 0 0 1px rgba(255,255,255,.05) !important;
  color:#fff7df !important;
  backdrop-filter:blur(5px) !important;
}
@media (max-width:760px), (max-height:520px){
  .live-news-ticker.is-screen-left-fixed{
    display:none !important;
  }
}


/* 2026-06-20: pääuutisten full screen -portaali näytön todelliseen vasempaan laitaan */
.live-news-portal{
  position:fixed !important;
  inset:0 auto auto 0 !important;
  width:0 !important;
  height:0 !important;
  z-index:1900 !important;
  pointer-events:none !important;
}
.live-news-portal .live-news-ticker.is-screen-left-fixed{
  display:block !important;
  position:fixed !important;
  left:0 !important;
  right:auto !important;
  transform:none !important;
  box-sizing:border-box !important;
  pointer-events:auto !important;
  border-radius:0 16px 16px 0 !important;
  padding:12px !important;
  background:linear-gradient(180deg, rgba(5,22,35,.92), rgba(4,14,25,.80)) !important;
  border:1px solid rgba(255,222,142,.34) !important;
  border-left:0 !important;
  box-shadow:0 12px 28px rgba(0,0,0,.38), inset 0 0 0 1px rgba(255,255,255,.05) !important;
  color:#fff7df !important;
  backdrop-filter:blur(5px) !important;
}
@media (max-width:760px), (max-height:520px){
  .live-news-portal .live-news-ticker.is-screen-left-fixed{
    display:none !important;
  }
}


/* 2026-06-20: full screen -vasen sivupalkki uutisille ja jatkuvalle chatille */
.live-news-portal{
  position:fixed !important;
  left:0 !important;
  top:0 !important;
  bottom:auto !important;
  z-index:1900 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  padding:10px 8px 10px 0 !important;
  box-sizing:border-box !important;
  pointer-events:none !important;
}
.live-news-portal .live-news-ticker.is-screen-left-fixed{
  display:block !important;
  position:relative !important;
  left:auto !important;
  top:auto !important;
  width:100% !important;
  max-height:58vh !important;
  flex:0 0 auto !important;
  overflow:hidden !important;
  pointer-events:auto !important;
  border-radius:0 16px 16px 0 !important;
  padding:12px !important;
  background:linear-gradient(180deg, rgba(5,22,35,.92), rgba(4,14,25,.80)) !important;
  border:1px solid rgba(255,222,142,.34) !important;
  border-left:0 !important;
  box-shadow:0 12px 28px rgba(0,0,0,.38), inset 0 0 0 1px rgba(255,255,255,.05) !important;
  color:#fff7df !important;
  backdrop-filter:blur(5px) !important;
}
.live-news-portal .live-news-ticker.is-screen-left-fixed .live-news-ticker__image{
  max-height:128px !important;
}
.live-news-portal .live-news-ticker.is-screen-left-fixed strong{
  font-size:14px !important;
  line-height:1.18 !important;
}
.live-news-portal .live-news-ticker.is-screen-left-fixed p{
  font-size:12px !important;
  line-height:1.28 !important;
}
.live-fullscreen-chat{
  display:flex !important;
  flex:1 1 auto !important;
  min-height:190px !important;
  max-height:none !important;
  flex-direction:column !important;
  box-sizing:border-box !important;
  pointer-events:auto !important;
  color:#fff7df !important;
  background:linear-gradient(180deg, rgba(4,20,34,.88), rgba(3,13,24,.78)) !important;
  border:1px solid rgba(255,222,142,.28) !important;
  border-left:0 !important;
  border-radius:0 16px 16px 0 !important;
  box-shadow:0 12px 28px rgba(0,0,0,.34), inset 0 0 0 1px rgba(255,255,255,.05) !important;
  overflow:hidden !important;
  backdrop-filter:blur(5px) !important;
}
.live-fullscreen-chat__title{
  flex:0 0 auto !important;
  padding:8px 10px 6px !important;
  color:#ffe28a !important;
  font-weight:900 !important;
  font-size:12px !important;
  letter-spacing:.02em !important;
}
.live-fullscreen-chat__messages{
  flex:1 1 auto !important;
  overflow:auto !important;
  padding:0 10px 8px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:6px !important;
}
.live-fullscreen-chat__message{
  border-radius:10px !important;
  padding:6px 7px !important;
  background:rgba(255,255,255,.08) !important;
  border:1px solid rgba(255,255,255,.10) !important;
  font-size:11px !important;
  line-height:1.25 !important;
}
.live-fullscreen-chat__meta{
  display:flex !important;
  justify-content:space-between !important;
  gap:6px !important;
  margin-bottom:3px !important;
  color:#ffe28a !important;
  font-size:10px !important;
}
.live-fullscreen-chat__empty{
  opacity:.75 !important;
  font-size:11px !important;
}
.live-fullscreen-chat__form{
  flex:0 0 auto !important;
  display:flex !important;
  gap:6px !important;
  padding:8px !important;
  border-top:1px solid rgba(255,255,255,.10) !important;
  background:rgba(0,0,0,.16) !important;
}
.live-fullscreen-chat__form textarea{
  flex:1 1 auto !important;
  min-width:0 !important;
  resize:none !important;
  min-height:48px !important;
  max-height:90px !important;
  border-radius:10px !important;
  border:1px solid rgba(255,222,142,.28) !important;
  padding:7px 8px !important;
  background:rgba(255,255,255,.92) !important;
  color:#102033 !important;
  font-size:12px !important;
}
.live-fullscreen-chat__form button{
  flex:0 0 auto !important;
  align-self:stretch !important;
  min-width:64px !important;
  padding:6px 8px !important;
}
@media (max-width:760px), (max-height:520px){
  .live-news-portal{
    display:none !important;
  }
}


/* 2026-06-20: full screen -portaali on olemassa vain JS:n luomana full screenissä */
.live-news-portal[data-live-news-portal="1"]{
  display:flex !important;
}


/* 2026-06-20: normaalinäkymän pöytächat sovitetaan pelaajapaneelien väliin */
.live-table-chat.is-chat-on-table{
  opacity:.68 !important;
  background:rgba(2,18,13,.54) !important;
  border:1px solid rgba(255,239,178,.24) !important;
  box-shadow:0 10px 28px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.05) !important;
  backdrop-filter:blur(3px) !important;
  pointer-events:none !important;
}
.live-table-chat.is-chat-on-table .live-table-chat__title{
  color:rgba(255,229,139,.94) !important;
  font-size:12px !important;
  line-height:1.1 !important;
  padding:5px 8px 3px !important;
}
.live-table-chat.is-chat-on-table .live-table-chat__list{
  max-height:var(--live-table-chat-list-max-height, 180px) !important;
  overflow:hidden !important;
  padding:0 8px 7px !important;
}
.live-table-chat.is-chat-on-table .live-table-chat__item{
  color:#fff8dc !important;
  font-size:11px !important;
  line-height:1.22 !important;
  margin-top:4px !important;
  padding:4px 6px !important;
  border-radius:8px !important;
  background:rgba(255,255,255,.07) !important;
}
.live-table-chat.is-chat-on-table .live-table-chat__sender{
  color:#ffe28a !important;
  font-weight:900 !important;
  margin-right:5px !important;
}

/* Full screenissä vasen chat-paneeli avataan vain Chat-painikkeesta */
.live-news-portal:not(.has-fullscreen-chat) .live-fullscreen-chat{
  display:none !important;
}
.live-news-portal.has-fullscreen-chat .live-fullscreen-chat{
  display:flex !important;
}
.live-news-portal.has-news.has-fullscreen-chat .live-fullscreen-chat{
  margin-top:0 !important;
}


/* 2026-06-20: pääsivun yhteinen WhatsApp-valmistelupuhelu */
.global-whatsapp-call-card{
  max-width:980px;
  margin:18px auto 24px;
  display:flex;
  gap:18px;
  align-items:stretch;
  justify-content:space-between;
  box-sizing:border-box;
  padding:18px;
  border-radius:22px;
  background:linear-gradient(135deg, rgba(12,61,38,.94), rgba(4,31,24,.92));
  border:1px solid rgba(255,226,138,.32);
  box-shadow:0 18px 38px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.05);
  color:#fff7df;
}
.global-whatsapp-call-card__main{
  display:flex;
  gap:14px;
  min-width:0;
  flex:1 1 auto;
}
.global-whatsapp-call-card__icon{
  width:52px;
  height:52px;
  flex:0 0 52px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  color:#062318;
  background:linear-gradient(180deg, #89f5a9, #25d366);
  box-shadow:0 8px 22px rgba(0,0,0,.28);
  font-size:26px;
  font-weight:900;
}
.global-whatsapp-call-card__content{
  min-width:0;
  flex:1 1 auto;
}
.global-whatsapp-call-card h3{
  margin:0 0 6px;
  color:#ffe28a;
  font-size:21px;
  line-height:1.15;
}
.global-whatsapp-call-card p{
  margin:6px 0;
  line-height:1.35;
}
.global-whatsapp-call-card__meta{
  margin:8px 0;
  font-size:12px;
  opacity:.86;
}
.global-whatsapp-call-card__notice{
  margin:8px 0;
  padding:7px 10px;
  border-radius:12px;
  background:rgba(255,226,138,.14);
  border:1px solid rgba(255,226,138,.25);
  color:#fff2c2;
  font-weight:800;
}
.global-whatsapp-call-card__empty{
  color:#e9dec2;
  font-size:13px;
}
.global-whatsapp-call-card__actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
  margin:12px 0 8px;
}
.global-whatsapp-call-card__open,
.global-whatsapp-call-card__copy,
.global-whatsapp-call-card__form button,
.global-whatsapp-call-card__secondary-actions button{
  border:0;
  border-radius:999px;
  background:linear-gradient(180deg, #49e676, #22b856);
  color:#062318 !important;
  font-weight:900;
  padding:9px 14px;
  text-decoration:none;
  cursor:pointer;
  box-shadow:0 6px 14px rgba(0,0,0,.24);
}
.global-whatsapp-call-card__copy-input{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  opacity:0;
}
.global-whatsapp-call-card__copy-note{
  min-height:18px;
  font-size:12px;
  color:#b5ffd0;
  font-weight:800;
}
.global-whatsapp-call-card__form{
  margin-top:10px;
}
.global-whatsapp-call-card__form label{
  display:block;
  margin-bottom:5px;
  font-size:12px;
  color:#ffe28a;
  font-weight:900;
}
.global-whatsapp-call-card__form-row{
  display:flex;
  gap:8px;
  align-items:center;
}
.global-whatsapp-call-card__form-row input{
  flex:1 1 auto;
  min-width:0;
  border-radius:12px;
  border:1px solid rgba(255,226,138,.35);
  padding:10px 12px;
  font-size:14px;
}
.global-whatsapp-call-card__secondary-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}
.global-whatsapp-call-card__secondary-actions form{
  margin:0;
}
.global-whatsapp-call-card__secondary-actions button{
  background:linear-gradient(180deg, rgba(255,232,149,.95), rgba(219,163,55,.94));
}
.global-whatsapp-call-card__qr{
  flex:0 0 220px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px;
  border-radius:18px;
  background:rgba(255,255,255,.92);
  color:#102018;
  font-weight:900;
  text-align:center;
}
.global-whatsapp-call-card__qr img{
  width:200px;
  height:200px;
  object-fit:contain;
}
@media (max-width:760px){
  .global-whatsapp-call-card{
    flex-direction:column;
    margin:14px 10px 20px;
    padding:14px;
  }
  .global-whatsapp-call-card__form-row{
    flex-direction:column;
    align-items:stretch;
  }
  .global-whatsapp-call-card__qr{
    flex-basis:auto;
  }
}


/* 2026-06-21: etusivun tiivis WhatsApp-QR viestipaneeliin */
.hero-panel__whatsapp-qr{
  margin-top:14px;
  display:flex;
  align-items:center;
  gap:12px;
  max-width:420px;
  padding:10px 12px;
  border-radius:16px;
  background:linear-gradient(135deg, rgba(23,139,69,.18), rgba(8,71,46,.14));
  border:1px solid rgba(37,211,102,.34);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
}
.hero-panel__whatsapp-qr img{
  width:104px;
  height:104px;
  flex:0 0 104px;
  border-radius:12px;
  background:#fff;
  padding:5px;
  box-sizing:border-box;
}
.hero-panel__whatsapp-qr-text{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.hero-panel__whatsapp-qr-text strong{
  color:#25d366;
  font-size:16px;
  line-height:1.1;
}
.hero-panel__whatsapp-qr-text span{
  color:inherit;
  opacity:.86;
  font-size:13px;
  line-height:1.25;
}
.hero-panel__whatsapp-qr-text a{
  align-self:flex-start;
  margin-top:3px;
  border-radius:999px;
  padding:7px 11px;
  background:linear-gradient(180deg, #49e676, #22b856);
  color:#062318 !important;
  font-weight:900;
  text-decoration:none;
}
@media (max-width:640px){
  .hero-panel__whatsapp-qr{
    align-items:flex-start;
  }
  .hero-panel__whatsapp-qr img{
    width:88px;
    height:88px;
    flex-basis:88px;
  }
}


/* 2026-06-21: WhatsApp-paneeli sovitettu Kingirankin väreihin */
.global-whatsapp-call-card{
  background:
    radial-gradient(circle at 18% 0%, rgba(255,226,138,.20), transparent 32%),
    linear-gradient(135deg, rgba(20,54,36,.97), rgba(7,23,18,.96)) !important;
  border:1px solid rgba(255,226,138,.44) !important;
  box-shadow:0 18px 42px rgba(0,0,0,.36), inset 0 0 0 1px rgba(255,255,255,.07) !important;
  color:#fff4cf !important;
}
.global-whatsapp-call-card__icon{
  color:#2d2106 !important;
  background:linear-gradient(180deg, #ffe9a8, #d9a63d) !important;
  border:1px solid rgba(78,48,8,.28) !important;
  box-shadow:0 8px 20px rgba(0,0,0,.32), inset 0 0 0 1px rgba(255,255,255,.44) !important;
}
.global-whatsapp-call-card h3{
  color:#ffe28a !important;
  text-shadow:0 2px 5px rgba(0,0,0,.34) !important;
}
.global-whatsapp-call-card__notice,
.global-whatsapp-call-card__meta{
  color:#fff0bd !important;
}
.global-whatsapp-call-card__open,
.global-whatsapp-call-card__copy,
.global-whatsapp-call-card__form button{
  background:linear-gradient(180deg, #ffe9a8, #d9a63d) !important;
  color:#2d2106 !important;
  border:1px solid rgba(70,47,10,.24) !important;
  box-shadow:0 7px 16px rgba(0,0,0,.26), inset 0 0 0 1px rgba(255,255,255,.35) !important;
}
.global-whatsapp-call-card__secondary-actions button{
  background:linear-gradient(180deg, rgba(48,104,68,.96), rgba(18,67,45,.96)) !important;
  color:#fff4cf !important;
  border:1px solid rgba(255,226,138,.32) !important;
}
.global-whatsapp-call-card__form-row input{
  background:rgba(255,250,231,.96) !important;
  color:#1d2a18 !important;
  border-color:rgba(255,226,138,.48) !important;
  box-shadow:inset 0 1px 4px rgba(0,0,0,.12) !important;
}
.global-whatsapp-call-card__qr{
  background:linear-gradient(180deg, rgba(255,247,217,.96), rgba(232,210,151,.94)) !important;
  border:1px solid rgba(112,78,20,.22) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.54), 0 12px 25px rgba(0,0,0,.22) !important;
  color:#2d2106 !important;
}
.hero-panel__whatsapp-qr{
  background:
    radial-gradient(circle at 0% 0%, rgba(255,226,138,.20), transparent 34%),
    linear-gradient(135deg, rgba(20,54,36,.28), rgba(6,26,18,.22)) !important;
  border-color:rgba(255,226,138,.38) !important;
}
.hero-panel__whatsapp-qr-text strong{
  color:#ffe28a !important;
}
.hero-panel__whatsapp-qr-text a{
  background:linear-gradient(180deg, #ffe9a8, #d9a63d) !important;
  color:#2d2106 !important;
  border:1px solid rgba(70,47,10,.22) !important;
}

/* 2026-06-21: normaalinäkymän live-chat pakotetaan pöydän keskialueelle */
.live-table-chat.is-chat-on-table.is-chat-table-center{
  opacity:.76 !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(255,226,138,.13), transparent 30%),
    rgba(5,34,24,.58) !important;
  border:1px solid rgba(255,226,138,.28) !important;
  border-radius:18px !important;
  box-shadow:0 12px 30px rgba(0,0,0,.30), inset 0 0 0 1px rgba(255,255,255,.06) !important;
  backdrop-filter:blur(3px) !important;
}
.live-table-chat.is-chat-on-table.is-chat-table-center .live-table-chat__title{
  color:#ffe28a !important;
  font-weight:900 !important;
  letter-spacing:.02em !important;
}
.live-table-chat.is-chat-on-table.is-chat-table-center .live-table-chat__item{
  color:#fff8dc !important;
  background:rgba(255,255,255,.075) !important;
  border:1px solid rgba(255,255,255,.06) !important;
}


/* 2026-06-21: alapelaajan metatiedot aina paneelin ylälaitaan keskelle korttien päälle */
.live-seat--bottom .live-seat__body{
  position:relative !important;
  padding-top:44px !important;
}
.live-seat--bottom .live-seat__cards-area{
  position:static !important;
}
.live-seat--bottom .live-seat__cards{
  overflow:visible !important;
  justify-content:center !important;
}
.live-seat--bottom .live-hand--self{
  padding-top:30px !important;
}
.live-seat--bottom .live-seat__meta--self-inline,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"],
.live-seat__meta--bottom-topbar{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  flex-wrap:wrap !important;
  box-sizing:border-box !important;
  min-height:34px !important;
  padding:5px 10px !important;
  border-radius:999px !important;
  background:linear-gradient(180deg, rgba(10,39,28,.88), rgba(4,22,18,.80)) !important;
  border:1px solid rgba(255,226,138,.34) !important;
  box-shadow:0 10px 24px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.07) !important;
  backdrop-filter:blur(5px) !important;
  color:#fff7df !important;
  text-align:center !important;
  white-space:normal !important;
}
.live-seat--bottom .live-seat__meta--self-inline .live-seat__name,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-seat__name,
.live-seat__meta--bottom-topbar .live-seat__name{
  font-size:clamp(13px, 1.35vw, 17px) !important;
  line-height:1.05 !important;
  font-weight:1000 !important;
  color:#ffeeb5 !important;
  margin:0 !important;
  text-shadow:0 2px 4px rgba(0,0,0,.35) !important;
}
.live-seat--bottom .live-seat__meta--self-inline .live-seat__line,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-seat__line,
.live-seat__meta--bottom-topbar .live-seat__line{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 !important;
  padding:4px 9px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.11) !important;
  color:#f5f9ff !important;
  font-size:clamp(10px, .95vw, 12px) !important;
  line-height:1.05 !important;
  font-weight:900 !important;
  white-space:nowrap !important;
}
.live-seat--bottom .live-seat__meta--self-inline .live-seat__line--status,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-seat__line--status,
.live-seat__meta--bottom-topbar .live-seat__line--status{
  background:rgba(104,211,145,.20) !important;
  color:#d9ffe8 !important;
}
.live-seat--bottom .live-seat__meta--self-inline .live-card-sort-toggle,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-card-sort-toggle,
.live-seat__meta--bottom-topbar .live-card-sort-toggle{
  margin:0 !important;
  flex:0 0 auto !important;
  pointer-events:auto !important;
}
.live-seat--bottom .live-seat__meta--self-inline .live-turn-reminder,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-turn-reminder,
.live-seat__meta--bottom-topbar .live-turn-reminder{
  position:static !important;
  right:auto !important;
  top:auto !important;
  transform:none !important;
  margin:0 !important;
  padding:4px 9px !important;
  max-width:none !important;
  flex:0 0 auto !important;
  pointer-events:none !important;
  animation:kingiLiveTurnReminderTopPulse 1.1s ease-in-out 0s 3 !important;
}
.live-seat--bottom .live-seat__meta--self-inline .live-turn-reminder__icon,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-turn-reminder__icon,
.live-seat__meta--bottom-topbar .live-turn-reminder__icon{
  width:18px !important;
  height:18px !important;
  font-size:14px !important;
}
.live-seat--bottom .live-seat__meta--self-inline .live-turn-reminder__body,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-turn-reminder__body,
.live-seat__meta--bottom-topbar .live-turn-reminder__body{
  font-size:clamp(10px, .95vw, 12px) !important;
}
@keyframes kingiLiveTurnReminderTopPulse{
  0%,100%{filter:brightness(1);}
  45%{filter:brightness(1.28);}
}
@media (max-width: 760px){
  .live-seat--bottom .live-seat__body{
    padding-top:58px !important;
  }
  .live-seat--bottom .live-seat__meta--self-inline,
  .live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"],
  .live-seat__meta--bottom-topbar{
    gap:5px !important;
    padding:5px 7px !important;
    max-width:94vw !important;
  }
}


/* 2026-06-21: alapelaajan yläpalkin responsiivinen kavennus */
.live-seat__meta--bottom-topbar{
  overflow:hidden !important;
  row-gap:4px !important;
  align-content:center !important;
}
.live-seat__meta--bottom-topbar.is-compact-width{
  width:min(100%, var(--seat-meta-responsive-width, 100%)) !important;
  border-radius:18px !important;
  justify-content:center !important;
}
.live-seat__meta--bottom-topbar.is-compact-width .live-seat__name{
  flex:0 1 auto !important;
  min-width:0 !important;
  max-width:34% !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.live-seat__meta--bottom-topbar.is-compact-width .live-seat__line{
  flex:0 0 auto !important;
  max-width:30% !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.live-seat__meta--bottom-topbar.is-compact-width .live-seat__line--status{
  max-width:24% !important;
}
.live-seat__meta--bottom-topbar.is-narrow-width{
  gap:4px !important;
  padding:4px 6px !important;
  max-height:64px !important;
  border-radius:15px !important;
}
.live-seat__meta--bottom-topbar.is-narrow-width .live-seat__name{
  flex:1 1 100% !important;
  max-width:100% !important;
  width:100% !important;
  font-size:12px !important;
  line-height:1 !important;
}
.live-seat__meta--bottom-topbar.is-narrow-width .live-seat__line{
  font-size:10px !important;
  padding:3px 6px !important;
}
.live-seat__meta--bottom-topbar.is-narrow-width .live-card-sort-toggle{
  transform:scale(.88) !important;
  transform-origin:center center !important;
}
.live-seat__meta--bottom-topbar.is-narrow-width .live-turn-reminder{
  padding:3px 6px !important;
  transform:scale(.90) !important;
  transform-origin:center center !important;
}
.live-seat__meta--bottom-topbar.is-tiny-width{
  gap:3px !important;
  padding:3px 5px !important;
  max-height:74px !important;
  border-radius:13px !important;
}
.live-seat__meta--bottom-topbar.is-tiny-width .live-seat__name{
  font-size:11px !important;
}
.live-seat__meta--bottom-topbar.is-tiny-width .live-seat__line{
  font-size:9px !important;
  padding:2px 5px !important;
}
.live-seat__meta--bottom-topbar.is-tiny-width .live-card-sort-toggle{
  transform:scale(.76) !important;
}
.live-seat__meta--bottom-topbar.is-tiny-width .live-turn-reminder{
  transform:scale(.78) !important;
  max-width:120px !important;
}
.live-seat__meta--bottom-topbar.is-tiny-width .live-turn-reminder__body{
  font-size:9px !important;
}
@media (max-width:760px){
  .live-seat--bottom .live-seat__body{
    padding-top:70px !important;
  }
  .live-seat--bottom .live-hand--self{
    padding-top:34px !important;
  }
}
@media (max-width:460px){
  .live-seat--bottom .live-seat__body{
    padding-top:82px !important;
  }
  .live-seat--bottom .live-hand--self{
    padding-top:40px !important;
  }
}


/* 2026-06-21: alapelaajan yläpalkille sama korkeus kaikilla näytön leveyksillä */
.live-seat--bottom .live-seat__body{
  padding-top:44px !important;
}
.live-seat--bottom .live-hand--self{
  padding-top:30px !important;
}
.live-seat--bottom .live-seat__meta--self-inline,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"],
.live-seat__meta--bottom-topbar{
  height:38px !important;
  min-height:38px !important;
  max-height:38px !important;
  padding:5px 10px !important;
  gap:8px !important;
  flex-wrap:nowrap !important;
  overflow:hidden !important;
  align-content:center !important;
  border-radius:999px !important;
}
.live-seat__meta--bottom-topbar.is-compact-width,
.live-seat__meta--bottom-topbar.is-narrow-width,
.live-seat__meta--bottom-topbar.is-tiny-width{
  height:38px !important;
  min-height:38px !important;
  max-height:38px !important;
  padding:5px 10px !important;
  gap:8px !important;
  flex-wrap:nowrap !important;
  border-radius:999px !important;
}
.live-seat__meta--bottom-topbar.is-compact-width .live-seat__name,
.live-seat__meta--bottom-topbar.is-narrow-width .live-seat__name,
.live-seat__meta--bottom-topbar.is-tiny-width .live-seat__name{
  flex:1 1 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:38% !important;
  font-size:clamp(11px, 1.25vw, 17px) !important;
  line-height:1 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.live-seat__meta--bottom-topbar.is-compact-width .live-seat__line,
.live-seat__meta--bottom-topbar.is-narrow-width .live-seat__line,
.live-seat__meta--bottom-topbar.is-tiny-width .live-seat__line{
  flex:0 1 auto !important;
  max-width:25% !important;
  min-width:0 !important;
  font-size:clamp(9px, .85vw, 12px) !important;
  line-height:1 !important;
  padding:3px 7px !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.live-seat__meta--bottom-topbar.is-compact-width .live-seat__line--status,
.live-seat__meta--bottom-topbar.is-narrow-width .live-seat__line--status,
.live-seat__meta--bottom-topbar.is-tiny-width .live-seat__line--status{
  max-width:22% !important;
}
.live-seat__meta--bottom-topbar.is-compact-width .live-card-sort-toggle,
.live-seat__meta--bottom-topbar.is-narrow-width .live-card-sort-toggle,
.live-seat__meta--bottom-topbar.is-tiny-width .live-card-sort-toggle{
  transform:scale(.86) !important;
  transform-origin:center center !important;
  margin:0 !important;
}
.live-seat__meta--bottom-topbar.is-compact-width .live-turn-reminder,
.live-seat__meta--bottom-topbar.is-narrow-width .live-turn-reminder,
.live-seat__meta--bottom-topbar.is-tiny-width .live-turn-reminder{
  height:24px !important;
  min-height:24px !important;
  max-height:24px !important;
  padding:3px 7px !important;
  transform:scale(.86) !important;
  transform-origin:center center !important;
  margin:0 !important;
}
.live-seat__meta--bottom-topbar.is-compact-width .live-turn-reminder__body,
.live-seat__meta--bottom-topbar.is-narrow-width .live-turn-reminder__body,
.live-seat__meta--bottom-topbar.is-tiny-width .live-turn-reminder__body{
  font-size:10px !important;
  line-height:1 !important;
}
@media (max-width:760px){
  .live-seat--bottom .live-seat__body{
    padding-top:44px !important;
  }
  .live-seat--bottom .live-hand--self{
    padding-top:30px !important;
  }
  .live-seat--bottom .live-seat__meta--self-inline,
  .live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"],
  .live-seat__meta--bottom-topbar{
    height:38px !important;
    min-height:38px !important;
    max-height:38px !important;
  }
}
@media (max-width:460px){
  .live-seat--bottom .live-seat__body{
    padding-top:44px !important;
  }
  .live-seat--bottom .live-hand--self{
    padding-top:30px !important;
  }
  .live-seat__meta--bottom-topbar.is-tiny-width .live-seat__name{
    max-width:32% !important;
  }
  .live-seat__meta--bottom-topbar.is-tiny-width .live-seat__line{
    max-width:20% !important;
  }
  .live-seat__meta--bottom-topbar.is-tiny-width .live-card-sort-toggle,
  .live-seat__meta--bottom-topbar.is-tiny-width .live-turn-reminder{
    transform:scale(.76) !important;
  }
}

/* 2026-06-21: live-pelin alapelaajan yläpalkki ja pöytächat yhtenäiseksi kaikissa moodeissa */
.live-seat--bottom .live-seat__body{
  padding-top:66px !important;
}
.live-seat--bottom .live-hand--self{
  padding-top:42px !important;
}
.live-seat--bottom .live-seat__meta--self-inline,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"],
.live-seat__meta--bottom-topbar,
.live-seat__meta--bottom-topbar.is-compact-width,
.live-seat__meta--bottom-topbar.is-narrow-width,
.live-seat__meta--bottom-topbar.is-tiny-width{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center !important;
  flex-wrap:nowrap !important;
  gap:10px !important;
  box-sizing:border-box !important;
  height:var(--live-bottom-meta-height, 54px) !important;
  min-height:var(--live-bottom-meta-height, 54px) !important;
  max-height:var(--live-bottom-meta-height, 54px) !important;
  padding:7px 14px !important;
  border-radius:999px !important;
  overflow:hidden !important;
  background:
    radial-gradient(circle at 8% 0%, rgba(255,226,138,.16), transparent 32%),
    linear-gradient(180deg, rgba(10,39,28,.92), rgba(4,22,18,.86)) !important;
  border:1px solid rgba(255,226,138,.38) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.31), inset 0 0 0 1px rgba(255,255,255,.08) !important;
  backdrop-filter:blur(6px) !important;
  color:#fff7df !important;
  text-align:center !important;
  white-space:nowrap !important;
  line-height:1 !important;
}
.live-seat__meta--bottom-topbar.is-unified-live-meta .live-seat__name,
.live-seat--bottom .live-seat__meta--self-inline .live-seat__name,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-seat__name,
.live-seat__meta--bottom-topbar .live-seat__name,
.live-seat__meta--bottom-topbar.is-compact-width .live-seat__name,
.live-seat__meta--bottom-topbar.is-narrow-width .live-seat__name,
.live-seat__meta--bottom-topbar.is-tiny-width .live-seat__name{
  flex:0 1 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:22% !important;
  margin:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  color:#fff7df !important;
  font-size:18px !important;
  font-weight:1000 !important;
  line-height:1 !important;
  text-shadow:0 2px 5px rgba(0,0,0,.38) !important;
}
.live-seat__meta--bottom-topbar.is-unified-live-meta .live-seat__line,
.live-seat--bottom .live-seat__meta--self-inline .live-seat__line,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-seat__line,
.live-seat__meta--bottom-topbar .live-seat__line,
.live-seat__meta--bottom-topbar.is-compact-width .live-seat__line,
.live-seat__meta--bottom-topbar.is-narrow-width .live-seat__line,
.live-seat__meta--bottom-topbar.is-tiny-width .live-seat__line{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 1 auto !important;
  min-width:0 !important;
  max-width:18% !important;
  height:30px !important;
  margin:0 !important;
  padding:0 12px !important;
  border-radius:999px !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  background:rgba(255,255,255,.11) !important;
  color:#f5f9ff !important;
  font-size:14px !important;
  line-height:1 !important;
  font-weight:900 !important;
}
.live-seat__meta--bottom-topbar.is-unified-live-meta .live-seat__line--status,
.live-seat--bottom .live-seat__meta--self-inline .live-seat__line--status,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-seat__line--status,
.live-seat__meta--bottom-topbar .live-seat__line--status,
.live-seat__meta--bottom-topbar.is-compact-width .live-seat__line--status,
.live-seat__meta--bottom-topbar.is-narrow-width .live-seat__line--status,
.live-seat__meta--bottom-topbar.is-tiny-width .live-seat__line--status{
  gap:5px !important;
  max-width:28% !important;
  height:30px !important;
  padding:0 10px !important;
  background:rgba(104,211,145,.20) !important;
  color:#d9ffe8 !important;
}
.live-seat__meta--bottom-topbar.is-unified-live-meta .live-online-status,
.live-seat__meta--bottom-topbar.is-unified-live-meta .live-screen-ready,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-online-status,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-screen-ready{
  height:22px !important;
  min-height:22px !important;
  padding:0 8px !important;
  margin:0 !important;
  font-size:11px !important;
  line-height:1 !important;
  font-weight:1000 !important;
}
.live-seat__meta--bottom-topbar.is-unified-live-meta .live-card-sort-toggle,
.live-seat__meta--bottom-topbar.is-unified-live-meta.is-compact-width .live-card-sort-toggle,
.live-seat__meta--bottom-topbar.is-unified-live-meta.is-narrow-width .live-card-sort-toggle,
.live-seat__meta--bottom-topbar.is-unified-live-meta.is-tiny-width .live-card-sort-toggle,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-card-sort-toggle{
  flex:0 0 auto !important;
  width:44px !important;
  min-width:44px !important;
  max-width:44px !important;
  height:32px !important;
  min-height:32px !important;
  max-height:32px !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
  border-radius:999px !important;
}
.live-seat__meta--bottom-topbar.is-unified-live-meta .live-card-sort-toggle.live-card-sort-toggle--icon .live-card-sort-icon,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-card-sort-toggle.live-card-sort-toggle--icon .live-card-sort-icon{
  width:26px !important;
  height:20px !important;
}
.live-seat__meta--bottom-topbar.is-unified-live-meta .live-card-sort-toggle.live-card-sort-toggle--icon .live-card-sort-icon span,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-card-sort-toggle.live-card-sort-toggle--icon .live-card-sort-icon span{
  width:5px !important;
}
.live-seat__meta--bottom-topbar.is-unified-live-meta .live-turn-reminder,
.live-seat__meta--bottom-topbar.is-unified-live-meta.is-compact-width .live-turn-reminder,
.live-seat__meta--bottom-topbar.is-unified-live-meta.is-narrow-width .live-turn-reminder,
.live-seat__meta--bottom-topbar.is-unified-live-meta.is-tiny-width .live-turn-reminder,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-turn-reminder{
  position:static !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  display:inline-flex !important;
  align-items:center !important;
  flex:0 1 auto !important;
  min-width:0 !important;
  max-width:34% !important;
  height:34px !important;
  min-height:34px !important;
  max-height:34px !important;
  margin:0 !important;
  padding:0 13px !important;
  gap:8px !important;
  transform:none !important;
  transform-origin:center center !important;
  border-radius:999px !important;
  overflow:hidden !important;
}
.live-seat__meta--bottom-topbar.is-unified-live-meta .live-turn-reminder__icon,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-turn-reminder__icon{
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  font-size:18px !important;
}
.live-seat__meta--bottom-topbar.is-unified-live-meta .live-turn-reminder__body,
.live-seat__meta--bottom-topbar.is-unified-live-meta.is-compact-width .live-turn-reminder__body,
.live-seat__meta--bottom-topbar.is-unified-live-meta.is-narrow-width .live-turn-reminder__body,
.live-seat__meta--bottom-topbar.is-unified-live-meta.is-tiny-width .live-turn-reminder__body,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-turn-reminder__body{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  font-size:15px !important;
  line-height:1 !important;
  font-weight:1000 !important;
}
@media (max-width:760px){
  .live-seat--bottom .live-seat__body{padding-top:66px !important;}
  .live-seat--bottom .live-hand--self{padding-top:42px !important;}
}
@media (max-width:460px){
  .live-seat--bottom .live-seat__body{padding-top:66px !important;}
  .live-seat--bottom .live-hand--self{padding-top:42px !important;}
}

.live-table-chat.is-chat-on-table.is-chat-table-corner,
.live-table-chat.is-chat-on-table.is-chat-table-corner[data-layout-id]{
  opacity:.78 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  gap:0 !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(255,226,138,.13), transparent 30%),
    rgba(5,34,24,.58) !important;
  border:1px solid rgba(255,226,138,.28) !important;
  border-radius:18px !important;
  box-shadow:0 12px 30px rgba(0,0,0,.30), inset 0 0 0 1px rgba(255,255,255,.06) !important;
  backdrop-filter:blur(3px) !important;
  pointer-events:none !important;
  max-width:none !important;
}
.live-table-chat.is-chat-on-table.is-chat-table-corner .live-table-chat__title{
  align-self:flex-start !important;
  margin:7px 8px 5px !important;
  padding:5px 9px 4px !important;
  color:#ffe28a !important;
  font-weight:900 !important;
  font-size:12px !important;
  letter-spacing:.02em !important;
}
.live-table-chat.is-chat-on-table.is-chat-table-corner .live-table-chat__list{
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:var(--live-table-chat-list-max-height, 180px) !important;
  overflow:hidden !important;
  padding:0 8px 8px !important;
}
.live-table-chat.is-chat-on-table.is-chat-table-corner .live-table-chat__item,
.live-table-chat.is-chat-on-table.is-chat-table-corner .live-table-chat__empty{
  color:#fff8dc !important;
  background:rgba(255,255,255,.075) !important;
  border:1px solid rgba(255,255,255,.06) !important;
  border-radius:8px !important;
}
.live-table-chat.is-chat-on-table.is-chat-table-corner .live-table-chat__sender{
  color:#ffe28a !important;
  font-weight:900 !important;
}

/* 2026-06-21: Avatar-projektori ja filmimäinen avatar-valinta */
.players-actions{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;margin:18px auto 22px;}
.button-link--avatar,.button-link--avatar-admin{background:linear-gradient(180deg,#ffe28a,#d89a2a) !important;color:#2d2106 !important;border-color:rgba(88,55,8,.35) !important;}
.avatar-cinema-page{max-width:1180px;margin:0 auto 42px;padding:18px;}
.avatar-cinema-hero{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin:8px 0 18px;padding:22px;border-radius:26px;background:radial-gradient(circle at 12% 0%,rgba(255,226,138,.20),transparent 32%),linear-gradient(135deg,rgba(6,45,34,.94),rgba(5,16,27,.94));border:1px solid rgba(255,226,138,.30);box-shadow:0 20px 45px rgba(0,0,0,.28);color:#fff7d9;}
.avatar-cinema-kicker{text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:900;color:#ffe28a;margin-bottom:6px;}
.avatar-cinema-hero h1,.avatar-admin-panel h2{margin:0;color:#fff7d9;font-size:clamp(26px,3vw,42px);line-height:1.05;text-shadow:0 3px 8px rgba(0,0,0,.35);}
.avatar-cinema-hero p{margin:8px 0 0;max-width:660px;color:rgba(255,247,217,.82);font-size:15px;line-height:1.45;}
.avatar-cinema-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.avatar-cinema{position:relative;overflow:hidden;border-radius:32px;padding:24px;background:linear-gradient(180deg,#160f0a,#05070a 52%,#0b2119);border:1px solid rgba(255,226,138,.26);box-shadow:0 28px 70px rgba(0,0,0,.38),inset 0 0 0 1px rgba(255,255,255,.05);}
.avatar-cinema::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 2px,transparent 2px 20px),radial-gradient(circle at 50% 10%,rgba(255,226,138,.12),transparent 42%);pointer-events:none;}
.avatar-projector-row{position:relative;z-index:1;display:grid;grid-template-columns:minmax(90px,160px) minmax(260px,1fr) minmax(90px,160px);gap:18px;align-items:center;}
.avatar-film-spool{aspect-ratio:1/1;border-radius:999px;background:radial-gradient(circle at center,#1d1d1d 0 12%,#656565 13% 18%,#141414 19% 28%,#363636 29% 38%,#0b0b0b 39% 52%,#5a4c2a 53% 58%,#1b1207 59%);border:8px solid rgba(255,226,138,.25);box-shadow:inset 0 0 24px rgba(0,0,0,.82),0 16px 34px rgba(0,0,0,.35);}
.avatar-film-spool span{display:block;width:28%;height:28%;margin:36% auto;border-radius:999px;background:#050505;border:3px solid rgba(255,226,138,.35);}
.avatar-projector{position:relative;display:grid;place-items:center;min-height:430px;border-radius:28px;background:radial-gradient(ellipse at 50% 38%,rgba(255,237,163,.22),transparent 34%),linear-gradient(180deg,rgba(7,35,29,.96),rgba(2,10,14,.96));border:1px solid rgba(255,226,138,.30);box-shadow:inset 0 0 55px rgba(255,226,138,.06),0 18px 44px rgba(0,0,0,.30);}
.avatar-projector__beam{position:absolute;left:8%;right:8%;top:14%;bottom:16%;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);background:linear-gradient(180deg,rgba(255,240,177,.20),rgba(255,240,177,.03));filter:blur(.2px);pointer-events:none;}
.avatar-projector__screen{position:relative;z-index:1;width:min(70vw,390px);height:min(70vw,390px);max-width:390px;max-height:390px;border-radius:36px;display:grid;place-items:center;background:linear-gradient(180deg,#f5f7f3,#d5d8d5);border:10px solid #e8ebe8;outline:4px solid rgba(255,226,138,.35);box-shadow:0 28px 60px rgba(0,0,0,.52),inset 0 0 28px rgba(0,0,0,.12);overflow:hidden;}
.avatar-projector__screen img{width:100%;height:100%;object-fit:cover;display:block;}
.avatar-projector__empty{font-size:44px;font-weight:1000;color:#6d6d6d;}
.avatar-projector__caption{position:absolute;z-index:2;left:50%;bottom:22px;transform:translateX(-50%);max-width:84%;padding:9px 18px;border-radius:999px;background:rgba(4,18,14,.76);border:1px solid rgba(255,226,138,.26);color:#ffe28a;font-weight:1000;box-shadow:0 10px 24px rgba(0,0,0,.34);}
.avatar-film-window{position:relative;z-index:1;margin-top:24px;border-radius:22px;background:#111;border:1px solid rgba(255,226,138,.24);box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);padding:22px 12px 14px;}
.avatar-film-label{position:absolute;left:18px;top:-12px;background:linear-gradient(180deg,#ffe28a,#d39525);color:#2c1e06;border-radius:999px;padding:5px 13px;font-size:12px;font-weight:1000;box-shadow:0 6px 18px rgba(0,0,0,.28);}
.avatar-filmstrip{display:flex;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding:8px 8px 12px;cursor:grab;touch-action:pan-y;}
.avatar-filmstrip.is-dragging{cursor:grabbing;user-select:none;}
.avatar-frame{position:relative;flex:0 0 118px;height:158px;border:0;border-radius:14px;background:#21140d;padding:18px 10px 10px;color:#fff0bc;cursor:pointer;box-shadow:0 8px 18px rgba(0,0,0,.32),inset 0 0 0 1px rgba(255,226,138,.16);transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;}
.avatar-frame::before,.avatar-frame::after{content:"";position:absolute;left:8px;right:8px;height:9px;background:repeating-linear-gradient(90deg,#f7dda2 0 8px,transparent 8px 16px);border-radius:8px;opacity:.72;}
.avatar-frame::before{top:5px;}.avatar-frame::after{bottom:5px;}
.avatar-frame:hover{transform:translateY(-4px);box-shadow:0 14px 26px rgba(0,0,0,.38),0 0 0 2px rgba(255,226,138,.28);}
.avatar-frame.is-selected{transform:translateY(-6px) scale(1.03);box-shadow:0 18px 34px rgba(0,0,0,.42),0 0 0 3px #ffe28a;}
.avatar-frame.is-disabled{opacity:.38;cursor:not-allowed;filter:grayscale(.55);}
.avatar-frame img{width:88px;height:88px;border-radius:18px;object-fit:cover;border:3px solid rgba(255,255,255,.78);background:#eee;display:block;margin:0 auto 9px;}
.avatar-frame__name{display:block;font-size:12px;line-height:1.15;font-weight:900;white-space:normal;overflow:hidden;max-height:30px;text-align:center;}
.avatar-frame__none,.avatar-frame__upload{display:grid;place-items:center;width:88px;height:88px;margin:0 auto 9px;border-radius:18px;border:3px dashed rgba(255,226,138,.5);font-size:42px;font-weight:1000;color:#ffe28a;background:rgba(255,255,255,.05);}
.avatar-upload-panel{position:relative;z-index:1;margin-top:18px;display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.09);color:#fff7d9;}
.avatar-upload-panel label{font-weight:900;display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.avatar-upload-panel input[type=file]{color:#fff7d9;}
.avatar-cinema-submit{position:relative;z-index:1;margin-top:20px;text-align:center;}
.avatar-admin-panel{margin-top:26px;padding:22px;border-radius:28px;background:linear-gradient(180deg,rgba(7,45,34,.94),rgba(3,18,16,.96));border:1px solid rgba(255,226,138,.26);box-shadow:0 18px 44px rgba(0,0,0,.25);color:#fff7d9;}
.avatar-admin-panel__header{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px;}
.avatar-admin-upload{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:14px;border-radius:18px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.09);margin-bottom:18px;}
.avatar-admin-upload label{font-weight:900;display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.avatar-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;}
.avatar-admin-card{display:grid;grid-template-columns:58px 1fr;gap:10px;align-items:center;padding:10px;border-radius:16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08);}
.avatar-admin-card img{width:58px;height:58px;border-radius:14px;object-fit:cover;border:2px solid rgba(255,255,255,.65);}
.avatar-admin-card span{font-size:12px;color:rgba(255,247,217,.72);}
.avatar-admin-card form{grid-column:1/-1;text-align:right;margin:0;}
.avatar-admin-card button{border:0;border-radius:999px;background:#9e2b2b;color:#fff;padding:7px 12px;font-weight:900;cursor:pointer;}
@media (max-width:780px){.avatar-cinema-hero{align-items:flex-start;flex-direction:column;}.avatar-projector-row{grid-template-columns:1fr;}.avatar-film-spool{display:none;}.avatar-projector{min-height:340px;}.avatar-projector__screen{width:min(74vw,310px);height:min(74vw,310px);}.avatar-frame{flex-basis:104px;height:146px}.avatar-frame img,.avatar-frame__none,.avatar-frame__upload{width:76px;height:76px}.avatar-admin-card{grid-template-columns:52px 1fr;}}

/* 2026-06-21: Pelaajat-näytön haku, editoi pelaajaa -otsikko ja huomio-dialogi sovelluksen yleissävyihin */
.players-search-panel{
  max-width:680px;
  margin:0 auto 12px;
  padding:12px 14px;
  border-radius:16px;
  background:linear-gradient(180deg,#eef4fb,#dfe7ef);
  border:1px solid rgba(72,101,133,.28);
  box-shadow:0 8px 22px rgba(22,42,66,.12);
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.players-search-panel label{
  font-weight:900;
  color:#244763;
}
.players-search-input{
  flex:1 1 260px;
  min-width:180px;
  border:1px solid rgba(65,91,121,.35);
  border-radius:999px;
  padding:10px 14px;
  font-size:15px;
  background:#fff;
  color:#172b3d;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.06);
}
.players-search-input:focus{
  outline:3px solid rgba(102,153,204,.28);
  border-color:#6699CC;
}
.players-search-count{
  flex:0 0 100%;
  color:#53616e;
  font-size:12px;
  font-weight:800;
}
.players-title-row,
.players-edit-title-row,
.error-note-title-row{
  background:#6699CC !important;
  background-image:none !important;
}
.players-title-row h2,
.players-edit-title-row h2,
.error-note-title-row h2{
  color:#fff !important;
  margin:8px 0 !important;
  text-shadow:none !important;
}
.players-edit-table{
  border-collapse:separate;
  border-spacing:1px;
  box-shadow:0 12px 28px rgba(0,0,0,.16);
}
.error-note-table{
  border-collapse:separate;
  border-spacing:1px;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 10px 26px rgba(0,0,0,.18);
}
.error-note-message{
  padding:16px 18px;
  font-weight:700;
  color:#263747;
}
.error-note img{display:none !important;}

/* 2026-06-21: Avatar-näytön värit pois vihreästä, lähemmäs sovelluksen sininen-harmaa-kellertävää yleisilmettä */
.avatar-cinema-hero{
  background:radial-gradient(circle at 12% 0%,rgba(242,196,107,.22),transparent 32%),linear-gradient(135deg,#345e86,#1f334a 56%,#6f7780) !important;
  border-color:rgba(242,196,107,.34) !important;
  color:#fff8df !important;
}
.avatar-cinema-kicker{
  color:#f2c46b !important;
}
.avatar-cinema-hero h1,
.avatar-admin-panel h2{
  color:#fff8df !important;
}
.avatar-cinema-hero p{
  color:rgba(255,248,223,.88) !important;
}
.avatar-cinema{
  background:linear-gradient(180deg,#25384e,#111923 52%,#303942) !important;
  border-color:rgba(242,196,107,.28) !important;
}
.avatar-cinema::before{
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 2px,transparent 2px 20px),radial-gradient(circle at 50% 10%,rgba(242,196,107,.13),transparent 42%) !important;
}
.avatar-projector{
  background:radial-gradient(ellipse at 50% 38%,rgba(242,196,107,.20),transparent 34%),linear-gradient(180deg,#315a80,#172331) !important;
  border-color:rgba(242,196,107,.32) !important;
}
.avatar-projector__beam{
  background:linear-gradient(180deg,rgba(242,196,107,.24),rgba(242,196,107,.04)) !important;
}
.avatar-projector__screen{
  background:linear-gradient(180deg,#f5f7fb,#dbe1e7) !important;
  border-color:#edf1f5 !important;
  outline-color:rgba(242,196,107,.42) !important;
}
.avatar-projector__caption{
  background:rgba(31,51,74,.82) !important;
  border-color:rgba(242,196,107,.34) !important;
  color:#f2c46b !important;
}
.avatar-film-window{
  background:#172331 !important;
  border-color:rgba(242,196,107,.30) !important;
}
.avatar-film-label{
  background:linear-gradient(180deg,#f8dda1,#c99d46) !important;
  color:#27394d !important;
}
.avatar-film-spool{
  border-color:rgba(242,196,107,.30) !important;
  background:radial-gradient(circle at center,#202832 0 12%,#7e8993 13% 18%,#1e2731 19% 28%,#5d6974 29% 38%,#101820 39% 52%,#b58b36 53% 58%,#2e3440 59%) !important;
}
.avatar-film-spool span{
  border-color:rgba(242,196,107,.42) !important;
}
.avatar-frame{
  background:#263342 !important;
  color:#f8dda1 !important;
  box-shadow:0 8px 18px rgba(0,0,0,.30),inset 0 0 0 1px rgba(242,196,107,.18) !important;
}
.avatar-frame::before,
.avatar-frame::after{
  background:repeating-linear-gradient(90deg,#d8e1ea 0 8px,transparent 8px 16px) !important;
}
.avatar-frame:hover{
  box-shadow:0 14px 26px rgba(0,0,0,.34),0 0 0 2px rgba(242,196,107,.34) !important;
}
.avatar-frame.is-selected{
  box-shadow:0 18px 34px rgba(0,0,0,.40),0 0 0 3px #f2c46b !important;
}
.avatar-frame__none,
.avatar-frame__upload{
  border-color:rgba(242,196,107,.58) !important;
  color:#f2c46b !important;
  background:rgba(255,255,255,.07) !important;
}
.avatar-upload-panel{
  background:rgba(230,237,245,.10) !important;
  border-color:rgba(230,237,245,.16) !important;
  color:#fff8df !important;
}
.avatar-upload-panel input[type=file]{
  color:#fff8df !important;
}
.avatar-admin-panel{
  background:linear-gradient(180deg,#2d4f72,#1b2a3a) !important;
  border-color:rgba(242,196,107,.30) !important;
  color:#fff8df !important;
}
.avatar-admin-upload,
.avatar-admin-card{
  background:rgba(232,238,245,.10) !important;
  border-color:rgba(232,238,245,.14) !important;
}
.avatar-admin-card span{
  color:rgba(255,248,223,.76) !important;
}

/* 2026-06-21: pelaajaeditorin otsikko default-siniseksi, ranking-lista kapeammaksi ja viimeiset 5 peliä */
.players-edit-title-row,
.players-edit-table .players-edit-title-row,
tr.players-edit-title-row{
  background:#6699CC !important;
  background-image:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
.players-edit-title-row > td,
.players-edit-table .players-edit-title-row > td{
  background:#6699CC !important;
  background-image:none !important;
}
.players-edit-title-row h2,
.players-edit-table .players-edit-title-row h2{
  color:#ffffff !important;
  margin:8px 0 !important;
  text-shadow:none !important;
}
.ranking-table{
  width:min(100%, 620px) !important;
  max-width:620px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.rank-last-play-cell{
  width:96px !important;
}
.rank-recent-balls{
  gap:4px;
}
@media (max-width: 900px){
  .ranking-table{
    width:min(100%, 560px) !important;
    max-width:560px !important;
  }
  .rank-last-play-cell{
    width:82px !important;
  }
  .rank-recent-balls{
    gap:3px;
  }
}
@media (max-width: 560px){
  .ranking-table{
    width:100% !important;
    max-width:100% !important;
  }
  .rank-last-play-cell{
    width:68px !important;
  }
  .rank-recent-balls{
    gap:2px;
  }
}

/* 2026-06-21: pelikohtainen WhatsApp-linkki live-pelin pelilistassa */
.live-game-whatsapp{
  margin:8px 0 10px;
  padding:9px;
  border:1px solid rgba(25,78,123,.24);
  border-radius:10px;
  background:linear-gradient(135deg, #eef4fb 0%, #f7f0d6 100%);
  box-shadow:0 2px 8px rgba(31,57,92,.12);
  color:#1f3144;
  font-size:12px;
}
.live-game-whatsapp__title{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-bottom:7px;
  padding:3px 9px;
  border-radius:999px;
  background:#2f6f9f;
  color:#fff;
  font-weight:700;
  letter-spacing:.02em;
}
.live-game-whatsapp__title::before{
  content:'☎';
  font-size:13px;
}
.live-game-whatsapp__notice{
  margin:3px 0 7px;
  padding:6px 8px;
  border-radius:7px;
  background:#fff7d7;
  color:#664c00;
  border:1px solid rgba(166,124,0,.25);
}
.live-game-whatsapp__qr-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
}
.live-game-whatsapp__qr-row img{
  display:block;
  width:118px;
  height:118px;
  padding:5px;
  border-radius:10px;
  background:#fff;
  border:1px solid rgba(31,57,92,.2);
}
.live-game-whatsapp__links{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}
.live-game-whatsapp__links a{
  color:#1c5f93;
  font-weight:700;
  text-decoration:none;
}
.live-game-whatsapp__links span{
  color:#4f5f6f;
  line-height:1.25;
}
.live-game-whatsapp__form{
  display:flex;
  gap:6px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:5px;
}
.live-game-whatsapp__form input[type="url"]{
  flex:1 1 160px;
  min-width:150px;
  border:1px solid #9fb6ca;
  border-radius:7px;
  padding:6px 8px;
  font-size:12px;
  background:#fff;
}
.live-game-whatsapp__form button,
.live-game-whatsapp__clear button{
  border:0;
  border-radius:7px;
  padding:6px 10px;
  background:#2f6f9f;
  color:#fff;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.live-game-whatsapp__clear{
  margin:5px 0 0;
}
.live-game-whatsapp__clear button{
  background:#6f7f8f;
}
#live-game-whatsapp-row input[type="url"]{
  max-width:100%;
  padding:7px 9px;
  border-radius:8px;
  border:1px solid #9fb6ca;
}
@media (max-width:720px){
  .live-game-whatsapp__qr-row{
    flex-direction:column;
    align-items:flex-start;
  }
  .live-game-whatsapp__qr-row img{
    width:104px;
    height:104px;
  }
}

/* 2026-06-21: Kalenterinäkymä ja pelikutsut */
.calendar-page-wrap{
  max-width:1180px;
  margin:18px auto 48px;
  padding:0 14px;
  color:#1f3144;
}
.calendar-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px;
  border-radius:18px;
  background:linear-gradient(135deg,#245f91 0%,#6f8292 58%,#e9d58f 100%);
  color:#fff;
  box-shadow:0 12px 28px rgba(31,57,92,.18);
}
.calendar-hero h1{margin:0 0 5px;font-size:30px;letter-spacing:.02em;}
.calendar-hero p{margin:0;color:rgba(255,255,255,.9);}
.calendar-card{
  background:#f8fafc;
  border:1px solid rgba(47,111,159,.22);
  border-radius:16px;
  box-shadow:0 8px 22px rgba(31,57,92,.10);
  padding:16px;
}
.calendar-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  gap:16px;
  margin-top:16px;
  align-items:start;
}
.calendar-month-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.calendar-month-head h2{margin:0;color:#214d75;}
.calendar-month-head a,
.calendar-invite-item,
.calendar-grid__event{color:#1c5f93;text-decoration:none;font-weight:700;}
.kingi-calendar-grid{
  width:100%;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:6px;
}
.kingi-calendar-grid th{
  background:#2f6f9f;
  color:#fff;
  border-radius:8px;
  padding:8px 6px;
  font-size:13px;
}
.kingi-calendar-grid td{
  vertical-align:top;
  height:108px;
  background:#fff;
  border:1px solid rgba(47,111,159,.16);
  border-radius:12px;
  padding:7px;
}
.kingi-calendar-grid__empty{background:#eef2f6!important;opacity:.55;}
.kingi-calendar-grid__day.is-today{box-shadow:0 0 0 2px #e1bc50 inset;background:#fffdf4;}
.kingi-calendar-grid__num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:26px;
  height:26px;
  border-radius:99px;
  background:#edf4fb;
  color:#244f78;
  font-weight:800;
  font-size:13px;
}
.kingi-calendar-grid__events{display:flex;flex-direction:column;gap:4px;margin-top:6px;}
.kingi-calendar-grid__event{
  display:block;
  border-radius:8px;
  padding:5px 6px;
  background:linear-gradient(135deg,#e6f0f8,#f7f0d6);
  border:1px solid rgba(47,111,159,.18);
  font-size:12px;
  line-height:1.22;
  overflow:hidden;
  text-overflow:ellipsis;
}
.kingi-calendar-grid__event span{color:#63778a;font-weight:800;}
.kingi-calendar-grid__event.is-cancelled{text-decoration:line-through;opacity:.62;}
.calendar-list-card h2,
.calendar-form-card h2,
.calendar-help-card h2,
.calendar-detail h2{margin-top:0;color:#214d75;}
.calendar-invite-list{display:flex;flex-direction:column;gap:8px;max-height:650px;overflow:auto;padding-right:2px;}
.calendar-invite-item{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:10px;
  border-radius:12px;
  background:#fff;
  border:1px solid rgba(47,111,159,.16);
}
.calendar-invite-item span{color:#526a7e;font-size:13px;font-weight:600;}
.calendar-invite-item small{color:#738191;font-size:12px;}
.calendar-invite-item.is-open{background:#fff7dc;border-color:#d7b64f;}
.calendar-invite-item.is-cancelled{opacity:.64;text-decoration:line-through;}
.calendar-message{
  margin:14px 0;
  border-radius:12px;
  padding:11px 13px;
  border:1px solid rgba(47,111,159,.2);
  background:#eef4fb;
  color:#1f3144;
  font-weight:700;
}
.calendar-message--success{background:#edf8ee;border-color:#8cc28f;color:#24532b;}
.calendar-message--error{background:#fff0ee;border-color:#e0a29a;color:#8a241a;}
.calendar-detail{margin-top:16px;}
.calendar-detail__meta{margin:4px 0;color:#344f66;}
.calendar-detail__description{padding:10px 12px;border-radius:10px;background:#fff;border:1px solid rgba(47,111,159,.13);}
.calendar-status-pills{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;}
.calendar-status-pills span{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  background:#2f6f9f;
  color:#fff;
  font-size:12px;
  font-weight:800;
}
.calendar-participant-groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.calendar-participant-group{
  background:#fff;
  border:1px solid rgba(47,111,159,.14);
  border-radius:12px;
  padding:10px;
}
.calendar-participant-group h3{margin:0 0 8px;color:#214d75;font-size:15px;}
.calendar-participant-group ol{margin:0;padding-left:20px;}
.calendar-participant-group li{margin:5px 0;}
.calendar-participant-group small{display:block;color:#718294;font-size:11px;}
.calendar-form-card,.calendar-help-card{margin-top:16px;}
.calendar-form-grid{display:grid;grid-template-columns:2fr 1fr 1fr 2fr;gap:12px;}
.calendar-form-grid label,.calendar-invitees label{font-weight:800;color:#244f78;}
.calendar-form-grid input,.calendar-form-grid textarea{
  box-sizing:border-box;
  width:100%;
  margin-top:5px;
  padding:9px 10px;
  border:1px solid #9fb6ca;
  border-radius:9px;
  background:#fff;
  color:#1f3144;
  font:inherit;
}
.calendar-form-grid textarea{resize:vertical;}
.calendar-form-grid small{display:block;margin-top:4px;color:#65798b;font-weight:500;}
.calendar-form-grid__wide{grid-column:1/-1;}
.calendar-invitees{margin-top:14px;}
.calendar-invitee-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.calendar-invitee-grid label{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px;
  border-radius:10px;
  background:#fff;
  border:1px solid rgba(47,111,159,.14);
  font-size:13px;
}
.calendar-invitee-grid small{display:block;color:#718294;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.calendar-form-actions{margin-top:14px;text-align:right;}
.calendar-form-actions button{
  border:0;
  border-radius:10px;
  padding:10px 16px;
  background:#2f6f9f;
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.calendar-help-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.calendar-help-grid h3{margin:0 0 6px;color:#214d75;}
.calendar-help-grid p{margin:0;color:#3f566b;line-height:1.45;}
.calendar-muted{color:#758599;font-style:italic;}
@media (max-width:920px){
  .calendar-layout{grid-template-columns:1fr;}
  .calendar-participant-groups,.calendar-help-grid,.calendar-invitee-grid{grid-template-columns:1fr 1fr;}
  .calendar-form-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:620px){
  .calendar-hero{flex-direction:column;align-items:flex-start;}
  .kingi-calendar-grid{border-spacing:3px;}
  .kingi-calendar-grid td{height:92px;padding:5px;}
  .kingi-calendar-grid__event{font-size:11px;padding:4px;}
  .calendar-participant-groups,.calendar-help-grid,.calendar-invitee-grid,.calendar-form-grid{grid-template-columns:1fr;}
}


/* 2026-06-21: Kalenterin otsikkorivi ja kutsuttavien pikavalinnat */
.kingi-calendar-grid thead th,
.kingi-calendar-grid th{
  background:linear-gradient(180deg,#2f6f9f 0%,#245f91 100%) !important;
  background-image:linear-gradient(180deg,#2f6f9f 0%,#245f91 100%) !important;
  color:#f8fbff !important;
  text-shadow:none !important;
  border:1px solid rgba(255,255,255,.16) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 2px 5px rgba(31,57,92,.12) !important;
}
.calendar-invite-mode{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px 12px;
  margin:8px 0 12px;
  padding:10px 12px;
  border-radius:12px;
  background:linear-gradient(135deg,#eef4fb 0%,#f8f1d8 100%);
  border:1px solid rgba(47,111,159,.18);
}
.calendar-invite-mode small{
  flex-basis:100%;
  color:#5d7184;
  font-weight:600;
}
.calendar-invite-all{
  display:inline-flex !important;
  align-items:center;
  gap:8px;
  margin:0;
  color:#214d75 !important;
}
.calendar-invite-tools{
  display:inline-flex;
  gap:8px;
  flex-wrap:wrap;
}
.calendar-mini-button{
  border:0 !important;
  border-radius:999px !important;
  padding:7px 12px !important;
  background:#2f6f9f !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:900 !important;
  box-shadow:0 4px 10px rgba(47,111,159,.18) !important;
}
.calendar-mini-button--muted{
  background:#6f8292 !important;
}
.calendar-invitee-grid label:has(input:disabled){
  opacity:.72;
}
@media (max-width:620px){
  .calendar-invite-mode{align-items:flex-start;}
  .calendar-invite-tools{width:100%;}
}

/* 2026-06-21: live-pelin chat ja alapelaajan infopalkki palautettu stage-ankkureihin */
.live-table-chat.is-chat-on-table.is-chat-table-corner,
.live-table-chat.is-chat-on-table.is-chat-table-corner[data-layout-id]{
  position:absolute !important;
  right:auto !important;
  bottom:auto !important;
  transform:none !important;
  max-width:none !important;
  margin:0 !important;
}
.live-seat__meta--bottom-topbar.is-unified-live-meta,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"].live-seat__meta--bottom-topbar,
.live-seat--bottom .live-seat__meta--self-inline.live-seat__meta--bottom-topbar{
  right:auto !important;
  bottom:auto !important;
  transform:none !important;
  max-width:var(--seat-meta-responsive-width, 560px) !important;
  min-width:0 !important;
  justify-content:flex-start !important;
}
.live-seat__meta--bottom-topbar.is-unified-live-meta .live-seat__name{
  max-width:34% !important;
}
.live-seat__meta--bottom-topbar.is-unified-live-meta .live-seat__line{
  max-width:24% !important;
}
.live-seat__meta--bottom-topbar.is-unified-live-meta .live-seat__line--status{
  max-width:30% !important;
}

/* 2026-06-28: live-pelin katselijalista */
.live-spectators{
  background:linear-gradient(180deg, rgba(12,36,58,.70), rgba(8,22,36,.62));
}
.live-spectator-list{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.live-spectator-pill{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:7px 9px;
  border-radius:14px;
  background:rgba(255,255,255,.07);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.09);
  color:#fff;
  font-size:13px;
  font-weight:800;
}
.live-spectator-pill.is-online{
  box-shadow:inset 0 0 0 1px rgba(255,226,138,.22), 0 0 0 1px rgba(255,226,138,.08);
}
.live-spectator-avatar{
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  overflow:hidden;
  background:linear-gradient(135deg, #244d78, #d6b15c);
  color:#fff4cc;
  font-weight:900;
  box-shadow:0 2px 6px rgba(0,0,0,.24);
}
.live-spectator-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.live-spectator-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-spectator-empty{
  padding:8px 9px;
  border-radius:12px;
  background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.76);
  font-size:12px;
  font-weight:700;
}

/* 2026-06-28: full screen -pistevihko voidaan kiinnittää vasempaan laitaan */
.live-scorebook-badge--button{
  appearance:none !important;
  -webkit-appearance:none !important;
  border:0 !important;
  background:transparent !important;
  padding:0 0 0 6px !important;
  margin:0 !important;
  color:inherit !important;
  font:inherit !important;
  cursor:pointer !important;
  text-align:left !important;
}
.live-scorebook-badge--button:focus-visible .live-scorebook-badge__sheet,
.live-scorebook-badge--button.is-active .live-scorebook-badge__sheet{
  outline:3px solid rgba(255,218,107,.92) !important;
  outline-offset:3px !important;
  box-shadow:0 12px 24px rgba(0,0,0,.32), 0 0 0 5px rgba(31,94,148,.42), inset 0 1px 0 rgba(255,255,255,.85) !important;
}
.live-fullscreen-scorebook{
  display:flex !important;
  flex:0 0 auto !important;
  flex-direction:column !important;
  box-sizing:border-box !important;
  pointer-events:auto !important;
  width:100% !important;
  max-height:46vh !important;
  color:#fff7df !important;
  background:linear-gradient(180deg, rgba(9,30,52,.94), rgba(5,18,32,.84)) !important;
  border:1px solid rgba(255,222,142,.34) !important;
  border-left:0 !important;
  border-radius:0 16px 16px 0 !important;
  box-shadow:0 12px 28px rgba(0,0,0,.40), inset 0 0 0 1px rgba(255,255,255,.06) !important;
  overflow:hidden !important;
  backdrop-filter:blur(5px) !important;
}
.live-fullscreen-scorebook__title{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:8px !important;
  flex:0 0 auto !important;
  padding:9px 10px 7px 12px !important;
  color:#ffe28a !important;
  font-weight:900 !important;
  font-size:13px !important;
  letter-spacing:.02em !important;
  background:linear-gradient(90deg, rgba(33,92,142,.55), rgba(6,22,39,.16)) !important;
  border-bottom:1px solid rgba(255,255,255,.10) !important;
}
.live-fullscreen-scorebook__title button{
  appearance:none !important;
  -webkit-appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:26px !important;
  height:26px !important;
  border-radius:999px !important;
  border:1px solid rgba(255,226,138,.44) !important;
  background:rgba(255,255,255,.10) !important;
  color:#fff7df !important;
  font-size:20px !important;
  font-weight:900 !important;
  line-height:1 !important;
  cursor:pointer !important;
}
.live-fullscreen-scorebook__body{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow:auto !important;
  padding:8px 8px 10px 8px !important;
}
.live-fullscreen-scorebook .live-scoreboard{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  padding:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
.live-fullscreen-scorebook .live-scoreboard__legacy-wrap{
  width:100% !important;
  overflow:auto !important;
}
.live-fullscreen-scorebook .live-score-grid{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  transform:none !important;
  table-layout:fixed !important;
}
.live-fullscreen-scorebook .live-score-grid thead th{
  font-size:10px !important;
  padding:3px 4px !important;
  min-width:0 !important;
  max-width:none !important;
  box-sizing:border-box !important;
}
.live-fullscreen-scorebook .live-score-grid thead th:first-child,
.live-fullscreen-scorebook .live-score-grid tbody th{
  width:36% !important;
}
.live-fullscreen-scorebook .live-score-grid thead th:not(:first-child){
  width:16% !important;
}
.live-fullscreen-scorebook .game-score-player-name{
  display:-webkit-box !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  max-height:2.1em !important;
  overflow:hidden !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:2 !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
  word-break:break-word !important;
  text-overflow:ellipsis !important;
  font-size:9px !important;
  line-height:1.05 !important;
  text-align:center !important;
}
.live-fullscreen-scorebook .live-score-grid tbody th{
  max-width:150px !important;
  font-size:9px !important;
  line-height:1.05 !important;
  padding:3px 4px !important;
}
.live-fullscreen-scorebook .live-score-grid tbody td,
.live-fullscreen-scorebook .live-score-grid .game-score-readonly-field{
  font-size:10px !important;
  line-height:1.05 !important;
  padding:3px 3px !important;
}
.live-news-portal.has-fullscreen-scorebook .live-news-ticker.is-screen-left-fixed{
  max-height:30vh !important;
}
.live-news-portal.has-fullscreen-scorebook.has-fullscreen-chat .live-fullscreen-chat{
  min-height:150px !important;
}
@media (max-width:1050px), (max-height:560px){
  .live-news-portal.has-fullscreen-scorebook .live-fullscreen-scorebook{
    display:none !important;
  }
}

/* 2026-06-28: Pistevihkon rivipisteet pidetään luettavana mustana tekstinä */
.live-score-grid tbody td,
.live-score-grid tbody td .game-score-readonly-field,
.live-fullscreen-scorebook .live-score-grid tbody td,
.live-fullscreen-scorebook .live-score-grid tbody td .game-score-readonly-field,
.live-scorebook-badge__tooltip .live-score-grid tbody td,
.live-scorebook-badge__tooltip .live-score-grid tbody td .game-score-readonly-field,
.live-score-grid__row--k1 td,
.live-score-grid__row--k1 td .game-score-readonly-field{
  color:#111111 !important;
  text-shadow:none !important;
}

/* 2026-06-29: Pistevihkon hover/pop-up -näkymää isonnettu luettavammaksi */
.live-scorebook-badge__tooltip{
  min-width:640px !important;
  max-width:min(96vw, 1040px) !important;
  padding:14px 14px 12px !important;
  overflow:auto !important;
}
.live-scorebook-badge__tooltip .live-scoreboard--compact{
  min-width:0 !important;
  max-width:none !important;
  width:100% !important;
}
.live-scorebook-badge__tooltip .live-scoreboard__legacy-wrap{
  width:100% !important;
  overflow:visible !important;
}
.live-scorebook-badge__tooltip .live-score-grid{
  width:100% !important;
  max-width:none !important;
  transform:none !important;
  transform-origin:top center !important;
}
.live-scorebook-badge__tooltip .live-score-grid thead th{
  font-size:12px !important;
  line-height:1.15 !important;
  padding:5px 8px !important;
}
.live-scorebook-badge__tooltip .live-score-grid tbody th{
  font-size:11px !important;
  line-height:1.15 !important;
  padding:5px 8px !important;
}
.live-scorebook-badge__tooltip .live-score-grid tbody td,
.live-scorebook-badge__tooltip .live-score-grid tbody td .game-score-readonly-field,
.live-scorebook-badge__tooltip .live-score-grid .game-score-readonly-field{
  font-size:12px !important;
  line-height:1.15 !important;
  padding:5px 7px !important;
  min-width:2.3em !important;
}
@media (max-width:720px){
  .live-scorebook-badge__tooltip{
    min-width:calc(100vw - 28px) !important;
    max-width:calc(100vw - 28px) !important;
  }
  .live-scorebook-badge__tooltip .live-score-grid thead th,
  .live-scorebook-badge__tooltip .live-score-grid tbody th,
  .live-scorebook-badge__tooltip .live-score-grid tbody td,
  .live-scorebook-badge__tooltip .live-score-grid .game-score-readonly-field{
    font-size:11px !important;
    padding:4px 5px !important;
  }
}

/* 2026-06-29: Pistevihkon pop-up pidetään aina selaimen näkyvällä alueella */
.live-scorebook-badge__tooltip[data-scorebook-positioned="1"]{
  position:fixed !important;
  right:auto !important;
  bottom:auto !important;
  box-sizing:border-box !important;
  z-index:2300 !important;
  transform:none !important;
}
.live-scorebook-badge:hover .live-scorebook-badge__tooltip[data-scorebook-positioned="1"],
.live-scorebook-badge:focus-within .live-scorebook-badge__tooltip[data-scorebook-positioned="1"]{
  opacity:1 !important;
  transform:none !important;
}
@media (max-width:720px){
  .live-scorebook-badge__tooltip[data-scorebook-positioned="1"]{
    min-width:calc(100vw - 28px) !important;
    max-width:calc(100vw - 28px) !important;
  }
}

/* 2026-06-29: Uuden pelin pelaajavalinnan haku ja selkeämpi valintakenttä */
.new-game-player-search{
  box-sizing:border-box;
  width:96%;
  max-width:280px;
  margin:4px 0 5px;
  padding:6px 9px;
  border:1px solid rgba(31,41,55,.32);
  border-radius:8px;
  background:#fffdf6;
  color:#111827;
  font-size:13px;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.08);
}
.new-game-player-search:focus{
  outline:2px solid rgba(0,49,146,.25);
  border-color:#003192;
}
.new-game-setup-table select[id^="new-game-player-select-"]{
  width:96%;
  max-width:280px;
}

/* 2026-06-21: Pelikutsun oma sivu ja uuden pelin esitäyttö */
.calendar-invite-page-wrap .calendar-detail{
  margin-top:16px;
}
.calendar-detail-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  flex-wrap:wrap;
}
.calendar-detail-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
  align-items:center;
}
.calendar-create-game-button{
  background:linear-gradient(180deg,#2f6f9f,#245f91) !important;
  color:#fff !important;
  border-radius:10px !important;
  padding:10px 14px !important;
  box-shadow:0 5px 13px rgba(47,111,159,.22) !important;
}
.new-game-prefill-message{
  max-width:760px;
  margin:12px auto 10px !important;
}

/* 2026-08-06: Uuden pelin neljä erillistä käyttötapaa */
.new-game-flow-page,
.new-game-form-page{
  width:min(1120px,calc(100% - 24px));
  margin:24px auto 48px;
  color:#1f3144;
}
.new-game-flow-hero,
.new-game-form-header{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  background:
    linear-gradient(135deg,rgba(36,95,145,.96) 0%,rgba(78,111,138,.95) 58%,rgba(215,185,90,.93) 100%),
    url('../../images/header_bubble_bg.png') center center / cover no-repeat;
  box-shadow:0 12px 28px rgba(31,57,92,.18);
}
.new-game-flow-hero{
  padding:30px clamp(22px,5vw,52px);
  text-align:left;
}
.new-game-flow-kicker{
  margin:0 0 5px !important;
  color:#ffe39a;
  font-size:12px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.new-game-flow-hero h1,
.new-game-form-header h1{
  margin:0;
  color:#fff;
  font-size:clamp(25px,4vw,38px);
  line-height:1.12;
}
.new-game-flow-hero > p:last-child,
.new-game-form-header div > p:last-child{
  max-width:720px;
  margin:10px 0 0;
  color:rgba(255,255,255,.9);
  font-size:15px;
  line-height:1.55;
}
.new-game-flow-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:18px;
}
.new-game-flow-card{
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-areas:
    "icon title"
    "icon copy"
    "icon action";
  align-items:start;
  gap:5px 15px;
  min-height:150px;
  padding:22px;
  box-sizing:border-box;
  border:1px solid rgba(29,73,118,.18);
  border-radius:18px;
  background:#eef5fb;
  color:#18324f;
  text-decoration:none !important;
  box-shadow:0 8px 23px rgba(19,48,82,.1);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.new-game-flow-card:nth-child(even){
  background:#fff8e7;
}
a.new-game-flow-card:hover,
a.new-game-flow-card:focus-visible{
  transform:translateY(-3px);
  border-color:#df9200;
  box-shadow:0 13px 28px rgba(19,48,82,.16);
  outline:none;
}
.new-game-flow-card.is-disabled{
  opacity:.58;
}
.new-game-flow-card__icon{
  grid-area:icon;
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  border-radius:15px;
  border:1px solid rgba(255,226,138,.42);
  background:linear-gradient(145deg,#173f6b,#0d2949);
  font-size:27px;
  box-shadow:0 6px 14px rgba(13,41,73,.2);
}
.new-game-flow-card h2{
  grid-area:title;
  margin:1px 0 0;
  color:#173b64;
  font-size:19px;
  line-height:1.25;
}
.new-game-flow-card p{
  grid-area:copy;
  margin:2px 0 0;
  color:#52657a;
  font-size:14px;
  line-height:1.45;
}
.new-game-flow-card__action{
  grid-area:action;
  align-self:end;
  margin-top:7px;
  color:#9a5a00;
  font-size:13px;
  font-weight:850;
}
.new-game-flow-back{
  display:inline-flex;
  align-items:center;
  margin:0 0 10px;
  padding:7px 11px;
  border-radius:10px;
  color:#eff7ff !important;
  background:rgba(7,34,60,.72);
  font-size:13px;
  font-weight:800;
  text-decoration:none !important;
}
.new-game-form-header{
  display:flex;
  align-items:center;
  gap:18px;
  padding:24px clamp(20px,4vw,38px);
}
.new-game-form-header__icon{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  border-radius:18px;
  border:1px solid rgba(255,226,138,.42);
  background:linear-gradient(145deg,#173f6b,#0d2949);
  font-size:33px;
  box-shadow:0 8px 18px rgba(13,41,73,.22);
}
.new-game-flow-instructions{
  display:flex;
  gap:8px;
  margin:14px 0;
  padding:14px 17px;
  border:1px solid #b7d1e9;
  border-radius:13px;
  background:#eaf5ff;
  color:#234462;
  font-size:14px;
  line-height:1.5;
}
.new-game-flow-instructions strong{
  flex:0 0 auto;
  color:#123d63;
}
.new-game-flow-instructions--important{
  border-color:#e1ad51;
  background:#fff4d9;
  color:#624315;
}
.new-game-flow-instructions--important strong{
  color:#7f4a00;
}
.new-game-workflow-form{
  overflow:hidden;
  padding:22px;
  box-sizing:border-box;
  border:1px solid rgba(47,111,159,.22);
  border-radius:16px;
  background:rgba(248,250,252,.97);
  box-shadow:0 8px 22px rgba(31,57,92,.10);
}
.new-game-settings-grid{
  display:grid;
  grid-template-columns:minmax(190px,1fr) minmax(150px,.72fr) minmax(230px,1.15fr);
  gap:14px;
  align-items:stretch;
}
.new-game-field,
.new-game-player-count{
  margin:0;
  padding:13px;
  box-sizing:border-box;
  border:1px solid #cad9e7;
  border-radius:13px;
  background:#fff;
}
.new-game-field > label,
.new-game-player-count legend,
.new-game-player-control > label,
.new-game-score-control > label,
.new-game-checksum-row > label{
  display:block;
  margin:0 0 7px;
  color:#173b64;
  font-size:13px;
  font-weight:850;
}
.new-game-field label span{
  color:#6f8092;
  font-weight:600;
}
.new-game-field select,
.new-game-field input[type="date"],
.new-game-field input[type="url"],
.new-game-field textarea,
.new-game-score-control input,
.new-game-checksum-row input{
  box-sizing:border-box;
  width:100%;
  min-height:39px;
  padding:8px 10px;
  border:1px solid #aebfd0;
  border-radius:9px;
  background:#fff;
  color:#142b43;
  font:inherit;
}
.new-game-field input[type="date"],
.new-game-field #new-game-time{
  max-width:230px;
}
.new-game-player-count{
  display:flex;
  flex-wrap:wrap;
  align-content:center;
  gap:9px 14px;
}
.new-game-player-count legend{
  width:100%;
  padding:0;
}
.new-game-player-count label{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:#294865;
  font-weight:750;
}
.new-game-calendar-field{
  min-height:39px;
  padding-top:3px;
}
.new-game-players-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  margin:24px 2px 9px;
}
.new-game-players-heading h2{
  margin:0;
  color:#153b63;
  font-size:21px;
}
.new-game-players-heading p{
  margin:3px 0 0;
  color:#627389;
  font-size:13px;
}
.new-game-score-heading{
  margin-right:15px;
  color:#5a6c80;
  font-size:12px;
  text-transform:uppercase;
}
.new-game-player-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.new-game-player-row{
  display:grid;
  grid-template-columns:104px minmax(0,1fr) 94px;
  gap:13px;
  align-items:stretch;
  min-height:126px;
  padding:10px;
  border:1px solid #d2deea;
  border-radius:14px;
  background:#eef5fb;
  overflow:hidden;
}
.new-game-player-row:nth-child(even){
  background:#fff8e7;
}
.new-game-form-page:not(.new-game-form-page--final_results) .new-game-player-row{
  grid-template-columns:104px minmax(0,1fr);
}
.new-game-player-control{
  align-self:center;
  min-width:0;
  width:min(100%,260px);
}
.new-game-workflow-form .new-game-player-search{
  width:100%;
  max-width:none;
  margin:0 0 7px;
  padding:8px 10px;
}
.new-game-player-select-line{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.new-game-workflow-form select[id^="new-game-player-select-"]{
  flex:1 1 auto;
  width:auto;
  max-width:none;
  min-width:0;
  min-height:42px;
  padding:8px 10px;
  box-sizing:border-box;
  border:1px solid #9eb4c8;
  border-radius:10px;
  background:#fff;
  color:#152c44;
  font-size:14px;
}
.new-game-player-avatar-preview{
  align-self:stretch;
  display:grid;
  place-items:center;
  width:104px;
  min-height:106px;
  height:100%;
  overflow:hidden;
  border:1px solid rgba(36,79,120,.24);
  border-radius:12px;
  background:linear-gradient(145deg,#dbe8f2,#bdcedd);
  box-shadow:0 3px 10px rgba(31,57,92,.14);
}
.new-game-player-mini-avatar.rank-player-avatar{
  display:block;
  width:100% !important;
  height:100% !important;
  max-width:none;
  flex-basis:auto !important;
  object-fit:cover;
  border:0 !important;
  border-radius:10px !important;
  box-shadow:none !important;
}
.new-game-player-mini-avatar--placeholder{
  width:100%;
  height:100%;
  min-height:106px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:0;
  background:linear-gradient(145deg,#31597f,#173653);
  color:#fff;
  font-size:34px;
  font-weight:900;
  box-shadow:none;
}
.new-game-score-control{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.new-game-score-control input{
  min-height:72px;
  text-align:center;
  font-size:25px;
  font-weight:900;
}
.new-game-checksum-row{
  display:grid;
  grid-template-columns:auto 110px 1fr;
  align-items:center;
  gap:10px;
  margin-top:12px;
  padding:13px 15px;
  border-radius:13px;
  background:#e8f1f8;
}
.new-game-checksum-row > label{
  margin:0;
}
.new-game-checksum-row input{
  min-height:36px;
  text-align:center;
  font-weight:900;
}
.new-game-checksum-row small{
  color:#52677c;
}
.new-game-live-note,
.new-game-live-status{
  margin-top:11px;
  padding:11px 13px;
  border-radius:11px;
  background:#e9f4e9;
  color:#244a2c;
  font-size:13px;
}
.new-game-live-status{
  margin-top:7px;
  background:#e8f2fb;
  color:#244762;
}
.new-game-whatsapp-field,
.new-game-notes-field{
  margin-top:14px;
}
.new-game-field small{
  display:block;
  margin-top:6px;
  color:#65768a;
  line-height:1.4;
}
.new-game-notes-field textarea{
  min-height:92px;
  resize:vertical;
}
.new-game-form-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  margin-top:18px;
}
.new-game-secondary-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:0 15px;
  box-sizing:border-box;
  border:1px solid #9fb2c5;
  border-radius:11px;
  background:#fff;
  color:#274762 !important;
  font-weight:800;
  text-decoration:none !important;
}
.new-game-form-actions .new-game-submit-button{
  min-height:42px;
  margin:0 !important;
  padding:9px 18px !important;
  border-radius:11px !important;
}
@media (max-width:760px){
  .new-game-flow-page,
  .new-game-form-page{
    width:min(100% - 18px,1040px);
    margin-top:14px;
  }
  .new-game-flow-grid{
    grid-template-columns:1fr;
  }
  .new-game-settings-grid{
    grid-template-columns:1fr;
  }
  .new-game-form-header{
    align-items:flex-start;
  }
  .new-game-flow-instructions{
    flex-direction:column;
    gap:3px;
  }
  .new-game-player-row{
    grid-template-columns:88px minmax(0,1fr) 84px;
  }
  .new-game-form-page:not(.new-game-form-page--final_results) .new-game-player-row{
    grid-template-columns:88px minmax(0,1fr);
  }
  .new-game-checksum-row{
    grid-template-columns:1fr 90px;
  }
  .new-game-checksum-row small{
    grid-column:1/-1;
  }
}
@media (max-width:960px){
  .new-game-player-list{
    grid-template-columns:1fr;
  }
  .new-game-player-control{
    width:min(100%,330px);
  }
}
@media (max-width:480px){
  .new-game-flow-hero,
  .new-game-form-header,
  .new-game-workflow-form{
    padding:17px;
    border-radius:16px;
  }
  .new-game-form-header__icon{
    width:48px;
    height:48px;
    border-radius:14px;
    font-size:25px;
  }
  .new-game-flow-card{
    padding:17px;
  }
  .new-game-player-row{
    grid-template-columns:78px minmax(0,1fr);
    min-height:108px;
  }
  .new-game-form-page:not(.new-game-form-page--final_results) .new-game-player-row{
    grid-template-columns:78px minmax(0,1fr);
  }
  .new-game-form-page--final_results .new-game-player-row{
    grid-template-columns:78px minmax(0,1fr);
  }
  .new-game-form-page--final_results .new-game-score-control{
    grid-column:2;
  }
  .new-game-player-avatar-preview{
    width:78px;
    min-height:88px;
  }
  .new-game-player-mini-avatar--placeholder{
    min-height:88px;
  }
  .new-game-score-heading{
    display:none;
  }
  .new-game-form-actions{
    align-items:stretch;
    flex-direction:column-reverse;
  }
  .new-game-form-actions .new-game-submit-button,
  .new-game-secondary-button{
    width:100%;
  }
}
@media (max-width:700px){
  .calendar-detail-actions{
    justify-content:flex-start;
    width:100%;
  }
}

/* 2026-07-01: Kalenterin turnauskutsut ja turnausten pöytäkaaviot */
.calendar-invite-kind-box,
.calendar-tournament-start-box {
    background: #f8fafc;
    border: 1px solid #d6dde8;
    border-radius: 16px;
    padding: 16px 18px;
    margin: 14px 0 18px 0;
}
.calendar-invite-kind-box h3,
.calendar-tournament-start-box h3 {
    margin: 0 0 10px 0;
    color: #1f5f93;
}
.calendar-invite-kind-box label,
.calendar-tournament-start-form label {
    display: inline-block;
    margin: 6px 16px 6px 0;
    font-weight: 700;
}
.calendar-tournament-options {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #d6dde8;
}
.calendar-tournament-options select,
.calendar-tournament-start-form select {
    display: block;
    margin-top: 5px;
    min-width: 220px;
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid #b8c4d2;
    background: #ffffff;
}
.calendar-tournament-start-form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px 18px;
}
.tournament-page-wrap .calendar-hero,
.tournament-summary-card,
.tournament-actions-card,
.tournament-round-card,
.tournament-results-card {
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
}
.tournament-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}
.tournament-actions button.button-link {
    cursor: pointer;
}
.tournament-round-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid #d6dde8;
    margin-bottom: 16px;
    padding-bottom: 10px;
}
.tournament-round-head h2 {
    margin: 0;
    color: #1f5f93;
}
.tournament-round-head span {
    background: #e8f1fb;
    border: 1px solid #c5d7ea;
    color: #17486f;
    border-radius: 999px;
    padding: 6px 12px;
    font-weight: 800;
}
.tournament-table-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 16px;
}
.tournament-table-card {
    background: #ffffff;
    border: 1px solid #d6dde8;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);
}
.tournament-table-card__head {
    background: #1f5f93;
    color: #ffffff;
    padding: 12px 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}
.tournament-table-card__head h4 {
    margin: 0;
    color: #ffffff;
}
.tournament-table-card__head .button-link {
    padding: 7px 10px;
    font-size: 12px;
    background: #f2c46b;
    color: #1f2937 !important;
    border-color: #d7a83e;
}
.tournament-table-card__status {
    padding: 9px 12px;
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
    color: #475569;
    font-size: 13px;
    font-weight: 700;
}
.tournament-mini-table,
.tournament-results-table {
    width: 100%;
    border-collapse: collapse;
    background: #ffffff;
}
.tournament-mini-table th,
.tournament-mini-table td,
.tournament-results-table th,
.tournament-results-table td {
    padding: 9px 10px;
    border-bottom: 1px solid #e2e8f0;
    text-align: left;
    color: #111827;
}
.tournament-mini-table th,
.tournament-results-table th {
    background: #e8f1fb;
    color: #17486f;
    font-weight: 800;
}
.tournament-results-table tr:nth-child(even) td,
.tournament-mini-table tr:nth-child(even) td {
    background: #f8fafc;
}
@media (max-width: 700px) {
    .calendar-tournament-start-form label,
    .calendar-invite-kind-box label {
        display: block;
        margin-right: 0;
    }
    .tournament-round-head {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* 2026-07-01: alapelaajan korttiviuhkan osuma-alue seuraa pintaan nostettua korttia.
   Kun hiiri on kortin päällä, kortti saa koko kuvapintansa levyisen klikkausalueen
   ja nousee muiden korttien yläpuolelle. */
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered{
  z-index:90 !important;
  transform:translateY(-10px) scale(1.025) !important;
  margin-left:2px !important;
  margin-right:2px !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card{
  filter:brightness(1.04) drop-shadow(0 10px 18px rgba(0,0,0,.34)) !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card-button__bg,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card-button__bg,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card-button__bg{
  opacity:.95 !important;
}
.live-hand--self.has-expanded-hit-card .live-card-button:not(.is-pointer-hovered){
  transition:transform .14s ease, margin .14s ease, filter .14s ease !important;
}


/* 2026-07-01: rauhoitettu korttiviuhkan hover-liike ja lisätty selkeä korostusreunus. */
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered{
  z-index:160 !important;
  transform:translateY(-5px) !important;
  margin-left:0 !important;
  margin-right:calc(var(--layout-fan-step, 0px) - var(--layout-fan-card-width, 96px)) !important;
  transition:transform .08s ease-out !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered:last-child,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered:last-child,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered:last-child{
  margin-right:0 !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card,
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card--face,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card--face,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card--face{
  outline:3px solid rgba(255,225,120,.98) !important;
  outline-offset:2px !important;
  border-radius:10px !important;
  filter:brightness(1.03) drop-shadow(0 8px 14px rgba(0,0,0,.30)) !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card-button__bg,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card-button__bg,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card-button__bg{
  opacity:.72 !important;
}
.live-hand--self.has-expanded-hit-card .live-card-button:not(.is-pointer-hovered){
  transition:transform .08s ease-out, filter .08s ease-out !important;
}

/* 2026-07-01: pidä myös alkuperäisen alapelaajan viuhkan marginaalit omassa geometriassaan hoverissa. */
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered{
  margin-left:0 !important;
  margin-right:calc(var(--live-self-card-width-stage, var(--self-card-width, 96px)) * -0.12) !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered:last-child{
  margin-right:0 !important;
}

/* 2026-07-01: korjattu aktiivisen kortin koko kortin levyinen osuma-alue.
   Kun hiiri on kortin päällä, aktiivinen kortti on ylimpänä ja muut kortit
   väistyvät molemmilta puolilta, jotta klikki ei voi mennä alemman kortin kaistaan. */
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button{
  transition:transform .10s ease-out, filter .10s ease-out !important;
  will-change:transform !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-before-pointer,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-before-pointer,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-before-pointer{
  transform:translateX(calc(var(--expanded-hit-clearance, 0px) * -1)) !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-after-pointer,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-after-pointer,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-after-pointer{
  transform:translateX(var(--expanded-hit-clearance, 0px)) !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered{
  z-index:9000 !important;
  transform:translateY(-3px) !important;
  margin-left:0 !important;
  transition:transform .07s ease-out !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered{
  margin-right:calc(var(--layout-fan-step, 0px) - var(--layout-fan-card-width, 96px)) !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered:last-child,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered:last-child{
  margin-right:0 !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered{
  margin-right:calc(var(--live-self-card-width-stage, var(--self-card-width, 96px)) * -0.12) !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered:last-child{
  margin-right:0 !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card,
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card--face,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card--face,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card--face{
  outline:3px solid rgba(255,225,120,.98) !important;
  outline-offset:2px !important;
  border-radius:10px !important;
  filter:brightness(1.035) drop-shadow(0 9px 16px rgba(0,0,0,.33)) !important;
  pointer-events:auto !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button:not(.is-pointer-hovered):hover,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button:not(.is-pointer-hovered):hover,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button:not(.is-pointer-hovered):hover{
  z-index:inherit !important;
}

/* 2026-07-01: rauhoitettu korttiviuhkan aktiivikortti. Geometriaa ei muuteta jokaisella
   pointermovella; aktiivikortti saa klikin JS-hit-testillä, ja viuhka väistää vain kun
   aktiivinen kortti oikeasti vaihtuu. */
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button{
  transition:filter .08s ease-out !important;
  will-change:auto !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered{
  z-index:9000 !important;
  transform:translateY(-3px) !important;
  transition:none !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered{
  margin-right:calc(var(--layout-fan-step, 0px) - var(--layout-fan-card-width, 96px)) !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered{
  margin-right:calc(clamp(94px, 8.5vw, var(--live-self-card-width, 112px)) * -0.19) !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered:last-child,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered:last-child,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered:last-child{
  margin-right:0 !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-before-pointer,
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-after-pointer,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-before-pointer,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-after-pointer,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-before-pointer,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-after-pointer{
  transition:none !important;
}

/* 2026-07-02: korttiviuhkan turvallinen osuma-alue, rauhallinen valinta ja max 15 % limitys. */
.live-seat--bottom .live-hand--self,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self{
  --self-card-width: min(108px, calc((100% - 12px) / (((var(--self-hand-count, 13) - 1) * 0.85) + 1))) !important;
}
.live-seat--bottom .live-card-button.is-selected,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-selected,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button.is-selected{
  z-index:9200 !important;
  transform:translateY(-8px) !important;
}
.live-seat--bottom .live-card-button.is-selected .live-card,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-selected .live-card,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button.is-selected .live-card{
  outline:3px solid rgba(255,225,120,.98) !important;
  outline-offset:2px !important;
  border-radius:10px !important;
  filter:brightness(1.04) drop-shadow(0 10px 18px rgba(0,0,0,.36)) !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered{
  z-index:9300 !important;
  transform:translateY(-5px) !important;
}
.live-action-panel--undo{
  border-color:rgba(255,225,120,.42);
  background:linear-gradient(180deg, rgba(46,83,119,.62), rgba(21,40,61,.74));
}
.live-choice-button--undo{
  margin-top:10px;
  border-color:rgba(255,225,120,.70) !important;
  background:linear-gradient(180deg, #f6d783 0%, #e0ad44 100%) !important;
  color:#1f2937 !important;
  font-weight:800 !important;
}

/* 2026-07-02: kortin valinta ei enää tiivistä muita kortteja.
   Aktiivinen kortti saa edelleen korostuksen ja päällimmäisen klikkialueen,
   mutta viuhkan muiden korttien sijaintia ei muuteta valinnan takia. */
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-before-pointer,
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-after-pointer,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-before-pointer,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-after-pointer,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-before-pointer,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-after-pointer{
  transform:none !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered{
  z-index:9300 !important;
  transform:translateY(-5px) !important;
  transition:none !important;
}
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered{
  margin-right:calc(var(--layout-fan-step, 0px) - var(--layout-fan-card-width, 96px)) !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered{
  margin-right:calc(clamp(94px, 8.5vw, var(--live-self-card-width, 112px)) * -0.19) !important;
}
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered:last-child,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered:last-child,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered:last-child{
  margin-right:0 !important;
}


/* 2026-07-12: näkyvämpi kortin valinta ja iso Peru lyönti -painike viuhkan päällä. */
.live-seat--bottom .live-hand--self,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self{
  overflow:visible !important;
}
.live-seat--bottom .live-card-button.is-selected,
.live-seat--bottom .live-hand--self.has-expanded-hit-card .live-card-button.is-selected.is-pointer-hovered,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-selected,
.live-seat__cards[data-layout-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-selected.is-pointer-hovered,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button.is-selected,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self.has-expanded-hit-card .live-card-button.is-selected.is-pointer-hovered{
  z-index:9800 !important;
  transform:translateY(-18px) scale(1.045) !important;
  transition:transform .10s ease-out !important;
}
.live-seat--bottom .live-card-button.is-selected .live-card,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-selected .live-card,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button.is-selected .live-card{
  outline:4px solid #ffd43b !important;
  outline-offset:3px !important;
  border-radius:10px !important;
  box-shadow:
    0 0 0 3px rgba(35,111,181,.98),
    0 0 22px 8px rgba(255,212,59,.72),
    0 18px 28px rgba(0,0,0,.48) !important;
  filter:brightness(1.12) saturate(1.16) !important;
}
.live-seat--bottom .live-card-button.is-selected .live-card-button__bg,
.live-seat__cards[data-layout-id="fan_bottom"] .live-card-button.is-selected .live-card-button__bg,
.live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button.is-selected .live-card-button__bg{
  background:linear-gradient(180deg, rgba(255,220,76,.98), rgba(49,120,190,.96)) !important;
  box-shadow:0 0 18px rgba(255,212,59,.82) !important;
}
.live-hand-undo-overlay{
  position:absolute !important;
  left:50% !important;
  top:-88px !important;
  transform:translateX(-50%) !important;
  z-index:15000 !important;
  width:max-content !important;
  max-width:calc(100vw - 24px) !important;
  pointer-events:none !important;
}
.live-hand-undo-button{
  pointer-events:auto !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:14px !important;
  min-width:260px !important;
  min-height:62px !important;
  padding:12px 24px !important;
  border:3px solid #fff1ad !important;
  border-radius:18px !important;
  background:linear-gradient(180deg, #f7d85d 0%, #dc9f22 100%) !important;
  color:#17202b !important;
  box-shadow:
    0 0 0 4px rgba(31,91,148,.92),
    0 14px 34px rgba(0,0,0,.48),
    0 0 26px rgba(255,215,84,.72) !important;
  font-family:Arial,Helvetica,sans-serif !important;
  font-weight:900 !important;
  cursor:pointer !important;
  animation:kingiUndoButtonPulse 1s ease-in-out infinite alternate !important;
}
.live-hand-undo-button:hover,
.live-hand-undo-button:focus-visible{
  transform:scale(1.04) !important;
  outline:4px solid rgba(255,255,255,.95) !important;
  outline-offset:3px !important;
}
.live-hand-undo-button:disabled{
  opacity:.62 !important;
  cursor:wait !important;
  animation:none !important;
}
.live-hand-undo-button__main{
  font-size:22px !important;
  line-height:1 !important;
  letter-spacing:.01em !important;
}
.live-hand-undo-button__time{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:50px !important;
  min-height:34px !important;
  padding:3px 10px !important;
  border-radius:999px !important;
  background:rgba(23,32,43,.90) !important;
  color:#fff5c6 !important;
  font-size:18px !important;
  line-height:1 !important;
}
@keyframes kingiUndoButtonPulse{
  from{filter:brightness(1);}
  to{filter:brightness(1.12);}
}
@media (max-width:700px){
  .live-hand-undo-overlay{top:-72px !important;}
  .live-hand-undo-button{
    min-width:210px !important;
    min-height:54px !important;
    padding:9px 17px !important;
    gap:10px !important;
  }
  .live-hand-undo-button__main{font-size:18px !important;}
  .live-hand-undo-button__time{min-width:42px !important;min-height:30px !important;font-size:16px !important;}
}

/* 2026-07-12: vakioitu live-pelin yläpalkki ja alapelaajan toimintopaneeli. */
.live-message-card.live-message-card--compact{
  position:relative !important;
  box-sizing:border-box !important;
  height:108px !important;
  min-height:108px !important;
  max-height:108px !important;
  padding:8px 12px !important;
  overflow:visible !important;
}
.live-message-card--compact .live-message-card__top-row{
  height:72px !important;
  min-height:72px !important;
  max-height:72px !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:7px !important;
  overflow:visible !important;
}
.live-message-card--compact .live-message-card__title-group,
.live-message-card--compact .live-message-card__turn-slot,
.live-message-card--compact .live-message-card__progress-slot{
  min-width:0 !important;
}
.live-message-card--compact .live-message-card__title-group{
  flex:0 1 auto !important;
  max-width:24% !important;
  overflow:hidden !important;
}
.live-message-card--compact .live-message-card__title{
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.live-message-card--compact .live-message-card__turn-slot{
  flex:0 1 auto !important;
  max-width:22% !important;
  overflow:hidden !important;
}
.live-message-card--compact .live-turn-banner{
  max-width:100% !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.live-message-card--compact .live-message-card__progress-slot{
  flex:1 1 auto !important;
  overflow:hidden !important;
}
.live-message-card--compact .live-status-row--inline{
  flex-wrap:nowrap !important;
  overflow:hidden !important;
  white-space:nowrap !important;
}
.live-message-card--compact .live-status-chip{
  flex:0 0 auto !important;
  max-width:260px !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.live-message-card--compact .live-message-card__tools{
  flex:0 0 auto !important;
  flex-wrap:nowrap !important;
  gap:6px !important;
  margin-left:auto !important;
}
.live-message-card--compact .live-message-card__text{
  position:absolute !important;
  left:12px !important;
  right:12px !important;
  bottom:7px !important;
  height:18px !important;
  min-height:18px !important;
  max-height:18px !important;
  margin:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  line-height:18px !important;
}
.live-message-card--compact > .live-action-panel,
.live-message-card--compact > .live-banner{
  display:none !important;
}

/* Korttitaustan valinta on pelkkä ikonipainike. Native-select avautuu ikonia painamalla. */
.live-card-back-picker{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:40px !important;
  height:40px !important;
  min-width:40px !important;
  min-height:40px !important;
  max-width:40px !important;
  max-height:40px !important;
  margin:0 !important;
  padding:2px !important;
  border-radius:11px !important;
  box-sizing:border-box !important;
  cursor:pointer !important;
  overflow:hidden !important;
}
.live-card-back-picker__icon{
  display:block !important;
  width:34px !important;
  height:34px !important;
  border-radius:9px !important;
  pointer-events:none !important;
}
.live-card-back-picker__select{
  position:absolute !important;
  inset:0 !important;
  z-index:2 !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  opacity:0 !important;
  cursor:pointer !important;
}
.live-card-back-picker:focus-within{
  outline:3px solid rgba(255,216,111,.88) !important;
  outline-offset:2px !important;
}

/* Tarjous-, valtti- ja odotuskysymykset näytetään alapelaajan paneelin yläpuolella. */
.live-player-action-overlay{
  position:absolute;
  z-index:9700;
  box-sizing:border-box;
  pointer-events:auto;
}
.live-player-action-overlay .live-action-panel{
  margin:0 !important;
  padding:12px 14px !important;
  border:2px solid rgba(255,220,119,.42) !important;
  border-radius:18px !important;
  background:linear-gradient(180deg, rgba(22,58,88,.97), rgba(9,28,47,.98)) !important;
  box-shadow:0 16px 34px rgba(0,0,0,.46), inset 0 0 0 1px rgba(255,255,255,.08) !important;
  max-height:250px !important;
  overflow:auto !important;
}
.live-player-action-overlay .live-action-panel__title{
  margin:0 0 6px !important;
  color:#fff4c7 !important;
  font-size:16px !important;
  font-weight:900 !important;
}
.live-action-panel__rights{
  margin:0 0 10px !important;
  padding:6px 9px !important;
  border-radius:10px !important;
  background:rgba(255,215,91,.14) !important;
  color:#fff4c7 !important;
  font-size:13px !important;
  font-weight:800 !important;
}
.live-player-action-overlay .live-choice-button{
  padding:9px 13px !important;
  min-height:40px !important;
}

@media (max-width:900px){
  .live-message-card.live-message-card--compact{
    height:126px !important;
    min-height:126px !important;
    max-height:126px !important;
  }
  .live-message-card--compact .live-message-card__top-row{
    height:90px !important;
    min-height:90px !important;
    max-height:90px !important;
    flex-wrap:wrap !important;
    align-content:flex-start !important;
    overflow:hidden !important;
  }
  .live-message-card--compact .live-message-card__title-group{max-width:42% !important;}
  .live-message-card--compact .live-message-card__turn-slot{max-width:48% !important;}
  .live-message-card--compact .live-message-card__progress-slot{
    order:3 !important;
    flex:1 1 48% !important;
  }
  .live-message-card--compact .live-message-card__tools{
    order:4 !important;
    margin-left:auto !important;
  }
  .live-player-action-overlay .live-action-panel{
    max-height:220px !important;
  }
}

/* 2026-07-12: live-pelin yläpalkin työkalut yhtenäisiksi pieniksi ikoneiksi */
.live-visually-hidden{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}
.live-message-card--compact .live-message-card__tools,
.live-scorebook-controls{
  height:40px !important;
  min-height:40px !important;
  max-height:40px !important;
  align-items:center !important;
  gap:6px !important;
}
.live-icon-tool,
.live-scorebook-controls .live-sound-toggle,
.live-chat-launch,
.live-news-toggle,
.live-card-back-picker,
.live-scorebook-badge,
.live-scorebook-badge--button{
  box-sizing:border-box !important;
  flex:0 0 40px !important;
  width:40px !important;
  height:40px !important;
  min-width:40px !important;
  min-height:40px !important;
  max-width:40px !important;
  max-height:40px !important;
  margin:0 !important;
}
.live-sound-toggle{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:0 !important;
  padding:0 !important;
  border-radius:11px !important;
}
.live-sound-toggle__label,
.live-sound-toggle__level{
  display:none !important;
}
.live-sound-toggle__icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:30px !important;
  height:30px !important;
  font-size:0 !important;
  line-height:0 !important;
}
.live-sound-icon{
  display:block;
  width:30px;
  height:28px;
  overflow:visible;
}
.live-sound-icon__speaker{
  fill:currentColor;
  stroke:currentColor;
  stroke-width:1.2;
  stroke-linejoin:round;
}
.live-sound-icon__wave,
.live-sound-icon__mute{
  fill:none;
  stroke:currentColor;
  stroke-width:2.25;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.live-sound-toggle--off .live-sound-icon__speaker{
  opacity:.72;
}
.live-chat-launch{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  border-radius:11px !important;
  font-size:0 !important;
}
.live-chat-launch__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:27px;
  height:27px;
}
.live-chat-launch__icon svg{
  display:block;
  width:27px;
  height:27px;
}
.live-chat-launch__icon path{
  fill:none;
  stroke:currentColor;
  stroke-width:2.4;
  stroke-linejoin:round;
}
.live-scorebook-badge,
.live-scorebook-badge--button{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  overflow:visible !important;
}
.live-scorebook-badge__sheet{
  width:31px !important;
  height:34px !important;
  border-radius:5px 6px 6px 5px !important;
  transform:rotate(5deg) !important;
  box-shadow:0 5px 10px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.85) !important;
}
.live-scorebook-badge__spiral{
  left:4px !important;
  top:3px !important;
  width:23px !important;
  height:5px !important;
  background:repeating-linear-gradient(90deg,#747d87 0 2px,transparent 2px 5px) !important;
}
.live-scorebook-badge__grid{
  inset:9px 3px 3px 3px !important;
  background-size:7px 7px !important;
}
.live-scorebook-badge__scribble--title{
  left:6px !important;
  top:11px !important;
  font-size:6px !important;
}
.live-scorebook-badge__scribble--line1{
  left:7px !important;
  top:18px !important;
  font-size:7px !important;
}
.live-scorebook-badge__scribble--line2{
  left:9px !important;
  top:24px !important;
  font-size:7px !important;
}
.live-scorebook-badge__scribble--line3{
  display:none !important;
}
.live-scorebook-badge--button:focus-visible .live-scorebook-badge__sheet,
.live-scorebook-badge--button.is-active .live-scorebook-badge__sheet{
  outline:2px solid rgba(255,218,107,.92) !important;
  outline-offset:2px !important;
}
.live-news-toggle{
  border-radius:11px !important;
  font-size:18px !important;
}
.live-card-back-picker{
  border-radius:11px !important;
}
@media (max-width:760px){
  .live-message-card--compact .live-message-card__tools,
  .live-scorebook-controls{
    gap:4px !important;
  }
}


/* 2026-07-12: kolmen pelaajan pistevihko ja fullscreen-logo. */
.live-fullscreen-brand{
  display:none;
  pointer-events:none;
}
#live-game-view.is-live-fullscreen .live-game-view__brand,
#live-game-view:fullscreen .live-game-view__brand,
#live-game-view:-webkit-full-screen .live-game-view__brand,
.live-game-view.is-live-fullscreen-fallback .live-game-view__brand{
  visibility:hidden !important;
}
#live-game-view.is-live-fullscreen .live-fullscreen-brand,
#live-game-view:fullscreen .live-fullscreen-brand,
#live-game-view:-webkit-full-screen .live-fullscreen-brand,
.live-game-view.is-live-fullscreen-fallback .live-fullscreen-brand{
  display:block !important;
  position:fixed !important;
  top:6px !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  z-index:20030 !important;
  width:min(210px, 24vw) !important;
  height:44px !important;
  overflow:hidden !important;
  opacity:.98;
  filter:drop-shadow(0 2px 5px rgba(0,0,0,.55));
}
#live-game-view.is-live-fullscreen .live-fullscreen-brand img,
#live-game-view:fullscreen .live-fullscreen-brand img,
#live-game-view:-webkit-full-screen .live-fullscreen-brand img,
.live-game-view.is-live-fullscreen-fallback .live-fullscreen-brand img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
}
.live-score-grid__row--initial_bonus th,
.live-score-grid__row--initial_bonus td{
  background:#d9d9d9 !important;
  color:#111 !important;
}

/* 2026-07-12: lyöty kortti poistetaan viuhkasta heti animaation alkaessa kaikilta pelaajilta. */
.live-card-button.is-play-source-removed,
.live-card--back.is-play-source-removed,
.live-card--face.is-play-source-removed{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}


/* 2026-07-13: Näyttävämpi sekoitus ja kortin koon jatkuva lentoanimaatio. */
.live-flying-card{
  transform-origin:center center !important;
}
@keyframes kingiLivePlayToTable{
  0%{
    opacity:1;
    transform:translate3d(0,0,0) rotate(var(--fly-start-rotate, 0deg)) scale(1,1);
  }
  18%{
    opacity:1;
    transform:translate3d(calc(var(--fly-x) * .12), calc(var(--fly-y) * .035 - 24px), 0)
      rotate(calc((var(--fly-start-rotate, 0deg) * .82) + (var(--fly-end-rotate, 0deg) * .18)))
      scale(calc(1 + ((var(--fly-end-scale-x, 1) - 1) * .035)), calc(1 + ((var(--fly-end-scale-y, 1) - 1) * .035)));
  }
  55%{
    opacity:1;
    transform:translate3d(calc(var(--fly-x) * .56), calc(var(--fly-y) * .54 - 30px), 0)
      rotate(calc((var(--fly-start-rotate, 0deg) * .42) + (var(--fly-end-rotate, 0deg) * .58)))
      scale(calc(1 + ((var(--fly-end-scale-x, 1) - 1) * .54)), calc(1 + ((var(--fly-end-scale-y, 1) - 1) * .54)));
  }
  86%{
    opacity:1;
    transform:translate3d(calc(var(--fly-x) * .93), calc(var(--fly-y) * .98 - 8px), 0)
      rotate(calc((var(--fly-start-rotate, 0deg) * .09) + (var(--fly-end-rotate, 0deg) * .91)))
      scale(calc(1 + ((var(--fly-end-scale-x, 1) - 1) * .96)), calc(1 + ((var(--fly-end-scale-y, 1) - 1) * .96)));
  }
  100%{
    opacity:1;
    transform:translate3d(var(--fly-x), var(--fly-y), 0)
      rotate(var(--fly-end-rotate, 0deg))
      scale(var(--fly-end-scale-x, 1), var(--fly-end-scale-y, 1));
  }
}

/* DOM-varatoteutuksen sekoitus liikkuu myös selvästi aiempaa laajemmin. */
.live-room-stage.is-shuffling .live-room-stage__deck .live-deck-card{
  animation-name:kingiLiveDeckShuffleWide !important;
  animation-duration:1.28s !important;
  animation-timing-function:cubic-bezier(.42,0,.2,1) !important;
}
@keyframes kingiLiveDeckShuffleWide{
  0%,100%{
    transform:translate(calc(var(--deck-offset) * 1px), calc(var(--deck-offset) * -1px)) rotate(calc(var(--deck-offset) * -.7deg));
  }
  18%{
    transform:translate(calc(var(--deck-offset) * -2px - 54px), calc(var(--deck-offset) * -1px - 24px)) rotate(-22deg);
  }
  44%{
    transform:translate(calc(var(--deck-offset) * 2px + 62px), calc(var(--deck-offset) * -1px + 18px)) rotate(25deg);
  }
  68%{
    transform:translate(calc(var(--deck-offset) * -2px - 46px), calc(var(--deck-offset) * -1px + 28px)) rotate(-18deg);
  }
  86%{
    transform:translate(calc(var(--deck-offset) * 2px + 34px), calc(var(--deck-offset) * -1px - 12px)) rotate(14deg);
  }
}

/* Jaon valmistuttua viuhkaan ilmestyvä kortti ei enää vaihda kokoa uudelleen. */
.live-seat.is-dealing .live-card--back{
  animation:kingiLiveDealtCardFadeExact .18s ease-out both !important;
}
@keyframes kingiLiveDealtCardFadeExact{
  0%{
    opacity:0;
    transform:translateX(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--dynamic-step, 18px)))
      rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--dynamic-rotation, .58deg)));
  }
  100%{
    opacity:1;
    transform:translateX(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--dynamic-step, 18px)))
      rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--dynamic-rotation, .58deg)));
  }
}

/* 2026-07-13: Android-tabletin adaptiivinen kevyt tila.
   Pienentää GPU-muistia ja poistaa turhia jatkuvia komposiittitasoja ilman,
   että pelitoiminnot tai korttien valinta muuttuvat. */
html.kingi-live-low-power .live-card-button,
html.kingi-live-low-power .live-trick-card,
html.kingi-live-low-power .live-seat,
html.kingi-live-low-power .live-card,
html.kingi-live-low-power .live-card--face,
html.kingi-live-low-power .live-card--back{
  will-change:auto !important;
}
html.kingi-live-low-power .live-analog-clock__hand--second{
  display:none !important;
  animation:none !important;
}
html.kingi-live-low-power .live-hand-undo-button,
html.kingi-live-low-power .live-turn-reminder,
html.kingi-live-low-power .live-turn-reminder__icon,
html.kingi-live-low-power .live-seat.is-turn-reminding{
  animation:none !important;
}
html.kingi-live-low-power .live-card-button.is-selected .live-card,
html.kingi-live-low-power .live-hand--self.has-expanded-hit-card .live-card-button.is-pointer-hovered .live-card{
  filter:brightness(1.06) !important;
}
html.kingi-live-low-power .live-canvas-layer{
  image-rendering:auto !important;
}

/* 2026-07-13: tekoälypelaajien asetukset, aikarajaindikaattori ja pelikohtaiset kulut */
.settings-ai-key-status{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-top:8px;
}
.settings-ai-remove-key{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border-radius:10px;
  background:rgba(132,36,36,.08);
  color:#722b2b;
  font-weight:800;
}
.settings-ai-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:16px 0;
}
.settings-ai-card{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
  padding:15px;
  border:1px solid rgba(23,70,110,.18);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(235,242,248,.88));
  box-shadow:0 10px 24px rgba(18,55,86,.10);
}
.settings-ai-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.settings-ai-card__title{
  margin:0;
  color:#173f63;
  font-size:20px;
  font-weight:950;
}
.settings-ai-card__model{
  display:block;
  margin-top:3px;
  color:#52697c;
  font-size:12px;
  overflow-wrap:anywhere;
}
.settings-ai-enabled{
  display:inline-flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
  font-weight:900;
  color:#24445f;
}
.settings-ai-timeout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 92px;
  gap:8px 12px;
  align-items:center;
}
.settings-ai-timeout label{
  margin:0;
  font-weight:850;
}
.settings-ai-timeout input{
  width:100%;
  box-sizing:border-box;
}
.settings-ai-card__pricing{
  margin-top:auto;
  padding:9px 10px;
  border-radius:11px;
  background:rgba(19,70,110,.07);
  color:#3e566a;
  font-size:12px;
  line-height:1.45;
}
.settings-ai-note{
  margin:14px 0 0;
  padding:12px 14px;
  border-radius:13px;
  border-left:5px solid #2c6f9f;
  background:rgba(44,111,159,.09);
  color:#29475d;
}
.live-ai-status{
  display:flex;
  align-items:center;
  gap:10px;
  box-sizing:border-box;
  width:100%;
  margin:0 0 9px;
  padding:10px 12px;
  border:2px solid rgba(255,255,255,.18);
  border-radius:14px;
  color:#fff;
  box-shadow:0 12px 28px rgba(0,0,0,.34);
  font-size:13px;
  line-height:1.35;
  pointer-events:none;
}
.live-ai-status--fallback{
  border-color:rgba(255,199,74,.88);
  background:linear-gradient(180deg,rgba(128,66,8,.98),rgba(83,37,4,.98));
  color:#fff4cf;
}
.live-ai-status--success{
  border-color:rgba(113,202,180,.58);
  background:linear-gradient(180deg,rgba(22,86,78,.96),rgba(10,53,51,.98));
  color:#e9fffa;
}
.live-ai-status__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 34px;
  width:34px;
  height:34px;
  border-radius:50%;
  background:rgba(255,255,255,.14);
  font-weight:950;
  font-size:15px;
}
.live-ai-status__text{
  min-width:0;
}
.live-ai-costs{
  margin:16px 0 12px;
  padding:12px;
  border:1px solid rgba(119,199,183,.25);
  border-radius:15px;
  background:rgba(10,45,42,.32);
}
.live-ai-costs h4{
  margin:0 0 5px;
  color:#e8fff8;
  font-size:16px;
}
.live-ai-costs__help{
  margin:0 0 10px;
  color:rgba(236,255,249,.76);
  font-size:12px;
}
.live-ai-costs__table code{
  color:#fff3c8;
  font-size:12px;
}
.live-ai-costs__table tfoot th{
  border-top:2px solid rgba(255,255,255,.17);
}
@media (max-width:900px){
  .settings-ai-grid{grid-template-columns:1fr;}
  .live-ai-status{font-size:12px;padding:9px 10px;}
}
@media (max-width:560px){
  .settings-ai-timeout{grid-template-columns:1fr;}
  .settings-ai-card__head{flex-direction:column;}
}
.settings-ai-toggle{
  display:inline-flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
  font-weight:900;
  color:#24445f;
}
.settings-ai-model{
  padding:8px 10px;
  border-radius:10px;
  background:rgba(19,70,110,.07);
  overflow-wrap:anywhere;
}
.settings-ai-pricing{
  margin-top:auto;
  padding:9px 10px;
  border-radius:11px;
  background:rgba(19,70,110,.07);
  color:#3e566a;
  font-size:12px;
  line-height:1.45;
}

/* 2026-07-13: avatarin vaihto pelaajan asetuksista */
.player-settings-avatar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.player-settings-avatar__image {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 14px;
  border: 2px solid #365f86;
  background: #eef3f7;
}
.player-settings-avatar__empty {
  min-width: 64px;
  color: #53616f;
  font-style: italic;
}
.player-settings-avatar__button {
  margin: 0;
}


/* 2026-07-13: Apple-kirjautumisen tarkistustyökalu ja selkeät virhekoodit */
.apple-error-code { margin-top: 10px; text-align: center; }
.settings-diagnostic-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 16px 0; }
.settings-diagnostics { margin-top: 16px; border: 1px solid #9fb4c8; border-radius: 10px; background: #f5f8fb; padding: 14px; }
.settings-diagnostics h4 { margin: 0 0 10px; color: #234866; }
.settings-diagnostic { display: grid; grid-template-columns: 30px 1fr; gap: 9px; align-items: start; padding: 10px; margin: 7px 0; border-radius: 8px; border: 1px solid #c8d4df; background: #fff; color: #17212b; }
.settings-diagnostic__status { display: inline-flex; width: 26px; height: 26px; align-items: center; justify-content: center; border-radius: 50%; font-weight: 800; }
.settings-diagnostic--pass .settings-diagnostic__status { background: #d8f1df; color: #17652b; }
.settings-diagnostic--fail .settings-diagnostic__status { background: #f8d8d8; color: #8a1d1d; }
.settings-diagnostic--warn .settings-diagnostic__status { background: #fff0bd; color: #795800; }
.settings-diagnostic--info .settings-diagnostic__status { background: #dceafb; color: #1f527f; }
.settings-ai-test-button { margin-top: 12px; width: 100%; }


/* 2026-07-13: Pelikutsun osallistujaluettelon hallinta */
.calendar-participant-management-box{
  margin:16px 0;
  padding:16px 18px;
  border:1px solid #cbd8e5;
  border-radius:16px;
  background:linear-gradient(180deg,#f8fbfe,#eef4f9);
  box-shadow:0 8px 22px rgba(31,95,147,.08);
}
.calendar-participant-management-box h3{
  margin:0 0 6px;
  color:#1f5f93;
}
.calendar-participant-management-box p{
  margin:0 0 12px;
  color:#40576c;
}
.calendar-participant-management-box > small{
  display:block;
  margin-top:10px;
  color:#607487;
  line-height:1.45;
}
.calendar-participant-add-form{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(240px,1.6fr) auto;
  gap:12px;
  align-items:end;
}
.calendar-participant-add-form label{
  color:#244f78;
  font-weight:800;
}
.calendar-participant-add-form input,
.calendar-participant-add-form select{
  box-sizing:border-box;
  width:100%;
  min-height:42px;
  margin-top:5px;
  padding:9px 10px;
  border:1px solid #9fb6ca;
  border-radius:10px;
  background:#fff;
  color:#1f3144;
  font:inherit;
}
.calendar-participant-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
}
.calendar-participant-row > div:first-child{
  min-width:0;
}
.calendar-participant-remove-form{
  flex:0 0 auto;
  margin:0;
}
.calendar-participant-remove-button{
  border:1px solid #b94b4b;
  border-radius:8px;
  padding:5px 8px;
  background:#fff5f5;
  color:#9e2f2f;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}
.calendar-participant-remove-button:hover,
.calendar-participant-remove-button:focus{
  background:#b94b4b;
  color:#fff;
  outline:none;
}
@media (max-width:760px){
  .calendar-participant-add-form{
    grid-template-columns:1fr;
  }
  .calendar-participant-add-form .calendar-create-game-button{
    width:100%;
    text-align:center;
  }
}


/* 2026-07-13: Yhtenäinen sininen dialogi- ja pelaaja-asetustyyli */
.error-note{
  width:min(100%,560px);
  margin:0 auto 16px;
}
.error-note-panel{
  overflow:hidden;
  border:1px solid #c8d7e7;
  border-radius:18px;
  background:#fff;
  box-shadow:0 18px 42px rgba(24,45,70,.18);
}
.error-note-title-row,
.error-note-title-row > td,
.notice .error-note-title-row,
[role="alertdialog"] .dialog-title,
[role="dialog"] .dialog-title{
  background:#2f6fa3 !important;
  background-image:none !important;
  color:#fff !important;
  text-shadow:none !important;
}
.error-note-title-row{
  padding:13px 18px;
}
.error-note-title-row h2{
  margin:0 !important;
  color:#fff !important;
  font-size:18px;
  text-shadow:none !important;
}
.error-note-message{
  padding:18px 20px;
  color:#24384b;
  background:#fff;
  font-weight:700;
  line-height:1.5;
}
.error-note-table{display:none !important;}

.players-edit-form{
  width:min(100%,820px);
  margin:18px auto 24px;
}
.players-edit-card{
  overflow:hidden;
  border:1px solid #cbd9e7;
  border-radius:20px;
  background:#fff;
  box-shadow:0 18px 42px rgba(24,45,70,.15);
}
.players-edit-card__header{
  padding:18px 22px;
  background:#2f6fa3;
  color:#fff;
}
.players-edit-card__header h2{
  margin:3px 0 0;
  color:#fff;
  font-size:24px;
  text-shadow:none;
}
.players-edit-card__kicker{
  display:block;
  color:#dcecff;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.players-edit-card__body{
  display:grid;
  gap:0;
}
.players-edit-field{
  display:grid;
  grid-template-columns:minmax(150px,210px) minmax(0,1fr);
  align-items:start;
  border-bottom:1px solid #e2eaf2;
  background:#fff;
}
.players-edit-field > label,
.players-edit-label{
  min-height:52px;
  padding:16px 18px;
  box-sizing:border-box;
  color:#274b6c;
  background:#eef5fb;
  font-weight:800;
}
.players-edit-control{
  min-height:52px;
  padding:11px 16px;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:6px;
}
.players-edit-control input[type="text"],
.players-edit-control input[type="email"],
.players-edit-control select{
  width:min(100%,480px);
  min-height:42px;
}
.players-edit-control small{
  color:#64768a;
  line-height:1.4;
}
.players-edit-readonly{
  display:inline-block;
  color:#2f4358;
}
.players-edit-check{
  display:flex !important;
  align-items:flex-start;
  gap:9px;
  color:#2f4358 !important;
  background:transparent !important;
  padding:0 !important;
  min-height:0 !important;
  font-weight:600 !important;
}
.players-edit-check input{margin-top:3px;}
.players-edit-card__actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
  padding:15px 18px;
  background:#f3f7fb;
}
.player-settings-avatar{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.player-settings-avatar__image{
  width:72px;
  height:72px;
  object-fit:cover;
  border-radius:16px;
  border:3px solid #dce8f3;
  box-shadow:0 6px 16px rgba(30,60,90,.15);
}
.player-settings-avatar__empty{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:72px;
  height:72px;
  border-radius:16px;
  background:#e8eef5;
  color:#637487;
  font-size:12px;
  font-weight:800;
}
@media (max-width:680px){
  .players-edit-field{grid-template-columns:1fr;}
  .players-edit-field > label,.players-edit-label{min-height:0;padding:11px 15px;border-bottom:1px solid #dbe6f0;}
  .players-edit-control{padding:13px 15px;}
  .players-edit-card__header h2{font-size:21px;}
}

/* 2026-07-14: Pelikierrostilastojen järjestetty pylväsdiagrammitaulukko */
.stats-rounds-card{
  width:min(100%,1540px);
  padding:20px clamp(12px,2vw,24px) 26px;
  background:
    radial-gradient(circle at 95% 0%,rgba(79,139,190,.12),transparent 28%),
    linear-gradient(180deg,#f9fcff 0%,#eef5fb 100%);
}
.stats-rounds-summary{
  max-width:820px;
  margin:0 auto 18px;
  padding:11px 16px;
  border:1px solid #d4e1ed;
  border-radius:12px;
  background:#ffffff;
  box-shadow:0 5px 16px rgba(25,48,75,.06);
}
.stats-rounds-section{
  margin-top:20px;
  overflow:hidden;
  border:1px solid #cfdeeb;
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 28px rgba(25,48,75,.09);
}
.stats-rounds-section__heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  padding:17px 20px;
  background:linear-gradient(135deg,#315f88 0%,#1f4f79 62%,#183f62 100%);
  color:#fff;
}
.stats-rounds-section__heading h3{
  margin:2px 0 0;
  color:#fff !important;
  font-size:clamp(19px,2vw,24px);
  line-height:1.15;
}
.stats-rounds-section__heading p{
  max-width:620px;
  margin:0;
  color:#dcecff;
  font-size:13px;
  line-height:1.45;
  text-align:right;
}
.stats-rounds-section__eyebrow{
  display:block;
  color:#f2c46b;
  font-size:11px;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.stats-rounds-section .stats-rounds-table-wrap{
  border:0;
  border-radius:0;
}
.stats-rounds-section--averages .stats-rounds-table thead th{
  background:#dce8f3 !important;
}

.stats-distribution-table-wrap{
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  background:#edf4fa;
  scrollbar-color:#6d8fab #dbe6f0;
  scrollbar-width:thin;
}
.stats-distribution-table{
  width:max-content;
  min-width:100%;
  border-collapse:separate;
  border-spacing:0;
  table-layout:auto;
}
.stats-distribution-table thead th{
  position:sticky;
  top:0;
  z-index:5;
  min-width:300px;
  padding:13px 14px;
  border-right:1px solid #c4d5e4;
  border-bottom:1px solid #b9cddd;
  background:linear-gradient(180deg,#eaf2f8,#d9e7f2);
  color:#173c5a;
  text-align:center;
  box-shadow:0 3px 8px rgba(31,79,121,.08);
}
.stats-distribution-table thead th:first-child{
  left:0;
  z-index:7;
  min-width:230px;
  width:230px;
  text-align:left;
  background:linear-gradient(180deg,#315f88,#245277);
  color:#fff;
}
.stats-distribution-table tbody th{
  position:sticky;
  left:0;
  z-index:3;
  width:230px;
  min-width:230px;
  max-width:230px;
  padding:17px 16px;
  border-right:1px solid #bfcfdd;
  border-bottom:1px solid #d5e1ec;
  background:linear-gradient(145deg,#f8fbfe,#e9f1f8);
  color:#173c5a;
  text-align:left;
  vertical-align:middle;
  box-shadow:5px 0 12px rgba(31,79,121,.06);
}
.stats-distribution-table tbody td{
  min-width:300px;
  max-width:390px;
  padding:12px;
  border-right:1px solid #d5e1ec;
  border-bottom:1px solid #d5e1ec;
  background:#fff;
  vertical-align:top;
}
.stats-distribution-table tbody tr:nth-child(even) td{
  background:#f7fbfe;
}
.stats-distribution-table tbody tr:hover td{
  background:#fffaf0;
}
.stats-distribution-table tbody tr:hover th{
  background:linear-gradient(145deg,#fff8e8,#eef4fa);
}
.stats-distribution-table tbody tr:last-child th,
.stats-distribution-table tbody tr:last-child td{
  border-bottom:0;
}
.stats-distribution-table thead th:last-child,
.stats-distribution-table tbody td:last-child{
  border-right:0;
}
.stats-distribution-table__round-head{
  font-size:13px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.stats-distribution-row-title{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.stats-distribution-row-title__name{
  color:#173c5a;
  font-size:16px;
  font-weight:900;
  line-height:1.22;
}
.stats-distribution-row-title__description{
  color:#60778c;
  font-size:11px;
  font-weight:500;
  line-height:1.38;
}
.stats-rounds-player-head--chart{
  align-items:center;
}
.stats-rounds-player-head--chart .stats-rounds-player-head__name{
  color:#173c5a;
  font-size:15px;
  font-weight:900;
}

.stats-mini-chart{
  min-width:0;
  padding:10px 10px 8px;
  border:1px solid #dce7f0;
  border-radius:13px;
  background:linear-gradient(180deg,#fff,#f7fafc);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85);
}
.stats-mini-chart--table-cell{
  border-color:#d8e4ee;
  box-shadow:0 5px 13px rgba(31,79,121,.06);
}
.stats-mini-chart h4{
  margin:0 0 10px;
  color:#294a68;
  font-size:14px;
}
.stats-mini-chart__bars{
  min-height:166px;
  display:flex;
  align-items:flex-end;
  gap:6px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:8px 4px 4px;
  border-bottom:2px solid #b8cad9;
  scrollbar-width:thin;
  scrollbar-color:#8aa7bf #edf3f8;
}
.stats-mini-chart__column{
  flex:1 0 46px;
  min-width:46px;
  max-width:72px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  min-height:154px;
  cursor:help;
}
.stats-mini-chart__value{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:24px;
  min-height:20px;
  padding:1px 5px;
  border-radius:10px;
  background:#e7f0f8;
  color:#193e5d;
  font-size:11px;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}
.stats-mini-chart__bar{
  position:relative;
  display:block;
  width:min(100%,34px);
  min-height:10px;
  overflow:hidden;
  border:1px solid #2a648f;
  border-radius:8px 8px 3px 3px;
  background:#d8e8f4;
  box-shadow:0 3px 7px rgba(31,79,121,.18);
}
.stats-mini-chart__bar-fill{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,#6da4cf 0%,#367baa 48%,#245f8c 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
}
.stats-mini-chart__column:hover .stats-mini-chart__bar{
  border-color:#c58c22;
  box-shadow:0 0 0 3px rgba(242,196,107,.28),0 4px 10px rgba(31,79,121,.2);
}
.stats-mini-chart__column:hover .stats-mini-chart__value{
  background:#f7dfac;
  color:#5f430d;
}
.stats-mini-chart__label{
  width:100%;
  min-height:38px;
  color:#4d6579;
  font-size:9px;
  font-weight:700;
  line-height:1.16;
  text-align:center;
  overflow-wrap:anywhere;
  hyphens:auto;
}
.stats-mini-chart--empty{
  min-height:166px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-style:dashed;
  background:#f8fafc;
}
.stats-mini-chart__empty{
  color:#7a8d9e;
  font-size:12px;
  font-weight:700;
  text-align:center;
}

@media (max-width:900px){
  .stats-rounds-section__heading{
    align-items:flex-start;
    flex-direction:column;
  }
  .stats-rounds-section__heading p{text-align:left;}
  .stats-distribution-table thead th,
  .stats-distribution-table tbody td{
    min-width:278px;
  }
  .stats-distribution-table thead th:first-child,
  .stats-distribution-table tbody th{
    width:190px;
    min-width:190px;
    max-width:190px;
  }
}
@media (max-width:620px){
  .stats-rounds-card{padding:12px 8px 18px;}
  .stats-rounds-section{border-radius:14px;}
  .stats-rounds-section__heading{padding:14px;}
  .stats-distribution-table thead th,
  .stats-distribution-table tbody td{
    min-width:252px;
  }
  .stats-distribution-table thead th:first-child,
  .stats-distribution-table tbody th{
    position:static;
    width:150px;
    min-width:150px;
    max-width:150px;
  }
  .stats-mini-chart__column{
    flex-basis:42px;
    min-width:42px;
  }
  .stats-mini-chart__label{font-size:8.5px;}
}

/* Keskiarvotaulukko säilyy luettavana myös kapealla näytöllä. */
.stats-rounds-section--averages .stats-rounds-table-wrap{
  overflow-x:auto;
}
.stats-rounds-section--averages .stats-rounds-table--compare{
  min-width:620px;
}

/* 2026-07-15: Pelaajaeditori pääsivun tyyliin ja oma valokuvaeditori */
.players-edit-hero{
  margin-top:18px;
  min-height:178px;
}
.players-edit-hero__image{
  display:grid;
  place-items:center;
  min-height:178px;
  background:linear-gradient(145deg,#183f62,#2f6fa3);
}
.players-edit-hero__image img{
  width:100%;
  height:100%;
  min-height:178px;
  object-fit:cover;
}
.players-edit-hero__placeholder{
  display:grid;
  place-items:center;
  width:112px;
  height:112px;
  border-radius:28px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.24);
  color:#fff;
  font-size:58px;
  box-shadow:0 14px 32px rgba(0,0,0,.20);
}
.players-edit-hero__kicker{
  color:#2f6fa3;
  margin-bottom:5px;
}
.players-edit-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}
.players-edit-form{
  width:100%;
  max-width:1120px;
  margin:0 auto 28px;
}
.players-edit-card{
  border-radius:18px;
  box-shadow:var(--shadow);
}
.players-edit-card__header{
  background:linear-gradient(135deg,#315f88 0%,#1f4f79 62%,#183f62 100%);
  padding:17px 20px;
}
.players-edit-card__body{
  background:#fff;
}
.players-edit-field:nth-child(even){
  background:#fbfdff;
}
.players-edit-field:nth-child(even) .players-edit-control{
  background:#fbfdff;
}
.players-edit-field--avatar .players-edit-control{
  padding-top:15px;
  padding-bottom:15px;
}
.player-settings-avatar__actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:9px;
  min-width:0;
}
.player-settings-avatar__actions small{
  flex:1 0 100%;
  max-width:650px;
}
.player-settings-photo-editor__button{
  color:#fff !important;
  border-color:#225778 !important;
  background:linear-gradient(180deg,#2f7da8,#225d82) !important;
  box-shadow:0 6px 15px rgba(34,93,130,.18);
}

.photo-editor-hero{
  margin-top:18px;
  min-height:190px;
}
.photo-editor-hero__image{
  display:grid;
  place-items:center;
  min-height:190px;
  background:linear-gradient(145deg,#173e61,#2f6fa3);
}
.photo-editor-hero__image img{
  width:100%;
  height:100%;
  min-height:190px;
  object-fit:cover;
}
.photo-editor-hero__placeholder{
  display:grid;
  place-items:center;
  width:120px;
  height:120px;
  border-radius:30px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.26);
  color:#fff;
  font-size:62px;
  box-shadow:0 16px 34px rgba(0,0,0,.22);
}
.photo-editor-kicker{
  display:block;
  margin-bottom:5px;
  color:#2f6fa3;
  font-size:12px;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.photo-editor-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:14px;
}
.photo-editor-status{
  margin:0 auto 16px;
  padding:13px 16px;
  border-radius:13px;
  border:1px solid #b8cadb;
  background:#fff;
  box-shadow:0 8px 20px rgba(24,45,70,.08);
  font-weight:800;
}
.photo-editor-status--success{border-color:#9bc9aa;background:#edf9f1;color:#24633a;}
.photo-editor-status--error{border-color:#dda8a8;background:#fff1f1;color:#8b2e2e;}
.photo-editor-layout{
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(290px,.75fr);
  gap:18px;
  align-items:start;
  margin:0 auto 18px;
}
.photo-editor-card,
.photo-editor-ai-card,
.photo-editor-history-card{
  overflow:hidden;
  border:1px solid #cbd9e7;
  border-radius:18px;
  background:#fff;
  box-shadow:var(--shadow);
}
.photo-editor-card__header,
.photo-editor-ai-card__header,
.photo-editor-history-card__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:16px 19px;
  background:linear-gradient(135deg,#315f88 0%,#1f4f79 62%,#183f62 100%);
  color:#fff;
}
.photo-editor-card__header span,
.photo-editor-ai-card__header .photo-editor-kicker,
.photo-editor-history-card__header .photo-editor-kicker{
  color:#dcecff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.photo-editor-card__header h2,
.photo-editor-ai-card__header h2,
.photo-editor-history-card__header h2{
  margin:3px 0 0;
  color:#fff;
  font-size:21px;
  text-shadow:none;
}
.photo-editor-badge{
  flex:0 0 auto;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.photo-editor-card__body{
  padding:18px;
}
.photo-editor-stage{
  position:relative;
  width:min(100%,700px);
  margin:0 auto;
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:18px;
  border:1px solid #b7c9da;
  background:#e8eef5;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),0 12px 28px rgba(20,46,72,.12);
  cursor:grab;
  touch-action:none;
}
.photo-editor-stage.is-dragging{cursor:grabbing;}
.photo-editor-stage canvas{
  display:block;
  width:100%;
  height:100%;
}
.photo-editor-crop-guide{
  position:absolute;
  inset:15px;
  border:2px dashed rgba(255,255,255,.78);
  border-radius:14px;
  box-shadow:0 0 0 999px rgba(9,24,40,.08),inset 0 0 0 1px rgba(20,45,70,.22);
  pointer-events:none;
}
.photo-editor-crop-guide::before,
.photo-editor-crop-guide::after{
  content:"";
  position:absolute;
  background:rgba(255,255,255,.42);
}
.photo-editor-crop-guide::before{left:33.333%;right:33.333%;top:0;bottom:0;border-left:1px solid rgba(255,255,255,.42);border-right:1px solid rgba(255,255,255,.42);background:transparent;}
.photo-editor-crop-guide::after{top:33.333%;bottom:33.333%;left:0;right:0;border-top:1px solid rgba(255,255,255,.42);border-bottom:1px solid rgba(255,255,255,.42);background:transparent;}
.photo-editor-empty{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:20px;
  text-align:center;
  color:#53687b;
  pointer-events:none;
}
.photo-editor-empty[hidden]{display:none;}
.photo-editor-empty strong{font-size:20px;color:#2b506f;}
.photo-editor-stage-help{
  margin:12px auto 0;
  max-width:700px;
  color:#5e7184;
  font-size:12px;
  line-height:1.45;
  text-align:center;
}
.photo-editor-file-row{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top:15px;
}
.photo-editor-file-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 14px;
  border:1px solid #215a31;
  border-radius:999px;
  background:linear-gradient(180deg,#2f7e45,#26683a);
  color:#fff;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 4px 10px rgba(38,104,58,.18);
}
.photo-editor-file-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.photo-editor-secondary{
  color:#254e76 !important;
  border-color:#c5d5e4 !important;
  background:#f7fbff !important;
  box-shadow:none !important;
}
.photo-editor-controls{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.photo-editor-button-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.photo-editor-button-grid button{
  width:100%;
  color:#254e76;
  border:1px solid #c5d5e4;
  background:linear-gradient(180deg,#fff,#edf5fb);
  box-shadow:none;
}
.photo-editor-slider{
  display:grid;
  gap:8px;
  color:#294c69;
  font-weight:800;
}
.photo-editor-slider > span{
  display:flex;
  justify-content:space-between;
  gap:10px;
}
.photo-editor-slider output{color:#2f6fa3;}
.photo-editor-slider input[type=range]{width:100%;accent-color:#2f6fa3;}
.photo-editor-save-form{margin:4px 0 0;}
.photo-editor-save-button{width:100%;min-height:44px;}
.photo-editor-save-note{
  padding:10px 12px;
  border-radius:11px;
  background:#f0f5fa;
  color:#5e7184;
  font-size:12px;
  line-height:1.45;
}
.photo-editor-ai-card,
.photo-editor-history-card{margin-bottom:18px;}
.photo-editor-ai-total{
  flex:0 0 auto;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:12px;
  background:rgba(255,255,255,.12);
  color:#edf6ff;
  font-size:12px;
}
.photo-editor-ai-total strong{font-size:16px;color:#fff;}
.photo-editor-ai-card__body{padding:18px;}
.photo-editor-ai-warning{
  margin-bottom:14px;
  padding:11px 13px;
  border:1px solid #e0c36f;
  border-radius:12px;
  background:#fff8dc;
  color:#745815;
  font-weight:800;
}
.photo-editor-ai-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:15px;
}
.photo-editor-ai-tool{
  display:flex;
  flex-direction:column;
  gap:11px;
  min-width:0;
  padding:17px;
  border:1px solid #d1deea;
  border-radius:15px;
  background:linear-gradient(180deg,#fbfdff,#f2f7fb);
}
.photo-editor-ai-tool h3{margin:0;color:#244f73;font-size:18px;}
.photo-editor-ai-tool p{margin:0;color:#5e7184;line-height:1.45;}
.photo-editor-ai-tool label{display:grid;gap:6px;color:#294c69;font-weight:800;}
.photo-editor-ai-tool textarea{min-height:96px;resize:vertical;}
.photo-editor-ai-tool select{width:100%;min-height:40px;}
.photo-editor-ai-tool button{margin-top:auto;min-height:42px;}
.photo-editor-ai-tool button[disabled]{opacity:.52;cursor:not-allowed;filter:none;}
.photo-editor-ai-result{
  min-height:0;
  margin-top:14px;
  padding:0;
  border:0;
  border-radius:12px;
  color:#435a6f;
  font-weight:800;
}
.photo-editor-ai-result:not(:empty){padding:12px 14px;border:1px solid #c8d7e5;background:#f5f9fc;}
.photo-editor-ai-result--success{border-color:#9fcfaf !important;background:#edf9f1 !important;color:#24633a !important;}
.photo-editor-ai-result--error{border-color:#dda8a8 !important;background:#fff1f1 !important;color:#8b2e2e !important;}
.photo-editor-ai-result--loading{border-color:#9dbbd5 !important;background:#eef6fc !important;color:#245a83 !important;}
.photo-editor-ai-cost-note{margin:12px 0 0;color:#66798b;font-size:12px;line-height:1.45;}
.photo-editor-history-wrap{overflow-x:auto;padding:0;}
.photo-editor-history-table{width:100%;margin:0;border:0;border-radius:0;box-shadow:none;}
.photo-editor-history-table th{
  background:#e5eef6 !important;
  background-image:none !important;
  color:#294c69 !important;
  text-shadow:none !important;
}
.photo-editor-history-table td{vertical-align:top;background:#fff !important;}
.photo-editor-history-table tbody tr:nth-child(even) td{background:#f7fafc !important;}
.photo-editor-history-table code{font-size:11px;overflow-wrap:anywhere;}
.photo-editor-history-status{display:inline-block;max-width:320px;font-size:12px;line-height:1.35;}
.photo-editor-history-status--success{color:#24633a;font-weight:900;}
.photo-editor-history-status--error{color:#8b2e2e;font-weight:800;}
.photo-editor-history-empty{padding:20px;color:#64778a;text-align:center;}
@media (max-width:900px){
  .photo-editor-layout{grid-template-columns:1fr;}
  .photo-editor-ai-grid{grid-template-columns:1fr;}
  .photo-editor-card--controls{order:2;}
}
@media (max-width:680px){
  .players-edit-hero__image,.photo-editor-hero__image{min-height:145px;}
  .photo-editor-card__header,.photo-editor-ai-card__header,.photo-editor-history-card__header{align-items:flex-start;flex-direction:column;}
  .photo-editor-ai-total{width:100%;box-sizing:border-box;}
  .photo-editor-card__body,.photo-editor-ai-card__body{padding:13px;}
  .photo-editor-crop-guide{inset:9px;}
  .player-settings-avatar{align-items:flex-start;}
  .player-settings-avatar__actions{flex:1 1 220px;}
}

/* 2026-07-15: puhelimelle optimoitu livepelin full screen.
   Alapelaajan käsi siirretään skaalaamattomaan kosketustelakkaan, jotta
   kortit pysyvät iPhonessa ja pienissä Android-puhelimissa riittävän suurina. */
.live-phone-game-dock{
  display:none;
}
#live-game-view.is-live-phone-fullscreen,
.live-game-view.is-live-fullscreen-fallback.is-live-phone-fullscreen{
  width:100vw !important;
  height:var(--live-phone-viewport-height, calc(var(--kingi-live-vh, 1vh) * 100)) !important;
  min-height:0 !important;
  padding:0 !important;
  background:#06111d !important;
  overscroll-behavior:none !important;
  touch-action:manipulation;
}
#live-game-view.is-live-phone-fullscreen .live-game-view__topbar{
  position:relative !important;
  z-index:20100 !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-end !important;
  width:100% !important;
  min-height:48px !important;
  height:48px !important;
  max-height:48px !important;
  margin:0 !important;
  padding:4px max(6px, env(safe-area-inset-right)) 4px max(6px, env(safe-area-inset-left)) !important;
  box-sizing:border-box !important;
  background:linear-gradient(180deg, rgba(8,27,46,.98), rgba(5,18,31,.96)) !important;
  border-bottom:1px solid rgba(255,226,138,.24) !important;
  overflow:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-view__actions{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:5px !important;
  width:auto !important;
  margin:0 !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-view__meta{
  display:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-view__action-row{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:5px !important;
  width:auto !important;
  margin:0 !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-view__action-row .rank-analyzer-btn{
  min-width:0 !important;
  min-height:38px !important;
  height:38px !important;
  margin:0 !important;
  padding:7px 10px !important;
  border-radius:11px !important;
  font-size:12px !important;
  line-height:1 !important;
  white-space:nowrap !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-app-frame{
  height:calc(var(--live-phone-viewport-height, 100vh) - 48px) !important;
  min-height:0 !important;
  margin:0 !important;
  overflow:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-shell{
  height:100% !important;
  min-height:0 !important;
  gap:3px !important;
  overflow:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-shell__message{
  width:100% !important;
  margin:0 !important;
  padding:0 3px !important;
  box-sizing:border-box !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card.live-message-card--compact{
  position:relative !important;
  height:72px !important;
  min-height:72px !important;
  max-height:72px !important;
  padding:4px 6px !important;
  border-radius:0 0 13px 13px !important;
  box-shadow:0 7px 16px rgba(0,0,0,.24) !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card--compact .live-message-card__top-row{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:4px !important;
  height:42px !important;
  min-height:42px !important;
  max-height:42px !important;
  overflow:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card__title-group{
  flex:1 1 auto !important;
  min-width:0 !important;
  max-width:none !important;
  overflow:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card__title{
  max-width:100% !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  font-size:14px !important;
}
#live-game-view.is-live-phone-fullscreen .live-help-badge{
  width:24px !important;
  height:24px !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card__turn-slot{
  flex:0 1 auto !important;
  min-width:0 !important;
  max-width:38% !important;
}
#live-game-view.is-live-phone-fullscreen .live-turn-banner{
  max-width:100% !important;
  padding:5px 7px !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  font-size:11px !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card__progress-slot{
  display:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card__tools{
  order:initial !important;
  flex:0 0 auto !important;
  height:36px !important;
  min-height:36px !important;
  max-height:36px !important;
  gap:3px !important;
  margin-left:auto !important;
}
#live-game-view.is-live-phone-fullscreen .live-icon-tool,
#live-game-view.is-live-phone-fullscreen .live-scorebook-controls .live-sound-toggle,
#live-game-view.is-live-phone-fullscreen .live-chat-launch,
#live-game-view.is-live-phone-fullscreen .live-news-toggle,
#live-game-view.is-live-phone-fullscreen .live-card-back-picker{
  width:36px !important;
  min-width:36px !important;
  max-width:36px !important;
  height:36px !important;
  min-height:36px !important;
  max-height:36px !important;
}
#live-game-view.is-live-phone-fullscreen .live-card-back-picker__icon{
  width:30px !important;
  height:30px !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card--compact .live-message-card__text{
  left:7px !important;
  right:7px !important;
  bottom:3px !important;
  height:20px !important;
  min-height:20px !important;
  max-height:20px !important;
  line-height:20px !important;
  font-size:11px !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-shell__stage,
#live-game-view.is-live-phone-fullscreen .live-room-viewport{
  height:100% !important;
  min-height:0 !important;
  overflow:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-room-viewport{
  position:relative !important;
  background:#071711 !important;
}
#live-game-view.is-live-phone-fullscreen .live-room-scale{
  max-width:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-game-dock{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  z-index:19000 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-end !important;
  width:100% !important;
  height:var(--live-phone-dock-reserve, 220px) !important;
  min-height:var(--live-phone-dock-reserve, 220px) !important;
  max-height:var(--live-phone-dock-reserve, 220px) !important;
  padding:4px max(7px, env(safe-area-inset-right)) max(5px, env(safe-area-inset-bottom)) max(7px, env(safe-area-inset-left)) !important;
  box-sizing:border-box !important;
  overflow:visible !important;
  pointer-events:none !important;
  background:
    linear-gradient(180deg, rgba(6,24,17,0) 0%, rgba(5,21,16,.68) 18%, rgba(4,17,14,.96) 54%, rgba(3,12,20,.99) 100%) !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-action-slot,
#live-game-view.is-live-phone-fullscreen .live-phone-meta-slot,
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  pointer-events:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-action-slot{
  z-index:3 !important;
  flex:0 1 auto !important;
  max-height:94px !important;
  margin-bottom:3px !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-meta-slot{
  z-index:4 !important;
  flex:0 0 34px !important;
  height:34px !important;
  min-height:34px !important;
  margin-bottom:1px !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot{
  z-index:5 !important;
  flex:1 1 auto !important;
  align-items:flex-end !important;
  min-height:96px !important;
  overflow:visible !important;
  touch-action:manipulation !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-meta-slot > .live-seat__meta,
#live-game-view.is-live-phone-fullscreen .live-phone-meta-slot > .live-layout-detached-proxy{
  position:relative !important;
  inset:auto !important;
  transform:none !important;
  z-index:1 !important;
  display:flex !important;
  flex:0 1 auto !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  max-width:calc(100vw - 14px) !important;
  height:32px !important;
  min-height:32px !important;
  max-height:32px !important;
  margin:0 !important;
  padding:3px 7px !important;
  gap:4px !important;
  border-radius:12px !important;
  overflow:hidden !important;
  pointer-events:auto !important;
  background:linear-gradient(180deg, rgba(19,54,78,.98), rgba(8,31,49,.98)) !important;
  border:1px solid rgba(255,226,138,.42) !important;
  box-shadow:0 6px 15px rgba(0,0,0,.38) !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-meta-slot .live-seat__name{
  flex:0 1 auto !important;
  min-width:0 !important;
  max-width:32vw !important;
  margin:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  color:#fff0b9 !important;
  font-size:11px !important;
  line-height:1 !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-meta-slot .live-seat__line{
  display:inline-flex !important;
  flex:0 0 auto !important;
  align-items:center !important;
  height:22px !important;
  margin:0 !important;
  padding:2px 5px !important;
  border-radius:8px !important;
  white-space:nowrap !important;
  font-size:9px !important;
  line-height:1 !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-meta-slot .live-card-sort-toggle{
  flex:0 0 auto !important;
  width:28px !important;
  height:28px !important;
  min-width:28px !important;
  min-height:28px !important;
  margin:0 !important;
  transform:none !important;
  pointer-events:auto !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-meta-slot .live-turn-reminder{
  position:static !important;
  flex:0 1 auto !important;
  min-width:0 !important;
  max-width:120px !important;
  margin:0 !important;
  padding:2px 5px !important;
  transform:none !important;
  overflow:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-meta-slot .live-turn-reminder__body{
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  font-size:9px !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-action-slot > .live-player-action-overlay{
  position:relative !important;
  inset:auto !important;
  z-index:1 !important;
  width:min(100%, 620px) !important;
  max-width:100% !important;
  max-height:94px !important;
  margin:0 !important;
  overflow:visible !important;
  transform:none !important;
  pointer-events:auto !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-action-slot .live-action-panel{
  max-height:94px !important;
  padding:7px 9px !important;
  border-radius:12px !important;
  overflow:auto !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-action-slot .live-action-panel__title{
  margin-bottom:3px !important;
  font-size:12px !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-action-slot .live-action-panel__hint,
#live-game-view.is-live-phone-fullscreen .live-phone-action-slot .live-action-panel__rights{
  margin:0 0 4px !important;
  padding:3px 5px !important;
  font-size:10px !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-action-slot .live-choice-grid{
  gap:4px !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-action-slot .live-choice-button{
  min-height:34px !important;
  padding:6px 9px !important;
  font-size:11px !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot > .live-hand{
  position:relative !important;
  inset:auto !important;
  z-index:2 !important;
  display:flex !important;
  flex:0 0 auto !important;
  flex-direction:row !important;
  align-items:flex-end !important;
  justify-content:flex-start !important;
  width:var(--live-phone-hand-width, calc(100vw - 18px)) !important;
  min-width:0 !important;
  max-width:calc(100vw - 12px) !important;
  height:calc(var(--live-phone-card-height, 88px) + 42px) !important;
  min-height:calc(var(--live-phone-card-height, 88px) + 42px) !important;
  max-height:none !important;
  margin:0 auto !important;
  padding:36px 0 2px !important;
  gap:0 !important;
  overflow:visible !important;
  transform:none !important;
  pointer-events:auto !important;
  touch-action:manipulation !important;
  -webkit-user-select:none !important;
  user-select:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-card-button{
  position:relative !important;
  display:flex !important;
  flex:0 0 var(--live-phone-card-width, 62px) !important;
  align-items:flex-end !important;
  justify-content:center !important;
  width:var(--live-phone-card-width, 62px) !important;
  min-width:var(--live-phone-card-width, 62px) !important;
  max-width:var(--live-phone-card-width, 62px) !important;
  height:calc(var(--live-phone-card-height, 88px) + 18px) !important;
  min-height:calc(var(--live-phone-card-height, 88px) + 18px) !important;
  margin:0 calc(var(--live-phone-card-step, 27px) - var(--live-phone-card-width, 62px)) 0 0 !important;
  padding:0 0 14px !important;
  box-sizing:border-box !important;
  transform:none !important;
  transform-origin:center bottom !important;
  pointer-events:auto !important;
  touch-action:manipulation !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-card-button:last-child{
  margin-right:0 !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-card-button .live-card,
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-card-button .live-card--face{
  display:block !important;
  width:var(--live-phone-card-width, 62px) !important;
  min-width:var(--live-phone-card-width, 62px) !important;
  max-width:var(--live-phone-card-width, 62px) !important;
  height:var(--live-phone-card-height, 88px) !important;
  min-height:var(--live-phone-card-height, 88px) !important;
  max-height:var(--live-phone-card-height, 88px) !important;
  object-fit:cover !important;
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--layout-fan-rotation, .58deg))) !important;
  transform-origin:center bottom !important;
  border-radius:8px !important;
  pointer-events:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-hand--backs{
  display:flex !important;
  align-items:flex-end !important;
  justify-content:flex-start !important;
  width:var(--live-phone-hand-width, calc(100vw - 18px)) !important;
  height:calc(var(--live-phone-card-height, 88px) + 20px) !important;
  min-height:calc(var(--live-phone-card-height, 88px) + 20px) !important;
  padding-top:16px !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-hand--backs > .live-card--back{
  position:relative !important;
  left:auto !important;
  top:auto !important;
  display:block !important;
  flex:0 0 var(--live-phone-card-width, 62px) !important;
  width:var(--live-phone-card-width, 62px) !important;
  min-width:var(--live-phone-card-width, 62px) !important;
  max-width:var(--live-phone-card-width, 62px) !important;
  height:var(--live-phone-card-height, 88px) !important;
  min-height:var(--live-phone-card-height, 88px) !important;
  max-height:var(--live-phone-card-height, 88px) !important;
  margin:0 0 0 calc(var(--live-phone-card-step, 27px) - var(--live-phone-card-width, 62px)) !important;
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * var(--layout-fan-rotation, .58deg))) !important;
  transform-origin:center bottom !important;
  border-radius:8px !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-hand--backs > .live-card--back:first-child{
  margin-left:0 !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-card-button.is-selected,
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-hand--self.has-expanded-hit-card .live-card-button.is-selected.is-pointer-hovered{
  z-index:20000 !important;
  transform:translateY(-30px) scale(1.08) !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-card-button.is-selected .live-card{
  outline-width:4px !important;
  outline-offset:2px !important;
  box-shadow:0 0 0 3px rgba(35,111,181,.98), 0 0 19px 8px rgba(255,212,59,.76), 0 13px 24px rgba(0,0,0,.55) !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-card-button.is-pointer-hovered:not(.is-selected){
  z-index:19000 !important;
  transform:translateY(-12px) !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-card-button.is-before-pointer,
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-card-button.is-after-pointer{
  transform:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-hand-undo-overlay{
  top:-12px !important;
  max-width:calc(100vw - 16px) !important;
}
#live-game-view.is-live-phone-fullscreen .live-hand-undo-button{
  min-width:210px !important;
  min-height:50px !important;
  padding:9px 16px !important;
  border-radius:14px !important;
  font-size:14px !important;
}
#live-game-view.is-live-phone-fullscreen .live-seat--bottom .live-seat__avatar-area,
#live-game-view.is-live-phone-fullscreen .live-seat--bottom .live-seat__avatar,
#live-game-view.is-live-phone-fullscreen .live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_avatar"]{
  display:none !important;
  visibility:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-seat--bottom{
  background:transparent !important;
  border-color:transparent !important;
  box-shadow:none !important;
  pointer-events:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-seat--bottom .live-seat__body{
  padding:0 !important;
}
#live-game-view.is-live-phone-fullscreen .live-seat--bottom .live-seat__cards-area,
#live-game-view.is-live-phone-fullscreen .live-seat--bottom .live-seat__cards{
  pointer-events:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-fullscreen-brand{
  top:3px !important;
  left:50% !important;
  width:min(126px, 32vw) !important;
  height:40px !important;
  opacity:.96 !important;
}
#live-game-view.is-live-phone-fullscreen .live-news-portal{
  display:none !important;
}

#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-game-view__topbar{
  min-height:42px !important;
  height:42px !important;
  max-height:42px !important;
  padding-top:2px !important;
  padding-bottom:2px !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-game-app-frame{
  height:calc(var(--live-phone-viewport-height, 100vh) - 42px) !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-message-card.live-message-card--compact{
  height:54px !important;
  min-height:54px !important;
  max-height:54px !important;
  padding:2px 5px !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-message-card--compact .live-message-card__top-row{
  height:34px !important;
  min-height:34px !important;
  max-height:34px !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-message-card--compact .live-message-card__text{
  height:16px !important;
  min-height:16px !important;
  max-height:16px !important;
  line-height:16px !important;
  font-size:10px !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-message-card__title{
  font-size:12px !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-phone-meta-slot{
  flex-basis:30px !important;
  height:30px !important;
  min-height:30px !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-phone-meta-slot > .live-seat__meta,
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-phone-meta-slot > .live-layout-detached-proxy{
  height:29px !important;
  min-height:29px !important;
  max-height:29px !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-phone-action-slot{
  max-height:74px !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-phone-action-slot > .live-player-action-overlay,
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-phone-action-slot .live-action-panel{
  max-height:74px !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-phone-hand-slot > .live-hand{
  height:calc(var(--live-phone-card-height, 72px) + 30px) !important;
  min-height:calc(var(--live-phone-card-height, 72px) + 30px) !important;
  padding-top:24px !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-fullscreen-brand{
  width:min(112px, 20vw) !important;
  height:36px !important;
}
@media (max-width:380px){
  #live-game-view.is-live-phone-fullscreen .live-phone-meta-slot .live-seat__line--status,
  #live-game-view.is-live-phone-fullscreen .live-phone-meta-slot .live-turn-reminder__body{
    display:none !important;
  }
  #live-game-view.is-live-phone-fullscreen .live-phone-meta-slot .live-seat__name{
    max-width:38vw !important;
  }
}

/* 2026-07-15: etusivun tulevat pelit, turnausilmoittautuminen ja tiivis turnauskaavio */
.home-upcoming-card{
  margin:0 0 12px;
  padding:12px;
  border:1px solid #c8d6e5;
  border-radius:16px;
  background:#fff;
  box-shadow:var(--shadow);
}
.home-upcoming-card__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:9px;
}
.home-upcoming-card__head h2{margin:0;color:#214d75;font-size:17px;text-shadow:none;}
.home-upcoming-card__head p{margin:2px 0 0;color:#65798b;font-size:12px;}
.home-upcoming-card__head .button-link{padding:6px 10px;font-size:12px;white-space:nowrap;}
.home-upcoming-card .calendar-message{margin:8px 0;}
.home-upcoming-card__empty{margin:8px 2px 2px;}
.home-upcoming-list{display:flex;flex-direction:column;gap:7px;}
.home-upcoming-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  border:1px solid #d6e0ea;
  border-left:5px solid #6f8292;
  border-radius:12px;
  background:#f8fafc;
  padding:8px 9px;
}
.home-upcoming-item.is-tournament{border-left-color:#2f6f9f;background:#f2f7fc;}
.home-upcoming-item__main{display:flex;min-width:0;flex-direction:column;gap:2px;text-decoration:none;}
.home-upcoming-item__main:hover{text-decoration:none;}
.home-upcoming-item__date{font-size:11px;font-weight:800;color:#61768a;}
.home-upcoming-item__main strong{color:#183f64;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.home-upcoming-item__main small{color:#627486;font-size:11px;}
.home-upcoming-item__action{margin:0;}
.home-upcoming-item__results{white-space:nowrap;text-decoration:none;}

.calendar-invite-item{gap:7px;}
.calendar-invite-item__main{display:flex;flex-direction:column;gap:3px;text-decoration:none;}
.calendar-invite-item__main:hover{text-decoration:none;}
.kingi-calendar-grid__event small{display:block;margin-top:2px;color:#1f5f93;font-size:9px;text-transform:uppercase;letter-spacing:.04em;}
.calendar-quick-signup-form{margin:0;}
.calendar-signup-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:6px 11px !important;
  border:1px solid #215a31 !important;
  border-radius:999px !important;
  background:linear-gradient(180deg,#2f7e45,#26683a) !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:800 !important;
  line-height:1.1;
  cursor:pointer;
  box-shadow:0 3px 8px rgba(38,104,58,.16) !important;
}
.calendar-signup-button--cancel{
  border-color:#8f3d3d !important;
  background:linear-gradient(180deg,#c95555,#aa3f3f) !important;
  box-shadow:0 3px 8px rgba(170,63,63,.16) !important;
}
.calendar-self-signup-box{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:12px 0;
  padding:12px 14px;
  border:1px solid #b9d4bf;
  border-radius:12px;
  background:#eff8f1;
}
.calendar-self-signup-box h3{margin:0 0 3px;color:#24532b;font-size:16px;}
.calendar-self-signup-box p{margin:0;color:#496253;}

.tournament-game-results-block{margin-top:8px;}
.tournament-game-results-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 11px;
  border-radius:999px;
  background:#003192;
  color:#fff !important;
  font-size:12px;
  font-weight:800;
  text-decoration:none !important;
}

.tournament-body{background:#d8e1ea;}
.tournament-page-wrap{max-width:1120px;margin:18px auto 42px;padding:0;}
.tournament-page-wrap .calendar-card{background:#fff;border-color:#ccd8e5;border-radius:14px;box-shadow:0 6px 18px rgba(31,57,92,.09);padding:13px;}
.tournament-page-wrap .calendar-hero,
.tournament-page-wrap .tournament-hero{
  max-width:none;
  margin:0 0 12px;
  padding:14px 16px;
  border-radius:14px;
  background:#003192 !important;
  background-image:none !important;
  box-shadow:0 6px 18px rgba(0,49,146,.18);
}
.tournament-page-wrap .tournament-hero h1{font-size:24px;}
.tournament-summary-card,
.tournament-actions-card,
.tournament-round-card,
.tournament-results-card,
.tournament-bracket-card{max-width:none !important;margin:0 0 12px !important;}
.tournament-summary-card h2{margin:0 0 8px;color:#17486f;}
.tournament-summary-meta{display:flex;flex-wrap:wrap;gap:7px;}
.tournament-summary-meta span{display:flex;flex-direction:column;gap:1px;min-width:112px;padding:7px 9px;border-radius:9px;background:#eef4fb;color:#344f66;font-size:12px;}
.tournament-summary-meta b{color:#17486f;font-size:10px;text-transform:uppercase;letter-spacing:.05em;}
.tournament-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;}
.tournament-section-title h2{margin:0;color:#17486f;font-size:18px;}
.tournament-section-title p{margin:3px 0 0;color:#65798b;font-size:12px;}
.tournament-section-title > span{padding:5px 9px;border-radius:999px;background:#003192;color:#fff;font-size:11px;font-weight:800;}

.tournament-bracket-scroll{overflow-x:auto;padding:3px 2px 9px;}
.tournament-bracket{display:flex;align-items:stretch;gap:28px;min-width:max-content;}
.tournament-bracket-column{position:relative;width:225px;display:flex;flex-direction:column;}
.tournament-bracket-column:not(:last-child)::after{content:"";position:absolute;right:-28px;top:50%;width:28px;border-top:2px solid #94acc3;}
.tournament-bracket-column > header{min-height:49px;padding:8px 10px;border-radius:10px 10px 0 0;background:#003192;color:#fff;text-align:center;}
.tournament-bracket-column > header small{display:block;color:#cfe0ff;font-size:10px;text-transform:uppercase;letter-spacing:.06em;}
.tournament-bracket-column > header h3{margin:2px 0 0;color:#fff;font-size:15px;}
.tournament-bracket-column__matches{display:flex;flex:1;min-height:calc(var(--bracket-rows) * 112px);flex-direction:column;justify-content:space-around;gap:12px;padding:11px 0;}
.tournament-bracket-match{position:relative;border:1px solid #cbd8e5;border-radius:10px;background:#fff;box-shadow:0 4px 10px rgba(31,57,92,.08);overflow:hidden;}
.tournament-bracket-match::after{content:"";position:absolute;right:-15px;top:50%;width:15px;border-top:2px solid #94acc3;}
.tournament-bracket-column:last-child .tournament-bracket-match::after{display:none;}
.tournament-bracket-match__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;background:#dce9f6;color:#17486f;font-size:11px;}
.tournament-bracket-match__head a{font-weight:800;font-size:10px;}
.tournament-bracket-match__players{display:flex;flex-direction:column;}
.tournament-bracket-player{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:6px;align-items:center;padding:6px 8px;border-top:1px solid #edf1f5;font-size:12px;}
.tournament-bracket-player:first-child{border-top:0;}
.tournament-bracket-player.is-winner{background:#edf8ee;font-weight:800;box-shadow:inset 4px 0 0 #2f7e45;}
.tournament-bracket-player__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tournament-bracket-player__score{text-align:right;font-weight:900;color:#17486f;}

.tournament-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:9px;}
.tournament-podium__place{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 10px;border-radius:10px;background:#eef4fb;border:1px solid #d0deeb;}
.tournament-podium__place.place-1{background:#fff7dc;border-color:#d7b64f;}
.tournament-podium__place b{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:99px;background:#003192;color:#fff;}
.tournament-podium__place strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#173f63;}
.tournament-podium__place span{font-weight:900;color:#17486f;}
.tournament-results-list{display:flex;flex-direction:column;border:1px solid #d7e0ea;border-radius:10px;overflow:hidden;}
.tournament-results-row{display:grid;grid-template-columns:36px minmax(0,1fr) 72px minmax(90px,auto);gap:8px;align-items:center;padding:7px 9px;border-top:1px solid #e5ebf1;font-size:12px;}
.tournament-results-row:first-child{border-top:0;}
.tournament-results-row:nth-child(even){background:#f7fafc;}
.tournament-results-row b{color:#17486f;}
.tournament-results-row strong{text-align:right;color:#17486f;}
.tournament-results-row small{text-align:right;color:#6a7d8f;}

.tournament-rounds-list{display:flex;flex-direction:column;gap:12px;}
.tournament-round-head{margin:0 0 10px;padding:0 0 8px;border-bottom:2px solid #d8e4ef;}
.tournament-round-head > div small{display:block;color:#667b8f;font-size:10px;text-transform:uppercase;letter-spacing:.06em;}
.tournament-round-head h2{font-size:17px;}
.tournament-round-head span{padding:5px 9px;background:#003192;color:#fff;border:0;font-size:11px;}
.tournament-table-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;}
.tournament-table-card{border-radius:10px;box-shadow:none;}
.tournament-table-card__head{padding:8px 9px;background:#003192 !important;background-image:none !important;}
.tournament-table-card__head .button-link{padding:5px 8px;font-size:10px;border-radius:999px;}
.tournament-compact-players{display:flex;flex-direction:column;}
.tournament-compact-player{display:grid;grid-template-columns:25px minmax(0,1fr) 48px;gap:6px;align-items:center;padding:6px 8px;border-top:1px solid #e7edf3;font-size:12px;}
.tournament-compact-player:first-child{border-top:0;}
.tournament-compact-player.is-advancing{background:#edf8ee;box-shadow:inset 4px 0 0 #2f7e45;}
.tournament-compact-player__rank{color:#6b7d8d;}
.tournament-compact-player__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tournament-compact-player strong{text-align:right;color:#17486f;}
.tournament-table-card__status{padding:6px 8px;font-size:11px;}
.tournament-round-standings{margin-top:9px;border-top:1px solid #dbe4ec;padding-top:8px;}
.tournament-round-standings summary{cursor:pointer;color:#17486f;font-size:12px;font-weight:800;}
.tournament-results-list--round{margin-top:8px;}
.tournament-actions{gap:8px;}
.tournament-actions .button-link{padding:7px 11px;}

.tournament-page-wrap table thead th,
.tournament-page-wrap table thead td,
.tournament-page-wrap table > thead > tr:first-child > td,
.tournament-page-wrap table > tr:first-child > td{
  background:#003192 !important;
  background-image:none !important;
  color:#fff !important;
  text-shadow:none !important;
  box-shadow:none !important;
}

@media (max-width:900px){
  .tournament-page-wrap{padding:0 8px;}
  .home-upcoming-item{grid-template-columns:1fr;}
  .home-upcoming-item__action .calendar-signup-button{width:100%;}
  .tournament-podium{grid-template-columns:1fr;}
}
@media (max-width:620px){
  .home-upcoming-card__head,.calendar-self-signup-box{align-items:flex-start;flex-direction:column;}
  .calendar-self-signup-box .calendar-signup-button{width:100%;}
  .calendar-self-signup-box form{width:100%;}
  .tournament-page-wrap .tournament-hero h1{font-size:20px;}
  .tournament-results-row{grid-template-columns:30px minmax(0,1fr) 60px;}
  .tournament-results-row small{display:none;}
}

/* 2026-07-16: julkinen aloitussivu, pelitulosten mini-avatarit ja pluskierroksen valttimerkintä */
.public-entry-page{max-width:680px;margin:20px auto 46px;padding:0 12px;}
.public-entry-brand{display:flex;flex-direction:column;align-items:center;gap:10px;margin:0 auto 16px;padding:18px;text-align:center;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);}
.public-entry-brand img{display:block;width:min(430px,92%);height:auto;}
.public-entry-brand p{margin:0;color:var(--muted);}
.public-entry-auth{max-width:560px;text-align:left;}
.public-entry-auth h2{text-align:center;margin-top:0;}
.public-entry-apple{display:flex;width:100%;box-sizing:border-box;}
.public-entry-links{text-align:center;margin:13px 0 0;}
.public-entry-ranking{margin-top:18px;padding-top:16px;border-top:1px solid #d7dde8;text-align:center;}
.public-entry-ranking-button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;padding:9px 18px;background:#003192 !important;color:#fff !important;font-weight:800;text-decoration:none !important;}

.game-result-player-identity{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%;vertical-align:middle;}
.game-result-player-avatar{flex:0 0 22px;width:22px;height:22px;object-fit:cover;border-radius:50%;border:1px solid rgba(255,255,255,.86);box-shadow:0 1px 4px rgba(0,0,0,.24);background:#f8fbff;}
.game-result-player-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.game-result-summary-row{display:grid;grid-template-columns:24px minmax(0,1fr) 38px;gap:5px;align-items:center;margin:2px 0;}
.game-result-summary-row strong{text-align:right;}
.game-result-player-identity--summary .game-result-player-avatar{width:24px;height:24px;flex-basis:24px;}

.live-card-button.is-trump-card{overflow:visible;}
.live-card-button.is-trump-card .live-card{
  filter:drop-shadow(0 0 5px rgba(255,229,92,.95)) drop-shadow(0 0 11px rgba(255,193,33,.72));
}
.live-trump-badge{
  position:absolute;
  z-index:8;
  top:7px;
  left:50%;
  transform:translateX(-50%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  min-height:14px;
  padding:1px 5px;
  border:1px solid rgba(255,244,167,.94);
  border-radius:999px;
  background:rgba(20,42,78,.92);
  color:#fff2a8;
  font-size:8px;
  font-weight:900;
  line-height:1;
  letter-spacing:.03em;
  text-transform:uppercase;
  text-shadow:0 0 4px #ffe45d,0 0 8px rgba(255,205,45,.95);
  box-shadow:0 0 5px rgba(255,229,92,.95),0 0 12px rgba(255,177,0,.72);
  pointer-events:none;
  animation:kingi-trump-label-glow 1.35s ease-in-out infinite alternate;
}
@keyframes kingi-trump-label-glow{
  from{opacity:.86;box-shadow:0 0 4px rgba(255,229,92,.78),0 0 8px rgba(255,177,0,.52);}
  to{opacity:1;box-shadow:0 0 7px rgba(255,241,150,1),0 0 15px rgba(255,177,0,.88);}
}
html.kingi-live-low-power .live-trump-badge{animation:none;}

@media (max-width:900px){
  .dashboard-grid__right{order:1;}
  .dashboard-grid__left{order:2;}
}
@media (max-width:620px){
  .public-entry-page{margin-top:10px;padding:0;}
  .public-entry-brand{padding:14px 10px;}
  .public-entry-auth{border-radius:14px;}
  .game-result-player-avatar{width:20px;height:20px;flex-basis:20px;}
  .live-trump-badge{top:5px;min-width:30px;font-size:7px;padding:1px 4px;}
}
.game-score-player-identity{justify-content:center;max-width:150px;margin:0 auto;}
.game-score-player-identity .game-result-player-avatar{width:24px;height:24px;flex-basis:24px;}

/* 2026-07-16: ranking-palluran koko pelitulos, yhtenäiset pyöreät avatarit ja iPhonen tiivis fullscreen */
.rank-player-avatar,
.rank-player-avatar.game-result-player-avatar{
  border-radius:50% !important;
  border:1px solid rgba(255,255,255,.86) !important;
  background:#f8fbff;
}
.rank-last-play-cell,
.rank-recent-balls{
  overflow:visible !important;
}
.rank-recent-ball[data-rank-game-tooltip]{
  position:relative;
  cursor:help;
  outline:none;
}
.rank-recent-ball[data-rank-game-tooltip]::after{
  content:attr(data-rank-game-tooltip);
  position:absolute;
  left:50%;
  bottom:calc(100% + 8px);
  z-index:30000;
  width:max-content;
  min-width:150px;
  max-width:min(260px, calc(100vw - 24px));
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:10px;
  background:rgba(7,24,42,.97);
  box-shadow:0 10px 26px rgba(0,0,0,.34);
  color:#fff;
  font-size:11px;
  font-weight:700;
  line-height:1.38;
  text-align:left;
  white-space:pre-line;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(-50%, 3px);
  transition:opacity .14s ease, transform .14s ease, visibility .14s ease;
}
.rank-recent-ball[data-rank-game-tooltip]::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:calc(100% + 3px);
  z-index:30001;
  width:8px;
  height:8px;
  background:rgba(7,24,42,.97);
  transform:translateX(-50%) rotate(45deg);
  opacity:0;
  visibility:hidden;
}
.rank-recent-ball[data-rank-game-tooltip]:hover::after,
.rank-recent-ball[data-rank-game-tooltip]:focus::after,
.rank-recent-ball[data-rank-game-tooltip]:hover::before,
.rank-recent-ball[data-rank-game-tooltip]:focus::before{
  opacity:1;
  visibility:visible;
  transform:translate(-50%, 0);
}
.rank-recent-ball[data-rank-game-tooltip]:hover::before,
.rank-recent-ball[data-rank-game-tooltip]:focus::before{
  transform:translateX(-50%) rotate(45deg);
}

/* Valtti-teksti oikeaan yläkulmaan, jotta se ei peitä kortin arvoa tai maata. */
.live-trump-badge{
  top:4px !important;
  right:3px !important;
  left:auto !important;
  transform:none !important;
  min-width:25px !important;
  min-height:11px !important;
  padding:1px 3px !important;
  font-size:6px !important;
  letter-spacing:.01em !important;
  line-height:1 !important;
}

/* Todellinen visualViewport määrää iPhonen fullscreen-laatikon. Leveys ei saa
   missään tilanteessa ylittää Safarin ilmoittamaa näkyvää pikselileveyttä. */
#live-game-view.is-live-phone-fullscreen,
.live-game-view.is-live-fullscreen-fallback.is-live-phone-fullscreen{
  position:fixed !important;
  inset:auto !important;
  left:var(--live-phone-viewport-left, 0px) !important;
  top:var(--live-phone-viewport-top, 0px) !important;
  right:auto !important;
  bottom:auto !important;
  width:var(--live-phone-viewport-width, 100dvw) !important;
  min-width:0 !important;
  max-width:var(--live-phone-viewport-width, 100dvw) !important;
  height:var(--live-phone-viewport-height, 100dvh) !important;
  min-height:0 !important;
  max-height:var(--live-phone-viewport-height, 100dvh) !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  contain:layout paint size;
}
html.is-live-phone-fullscreen,
body.is-live-phone-fullscreen{
  width:var(--live-phone-viewport-width, 100%) !important;
  max-width:var(--live-phone-viewport-width, 100%) !important;
  overflow:hidden !important;
}
html.is-live-phone-fullscreen .app-header,
body.is-live-phone-fullscreen .app-header{
  display:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-view__brand,
#live-game-view.is-live-phone-fullscreen .live-fullscreen-brand,
#live-game-view.is-live-phone-fullscreen .live-game-view__meta{
  display:none !important;
}

/* Yläpalkista jää vain pieni poistumispainike. Se ei vie tilaa pelipöydältä. */
#live-game-view.is-live-phone-fullscreen .live-game-view__topbar{
  position:absolute !important;
  inset:0 0 auto 0 !important;
  z-index:20500 !important;
  display:block !important;
  width:100% !important;
  min-height:0 !important;
  height:0 !important;
  max-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  overflow:visible !important;
  pointer-events:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-view__actions{
  position:absolute !important;
  top:max(4px, env(safe-area-inset-top)) !important;
  right:max(4px, env(safe-area-inset-right)) !important;
  z-index:20510 !important;
  display:block !important;
  width:auto !important;
  height:auto !important;
  pointer-events:auto !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-view__action-row{
  display:block !important;
  width:auto !important;
  height:auto !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-view__action-row .rank-analyzer-btn{
  display:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-view__action-row .rank-analyzer-btn:first-child{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:34px !important;
  min-width:34px !important;
  max-width:34px !important;
  height:34px !important;
  min-height:34px !important;
  max-height:34px !important;
  margin:0 !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.42) !important;
  border-radius:50% !important;
  background:rgba(5,18,31,.82) !important;
  color:transparent !important;
  font-size:0 !important;
  box-shadow:0 4px 12px rgba(0,0,0,.34) !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-view__action-row .rank-analyzer-btn:first-child::after{
  content:"×";
  color:#fff !important;
  font-size:25px !important;
  font-weight:500 !important;
  line-height:1 !important;
}

#live-game-view.is-live-phone-fullscreen .live-game-app-frame{
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:100% !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-shell{
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:100% !important;
  min-height:0 !important;
  gap:0 !important;
  overflow:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-shell__message{
  flex:0 0 48px !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:48px !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card.live-message-card--compact{
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:48px !important;
  min-height:48px !important;
  max-height:48px !important;
  padding:3px 42px 3px 5px !important;
  border-radius:0 !important;
  overflow:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card--compact .live-message-card__top-row{
  height:28px !important;
  min-height:28px !important;
  max-height:28px !important;
  gap:3px !important;
  overflow:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card__title{
  font-size:12px !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card__turn-slot{
  max-width:42% !important;
}
#live-game-view.is-live-phone-fullscreen .live-turn-banner{
  padding:3px 5px !important;
  font-size:9px !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card__progress-slot,
#live-game-view.is-live-phone-fullscreen .live-card-back-picker,
#live-game-view.is-live-phone-fullscreen .live-news-toggle{
  display:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card__tools{
  height:28px !important;
  min-height:28px !important;
  max-height:28px !important;
  gap:2px !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card__tools .live-icon-tool,
#live-game-view.is-live-phone-fullscreen .live-message-card__tools .live-scorebook-badge{
  width:28px !important;
  min-width:28px !important;
  max-width:28px !important;
  height:28px !important;
  min-height:28px !important;
  max-height:28px !important;
}
#live-game-view.is-live-phone-fullscreen .live-message-card--compact .live-message-card__text{
  left:5px !important;
  right:42px !important;
  bottom:1px !important;
  height:16px !important;
  min-height:16px !important;
  max-height:16px !important;
  line-height:16px !important;
  font-size:9px !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-shell__stage,
#live-game-view.is-live-phone-fullscreen .live-room-viewport{
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  min-height:0 !important;
  overflow:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-prev-round-hands-btn,
#live-game-view.is-live-phone-fullscreen .live-prev-round-hands-modal,
#live-game-view.is-live-phone-fullscreen .live-analog-clock,
#live-game-view.is-live-phone-fullscreen .live-spectators,
#live-game-view.is-live-phone-fullscreen .live-news-portal{
  display:none !important;
}

/* Puhelimen koko näytön pelipöydällä chat avautuu omana kirjoitusikkunanaan. */
#live-game-view.is-live-phone-fullscreen .live-chat-launch{
  display:inline-flex !important;
}
#live-game-view.is-live-phone-fullscreen .live-chat-modal{
  display:block;
}
#live-game-view.is-live-phone-fullscreen .live-chat-modal[hidden]{
  display:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-chat-modal__dialog{
  width:min(96vw,720px) !important;
  max-height:calc(100dvh - 12px) !important;
}
#live-game-view.is-live-phone-fullscreen .live-chat-modal__messages{
  min-height:72px !important;
  flex:1 1 auto !important;
}
#live-game-view.is-live-phone-fullscreen .live-chat-modal__form textarea{
  min-height:70px !important;
}

/* Vain todella pieni Viimeiset tikit -ruutu jää näkyviin. */
#live-game-view.is-live-phone-fullscreen .live-game-shell__sidebar{
  position:absolute !important;
  top:50px !important;
  right:3px !important;
  bottom:auto !important;
  left:auto !important;
  z-index:18600 !important;
  display:block !important;
  width:112px !important;
  max-width:112px !important;
  max-height:84px !important;
  padding:0 !important;
  overflow:hidden !important;
  pointer-events:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-shell__sidebar > .live-side-card{
  display:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-shell__sidebar > .live-side-card--phone-history{
  display:block !important;
  width:112px !important;
  max-width:112px !important;
  max-height:84px !important;
  padding:3px !important;
  border-radius:7px !important;
  background:rgba(5,18,31,.76) !important;
  box-shadow:0 3px 9px rgba(0,0,0,.25) !important;
  overflow:hidden !important;
  pointer-events:auto !important;
}
#live-game-view.is-live-phone-fullscreen .live-side-card--phone-history h3{
  margin:0 0 2px !important;
  font-size:8px !important;
  line-height:1 !important;
  text-align:center !important;
}
#live-game-view.is-live-phone-fullscreen .live-side-card--phone-history .live-history__list{
  display:flex !important;
  flex-direction:column !important;
  gap:1px !important;
  max-height:66px !important;
  overflow:hidden !important;
}
#live-game-view.is-live-phone-fullscreen .live-side-card--phone-history .live-history__item{
  min-height:0 !important;
  height:auto !important;
  padding:2px 3px !important;
  border-radius:4px !important;
  gap:3px !important;
  font-size:7px !important;
  line-height:1 !important;
}
#live-game-view.is-live-phone-fullscreen .live-side-card--phone-history .live-history__item:nth-child(n+4){
  display:none !important;
}
#live-game-view.is-live-phone-fullscreen .live-side-card--phone-history .live-history__empty{
  padding:3px !important;
  font-size:7px !important;
}

/* Yli kahdeksan kortin käsi kahteen riviin ja alapelaajan telakka korkeammaksi. */
#live-game-view.is-live-phone-fullscreen.has-live-phone-two-row-hand .live-phone-game-dock{
  height:var(--live-phone-dock-reserve, 230px) !important;
  min-height:var(--live-phone-dock-reserve, 230px) !important;
  max-height:var(--live-phone-dock-reserve, 230px) !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-game-dock.is-two-row .live-phone-hand-slot{
  flex:0 0 var(--live-phone-hand-height, 190px) !important;
  height:var(--live-phone-hand-height, 190px) !important;
  min-height:var(--live-phone-hand-height, 190px) !important;
  max-height:var(--live-phone-hand-height, 190px) !important;
  align-items:flex-start !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot > .live-hand.is-live-phone-two-row-hand{
  position:relative !important;
  display:block !important;
  width:var(--live-phone-hand-width, calc(100% - 12px)) !important;
  min-width:0 !important;
  max-width:calc(100% - 8px) !important;
  height:var(--live-phone-hand-height, 190px) !important;
  min-height:var(--live-phone-hand-height, 190px) !important;
  max-height:var(--live-phone-hand-height, 190px) !important;
  margin:0 auto !important;
  padding:0 !important;
  overflow:visible !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot > .live-hand.is-live-phone-two-row-hand > .live-card-button,
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot > .live-hand.is-live-phone-two-row-hand > .live-card--back,
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot > .live-hand.is-live-phone-two-row-hand > .live-card--face{
  position:absolute !important;
  left:var(--live-phone-card-left, 0px) !important;
  top:var(--live-phone-card-top, 0px) !important;
  margin:0 !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot > .live-hand.is-live-phone-two-row-hand > .live-card-button{
  padding-bottom:12px !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot > .live-hand.is-live-phone-two-row-hand .live-card{
  transform:rotate(calc((var(--fan-index, 0) - var(--fan-mid, 0)) * .18deg)) !important;
}

#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-game-shell__message{
  flex-basis:42px !important;
  height:42px !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-message-card.live-message-card--compact{
  height:42px !important;
  min-height:42px !important;
  max-height:42px !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-message-card--compact .live-message-card__top-row{
  height:25px !important;
  min-height:25px !important;
  max-height:25px !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-message-card--compact .live-message-card__text{
  height:14px !important;
  min-height:14px !important;
  max-height:14px !important;
  line-height:14px !important;
  font-size:8px !important;
}
#live-game-view.is-live-phone-fullscreen.is-live-phone-fullscreen-landscape .live-game-shell__sidebar{
  top:44px !important;
}
@media (max-width:620px){
  .rank-recent-ball[data-rank-game-tooltip]::after{
    left:auto;
    right:-44px;
    transform:translateY(3px);
  }
  .rank-recent-ball[data-rank-game-tooltip]:hover::after,
  .rank-recent-ball[data-rank-game-tooltip]:focus::after{
    transform:translateY(0);
  }
  .live-trump-badge{
    top:3px !important;
    right:2px !important;
    min-width:22px !important;
    font-size:5.5px !important;
    padding:1px 2px !important;
  }
}

/* 2026-07-17: alapelaajan avatarin pienennys ja koko paneelin levyinen korttiviuhka */
.live-seat__mini-avatar{
  display:none;
  flex:0 0 28px;
  width:28px;
  height:28px;
  border-radius:50%;
  overflow:hidden;
  object-fit:cover;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.86);
  box-shadow:0 1px 4px rgba(0,0,0,.24);
  background:#f8fbff;
  color:#17365f;
  font-size:12px;
  font-weight:900;
  line-height:1;
}
.live-seat__mini-avatar img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
}
.live-seat__mini-avatar--placeholder{
  background:linear-gradient(180deg,#f8fbff,#dbe9f7);
}
.live-self-avatar-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:0;
  border:1px solid rgba(255,255,255,.82);
  border-radius:50%;
  background:linear-gradient(180deg,rgba(27,76,126,.98),rgba(12,45,82,.98));
  color:#fff;
  font-family:Arial,sans-serif;
  font-size:16px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  box-shadow:0 3px 10px rgba(0,0,0,.36),inset 0 0 0 1px rgba(255,255,255,.10);
  touch-action:manipulation;
}
.live-self-avatar-toggle:hover,
.live-self-avatar-toggle:focus-visible{
  background:linear-gradient(180deg,#3479bd,#174d82);
  transform:translateY(-1px);
  outline:2px solid rgba(255,229,145,.72);
  outline-offset:1px;
}

#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat--bottom .live-seat__body{
  grid-template-columns:minmax(0,1fr) !important;
  width:100% !important;
}
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat--bottom .live-seat__avatar-area,
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_avatar"]{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat--bottom .live-seat__cards-area{
  grid-column:1 / -1;
  width:100% !important;
  min-width:0 !important;
}
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat__meta--self-inline .live-seat__mini-avatar{
  display:inline-flex !important;
}
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat__meta--self-inline{
  grid-template-columns:28px minmax(0,1fr) auto auto auto !important;
  column-gap:8px !important;
  padding-left:5px !important;
}
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat__meta--self-inline .live-seat__name{
  align-self:center;
}
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat--bottom .live-seat__cards,
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"]{
  box-sizing:border-box !important;
  justify-content:flex-start !important;
  padding:0 !important;
  overflow:visible !important;
}
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat--bottom .live-hand--self,
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-hand--self{
  box-sizing:border-box !important;
  display:flex !important;
  align-items:flex-end !important;
  justify-content:flex-start !important;
  flex-wrap:nowrap !important;
  gap:0 !important;
  overflow:visible !important;
}
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat--bottom .live-card-button,
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button{
  flex:0 0 var(--self-card-width) !important;
  width:var(--self-card-width) !important;
  min-width:var(--self-card-width) !important;
  max-width:var(--self-card-width) !important;
  margin-left:0 !important;
  margin-right:var(--self-card-overlap, -30%) !important;
}
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat--bottom .live-card-button:first-child,
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button:first-child{
  margin-left:0 !important;
}
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat--bottom .live-card-button:last-child,
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-layout-detached-proxy[data-layout-proxy-id="fan_bottom"] .live-card-button:last-child{
  margin-right:0 !important;
}
#kingi-live-app.is-live-phone-fullscreen .live-self-avatar-toggle,
#kingi-live-app.is-live-phone-fullscreen .live-seat__mini-avatar{
  display:none !important;
}

@media (max-width:720px){
  #kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat__meta--self-inline{
    grid-template-columns:24px minmax(0,1fr) auto auto auto !important;
    column-gap:5px !important;
  }
  #kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat__meta--self-inline .live-seat__mini-avatar{
    width:24px;
    height:24px;
    flex-basis:24px;
  }
}

/* 2026-07-17: etusivun mobiiliprioriteetti, uusimpien pelien pelaajat ja yhtenäinen tulevien pelien paneeli */
.dashboard-grid__left{grid-column:1;grid-row:1;}
.dashboard-grid__right{grid-column:2;grid-row:1;}

.home-upcoming-card{
  width:100%;
  box-sizing:border-box;
  margin:0 0 12px;
  padding:0;
  overflow:hidden;
  border:1px solid var(--line) !important;
  border-radius:16px;
  background:#ffffff !important;
  background-image:none !important;
  box-shadow:var(--shadow);
}
.home-upcoming-card__head{
  margin:0;
  padding:10px 12px;
  border:0;
  background:#003192 !important;
  background-image:none !important;
  color:#eff6ff;
  box-shadow:none;
}
.home-upcoming-card__head h2{
  color:#eff6ff !important;
  font-size:17px;
  text-shadow:0 2px 10px rgba(0,0,0,.42) !important;
}
.home-upcoming-card__head p{
  color:#d7e5ff !important;
}
.home-upcoming-card__head .button-link{
  border-color:rgba(255,255,255,.72);
  background:#ffffff;
  color:#003192;
  box-shadow:0 2px 7px rgba(0,0,0,.16);
}
.home-upcoming-card__head .button-link:hover{
  background:#eef4ff;
  color:#00256f;
}
.home-upcoming-card > .calendar-message{
  margin:10px 10px 0;
}
.home-upcoming-card__empty{
  margin:0;
  padding:12px;
  background:#ffffff;
}
.home-upcoming-list{
  margin:0;
  padding:10px;
  background:#ffffff;
}

@media (max-width:900px){
  .dashboard-grid{
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  .dashboard-grid__right,
  .dashboard-grid__left{
    width:100%;
    min-width:0;
    grid-column:auto;
    grid-row:auto;
  }
  .dashboard-grid__right{order:1;}
  .dashboard-grid__left{order:2;}
}

@media (max-width:760px){
  /* Kuvaussarake poistuu kapealla näytöllä ennen pelaajatietoja. */
  .game-list-table{
    width:100% !important;
    table-layout:fixed;
  }
  .game-list-table .game-note-cell{
    display:none !important;
  }
  .game-list-table .game-datetime-cell{
    width:82px !important;
    max-width:82px;
    padding-left:4px;
    padding-right:4px;
  }
  .game-list-table .game-players-cell{
    width:auto !important;
    min-width:0;
    padding-left:6px;
    padding-right:6px;
  }
  .game-list-table .game-player-row{
    grid-template-columns:19px minmax(0,1fr) 31px;
    gap:3px;
    font-size:12px;
  }
  .game-list-table .game-result-player-identity{
    gap:5px;
    width:100%;
  }
  .game-list-table .game-result-player-avatar{
    display:block !important;
    flex:0 0 20px;
    width:20px;
    height:20px;
  }
  .game-list-table .game-result-player-name,
  .game-list-table .game-player-name{
    display:block;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
}

@media (max-width:620px){
  .home-upcoming-card{
    margin-left:0;
    margin-right:0;
    border-radius:14px;
  }
  .home-upcoming-card__head{
    box-sizing:border-box;
    width:100%;
    padding:10px;
  }
  .home-upcoming-card__head .button-link{
    width:100%;
    box-sizing:border-box;
  }
  .home-upcoming-list{
    padding:8px;
  }
  .home-upcoming-item{
    width:100%;
    box-sizing:border-box;
  }


}

@media (max-width:390px){
  .game-list-table .game-datetime-cell{
    width:74px !important;
    max-width:74px;
  }
  .game-list-table .datetime-compact{
    font-size:10px;
  }
  .game-list-table .datetime-compact .time{
    font-size:9px;
  }
  .game-list-table .game-player-row{
    grid-template-columns:16px minmax(0,1fr) 28px;
    gap:2px;
    font-size:11px;
  }
  .game-list-table .game-result-player-identity{
    gap:4px;
  }
  .game-list-table .game-result-player-avatar{
    flex-basis:18px;
    width:18px;
    height:18px;
  }
}

/* 2026-07-17: fullscreenin alapelaajan viuhka käyttää kaiken vapaan paneelitilan. */
.live-hand--self.is-adaptive-self-fan{
  box-sizing:border-box !important;
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:flex-end !important;
  justify-content:flex-start !important;
  gap:0 !important;
  overflow:visible !important;
}
.live-hand--self.is-adaptive-self-fan > .live-card-button{
  flex:0 0 var(--self-card-width) !important;
  width:var(--self-card-width) !important;
  min-width:var(--self-card-width) !important;
  max-width:var(--self-card-width) !important;
  margin-left:0 !important;
  margin-right:var(--self-card-overlap, -30%) !important;
}
.live-hand--self.is-adaptive-self-fan > .live-card-button:last-child{
  margin-right:0 !important;
}
.live-hand--self.is-adaptive-self-fan > .live-card-button .live-card,
.live-hand--self.is-adaptive-self-fan > .live-card-button .live-card--face{
  width:var(--self-card-width) !important;
  min-width:var(--self-card-width) !important;
  max-width:var(--self-card-width) !important;
  height:var(--self-card-height) !important;
  min-height:var(--self-card-height) !important;
  max-height:var(--self-card-height) !important;
}
.is-adaptive-self-fan-host{
  box-sizing:border-box !important;
  padding:0 !important;
  overflow:visible !important;
}

/* Puhelimen fullscreen: käytä visualViewport-leveys lähes kokonaan ja poista
   korttiviuhkan turha ylä- ja alatyhjä. Safe area jää telakan ulkoreunaan. */
#live-game-view.is-live-phone-fullscreen .live-phone-game-dock{
  padding-left:max(3px, env(safe-area-inset-left)) !important;
  padding-right:max(3px, env(safe-area-inset-right)) !important;
  padding-bottom:max(3px, env(safe-area-inset-bottom)) !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot > .live-hand:not(.is-live-phone-two-row-hand){
  width:var(--live-phone-hand-width, calc(var(--live-phone-viewport-width, 100vw) - 8px)) !important;
  max-width:calc(100% - 2px) !important;
  height:var(--live-phone-hand-height, calc(var(--live-phone-card-height, 88px) + 28px)) !important;
  min-height:var(--live-phone-hand-height, calc(var(--live-phone-card-height, 88px) + 28px)) !important;
  padding:22px 0 0 !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-card-button{
  height:calc(var(--live-phone-card-height, 88px) + 12px) !important;
  min-height:calc(var(--live-phone-card-height, 88px) + 12px) !important;
  padding-bottom:8px !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot .live-hand--backs{
  width:var(--live-phone-hand-width, calc(var(--live-phone-viewport-width, 100vw) - 8px)) !important;
  max-width:calc(100% - 2px) !important;
  height:calc(var(--live-phone-card-height, 88px) + 14px) !important;
  min-height:calc(var(--live-phone-card-height, 88px) + 14px) !important;
  padding-top:10px !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot > .live-hand.is-live-phone-two-row-hand{
  width:var(--live-phone-hand-width, calc(var(--live-phone-viewport-width, 100vw) - 8px)) !important;
  max-width:calc(100% - 2px) !important;
}

/* 2026-07-17: kokonaiskorjaus alapelaajan otsikkopalkkiin, fullscreen-viuhkaan,
   valttimerkintään ja ranking-tuloskuplaan. */

/* Otsikkopalkki saa käyttää koko alapaneelin leveyden kaikissa muissa kuin
   iPhonen erillisessä fullscreen-telakassa. */
#kingi-live-app:not(.is-live-phone-fullscreen) .live-seat__meta--bottom-topbar.is-unified-live-meta,
#kingi-live-app:not(.is-live-phone-fullscreen) .live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"].live-seat__meta--bottom-topbar,
#kingi-live-app:not(.is-live-phone-fullscreen) .live-seat--bottom .live-seat__meta--self-inline.live-seat__meta--bottom-topbar{
  box-sizing:border-box !important;
  justify-content:flex-start !important;
  max-width:var(--seat-meta-responsive-width, 100%) !important;
  padding-left:10px !important;
  padding-right:10px !important;
}
#kingi-live-app:not(.is-live-phone-fullscreen) .live-seat__meta--bottom-topbar.is-unified-live-meta .live-seat__name,
#kingi-live-app:not(.is-live-phone-fullscreen) .live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-seat__name,
#kingi-live-app:not(.is-live-phone-fullscreen) .live-seat--bottom .live-seat__meta--self-inline.live-seat__meta--bottom-topbar .live-seat__name{
  flex:1 1 auto !important;
  width:auto !important;
  min-width:60px !important;
  max-width:none !important;
}
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat__meta--bottom-topbar .live-seat__mini-avatar,
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-seat__mini-avatar{
  display:inline-flex !important;
  flex:0 0 28px !important;
  width:28px !important;
  height:28px !important;
}
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat__meta--bottom-topbar .live-seat__name,
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-seat__name{
  flex:1 1 auto !important;
  min-width:60px !important;
  max-width:none !important;
}

/* Stage-presetin korttikokosääntö oli adaptiivista sääntöä spesifimpi ja teki
   varsinaisesta kortista miniatyyrin, vaikka painikkeen tausta oli oikean kokoinen. */
.live-room-stage[data-stage-width] .live-hand--self.is-adaptive-self-fan > .live-card-button,
.live-room-stage[data-stage-width] .is-adaptive-self-fan-host .live-hand--self.is-adaptive-self-fan > .live-card-button{
  flex:0 0 var(--self-card-width) !important;
  width:var(--self-card-width) !important;
  min-width:var(--self-card-width) !important;
  max-width:var(--self-card-width) !important;
  margin-left:0 !important;
  margin-right:var(--self-card-overlap, -30%) !important;
}
.live-room-stage[data-stage-width] .live-hand--self.is-adaptive-self-fan > .live-card-button:last-child,
.live-room-stage[data-stage-width] .is-adaptive-self-fan-host .live-hand--self.is-adaptive-self-fan > .live-card-button:last-child{
  margin-right:0 !important;
}
.live-room-stage[data-stage-width] .live-hand--self.is-adaptive-self-fan > .live-card-button .live-card,
.live-room-stage[data-stage-width] .live-hand--self.is-adaptive-self-fan > .live-card-button .live-card--face,
.live-room-stage[data-stage-width] .live-hand--self.is-adaptive-self-fan > .live-card-button .live-card--table,
.live-room-stage[data-stage-width] .is-adaptive-self-fan-host .live-hand--self.is-adaptive-self-fan > .live-card-button .live-card,
.live-room-stage[data-stage-width] .is-adaptive-self-fan-host .live-hand--self.is-adaptive-self-fan > .live-card-button .live-card--face,
.live-room-stage[data-stage-width] .is-adaptive-self-fan-host .live-hand--self.is-adaptive-self-fan > .live-card-button .live-card--table{
  width:var(--self-card-width) !important;
  min-width:var(--self-card-width) !important;
  max-width:var(--self-card-width) !important;
  height:var(--self-card-height) !important;
  min-height:var(--self-card-height) !important;
  max-height:var(--self-card-height) !important;
}

/* Valtti on hieman aiempaa suurempi, mutta pysyy kortin oikeassa yläkulmassa. */
.live-trump-badge{
  top:4px !important;
  right:3px !important;
  min-width:29px !important;
  min-height:13px !important;
  padding:1px 4px !important;
  font-size:7px !important;
  letter-spacing:.015em !important;
}
@media (max-width:620px){
  .live-trump-badge{
    top:3px !important;
    right:2px !important;
    min-width:25px !important;
    min-height:12px !important;
    padding:1px 3px !important;
    font-size:6px !important;
  }
}

/* Rankingin ylimmän rivin tuloskupla avautuu alaspäin. Näin paneelin yläreuna
   tai otsikkopalkki ei leikkaa kuplaa. */
.ranking-table,
.ranking-table tbody,
.ranking-table tbody tr,
.ranking-table tbody td,
.dashboard-grid__left{
  overflow:visible !important;
}
.ranking-table tbody tr:first-child .rank-last-play-cell{
  position:relative;
  z-index:80;
}
.ranking-table tbody tr:first-child .rank-recent-ball[data-rank-game-tooltip]::after{
  top:calc(100% + 8px) !important;
  bottom:auto !important;
  transform:translate(-50%, -3px) !important;
}
.ranking-table tbody tr:first-child .rank-recent-ball[data-rank-game-tooltip]::before{
  top:calc(100% + 3px) !important;
  bottom:auto !important;
  transform:translateX(-50%) rotate(45deg) !important;
}
.ranking-table tbody tr:first-child .rank-recent-ball[data-rank-game-tooltip]:hover::after,
.ranking-table tbody tr:first-child .rank-recent-ball[data-rank-game-tooltip]:focus::after{
  transform:translate(-50%, 0) !important;
}
@media (max-width:620px){
  .ranking-table tbody tr:first-child .rank-recent-ball[data-rank-game-tooltip]::after{
    left:auto !important;
    right:-44px !important;
    transform:translateY(-3px) !important;
  }
  .ranking-table tbody tr:first-child .rank-recent-ball[data-rank-game-tooltip]:hover::after,
  .ranking-table tbody tr:first-child .rank-recent-ball[data-rank-game-tooltip]:focus::after{
    transform:translateY(0) !important;
  }
}


/* 2026-07-17: fullscreen-alapaneelin lopullinen geometrialukitus.
   JavaScript asettaa pikselimitat myös suoraan elementeille, mutta nämä säännöt
   pitävät korttikuvan, painikkeen ja lyöntitaustan varmasti samassa koossa jo
   ensimmäisellä piirrolla. */
.live-hand--self.is-adaptive-self-fan > .live-card-button{
  box-sizing:border-box !important;
  align-items:flex-end !important;
  justify-content:center !important;
  overflow:visible !important;
}
.live-hand--self.is-adaptive-self-fan > .live-card-button > img.live-card,
.live-hand--self.is-adaptive-self-fan > .live-card-button > img.live-card--face{
  display:block !important;
  width:var(--self-card-width) !important;
  min-width:var(--self-card-width) !important;
  max-width:var(--self-card-width) !important;
  height:var(--self-card-height) !important;
  min-height:var(--self-card-height) !important;
  max-height:var(--self-card-height) !important;
  object-fit:fill !important;
  box-sizing:border-box !important;
}
.live-hand--self.is-adaptive-self-fan > .live-card-button > .live-card-button__bg{
  width:calc(var(--self-card-width) - 8px) !important;
  min-width:calc(var(--self-card-width) - 8px) !important;
  max-width:calc(var(--self-card-width) - 8px) !important;
}
#kingi-live-app:not(.is-self-avatar-minimized):not(.is-live-phone-fullscreen) .live-seat__meta--bottom-topbar.is-large-avatar-offset .live-seat__name,
#kingi-live-app:not(.is-self-avatar-minimized):not(.is-live-phone-fullscreen) .live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"].is-large-avatar-offset .live-seat__name,
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat__meta--bottom-topbar .live-seat__name{
  flex:1 1 auto !important;
  min-width:60px !important;
  max-width:none !important;
}
#kingi-live-app:not(.is-self-avatar-minimized):not(.is-live-phone-fullscreen) .live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_avatar"],
#kingi-live-app:not(.is-self-avatar-minimized):not(.is-live-phone-fullscreen) .live-seat--bottom .live-seat__avatar-area{
  z-index:1860 !important;
}

/* 2026-07-17: pelin valmistumisen oma tulossivu ja vakaa jälkikatselun ohjauspalkki. */
.live-game-view.is-live-game-complete{
  width:min(1120px, calc(100% - 24px)) !important;
  max-width:1120px !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 auto 28px !important;
  padding:0 !important;
  overflow:visible !important;
  border-radius:14px !important;
  background:#eef3f8 !important;
  color:#1f2937 !important;
  box-shadow:0 14px 34px rgba(26,46,68,.18) !important;
}
.live-game-view.is-live-game-complete .live-game-view__topbar{
  margin:0 !important;
  border-radius:14px 14px 0 0 !important;
  background:#003192 !important;
  border:0 !important;
  box-shadow:none !important;
}
.live-game-view.is-live-game-complete .live-game-app-frame{
  height:auto !important;
  min-height:0 !important;
  overflow:visible !important;
  padding:14px !important;
  box-sizing:border-box !important;
}
.live-game-shell.is-live-game-complete{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-height:0 !important;
  height:auto !important;
  overflow:visible !important;
}
.live-game-shell.is-live-game-complete .live-game-shell__message{
  width:100% !important;
  min-height:0 !important;
  margin:0 !important;
  overflow:visible !important;
}
.live-game-shell.is-live-game-complete .live-game-shell__stage{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  overflow:visible !important;
  background:transparent !important;
}
.live-game-shell.is-live-game-complete .live-game-shell__sidebar,
.live-game-view.is-live-game-complete .live-fullscreen-brand{
  display:none !important;
}
.live-final-panel{
  display:block;
  width:100%;
  color:#24384b;
}
.live-final-panel__hero{
  padding:14px 18px;
  border-radius:10px;
  background:#003192;
  color:#fff;
  box-shadow:0 7px 18px rgba(0,49,146,.2);
}
.live-final-panel__hero h2{
  margin:0;
  color:#fff;
  font-size:24px;
}
.live-final-panel__hero p{
  margin:4px 0 0;
  color:#dce8ff;
}
.live-final-diary-reminder{
  margin:12px 0;
  padding:12px 14px;
  border:1px solid #e0b33e;
  border-left:5px solid #e0a800;
  border-radius:8px;
  background:#fff8dc;
  color:#563f08;
  line-height:1.4;
}
.live-final-panel__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:14px;
}
.live-final-card{
  min-width:0;
  overflow:hidden;
  border:1px solid #c8d4e1;
  border-radius:10px;
  background:#fff;
  box-shadow:0 6px 16px rgba(40,62,85,.09);
}
.live-final-card__title{
  margin:0 !important;
  padding:10px 14px;
  background:#145da0;
  color:#fff !important;
  font-size:17px;
  line-height:1.25;
}
.live-final-card__heading-row{
  display:flex;
  align-items:stretch;
  justify-content:space-between;
  gap:0;
  background:#145da0;
}
.live-final-card__heading-row .live-final-card__title{
  display:flex;
  align-items:center;
  flex:1 1 auto;
}
.live-final-game-points{
  display:grid;
  grid-template-columns:auto auto;
  align-content:center;
  column-gap:9px;
  padding:7px 14px;
  min-width:225px;
  background:#003192;
  color:#fff;
  text-align:right;
}
.live-final-game-points span{
  align-self:end;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.live-final-game-points strong{
  grid-row:1 / 3;
  grid-column:2;
  align-self:center;
  font-size:24px;
  line-height:1;
}
.live-final-game-points small{
  grid-column:1;
  color:#dce8ff;
  font-size:10px;
  white-space:nowrap;
}
.live-final-notice{
  margin:12px 14px 0;
  padding:9px 11px;
  border-radius:7px;
  font-weight:700;
}
.live-final-notice--success{
  border:1px solid #9ac9a2;
  background:#edf8ef;
  color:#235d2d;
}
.live-final-notice--warning{
  border:1px solid #e0c26c;
  background:#fff8dd;
  color:#654b08;
}
.live-final-table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.live-final-table{
  width:100%;
  min-width:520px;
  border-collapse:collapse;
  color:#25384a;
  font-size:14px;
  background:#fff;
}
.live-final-table th,
.live-final-table td{
  padding:9px 11px;
  border-right:1px solid #d9e1e9;
  border-bottom:1px solid #d9e1e9;
  text-align:left;
  vertical-align:middle;
}
.live-final-table th:last-child,
.live-final-table td:last-child{border-right:0;}
.live-final-table thead th{
  background:#e6eef8;
  color:#173e66;
  font-weight:800;
  white-space:nowrap;
}
.live-final-table tbody tr:nth-child(even) td,
.live-final-table tbody tr:nth-child(even) th{
  background:#f7f9fc;
}
.live-final-table tbody tr:last-child td,
.live-final-table tbody tr:last-child th{border-bottom:0;}
.live-final-table__num{text-align:right !important;font-variant-numeric:tabular-nums;white-space:nowrap;}
.live-final-table__position{width:54px;text-align:center !important;font-weight:900;color:#003192;}
.live-final-table__num.is-positive{color:#187a34;font-weight:800;}
.live-final-table__num.is-negative{color:#b42318;font-weight:800;}
.live-final-player{
  display:inline-flex;
  align-items:center;
  min-width:0;
  gap:8px;
  font-weight:800;
}
.live-final-player__name{min-width:0;}
.live-final-player-avatar{
  display:block;
  flex:0 0 32px;
  width:32px;
  height:32px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid #fff;
  box-shadow:0 0 0 1px #9bb0c5, 0 2px 5px rgba(0,0,0,.18);
}
.live-final-player-avatar--score{
  width:26px;
  height:26px;
  flex-basis:26px;
}
.live-final-score-player{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.live-final-result-table{min-width:430px;}
.live-final-score-table{min-width:700px;}
.live-final-score-table tbody th{min-width:190px;color:#234b72;font-weight:700;}
.live-final-rank-impact-table{min-width:900px;}
.live-final-card.live-game-notes-panel{
  margin:0;
  padding:0;
  border-radius:10px;
  background:#fff;
}
.live-final-card.live-game-notes-panel .live-game-notes-panel__textarea{
  display:block;
  width:calc(100% - 28px);
  min-height:120px;
  margin:14px;
  border:1px solid #aebdcc;
  border-radius:7px;
  background:#fff;
  color:#1f2937;
  box-shadow:inset 0 1px 3px rgba(0,0,0,.08);
}
.live-final-card.live-game-notes-panel .live-game-notes-panel__readonly,
.live-final-card.live-game-notes-panel .live-game-notes-panel__empty{
  padding:14px;
  color:#334155;
}
.live-final-card.live-game-notes-panel .live-final-panel__actions{padding:0 14px 14px;}
.live-final-card .live-ai-costs__help{margin:12px 14px;color:#53697e;}
.live-final-panel__footer-actions{
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}
.live-game-view.is-live-game-complete .live-choice-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:9px 17px;
  border-radius:7px;
  text-decoration:none !important;
  box-shadow:0 5px 12px rgba(0,0,0,.12);
}
.live-game-view.is-live-game-complete .live-choice-button--primary{
  border-color:#003192 !important;
  background:#003192 !important;
  color:#fff !important;
}
.live-game-view.is-live-game-complete .live-choice-button--secondary{
  border:1px solid #8da4bc !important;
  background:#fff !important;
  color:#174d7e !important;
}
.live-game-view.is-live-game-complete .live-inline-notice{
  position:relative;
  margin:0 0 12px;
}
@media (max-width:760px){
  .live-game-view.is-live-game-complete{
    width:100% !important;
    margin:0 !important;
    border-radius:0 !important;
  }
  .live-game-view.is-live-game-complete .live-game-app-frame{padding:8px !important;}
  .live-final-panel__hero{border-radius:7px;}
  .live-final-card__heading-row{display:block;}
  .live-final-game-points{
    min-width:0;
    text-align:left;
    grid-template-columns:auto 1fr;
  }
  .live-final-game-points strong{justify-self:end;}
  .live-final-panel__footer-actions{display:grid;grid-template-columns:1fr;}
  .live-final-panel__footer-actions .live-choice-button{width:100%;box-sizing:border-box;}
}

/* Jälkikatselun ohjaimet pidetään kokonaan pelipöydän yläpuolella. */
.live-game-view--replay .live-game-shell__message{
  position:relative !important;
  z-index:9600 !important;
  overflow:visible !important;
  flex:0 0 auto !important;
}
.live-game-view--replay .live-message-card{
  position:relative !important;
  z-index:9600 !important;
  overflow:visible !important;
  height:auto !important;
  min-height:0 !important;
}
.live-game-view--replay .live-replay-controls{
  position:relative;
  z-index:9700;
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:48px;
  box-sizing:border-box;
  margin:8px 0 4px;
  padding:7px 10px;
  overflow:visible;
}
.live-game-view--replay .live-replay-btn{
  flex:0 0 46px;
  width:46px;
  min-width:46px;
  height:38px;
  position:relative;
  z-index:2;
}
.live-game-view--replay .live-replay-btn--double{flex-basis:50px;width:50px;min-width:50px;}
.live-game-view--replay .live-replay-btn--play{flex-basis:54px;width:54px;min-width:54px;}
.live-game-view--replay .live-replay-controls__status{
  flex:1 1 150px;
  min-width:110px;
  max-width:260px;
  white-space:nowrap;
}
.live-game-view--replay .live-game-shell__stage{
  position:relative !important;
  z-index:1 !important;
  margin-top:6px !important;
}
@media (max-width:620px){
  .live-game-view--replay .live-replay-controls{
    display:grid;
    grid-template-columns:repeat(5, minmax(42px, 1fr));
    gap:6px;
  }
  .live-game-view--replay .live-replay-controls__status{
    grid-column:1 / -1;
    grid-row:1;
    justify-self:center;
    max-width:none;
  }
  .live-game-view--replay .live-replay-btn{
    grid-row:2;
    width:100%;
    min-width:0;
  }
}
.live-game-view.is-live-game-complete .live-game-view__actions{display:none !important;}
.live-game-view.is-live-game-complete .live-game-view__brand{width:100%;justify-content:center;}

/* 2026-07-17: Peli valmis -taulukoiden yhtenäinen Kingiranki-tyyli. */
.live-game-view.is-live-game-complete .live-final-card,
.live-game-view.is-live-game-complete .live-final-card.live-ai-costs{
  margin:0 !important;
  padding:0 !important;
  border:1px solid #c8d4e1 !important;
  border-radius:10px !important;
  background:#fff !important;
  background-image:none !important;
  color:#24384b !important;
  box-shadow:0 6px 16px rgba(40,62,85,.09) !important;
  overflow:hidden !important;
}
.live-game-view.is-live-game-complete .live-final-card__title,
.live-game-view.is-live-game-complete .live-final-card.live-ai-costs > .live-final-card__title{
  margin:0 !important;
  padding:10px 14px !important;
  border:0 !important;
  border-radius:0 !important;
  background:#145da0 !important;
  background-color:#145da0 !important;
  background-image:none !important;
  color:#fff !important;
  text-shadow:none !important;
  box-shadow:none !important;
}
.live-game-view.is-live-game-complete .live-final-card__heading-row{
  background:#145da0 !important;
  background-color:#145da0 !important;
  background-image:none !important;
}
.live-game-view.is-live-game-complete .live-final-table thead,
.live-game-view.is-live-game-complete .live-final-table thead tr,
.live-game-view.is-live-game-complete .live-final-table thead th{
  background:#145da0 !important;
  background-color:#145da0 !important;
  background-image:none !important;
  color:#fff !important;
  text-shadow:none !important;
  box-shadow:none !important;
}
.live-game-view.is-live-game-complete .live-final-table thead th{
  border-color:#3979b2 !important;
  font-weight:800 !important;
}
.live-game-view.is-live-game-complete .live-final-table tfoot,
.live-game-view.is-live-game-complete .live-final-table tfoot tr,
.live-game-view.is-live-game-complete .live-final-table tfoot th,
.live-game-view.is-live-game-complete .live-final-table tfoot td{
  background:#e6eef8 !important;
  background-color:#e6eef8 !important;
  background-image:none !important;
  color:#173e66 !important;
  text-shadow:none !important;
  box-shadow:none !important;
  border-color:#c8d4e1 !important;
}
.live-game-view.is-live-game-complete .live-final-card.live-ai-costs .live-ai-costs__help{
  margin:0 !important;
  padding:12px 14px !important;
  border:0 !important;
  border-bottom:1px solid #d9e1e9 !important;
  background:#f7f9fc !important;
  background-image:none !important;
  color:#53697e !important;
  font-size:12px !important;
}
.live-game-view.is-live-game-complete .live-final-card.live-ai-costs .live-ai-costs__table code{
  color:#173e66 !important;
  font-size:12px !important;
}
.live-game-view.is-live-game-complete .live-final-card.live-ai-costs .live-final-table-wrap{
  margin:0 !important;
}

/* 2026-07-17: Loppupisteet-taulukon riviotsikot ilman vanhaa kuvataustaa. */
.live-game-view.is-live-game-complete .live-final-score-table tbody th[scope="row"]{
  background:#eef4fa !important;
  background-color:#eef4fa !important;
  background-image:none !important;
  color:#173e66 !important;
  text-shadow:none !important;
  box-shadow:none !important;
  border-color:#d9e1e9 !important;
  font-weight:800 !important;
}
.live-game-view.is-live-game-complete .live-final-score-table tbody tr:nth-child(even) th[scope="row"]{
  background:#f7f9fc !important;
  background-color:#f7f9fc !important;
  background-image:none !important;
}

/* Yksi drag & drop -pudotusvihje kaikissa näyttötiloissa. Sen sijainti tulee
   samoista lavakoordinaateista kuin tikin kortit, joten leveä normaalinäkymä
   ei siirrä vihjettä stage-elementin fyysiseen keskipisteeseen. */
.live-room-stage__table.is-drop-target-ready::after,
.live-room-stage__table.is-drop-target-hover::after{
  content:none !important;
  display:none !important;
}
.live-room-stage.is-card-dragging::before,
.live-room-stage.is-card-dragging::after{
  content:none !important;
  display:none !important;
}
.live-card-drop-hint{
  position:absolute !important;
  left:var(--live-drop-hint-x,50%) !important;
  top:var(--live-drop-hint-y,50%) !important;
  z-index:9404 !important;
  display:none !important;
  align-items:center !important;
  justify-content:center !important;
  width:var(--live-drop-hint-width,340px) !important;
  height:var(--live-drop-hint-height,230px) !important;
  box-sizing:border-box !important;
  border:3px dashed rgba(236,255,240,.78) !important;
  border-radius:28px !important;
  background:rgba(18,79,38,.20) !important;
  box-shadow:0 18px 42px rgba(0,0,0,.28),inset 0 0 0 9999px rgba(0,0,0,.03) !important;
  transform:translate(-50%,-50%) !important;
  pointer-events:none !important;
}
.live-room-stage.is-card-dragging .live-card-drop-hint{
  display:flex !important;
}
.live-card-drop-hint span{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:12px 18px !important;
  border-radius:999px !important;
  background:rgba(15,60,28,.90) !important;
  color:#ebfff0 !important;
  font-size:15px !important;
  font-weight:900 !important;
  letter-spacing:.04em !important;
  box-shadow:0 14px 30px rgba(0,0,0,.34),inset 0 0 0 1px rgba(255,255,255,.18) !important;
}
.live-room-stage.is-card-dragging-over-table .live-card-drop-hint{
  border-color:rgba(182,255,183,.98) !important;
  background:rgba(35,132,57,.29) !important;
}
.live-room-stage.is-card-dragging-over-table .live-card-drop-hint span{
  background:rgba(32,128,52,.97) !important;
  transform:scale(1.04) !important;
}


/* 2026-07-17: pelipöydän taustasävyt, avatarien kevyt renderöinti ja
   fullscreenin sivupaneelit aina pelipöydän vieressä. */
.live-table-tone-picker{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  flex:0 0 40px !important;
  width:40px !important;
  min-width:40px !important;
  max-width:40px !important;
  height:40px !important;
  min-height:40px !important;
  max-height:40px !important;
  margin:0 !important;
  padding:3px !important;
  border:1px solid rgba(255,255,255,.24) !important;
  border-radius:11px !important;
  background:rgba(5,20,34,.52) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 3px 8px rgba(0,0,0,.24) !important;
  cursor:pointer !important;
  overflow:hidden !important;
}
.live-table-tone-picker__swatch{
  display:block;
  width:32px;
  height:32px;
  border-radius:9px;
  border:1px solid rgba(255,255,255,.58);
  box-shadow:inset 0 0 10px rgba(0,0,0,.36),0 1px 4px rgba(0,0,0,.32);
  pointer-events:none;
  background:radial-gradient(circle at 42% 36%,#206748 0%,#11402d 48%,#081810 100%);
}
.live-table-tone-picker__select{
  position:absolute !important;
  inset:0 !important;
  z-index:2 !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  opacity:0 !important;
  cursor:pointer !important;
}
.live-table-tone-picker:focus-within{
  outline:3px solid rgba(255,216,111,.88) !important;
  outline-offset:2px !important;
}
.live-table-tone-picker[data-live-table-tone-id="light-red"] .live-table-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#ef7777 0%,#a53d43 48%,#250d13 100%);}
.live-table-tone-picker[data-live-table-tone-id="orange"] .live-table-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#ef9b45 0%,#b96020 48%,#2a1307 100%);}
.live-table-tone-picker[data-live-table-tone-id="yellow"] .live-table-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#e5cf4f 0%,#a48c20 48%,#261f06 100%);}
.live-table-tone-picker[data-live-table-tone-id="green"] .live-table-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#206748 0%,#11402d 48%,#081810 100%);}
.live-table-tone-picker[data-live-table-tone-id="turquoise"] .live-table-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#4fc7bd 0%,#237f79 48%,#071f1d 100%);}
.live-table-tone-picker[data-live-table-tone-id="electric-blue"] .live-table-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#66c8ff 0%,#267db6 48%,#081e30 100%);}
.live-table-tone-picker[data-live-table-tone-id="dark-blue"] .live-table-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#356aa8 0%,#1d416f 48%,#07121f 100%);}
.live-table-tone-picker[data-live-table-tone-id="violet"] .live-table-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#a67bd8 0%,#61418e 48%,#180d26 100%);}
.live-table-tone-picker[data-live-table-tone-id="cream"] .live-table-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#ead7aa 0%,#a99569 48%,#292316 100%);}
.live-table-tone-picker[data-live-table-tone-id="gray"] .live-table-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#aeb7c0 0%,#68737e 48%,#171c21 100%);}

/* Pieni logo kuuluu fullscreenissä oikean sivupalkin viimeiseksi,
   suoraan Seuraajat-paneelin alle. Vanhaa yläkeskelle kiinnitettyä logoa ei näytetä. */
.live-fullscreen-sidebar-brand{display:none;}
#live-game-view.is-live-fullscreen .live-fullscreen-brand,
#live-game-view:fullscreen .live-fullscreen-brand,
#live-game-view:-webkit-full-screen .live-fullscreen-brand,
.live-game-view.is-live-fullscreen-fallback .live-fullscreen-brand{
  display:none !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-fullscreen-sidebar-brand,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-fullscreen-sidebar-brand,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-fullscreen-sidebar-brand,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-fullscreen-sidebar-brand{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  width:100% !important;
  min-height:34px !important;
  flex:0 0 auto !important;
  margin:0 !important;
  margin-top:auto !important;
  padding:2px 4px 0 !important;
  box-sizing:border-box !important;
  pointer-events:none !important;
}
.live-fullscreen-sidebar-brand img{
  display:block;
  width:min(155px,90%);
  height:34px;
  object-fit:contain;
  object-position:right center;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.48));
}

/* Fullscreenissä oikean laidan tiedot ovat omassa ruudukon sarakkeessaan.
   Ne eivät saa koskaan peittää pelipöytää. */
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) var(--live-fullscreen-sidebar-width,236px) !important;
  grid-template-rows:auto minmax(0,1fr) !important;
  gap:8px 10px !important;
  align-items:stretch !important;
  width:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  overflow:hidden !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__message,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__message,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__message,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__message{
  grid-column:1 / -1 !important;
  grid-row:1 !important;
  width:100% !important;
  margin:0 !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__stage,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__stage,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__stage,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__stage{
  grid-column:1 !important;
  grid-row:2 !important;
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:100% !important;
  min-height:0 !important;
  overflow:hidden !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__sidebar,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__sidebar,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__sidebar,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__sidebar{
  grid-column:2 !important;
  grid-row:2 !important;
  position:relative !important;
  inset:auto !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  align-content:initial !important;
  gap:8px !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 3px 4px 0 !important;
  box-sizing:border-box !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  z-index:30 !important;
  pointer-events:auto !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-side-card,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-side-card,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-side-card,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-side-card{
  flex:0 0 auto !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}

/* Kun fullscreen-preset, oikea sivupalkki ja marginaalit eivät mahdu
   luonnollisessa koossa, vasemman laidan lisäelementit poistetaan ensin.
   Pelipöytä alkaa samalla aivan käytettävissä olevan alueen vasemmasta reunasta. */
#live-game-view.is-live-fullscreen-constrained .live-news-portal,
#live-game-view.is-live-fullscreen-constrained .live-room-stage__round-score{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
#live-game-view.is-live-fullscreen-constrained .live-room-scale{
  margin-left:0 !important;
  margin-right:0 !important;
}

/* Puhelimen erillisessä fullscreen-näkymässä sävyvalitsin piilotetaan muiden
   ylimääräisten työkalujen tavoin. */
#live-game-view.is-live-phone-fullscreen .live-table-tone-picker{
  display:none !important;
}

/* Fullscreen käyttää kaiken käytettävissä olevan tilan ilman normaalinäkymän
   ylä- tai sivumarginaaleja. Rajallisella leveydellä ulkoreunus tiivistyy,
   jotta pelipöytä saa etusijan oikean sivupalkin rinnalla. */
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-app-frame,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-app-frame,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-app-frame,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-app-frame{
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
}
#live-game-view.is-live-fullscreen-constrained{
  padding:5px !important;
}
#live-game-view.is-live-fullscreen-constrained .live-game-shell{
  gap:5px 7px !important;
}

/* 2026-07-17: fullscreen-rakenteen yhtenäinen lopullinen sääntö.
   Pelipöytä, vasen tietopalkki ja oikea tietopalkki ovat aina eri ruudukkoalueilla.
   Mikään paneeli ei peitä pelipöytää. */
.live-game-view{
  background:
    radial-gradient(circle at 50% 42%,
      var(--live-room-tone-center,#287649) 0%,
      var(--live-room-tone-mid,#124e31) 42%,
      var(--live-room-tone-edge,#092719) 76%,
      var(--live-room-tone-outer,#06180f) 100%) !important;
}

/* Ulkoasun valinnat ovat aina omalla toisella rivillään. */
.live-message-card__appearance-row{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  flex-wrap:wrap !important;
  gap:6px !important;
  width:100% !important;
  min-width:0 !important;
  margin:5px 0 0 !important;
  padding:5px 0 0 !important;
  border-top:1px solid rgba(255,255,255,.11) !important;
  box-sizing:border-box !important;
}
.live-appearance-row__label{
  margin-right:auto;
  color:rgba(255,255,255,.72);
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.live-message-card__appearance-row .live-card-back-picker,
.live-message-card__appearance-row .live-table-tone-picker,
.live-message-card__appearance-row .live-room-tone-picker{
  flex:0 0 40px !important;
  width:40px !important;
  min-width:40px !important;
  max-width:40px !important;
  height:40px !important;
  min-height:40px !important;
  max-height:40px !important;
  margin:0 !important;
}

/* Pelipöydän takana olevan taustanäytön oma sävyvalitsin. */
.live-room-tone-picker{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  padding:3px !important;
  border:1px solid rgba(255,255,255,.24) !important;
  border-radius:11px !important;
  background:rgba(5,20,34,.52) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 3px 8px rgba(0,0,0,.24) !important;
  cursor:pointer !important;
  overflow:hidden !important;
}
.live-room-tone-picker__swatch{
  display:block;
  width:32px;
  height:32px;
  border-radius:9px;
  border:1px solid rgba(255,255,255,.58);
  box-shadow:inset 0 0 10px rgba(0,0,0,.36),0 1px 4px rgba(0,0,0,.32);
  pointer-events:none;
  background:radial-gradient(circle at 42% 36%,#287649 0%,#124e31 48%,#06180f 100%);
}
.live-room-tone-picker__select{
  position:absolute !important;
  inset:0 !important;
  z-index:2 !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  opacity:0 !important;
  cursor:pointer !important;
}
.live-room-tone-picker:focus-within{
  outline:3px solid rgba(255,216,111,.88) !important;
  outline-offset:2px !important;
}
.live-room-tone-picker[data-live-room-tone-id="light-red"] .live-room-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#ef7777 0%,#a53d43 48%,#250d13 100%);}
.live-room-tone-picker[data-live-room-tone-id="orange"] .live-room-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#ef9b45 0%,#b96020 48%,#2a1307 100%);}
.live-room-tone-picker[data-live-room-tone-id="yellow"] .live-room-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#e5cf4f 0%,#a48c20 48%,#261f06 100%);}
.live-room-tone-picker[data-live-room-tone-id="green"] .live-room-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#287649 0%,#124e31 48%,#06180f 100%);}
.live-room-tone-picker[data-live-room-tone-id="turquoise"] .live-room-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#4fc7bd 0%,#237f79 48%,#071f1d 100%);}
.live-room-tone-picker[data-live-room-tone-id="electric-blue"] .live-room-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#66c8ff 0%,#267db6 48%,#081e30 100%);}
.live-room-tone-picker[data-live-room-tone-id="dark-blue"] .live-room-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#356aa8 0%,#1d416f 48%,#07121f 100%);}
.live-room-tone-picker[data-live-room-tone-id="violet"] .live-room-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#a67bd8 0%,#61418e 48%,#180d26 100%);}
.live-room-tone-picker[data-live-room-tone-id="cream"] .live-room-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#ead7aa 0%,#a99569 48%,#292316 100%);}
.live-room-tone-picker[data-live-room-tone-id="gray"] .live-room-tone-picker__swatch{background:radial-gradient(circle at 42% 36%,#aeb7c0 0%,#68737e 48%,#171c21 100%);}

/* Lyöntijärjestyksen avatar on sama pyöreä miniavatar kuin tikkilistassa. */
.live-order-player{display:flex;align-items:center;gap:8px;min-width:0;width:100%;}
.live-order-avatar{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 28px;
  width:28px;
  height:28px;
  overflow:hidden;
  border-radius:50%;
  background:rgba(255,255,255,.14);
  box-shadow:0 0 0 1px rgba(255,255,255,.28),0 2px 5px rgba(0,0,0,.22);
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.live-order-avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit;}
.live-order-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.live-order-name--stats{
  appearance:none;
  display:block;
  width:100%;
  margin:0;
  padding:3px 5px;
  overflow:hidden;
  border:0;
  border-radius:7px;
  background:transparent;
  color:inherit;
  font:inherit;
  font-weight:800;
  line-height:1.15;
  text-align:left;
  text-overflow:ellipsis;
  white-space:nowrap;
  cursor:help;
}
.live-order-name--stats:hover,
.live-order-name--stats:focus-visible{
  background:rgba(255,226,138,.17);
  color:#fff3bd;
  outline:1px solid rgba(255,226,138,.58);
  outline-offset:1px;
}
.live-order-stats-popover{
  position:fixed !important;
  z-index:46000 !important;
  width:min(278px,calc(100vw - 16px)) !important;
  padding:10px !important;
  box-sizing:border-box !important;
  border:1px solid #9cb3c9 !important;
  border-radius:14px !important;
  background:linear-gradient(180deg,#ffffff 0%,#edf4fa 100%) !important;
  color:#20384f !important;
  box-shadow:0 16px 38px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.9) !important;
  font:700 12px/1.25 Arial,sans-serif !important;
  pointer-events:auto !important;
}
.live-order-stats-popover::after{
  content:"";
  position:absolute;
  top:50%;
  width:10px;
  height:10px;
  background:#f4f8fc;
  transform:translateY(-50%) rotate(45deg);
}
.live-order-stats-popover[data-placement="left"]::after{
  right:-6px;
  border-top:1px solid #9cb3c9;
  border-right:1px solid #9cb3c9;
}
.live-order-stats-popover[data-placement="right"]::after{
  left:-6px;
  border-left:1px solid #9cb3c9;
  border-bottom:1px solid #9cb3c9;
}
.live-order-stats-card__header{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  align-items:center;
  gap:9px;
  padding:0 0 8px;
  border-bottom:1px solid #cedae5;
}
.live-order-stats-card__avatar{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  overflow:hidden;
  border:2px solid #fff;
  border-radius:12px;
  background:#315d87;
  color:#fff;
  box-shadow:0 2px 8px rgba(27,57,85,.25);
  font-size:17px;
  font-weight:900;
}
.live-order-stats-card__avatar img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;}
.live-order-stats-card__identity{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:8px;min-width:0;}
.live-order-stats-card__identity small{grid-column:1 / -1;color:#658099;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;}
.live-order-stats-card__identity b{min-width:0;overflow:hidden;color:#173a5c;font-size:15px;text-overflow:ellipsis;white-space:nowrap;}
.live-order-stats-card__identity em{color:#064b8f;font-size:11px;font-style:normal;font-variant-numeric:tabular-nums;white-space:nowrap;}
.live-order-stats-card__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:8px;}
.live-order-stats-card__grid > span{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0;padding:5px 2px;border:1px solid #d5e0ea;border-radius:8px;background:rgba(255,255,255,.74);}
.live-order-stats-card__grid small{color:#6a7e91;font-size:8px;font-weight:800;white-space:nowrap;}
.live-order-stats-card__grid b{color:#193d5e;font-size:12px;font-variant-numeric:tabular-nums;}
.live-order-stats-card__placements{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-top:7px;padding:6px 7px;border-radius:8px;background:#dfeaf4;color:#35526e;font-size:10px;}
.live-order-stats-card__placements small{font-size:9px;font-weight:900;text-transform:uppercase;}
.live-order-stats-card__placements span{white-space:nowrap;font-variant-numeric:tabular-nums;}
.live-order-stats-card__placements b{color:#064b8f;}
.live-order-stats-card__latest{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;color:#688096;font-size:10px;}
.live-order-stats-card__latest b{color:#2b4965;font-variant-numeric:tabular-nums;}
.live-order-stats-card__empty{margin-top:8px;padding:8px;border-radius:8px;background:#e7eff6;color:#60778d;text-align:center;}

/* Fullscreenin leveä rakenne: vasen paneelialue, pelipöytä ja oikea paneelialue.
   Yläpalkki saa käyttää koko näytön leveyden. */
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell{
  display:grid !important;
  grid-template-columns:0 minmax(0,1fr) var(--live-fullscreen-sidebar-width,236px) !important;
  grid-template-rows:auto minmax(0,1fr) !important;
  gap:8px 10px !important;
  align-items:start !important;
  align-content:start !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  overflow:hidden !important;
}
#live-game-view.has-live-left-panels:not(.is-live-left-panels-suppressed).is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view.has-live-left-panels:not(.is-live-left-panels-suppressed):fullscreen:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view.has-live-left-panels:not(.is-live-left-panels-suppressed):-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell,
.live-game-view.has-live-left-panels:not(.is-live-left-panels-suppressed).is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell{
  grid-template-columns:var(--live-fullscreen-leftbar-width,270px) minmax(0,1fr) var(--live-fullscreen-sidebar-width,236px) !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__message,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__message,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__message,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__message{
  grid-column:1 / -1 !important;
  grid-row:1 !important;
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  min-width:0 !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__leftbar,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__leftbar,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__leftbar,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__leftbar{
  grid-column:1 !important;
  grid-row:2 !important;
  display:none !important;
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  max-height:100% !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  padding:0 0 4px 2px !important;
  box-sizing:border-box !important;
}
#live-game-view.has-live-left-panels:not(.is-live-left-panels-suppressed).is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__leftbar,
#live-game-view.has-live-left-panels:not(.is-live-left-panels-suppressed):fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__leftbar,
#live-game-view.has-live-left-panels:not(.is-live-left-panels-suppressed):-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__leftbar,
.live-game-view.has-live-left-panels:not(.is-live-left-panels-suppressed).is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__leftbar{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:8px !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__stage,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__stage,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__stage,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__stage{
  grid-column:2 !important;
  grid-row:2 !important;
  justify-self:start !important;
  align-self:start !important;
  position:relative !important;
  width:min(100%,var(--live-fullscreen-stage-envelope-width,var(--live-fullscreen-stage-visible-width,100%))) !important;
  max-width:100% !important;
  height:min(100%,var(--live-fullscreen-stage-envelope-height,var(--live-fullscreen-stage-visible-height,100%))) !important;
  max-height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  overflow:hidden !important;
  margin:0 !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__stage .live-room-viewport,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__stage .live-room-viewport,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__stage .live-room-viewport,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__stage .live-room-viewport{
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  overflow:hidden !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-room-scale,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-room-scale,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-room-scale,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-room-scale{
  left:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__sidebar,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__sidebar,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__sidebar,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__sidebar{
  grid-column:3 !important;
  grid-row:2 !important;
  position:relative !important;
  inset:auto !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:8px !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:auto !important;
  max-height:100% !important;
  margin:0 !important;
  padding:0 3px 4px 0 !important;
  box-sizing:border-box !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  z-index:30 !important;
}
.live-game-shell__drawer-rail{display:none;}

/* Kun oikea paneelialue ei mahdu, se ei liu'u pöydän päälle. Suljettuna näkyy
   vain reunakahva; avattuna ruudukko varaa paneelille oman sarakkeen ja pöytä
   sovitetaan jäljelle jäävään tilaan. */
#live-game-view.is-live-sidebar-drawer:not(.is-live-phone-fullscreen) .live-game-shell{
  grid-template-columns:minmax(0,1fr) 34px !important;
  grid-template-rows:auto minmax(0,1fr) !important;
}
#live-game-view.is-live-sidebar-drawer.is-live-sidebar-drawer-open:not(.is-live-phone-fullscreen) .live-game-shell{
  grid-template-columns:minmax(0,1fr) var(--live-sidebar-drawer-width,280px) 34px !important;
}
#live-game-view.is-live-sidebar-drawer:not(.is-live-phone-fullscreen) .live-game-shell__leftbar{display:none !important;}
#live-game-view.is-live-sidebar-drawer:not(.is-live-phone-fullscreen) .live-game-shell__stage{
  grid-column:1 !important;
  grid-row:2 !important;
}
#live-game-view.is-live-sidebar-drawer:not(.is-live-phone-fullscreen) .live-game-shell__sidebar{
  display:none !important;
}
#live-game-view.is-live-sidebar-drawer.is-live-sidebar-drawer-open:not(.is-live-phone-fullscreen) .live-game-shell__sidebar{
  display:flex !important;
  grid-column:2 !important;
  grid-row:2 !important;
}
#live-game-view.is-live-sidebar-drawer:not(.is-live-phone-fullscreen) .live-game-shell__drawer-rail{
  display:flex !important;
  grid-column:2 !important;
  grid-row:2 !important;
  align-self:stretch !important;
  justify-self:stretch !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:0 !important;
  overflow:hidden !important;
}
#live-game-view.is-live-sidebar-drawer.is-live-sidebar-drawer-open:not(.is-live-phone-fullscreen) .live-game-shell__drawer-rail{
  grid-column:3 !important;
}
.live-sidebar-drawer-toggle{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  width:30px;
  min-width:30px;
  height:min(180px,42vh);
  padding:8px 3px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:13px 0 0 13px;
  background:rgba(7,28,20,.88);
  box-shadow:0 5px 15px rgba(0,0,0,.28);
  color:#fff;
  cursor:pointer;
}
.live-sidebar-drawer-toggle span{font-size:24px;line-height:1;}
.live-sidebar-drawer-toggle b{font-size:10px;line-height:1;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.04em;}

/* Vasemman palkin tai reunapaneelin sisällä uutiset, pistevihko ja chat ovat
   normaalissa dokumenttivirrassa, eivät kiinteänä kerroksena pöydän päällä. */
.live-game-shell__leftbar .live-news-portal,
.live-game-shell__sidebar .live-news-portal{
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  flex:0 0 auto !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  overflow:visible !important;
}
.live-game-shell__leftbar .live-news-ticker,
.live-game-shell__sidebar .live-news-ticker,
.live-game-shell__leftbar .live-fullscreen-scorebook,
.live-game-shell__sidebar .live-fullscreen-scorebook,
.live-game-shell__leftbar .live-fullscreen-chat,
.live-game-shell__sidebar .live-fullscreen-chat{
  position:relative !important;
  inset:auto !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}

/* Fullscreen-logo on suurempi, mutta kuuluu aina sivupaneelin normaaliin virtaan. */
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-fullscreen-sidebar-brand,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-fullscreen-sidebar-brand,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-fullscreen-sidebar-brand,
.live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-fullscreen-sidebar-brand{
  min-height:44px !important;
  padding:4px 4px 1px !important;
  margin-top:auto !important;
  overflow:hidden !important;
}
.live-fullscreen-sidebar-brand img{
  width:min(182px,94%) !important;
  height:42px !important;
  max-width:100% !important;
}

/* Puhelimen ja tabletin yläpalkissa kaikki kolme ulkoasuvalintaa ovat näkyvissä
   toisella rivillä. Ne eivät kasvata palkkia tarpeettoman korkeaksi. */
#live-game-view.is-live-phone-fullscreen .live-message-card__appearance-row{
  display:flex !important;
  gap:4px !important;
  margin-top:3px !important;
  padding-top:3px !important;
  justify-content:flex-end !important;
}
#live-game-view.is-live-phone-fullscreen .live-appearance-row__label{display:none !important;}
#live-game-view.is-live-phone-fullscreen .live-card-back-picker,
#live-game-view.is-live-phone-fullscreen .live-table-tone-picker,
#live-game-view.is-live-phone-fullscreen .live-room-tone-picker{
  display:inline-flex !important;
  flex:0 0 32px !important;
  width:32px !important;
  min-width:32px !important;
  max-width:32px !important;
  height:32px !important;
  min-height:32px !important;
  max-height:32px !important;
  padding:2px !important;
}
#live-game-view.is-live-phone-fullscreen .live-card-back-picker__icon,
#live-game-view.is-live-phone-fullscreen .live-table-tone-picker__swatch,
#live-game-view.is-live-phone-fullscreen .live-room-tone-picker__swatch{
  width:26px !important;
  height:26px !important;
}

@media (max-width:760px){
  .live-message-card__appearance-row{gap:4px !important;}
  .live-appearance-row__label{display:none;}
  .live-message-card__appearance-row .live-card-back-picker,
  .live-message-card__appearance-row .live-table-tone-picker,
  .live-message-card__appearance-row .live-room-tone-picker{
    flex-basis:34px !important;
    width:34px !important;
    min-width:34px !important;
    max-width:34px !important;
    height:34px !important;
    min-height:34px !important;
    max-height:34px !important;
  }
}

/* Fullscreenissä pistevihko avataan omalle sivupaneelialueelleen. Hover-kupla
   ei saa nousta pelipöydän päälle. */
#live-game-view.is-live-fullscreen .live-scorebook-badge__tooltip,
#live-game-view:fullscreen .live-scorebook-badge__tooltip,
#live-game-view:-webkit-full-screen .live-scorebook-badge__tooltip,
.live-game-view.is-live-fullscreen-fallback .live-scorebook-badge__tooltip{
  display:none !important;
}

/* 2026-07-17: normaalin livepelin sijoittelu palautettu.
   Fullscreeniä varten lisätyt vasen paneelipaikka ja reunakahva eivät saa
   osallistua normaalinäkymän grid-autosijoitteluun. */
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-game-shell{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 236px !important;
  grid-template-rows:auto auto !important;
  gap:14px !important;
  align-items:start !important;
}
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-game-shell__message{
  grid-column:1 / -1 !important;
  grid-row:1 !important;
}
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-game-shell__leftbar,
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-game-shell__drawer-rail{
  display:none !important;
}
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-game-shell__stage{
  grid-column:1 !important;
  grid-row:2 !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0 !important;
}
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-game-shell__sidebar{
  grid-column:2 !important;
  grid-row:2 !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0 !important;
}

/* Ulkoasuvalitsimet palautettu yläpalkin samalle riville. Ne eivät enää luo
   erillistä täysleveää toista riviä tai muuta pelipöydän pystysijaintia. */
.live-message-card__tools{
  gap:5px !important;
  flex-wrap:nowrap !important;
  min-width:0 !important;
}
.live-message-card__appearance-row{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  flex:0 0 auto !important;
  flex-wrap:nowrap !important;
  gap:4px !important;
  width:auto !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}
.live-message-card__appearance-row .live-card-back-picker,
.live-message-card__appearance-row .live-table-tone-picker,
.live-message-card__appearance-row .live-room-tone-picker{
  flex:0 0 36px !important;
  width:36px !important;
  min-width:36px !important;
  max-width:36px !important;
  height:36px !important;
  min-height:36px !important;
  max-height:36px !important;
  margin:0 !important;
  padding:2px !important;
}
.live-message-card__appearance-row .live-card-back-picker__icon,
.live-message-card__appearance-row .live-table-tone-picker__swatch,
.live-message-card__appearance-row .live-room-tone-picker__swatch{
  width:30px !important;
  height:30px !important;
}
.live-appearance-row__label{display:none !important;}

@media (max-width:900px){
  .live-message-card__tools{
    flex:1 1 auto !important;
    justify-content:flex-end !important;
  }
  .live-message-card__appearance-row .live-card-back-picker,
  .live-message-card__appearance-row .live-table-tone-picker,
  .live-message-card__appearance-row .live-room-tone-picker{
    flex-basis:32px !important;
    width:32px !important;
    min-width:32px !important;
    max-width:32px !important;
    height:32px !important;
    min-height:32px !important;
    max-height:32px !important;
  }
  .live-message-card__appearance-row .live-card-back-picker__icon,
  .live-message-card__appearance-row .live-table-tone-picker__swatch,
  .live-message-card__appearance-row .live-room-tone-picker__swatch{
    width:26px !important;
    height:26px !important;
  }
}

@media (max-width:760px){
  #live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-game-shell{
    grid-template-columns:minmax(0,1fr) !important;
  }
  #live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-game-shell__stage,
  #live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-game-shell__sidebar{
    grid-column:1 !important;
  }
  #live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-game-shell__stage{grid-row:2 !important;}
  #live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-game-shell__sidebar{grid-row:3 !important;}
  .live-message-card__top-row{align-items:center !important;}
  .live-message-card__tools{
    flex-wrap:wrap !important;
  }
}

/* 2026-07-22: Windows-kannettavien natiivin fullscreenin vakautus.
   Fullscreen käyttää nimettyjä grid-alueita, jotta selaimen zoomaus, DPI-skaalaus
   tai fullscreen-mittojen viive ei voi automaattisijoittaa pelipöytää oikeaan
   alakulmaan. Muutos rajataan natiiviin fullscreeniin; normaali- ja iPadin
   fallback-näkymien nykyistä asettelua ei muuteta. */
#live-game-view.is-live-native-fullscreen:not(.is-live-phone-fullscreen),
#live-game-view:fullscreen:not(.is-live-phone-fullscreen),
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen){
  position:fixed !important;
  inset:0 !important;
  left:0 !important;
  top:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 !important;
  padding:clamp(4px,.55vw,8px) !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}
#live-game-view.is-live-native-fullscreen:not(.is-live-phone-fullscreen) .live-game-app-frame,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-app-frame,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-app-frame{
  display:flex !important;
  flex:1 1 auto !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:100% !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}
#live-game-view.is-live-native-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell{
  display:grid !important;
  grid-template-columns:0 minmax(0,1fr) var(--live-fullscreen-sidebar-width,236px) !important;
  grid-template-rows:auto minmax(0,1fr) !important;
  grid-template-areas:
    "message message message"
    "left stage right" !important;
  gap:8px 10px !important;
  align-items:stretch !important;
  align-content:stretch !important;
  justify-items:stretch !important;
  justify-content:stretch !important;
  flex:1 1 auto !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:100% !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}
#live-game-view.is-live-native-fullscreen.has-live-left-panels:not(.is-live-left-panels-suppressed):not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view:fullscreen.has-live-left-panels:not(.is-live-left-panels-suppressed):not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view:-webkit-full-screen.has-live-left-panels:not(.is-live-left-panels-suppressed):not(.is-live-phone-fullscreen) .live-game-shell{
  grid-template-columns:var(--live-fullscreen-leftbar-width,270px) minmax(0,1fr) var(--live-fullscreen-sidebar-width,236px) !important;
}
#live-game-view.is-live-native-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__message,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__message,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__message{
  grid-area:message !important;
  position:relative !important;
  inset:auto !important;
  align-self:start !important;
  justify-self:stretch !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:auto !important;
  margin:0 !important;
  transform:none !important;
}
#live-game-view.is-live-native-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__leftbar,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__leftbar,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__leftbar{grid-area:left !important;}
#live-game-view.is-live-native-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__stage,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__stage,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__stage{
  grid-area:stage !important;
  position:relative !important;
  inset:auto !important;
  left:auto !important;
  top:auto !important;
  right:auto !important;
  bottom:auto !important;
  align-self:stretch !important;
  justify-self:stretch !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:100% !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
  overflow:hidden !important;
}
#live-game-view.is-live-native-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__stage .live-room-viewport,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__stage .live-room-viewport,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__stage .live-room-viewport{
  position:relative !important;
  inset:auto !important;
  display:block !important;
  align-self:stretch !important;
  justify-self:stretch !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:100% !important;
  margin:0 !important;
  transform:none !important;
  overflow:hidden !important;
}
#live-game-view.is-live-native-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__sidebar,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__sidebar,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__sidebar{
  grid-area:right !important;
  align-self:stretch !important;
  justify-self:stretch !important;
}
#live-game-view.is-live-native-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__drawer-rail,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__drawer-rail,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__drawer-rail{grid-area:rail !important;}

/* Oikean laidan vetopaneelit käyttävät omia grid-alueita. Pöydän paikka säilyy
   aina ensimmäisenä sisältösarakkeena myös Windowsin 125/150 % DPI-skaalauksella. */
#live-game-view.is-live-native-fullscreen.is-live-sidebar-drawer:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view:fullscreen.is-live-sidebar-drawer:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view:-webkit-full-screen.is-live-sidebar-drawer:not(.is-live-phone-fullscreen) .live-game-shell{
  grid-template-columns:minmax(0,1fr) 34px !important;
  grid-template-areas:
    "message message"
    "stage rail" !important;
}
#live-game-view.is-live-native-fullscreen.is-live-sidebar-drawer.is-live-sidebar-drawer-open:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view:fullscreen.is-live-sidebar-drawer.is-live-sidebar-drawer-open:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view:-webkit-full-screen.is-live-sidebar-drawer.is-live-sidebar-drawer-open:not(.is-live-phone-fullscreen) .live-game-shell{
  grid-template-columns:minmax(0,1fr) var(--live-sidebar-drawer-width,280px) 34px !important;
  grid-template-areas:
    "message message message"
    "stage right rail" !important;
}

/* 2026-07-22: fullscreenin rakenteellinen Windows-korjaus 2.
   Pelialue ei enää osallistu fullscreenissä vanhaan CSS-gridiin, jossa se saattoi
   Windowsin Chrome/Edgessä päätyä oikean sivupalkin levyiseen sarakkeeseen.
   JavaScript kokoaa sisältörivin oman rungon sisään ja tämä sääntö käyttää vain
   yksiselitteistä flex-järjestystä: vasen paneeli – pelipöytä – oikea paneeli – kahva. */
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  gap:8px !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:100% !important;
  overflow:hidden !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__message,
#live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__message,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__message,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__message{
  position:relative !important;
  inset:auto !important;
  order:1 !important;
  flex:0 0 auto !important;
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:auto !important;
  margin:0 !important;
  transform:none !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__body,
#live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__body,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__body,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__body{
  position:relative !important;
  inset:auto !important;
  order:2 !important;
  flex:1 1 auto !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  gap:10px !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:100% !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  transform:none !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__leftbar,
#live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__leftbar,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__leftbar,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__leftbar{
  position:relative !important;
  inset:auto !important;
  order:1 !important;
  flex:0 0 var(--live-fullscreen-leftbar-width,270px) !important;
  width:var(--live-fullscreen-leftbar-width,270px) !important;
  min-width:0 !important;
  max-width:var(--live-fullscreen-leftbar-width,270px) !important;
  height:100% !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 0 4px 2px !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  transform:none !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen):not(.has-live-left-panels) .live-game-shell__body > .live-game-shell__leftbar,
#live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen):not(.has-live-left-panels) .live-game-shell__body > .live-game-shell__leftbar,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen):not(.has-live-left-panels) .live-game-shell__body > .live-game-shell__leftbar,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen):not(.has-live-left-panels) .live-game-shell__body > .live-game-shell__leftbar,
#live-game-view.is-live-left-panels-suppressed:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__leftbar{
  display:none !important;
  flex-basis:0 !important;
  width:0 !important;
  max-width:0 !important;
  padding:0 !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__stage,
#live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__stage,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__stage,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__stage{
  position:relative !important;
  inset:auto !important;
  left:auto !important;
  top:auto !important;
  right:auto !important;
  bottom:auto !important;
  order:2 !important;
  flex:1 1 auto !important;
  align-self:stretch !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  height:100% !important;
  min-height:0 !important;
  max-height:100% !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  transform:none !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__stage > .live-room-viewport,
#live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__stage > .live-room-viewport,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__stage > .live-room-viewport,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__stage > .live-room-viewport{
  position:relative !important;
  inset:auto !important;
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:100% !important;
  margin:0 !important;
  overflow:hidden !important;
  transform:none !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__sidebar,
#live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__sidebar,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__sidebar,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__sidebar{
  position:relative !important;
  inset:auto !important;
  order:3 !important;
  flex:0 0 var(--live-fullscreen-sidebar-width,236px) !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:8px !important;
  width:var(--live-fullscreen-sidebar-width,236px) !important;
  min-width:0 !important;
  max-width:var(--live-fullscreen-sidebar-width,236px) !important;
  height:100% !important;
  min-height:0 !important;
  max-height:100% !important;
  margin:0 !important;
  padding:0 3px 4px 0 !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  transform:none !important;
  z-index:30 !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__drawer-rail,
#live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__drawer-rail,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__drawer-rail,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__drawer-rail{
  position:relative !important;
  inset:auto !important;
  order:4 !important;
  flex:0 0 34px !important;
  display:none !important;
  width:34px !important;
  min-width:34px !important;
  max-width:34px !important;
  height:100% !important;
  min-height:0 !important;
  margin:0 !important;
  transform:none !important;
}
#live-game-view.is-live-sidebar-drawer:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__leftbar,
#live-game-view.is-live-sidebar-drawer:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__sidebar{
  display:none !important;
}
#live-game-view.is-live-sidebar-drawer:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__drawer-rail{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
#live-game-view.is-live-sidebar-drawer.is-live-sidebar-drawer-open:not(.is-live-phone-fullscreen) .live-game-shell__body > .live-game-shell__sidebar{
  display:flex !important;
  flex:0 0 var(--live-sidebar-drawer-width,280px) !important;
  width:var(--live-sidebar-drawer-width,280px) !important;
  max-width:var(--live-sidebar-drawer-width,280px) !important;
}

/* Ei-fullscreenissä välirunkoa ei käytetä. Jos selain ehtii näyttää sen yhden
   ruudun ajan fullscreenistä poistuttaessa, lapset jatkavat normaalin ruudukon osina. */
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-game-shell__body{
  display:contents !important;
}

/* Pluskierroksen valtinmääräysoikeuden tikkimaksu. Näytetään kierroksen
   päätyttyä ennen seuraavaa jakoa ja pidetään kaikissa näyttötiloissa
   pelipöydän omassa koordinaatistossa. */
.live-plus-payment-overlay{
  position:absolute;
  inset:0;
  z-index:1700;
  overflow:hidden;
  pointer-events:none;
  isolation:isolate;
}
.live-plus-payment-token-layer{
  position:absolute;
  inset:0;
  z-index:1;
  overflow:hidden;
  pointer-events:none;
}
.live-plus-payment-token{
  position:absolute;
  left:var(--pay-from-x,50%);
  top:var(--pay-from-y,80%);
  z-index:var(--pay-z,420);
  width:34px;
  height:42px;
  display:grid;
  place-items:center;
  border:2px solid rgba(255,255,255,.94);
  border-radius:8px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.98),rgba(220,238,255,.96));
  box-shadow:
    0 8px 18px rgba(0,25,56,.34),
    inset 0 0 0 2px rgba(20,104,175,.18);
  color:#07589b;
  font-size:17px;
  font-weight:900;
  line-height:1;
  opacity:0;
  transform:translate(calc(-50% + var(--pay-spread,0px)),-50%) rotate(-8deg) scale(.72);
  animation:live-plus-payment-token-fly 3.16s cubic-bezier(.2,.74,.2,1) var(--pay-delay,0ms) both;
  will-change:left,top,transform,opacity;
}
.live-plus-payment-token::before,
.live-plus-payment-token::after{
  content:"";
  position:absolute;
  inset:3px;
  z-index:-1;
  border:1px solid rgba(255,255,255,.85);
  border-radius:7px;
  background:linear-gradient(145deg,#0c77bc,#064f91);
  transform:translate(-5px,4px) rotate(-5deg);
  box-shadow:0 4px 8px rgba(0,25,56,.22);
}
.live-plus-payment-token::after{
  transform:translate(5px,4px) rotate(5deg);
}
.live-plus-payment-token > span{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#fff3b0;
  border:1px solid #d8a600;
  box-shadow:0 2px 4px rgba(0,0,0,.18);
}
.live-plus-payment-card{
  position:absolute;
  left:50%;
  top:50%;
  z-index:4;
  width:min(610px,calc(100% - 34px));
  padding:14px 18px 16px;
  border:2px solid rgba(255,255,255,.92);
  border-radius:15px;
  background:linear-gradient(180deg,rgba(3,85,145,.96),rgba(1,51,96,.97));
  box-shadow:0 18px 42px rgba(0,18,43,.42),inset 0 1px 0 rgba(255,255,255,.25);
  color:#fff;
  text-align:center;
  transform:translate(-50%,-50%);
  animation:live-plus-payment-card-show 6s ease var(--pay-card-delay,0ms) both;
}
.live-plus-payment-card__eyebrow{
  margin:0 0 10px;
  color:#d9efff;
  font-size:13px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.live-plus-payment-card__flow{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:14px;
}
.live-plus-payment-person{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  font-size:18px;
}
.live-plus-payment-person b{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-plus-payment-person__avatar{
  flex:0 0 38px;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:2px solid rgba(255,255,255,.92);
  border-radius:50%;
  background:#dbeeff;
  color:#07589b;
  font-weight:900;
  box-shadow:0 4px 10px rgba(0,0,0,.25);
}
.live-plus-payment-person__avatar img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.live-plus-payment-card__amount{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-width:122px;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.13);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);
}
.live-plus-payment-card__amount strong{
  color:#ffe86e;
  font-size:24px;
  line-height:1.05;
  text-shadow:0 2px 4px rgba(0,0,0,.34);
}
.live-plus-payment-card__amount small{
  margin-top:3px;
  color:#fff;
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
}
@keyframes live-plus-payment-token-fly{
  0%{
    left:var(--pay-from-x,50%);
    top:var(--pay-from-y,80%);
    opacity:0;
    transform:translate(calc(-50% + var(--pay-spread,0px)),-50%) rotate(-10deg) scale(.66);
  }
  12%{
    opacity:1;
    transform:translate(calc(-50% + var(--pay-spread,0px)),-50%) rotate(-4deg) scale(1);
  }
  72%{
    left:var(--pay-to-x,50%);
    top:var(--pay-to-y,20%);
    opacity:1;
    transform:translate(calc(-50% + var(--pay-spread,0px)),-50%) rotate(5deg) scale(1);
  }
  88%{
    left:var(--pay-to-x,50%);
    top:var(--pay-to-y,20%);
    opacity:1;
    transform:translate(calc(-50% + var(--pay-spread,0px)),-50%) rotate(0deg) scale(.9);
  }
  100%{
    left:var(--pay-to-x,50%);
    top:var(--pay-to-y,20%);
    opacity:0;
    transform:translate(calc(-50% + var(--pay-spread,0px)),-50%) rotate(0deg) scale(.72);
  }
}
@keyframes live-plus-payment-card-show{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.88)}
  6%,90%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(.96)}
}
@media (max-width:760px), (max-height:620px){
  .live-plus-payment-card{
    width:min(470px,calc(100% - 20px));
    padding:10px 12px 12px;
    border-radius:12px;
  }
  .live-plus-payment-card__eyebrow{margin-bottom:7px;font-size:10px}
  .live-plus-payment-card__flow{gap:7px}
  .live-plus-payment-person{gap:5px;font-size:13px}
  .live-plus-payment-person__avatar{flex-basis:28px;width:28px;height:28px}
  .live-plus-payment-card__amount{min-width:88px;padding:6px 8px}
  .live-plus-payment-card__amount strong{font-size:18px}
  .live-plus-payment-card__amount small{font-size:9px}
  .live-plus-payment-token{width:25px;height:32px;border-radius:6px;font-size:13px}
  .live-plus-payment-token > span{width:18px;height:18px}
}
@media (prefers-reduced-motion:reduce){
  .live-plus-payment-token{
    animation-name:live-plus-payment-token-fly-reduced;
  }
}
@keyframes live-plus-payment-token-fly-reduced{
  0%{left:var(--pay-from-x,50%);top:var(--pay-from-y,80%);opacity:0}
  18%{opacity:1}
  72%{left:var(--pay-to-x,50%);top:var(--pay-to-y,20%);opacity:1}
  100%{left:var(--pay-to-x,50%);top:var(--pay-to-y,20%);opacity:0}
}
.live-plus-payment-person__text{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  text-align:left;
}
.live-plus-payment-person__text b{
  max-width:100%;
}
.live-plus-payment-person__text small{
  color:#d9efff;
  font-size:12px;
  font-weight:750;
  white-space:nowrap;
}
@media (max-width:760px), (max-height:620px){
  .live-plus-payment-person__text small{font-size:9px}
}

/* 2026-07-23: tekoälypelaajan ylläpidettävä päätösloki.
   Lokissa näkyy tekoälyn piilokäsi, joten palvelin luovuttaa sen vain ylläpitäjälle. */
.live-ai-log{
  min-width:0;
  overflow:hidden;
  border:1px solid #c8d4e1;
  border-radius:10px;
  background:#fff;
  background-image:none;
  color:#24384b;
  box-shadow:0 6px 16px rgba(40,62,85,.09);
}
.live-ai-log__title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 14px;
  background:#145da0;
  background-image:none;
  color:#fff;
  font-size:16px;
  font-weight:850;
}
.live-ai-log__title small{
  color:#dce8ff;
  font-size:10px;
  font-weight:700;
  text-align:right;
}
.live-ai-log__body{
  display:grid;
  gap:8px;
  max-height:640px;
  padding:10px;
  overflow:auto;
  background:#f4f7fb;
}
.live-ai-log__entry{
  min-width:0;
  border:1px solid #cad6e3;
  border-radius:8px;
  background:#fff;
  overflow:hidden;
}
.live-ai-log__summary{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:7px 10px;
  cursor:pointer;
  list-style:none;
  background:#eef4fa;
  color:#173e66;
}
.live-ai-log__summary::-webkit-details-marker{display:none;}
.live-ai-log__summary::after{
  content:'▾';
  grid-column:3;
  grid-row:1;
  margin-left:7px;
  color:#5d7690;
  font-size:12px;
  transform:rotate(-90deg);
  transition:transform .15s ease;
}
.live-ai-log__entry[open] .live-ai-log__summary::after{transform:rotate(0deg);}
.live-ai-log__avatar{
  display:block;
  grid-column:1;
  grid-row:1;
  width:30px;
  height:30px;
  border:2px solid #fff;
  border-radius:50%;
  object-fit:cover;
  box-shadow:0 0 0 1px #98adc2,0 2px 5px rgba(0,0,0,.16);
}
.live-ai-log__avatar--initial{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#145da0;
  color:#fff;
  font-weight:900;
}
.live-ai-log__summary-main{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.live-ai-log__summary-main b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.live-ai-log__summary-main span{font-size:10px;color:#63798f;}
.live-ai-log__choice{
  grid-column:3;
  grid-row:1;
  margin-right:18px;
  padding:4px 7px;
  border:1px solid #8fb0cf;
  border-radius:999px;
  background:#fff;
  color:#003192;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.live-ai-log__entry-body{
  display:grid;
  gap:8px;
  padding:10px;
  border-top:1px solid #d9e1e9;
}
.live-ai-log__meta,
.live-ai-log__strategy{
  display:flex;
  flex-wrap:wrap;
  gap:6px 14px;
  color:#4e6479;
  font-size:11px;
}
.live-ai-log__section{
  display:grid;
  gap:5px;
  min-width:0;
  color:#334a60;
  font-size:12px;
}
.live-ai-log__chips,
.live-ai-log__inline-list{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  min-width:0;
}
.live-ai-log__card-chip,
.live-ai-log__void-chip,
.live-ai-log__trick-chip{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:2px 6px;
  border:1px solid #c7d4e1;
  border-radius:999px;
  background:#f8fafc;
  color:#263f56;
  font-size:11px;
  line-height:1.15;
}
.live-ai-log__chips.is-legal .live-ai-log__card-chip{border-color:#91b5d6;background:#eef6ff;}
.live-ai-log__classification{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
}
.live-ai-log__analysis-row{
  display:grid;
  align-content:start;
  gap:5px;
  min-width:0;
  padding:7px;
  border:1px solid #d5dee8;
  border-radius:7px;
  background:#f8fafc;
  font-size:11px;
}
.live-ai-log__analysis-row.is-safe{border-color:#a7d2b0;background:#f0faf2;}
.live-ai-log__analysis-row.is-risk{border-color:#e6aaaa;background:#fff2f2;}
.live-ai-log__analysis-row.is-uncertain{border-color:#e0c87b;background:#fff9e7;}
.live-ai-log__reason{
  padding:8px 9px;
  border-left:4px solid #145da0;
  border-radius:5px;
  background:#eef4fa;
  color:#203e5c;
  font-size:12px;
  line-height:1.4;
}
.live-ai-log__empty,
.live-ai-log__empty-value{color:#6d7f90;font-style:italic;font-size:12px;}
.live-ai-log__empty{padding:12px;text-align:center;}

/* Fullscreenissä loki avataan omasta ikonistaan normaalissa sivupaneelivirrassa. */
.live-game-shell__leftbar .live-ai-log,
.live-game-shell__sidebar .live-ai-log{
  position:relative !important;
  inset:auto !important;
  flex:0 0 auto !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
.live-game-shell__leftbar .live-ai-log__body,
.live-game-shell__sidebar .live-ai-log__body{max-height:min(520px,55vh);}

/* Valmiin pelin tulosnäkymässä loki käyttää samaa Kingiranki-korttityyliä. */
.live-game-view.is-live-game-complete .live-ai-log{
  margin:0 !important;
  border:1px solid #c8d4e1 !important;
  border-radius:10px !important;
  background:#fff !important;
  background-image:none !important;
  box-shadow:0 6px 16px rgba(40,62,85,.09) !important;
}
.live-game-view.is-live-game-complete .live-ai-log__title{
  background:#145da0 !important;
  background-image:none !important;
  color:#fff !important;
  text-shadow:none !important;
}
.live-game-view.is-live-game-complete .live-ai-log__body{max-height:none;}

@media (max-width:760px){
  .live-ai-log__title{align-items:flex-start;flex-direction:column;gap:2px;}
  .live-ai-log__title small{text-align:left;}
  .live-ai-log__classification{grid-template-columns:1fr;}
  .live-ai-log__summary{grid-template-columns:32px minmax(0,1fr);}
  .live-ai-log__choice{grid-column:2;grid-row:2;justify-self:start;margin:0 0 2px;}
  .live-ai-log__summary::after{grid-column:2;grid-row:1;justify-self:end;}
}

/* 2026-07-24: ylläpitäjän vuorokohtainen tekoälyapuri alapelaajan paneelissa */
.live-ai-helper-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  height:28px;
  min-width:54px;
  padding:3px 7px 3px 5px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  background:rgba(7,21,36,.72);
  color:#dcecff;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.18),0 4px 10px rgba(0,0,0,.18);
  cursor:pointer;
  font:800 10px/1 Arial,sans-serif;
  letter-spacing:.02em;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.live-ai-helper-toggle:hover{transform:translateY(-1px);}
.live-ai-helper-toggle.is-on{
  border-color:rgba(120,255,177,.68);
  background:linear-gradient(180deg,rgba(22,119,76,.94),rgba(10,72,48,.94));
  color:#effff5;
  box-shadow:0 0 0 1px rgba(115,255,180,.12),0 0 14px rgba(83,244,156,.22),0 4px 10px rgba(0,0,0,.2);
}
.live-ai-helper-toggle.is-off{opacity:.76;filter:saturate(.65);}
.live-ai-helper-icon{display:inline-flex;width:18px;height:18px;flex:0 0 18px;}
.live-ai-helper-icon svg{display:block;width:100%;height:100%;overflow:visible;}
.live-ai-helper-icon svg>path:first-child{fill:currentColor;opacity:.28;stroke:currentColor;stroke-width:1.2;stroke-linejoin:round;}
.live-ai-helper-icon svg>circle{fill:#0f2942;stroke:currentColor;stroke-width:1.25;}
.live-ai-helper-icon .live-ai-helper-icon__face{fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;}
.live-ai-helper-toggle__state{min-width:18px;text-align:left;}

.live-ai-helper-bubble{
  position:absolute;
  right:18px;
  bottom:calc(100% - 8px);
  z-index:260;
  display:grid;
  grid-template-columns:52px minmax(0,360px);
  align-items:end;
  gap:8px;
  max-width:min(440px,calc(100% - 20px));
  pointer-events:auto;
  filter:drop-shadow(0 14px 24px rgba(0,0,0,.34));
  animation:kingiAiHelperBubbleIn .2s ease-out both;
}
@keyframes kingiAiHelperBubbleIn{
  from{opacity:0;transform:translateY(8px) scale(.97);}
  to{opacity:1;transform:translateY(0) scale(1);}
}
.live-ai-helper-bubble__avatar{
  width:52px;
  height:52px;
  border-radius:50%;
  object-fit:cover;
  border:3px solid #d6edff;
  background:#145da0;
  box-shadow:0 0 0 2px rgba(20,93,160,.72),0 7px 15px rgba(0,0,0,.28);
}
.live-ai-helper-bubble__speech{
  position:relative;
  min-width:230px;
  padding:9px 10px 10px;
  border:1px solid #9fc1df;
  border-radius:15px 15px 15px 5px;
  background:linear-gradient(180deg,#ffffff 0%,#edf6ff 100%);
  color:#173a5c;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
.live-ai-helper-bubble__speech::before{
  content:"";
  position:absolute;
  left:-9px;
  bottom:10px;
  width:17px;
  height:17px;
  border-left:1px solid #9fc1df;
  border-bottom:1px solid #9fc1df;
  background:#eef7ff;
  transform:rotate(45deg);
}
.live-ai-helper-bubble__head{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:5px;
  color:#145da0;
  font:900 11px/1.2 Arial,sans-serif;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.live-ai-helper-bubble__head button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#dbeaf7;
  color:#244d70;
  cursor:pointer;
  font:900 17px/1 Arial,sans-serif;
}
.live-ai-helper-bubble__head button:hover{background:#c7def1;color:#123c61;}
.live-ai-helper-bubble__recommendation{position:relative;z-index:1;display:grid;grid-template-columns:42px minmax(0,1fr);gap:9px;align-items:start;}
.live-ai-helper-bubble__card{display:block;width:42px;height:auto;border-radius:5px;box-shadow:0 3px 8px rgba(0,0,0,.24);}
.live-ai-helper-bubble__copy{min-width:0;}
.live-ai-helper-bubble__copy strong{display:block;margin:1px 0 3px;color:#0e4f86;font:900 14px/1.2 Arial,sans-serif;}
.live-ai-helper-bubble__copy p{margin:0;color:#294e6d;font:600 12px/1.35 Arial,sans-serif;}
.live-ai-helper-bubble__loading{position:relative;z-index:1;display:flex;align-items:center;gap:5px;min-height:30px;color:#315c7e;font:700 12px/1.2 Arial,sans-serif;}
.live-ai-helper-bubble__loading span{width:6px;height:6px;border-radius:50%;background:#2584c5;animation:kingiAiHelperDot .9s ease-in-out infinite;}
.live-ai-helper-bubble__loading span:nth-child(2){animation-delay:.14s;}
.live-ai-helper-bubble__loading span:nth-child(3){animation-delay:.28s;margin-right:3px;}
@keyframes kingiAiHelperDot{0%,70%,100%{transform:translateY(0);opacity:.42;}35%{transform:translateY(-4px);opacity:1;}}
.live-ai-helper-bubble__error{position:relative;z-index:1;padding:5px 7px;border-radius:8px;background:#fff0f0;color:#8b2525;font:700 12px/1.35 Arial,sans-serif;}

@media (max-width:760px){
  .live-ai-helper-toggle{height:26px;min-width:48px;padding:2px 6px 2px 4px;}
  .live-ai-helper-icon{width:17px;height:17px;flex-basis:17px;}
  .live-ai-helper-bubble{right:4px;bottom:calc(100% - 4px);grid-template-columns:42px minmax(0,1fr);gap:6px;max-width:calc(100% - 8px);}
  .live-ai-helper-bubble__avatar{width:42px;height:42px;border-width:2px;}
  .live-ai-helper-bubble__speech{min-width:0;padding:8px 9px 9px;}
  .live-ai-helper-bubble__copy strong{font-size:12px;}
  .live-ai-helper-bubble__copy p{font-size:11px;}
}

/* 2026-07-24: valmiin pelin pysyvä verkkosivu käyttää samaa tulostyyliä kuin livepelin loppunäkymä. */
.kingi-completed-game-page{
  display:block !important;
  width:min(1120px, calc(100% - 24px)) !important;
  max-width:1120px !important;
  min-height:0 !important;
  margin:16px auto 28px !important;
  padding:0 !important;
  overflow:visible !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
.kingi-completed-game-page .live-final-table thead,
.kingi-completed-game-page .live-final-table thead tr,
.kingi-completed-game-page .live-final-table thead th{
  background:#145da0 !important;
  background-color:#145da0 !important;
  background-image:none !important;
  color:#fff !important;
  text-shadow:none !important;
  box-shadow:none !important;
}
.kingi-completed-game-page .live-final-score-table tbody th[scope="row"]{
  background:#eef4fa !important;
  background-color:#eef4fa !important;
  background-image:none !important;
  color:#173e66 !important;
  text-shadow:none !important;
  box-shadow:none !important;
}
.kingi-completed-game-page .live-final-score-table tbody tr:nth-child(even) th[scope="row"]{
  background:#f7f9fc !important;
  background-color:#f7f9fc !important;
  background-image:none !important;
}
.kingi-completed-notes__form{
  display:grid;
  gap:10px;
  padding:14px;
}
.kingi-completed-notes__form textarea{
  display:block;
  width:100%;
  min-height:128px;
  box-sizing:border-box;
  padding:11px 12px;
  border:1px solid #aebdcc;
  border-radius:7px;
  background:#fff;
  color:#1f2937;
  font:inherit;
  line-height:1.45;
  resize:vertical;
  box-shadow:inset 0 1px 3px rgba(0,0,0,.08);
}
.kingi-completed-notes__readonly,
.kingi-completed-notes__empty{
  padding:14px;
  color:#334155;
  line-height:1.45;
}
.kingi-completed-notes .tournament-game-results-block{
  padding:0 14px 14px;
}
.kingi-completed-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  box-sizing:border-box;
  padding:9px 17px;
  border:1px solid transparent;
  border-radius:7px;
  font:inherit;
  font-weight:800;
  text-decoration:none !important;
  cursor:pointer;
  box-shadow:0 5px 12px rgba(0,0,0,.12);
}
.kingi-completed-button--primary{
  border-color:#003192;
  background:#003192;
  color:#fff !important;
}
.kingi-completed-button--secondary{
  border-color:#8da4bc;
  background:#fff;
  color:#174d7e !important;
}
@media (max-width:760px){
  .kingi-completed-game-page{
    width:100% !important;
    margin:0 !important;
  }
  .kingi-completed-game-page .live-final-panel__footer-actions{
    display:grid;
    grid-template-columns:1fr;
    padding:0 12px 14px;
  }
  .kingi-completed-game-page .kingi-completed-button{width:100%;}
}

/* 2026-08-04: ylläpitäjän ruutukokosimulaattori livepelin fullscreeniin ja
   layout-editoriin. Valittu todellista näyttöä pienempi CSS-resoluutio
   keskitetään fyysisen fullscreenin sisään. */
.live-screen-simulator-control{
  display:none;
  position:relative;
  z-index:26000;
  flex:0 0 auto;
}
#live-game-view.is-live-fullscreen .live-screen-simulator-control,
#live-game-view:fullscreen .live-screen-simulator-control,
#live-game-view:-webkit-full-screen .live-screen-simulator-control,
#live-game-view.is-live-fullscreen-fallback .live-screen-simulator-control,
#live-game-view.is-live-layout-editor-open .live-screen-simulator-control{
  display:inline-block;
}
.live-screen-simulator-control > summary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  min-width:36px;
  max-width:36px;
  height:36px;
  min-height:36px;
  max-height:36px;
  padding:0;
  border:1px solid rgba(255,255,255,.38);
  border-radius:11px;
  background:linear-gradient(180deg,rgba(31,92,151,.96),rgba(16,56,101,.98));
  color:#fff;
  box-shadow:0 6px 16px rgba(0,0,0,.28);
  cursor:pointer;
  list-style:none;
  font-size:22px;
  line-height:1;
  user-select:none;
}
.live-screen-simulator-control > summary::-webkit-details-marker{display:none;}
.live-screen-simulator-control[open] > summary{
  background:linear-gradient(180deg,#337fc4,#174f89);
  box-shadow:0 0 0 2px rgba(144,207,255,.34),0 8px 18px rgba(0,0,0,.30);
}
.live-screen-simulator-control__panel{
  position:absolute;
  right:0;
  top:calc(100% + 8px);
  z-index:26010;
  display:grid;
  gap:9px;
  width:min(390px,calc(100vw - 20px));
  max-height:min(72vh,620px);
  overflow:auto;
  padding:12px;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.24);
  border-radius:15px;
  background:rgba(7,22,39,.98);
  color:#fff;
  box-shadow:0 20px 44px rgba(0,0,0,.44);
  text-align:left;
}
.live-screen-simulator-control__panel strong{font-size:14px;}
.live-screen-simulator-control__panel label{
  display:grid;
  gap:4px;
  min-width:0;
  color:#dbeeff;
  font-size:11px;
  font-weight:700;
}
.live-screen-simulator-control__panel select,
.live-screen-simulator-control__panel input{
  width:100%;
  min-width:0;
  box-sizing:border-box;
  padding:8px 9px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:9px;
  background:#102b46;
  color:#fff;
  font:600 13px/1.2 Arial,sans-serif;
}
.live-screen-simulator-control__custom{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;
  gap:7px;
  align-items:end;
}
.live-screen-simulator-control__panel button{
  min-height:34px;
  padding:7px 10px;
  border:0;
  border-radius:9px;
  background:#2b79b9;
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.live-screen-simulator-control__panel button.is-secondary{background:#344b60;}
.live-screen-simulator-control__detected{
  padding:7px 8px;
  border-radius:9px;
  background:rgba(255,255,255,.07);
  color:#cfe5f8;
  font-size:11px;
  line-height:1.35;
}

/* Puhelinsimulaatiossa fullscreenin poistumisnappi jää oikeaan yläkulmaan ja
   ruutukokoikoni sen vasemmalle puolelle. */
#live-game-view.is-live-phone-fullscreen .live-screen-simulator-control{
  position:absolute;
  right:42px;
  top:0;
  display:block !important;
}
#live-game-view.is-live-phone-fullscreen .live-screen-simulator-control__panel{
  right:-42px;
  width:min(360px,calc(var(--live-phone-viewport-width,100vw) - 10px));
  max-height:calc(var(--live-phone-viewport-height,100vh) - 54px);
}

/* Fullscreen-elementti pysyy fyysisen näytön kokoisena normaalitilassa.
   Simulaatiossa itse peli-ikkuna saa valitun tarkan CSS-pikselikoon ja se
   keskitetään. Ympärillä näkyy tumma testitausta. */
html.kingi-live-screen-simulated,
body.kingi-live-screen-simulated{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  background:#07111c !important;
}
#live-game-view.is-live-screen-simulated.is-live-fullscreen,
#live-game-view.is-live-screen-simulated:fullscreen,
#live-game-view.is-live-screen-simulated:-webkit-full-screen,
#live-game-view.is-live-screen-simulated.is-live-fullscreen-fallback{
  position:fixed !important;
  inset:auto !important;
  left:50% !important;
  top:50% !important;
  right:auto !important;
  bottom:auto !important;
  width:var(--live-simulated-screen-width) !important;
  min-width:var(--live-simulated-screen-width) !important;
  max-width:var(--live-simulated-screen-width) !important;
  height:var(--live-simulated-screen-height) !important;
  min-height:var(--live-simulated-screen-height) !important;
  max-height:var(--live-simulated-screen-height) !important;
  margin:0 !important;
  transform:translate(-50%,-50%) !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  outline:1px solid rgba(151,205,255,.50);
  box-shadow:0 0 0 9999px #07111c,0 24px 70px rgba(0,0,0,.62) !important;
}
#live-game-view.is-live-screen-simulated:fullscreen::backdrop,
#live-game-view.is-live-screen-simulated:-webkit-full-screen::backdrop{
  background:#07111c;
}

/* Layout-editorissa sama laitevalinta toimii ilman selaimen fullscreeniä.
   Pelin testiruutu on tarkalleen valitun kokoinen; editori-ikkunat ovat
   fixed-elementtejä ja voivat silti jäädä ruudun ulkopuolelle näkyviin. */
#live-game-view.is-live-screen-simulated.is-live-screen-simulator-editor:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback){
  position:relative !important;
  inset:auto !important;
  left:auto !important;
  top:auto !important;
  right:auto !important;
  bottom:auto !important;
  width:var(--live-simulated-screen-width) !important;
  min-width:var(--live-simulated-screen-width) !important;
  max-width:var(--live-simulated-screen-width) !important;
  height:var(--live-simulated-screen-height) !important;
  min-height:var(--live-simulated-screen-height) !important;
  max-height:var(--live-simulated-screen-height) !important;
  margin:18px auto 32px !important;
  transform:none !important;
  box-sizing:border-box !important;
  overflow:visible !important;
  outline:2px solid rgba(100,180,245,.72);
  box-shadow:0 0 0 12px #07111c,0 20px 48px rgba(0,0,0,.38) !important;
}

@media (max-width:520px){
  .live-screen-simulator-control__custom{grid-template-columns:1fr 1fr;}
  .live-screen-simulator-control__custom button{grid-column:1 / -1;}
}

/* 2026-08-04: ruutukokosimulaattorin korjaus 2.
   Natiivi fullscreen-elementti on selaimen määräyksestä aina fyysisen näytön
   kokoinen. Siksi testiresoluutiota ei enää yritetä asettaa fullscreen-elementille
   itselleen, vaan sen sisällä olevalle omalle layout-viewportille. Kaikki pelin
   mitat, flex-/grid-rakenne ja stage-mittaukset syntyvät tämän kehyksen sisältä. */
.live-screen-simulation-frame{
  display:contents;
}

#live-game-view.is-live-screen-simulated.is-live-fullscreen,
#live-game-view.is-live-screen-simulated:fullscreen,
#live-game-view.is-live-screen-simulated:-webkit-full-screen,
#live-game-view.is-live-screen-simulated.is-live-fullscreen-fallback{
  position:fixed !important;
  inset:0 !important;
  left:0 !important;
  top:0 !important;
  right:0 !important;
  bottom:0 !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
  overflow:hidden !important;
  background:#07111c !important;
  outline:0 !important;
  box-shadow:none !important;
}

#live-game-view.is-live-screen-simulated.is-live-fullscreen > .live-screen-simulation-frame,
#live-game-view.is-live-screen-simulated:fullscreen > .live-screen-simulation-frame,
#live-game-view.is-live-screen-simulated:-webkit-full-screen > .live-screen-simulation-frame,
#live-game-view.is-live-screen-simulated.is-live-fullscreen-fallback > .live-screen-simulation-frame{
  position:relative !important;
  inset:auto !important;
  display:flex !important;
  flex:0 0 auto !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  width:var(--live-simulated-screen-width) !important;
  min-width:var(--live-simulated-screen-width) !important;
  max-width:var(--live-simulated-screen-width) !important;
  height:var(--live-simulated-screen-height) !important;
  min-height:var(--live-simulated-screen-height) !important;
  max-height:var(--live-simulated-screen-height) !important;
  margin:0 !important;
  padding:12px !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  transform:none !important;
  border-radius:0 !important;
  background:
    radial-gradient(circle at 50% 42%,
      var(--live-room-tone-center,#287649) 0%,
      var(--live-room-tone-mid,#124e31) 42%,
      var(--live-room-tone-edge,#092719) 76%,
      var(--live-room-tone-outer,#06180f) 100%) !important;
  outline:1px solid rgba(151,205,255,.58) !important;
  box-shadow:0 24px 70px rgba(0,0,0,.62) !important;
  color:#f8fbff;
  container-type:size;
  container-name:kingi-live-test-screen;
}

#live-game-view.is-live-screen-simulated.is-live-fullscreen-fallback > .live-screen-simulation-frame{
  padding:0 !important;
}
#live-game-view.is-live-screen-simulated.is-live-fullscreen-constrained > .live-screen-simulation-frame{
  padding:5px !important;
}

/* Fallback-fullscreenin vanha 100vh-korkeus ei saa vuotaa testikehyksen sisäiseen
   sovellusrunkoon. Kehyksen flex-korkeus on testiresoluution todellinen korkeus. */
#live-game-view.is-live-screen-simulated > .live-screen-simulation-frame > .live-game-view__topbar{
  flex:0 0 auto !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
}
#live-game-view.is-live-screen-simulated > .live-screen-simulation-frame > .live-game-app-frame{
  display:flex !important;
  flex:1 1 auto !important;
  flex-direction:column !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:hidden !important;
}

/* CAD-editorissa fyysinen sivu jää editorin työalueeksi ja valittu laitekoko
   piirretään omana keskitettynä viewport-kehyksenään. */
#live-game-view.is-live-screen-simulated.is-live-screen-simulator-editor:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback){
  position:relative !important;
  inset:auto !important;
  display:flex !important;
  align-items:flex-start !important;
  justify-content:center !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:auto !important;
  min-height:calc(var(--live-simulated-screen-height) + 50px) !important;
  max-height:none !important;
  margin:0 0 32px !important;
  padding:18px 0 32px !important;
  transform:none !important;
  box-sizing:border-box !important;
  overflow:visible !important;
  background:#07111c !important;
  outline:0 !important;
  box-shadow:none !important;
}
#live-game-view.is-live-screen-simulated.is-live-screen-simulator-editor:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) > .live-screen-simulation-frame{
  position:relative !important;
  inset:auto !important;
  display:flex !important;
  flex:0 0 auto !important;
  flex-direction:column !important;
  width:var(--live-simulated-screen-width) !important;
  min-width:var(--live-simulated-screen-width) !important;
  max-width:var(--live-simulated-screen-width) !important;
  height:var(--live-simulated-screen-height) !important;
  min-height:var(--live-simulated-screen-height) !important;
  max-height:var(--live-simulated-screen-height) !important;
  margin:0 auto !important;
  padding:16px !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  transform:none !important;
  border-radius:0 !important;
  background:
    radial-gradient(circle at 50% 42%,
      var(--live-room-tone-center,#287649) 0%,
      var(--live-room-tone-mid,#124e31) 42%,
      var(--live-room-tone-edge,#092719) 76%,
      var(--live-room-tone-outer,#06180f) 100%) !important;
  outline:2px solid rgba(100,180,245,.72) !important;
  box-shadow:0 20px 48px rgba(0,0,0,.38) !important;
  container-type:size;
  container-name:kingi-live-test-screen;
}

/* Fyysisen iMacin media queryt eivät saa määrätä simuloidun puhelimen työkaluriviä. */
#live-game-view.is-live-screen-simulated-compact .live-game-view__topbar{
  min-width:0 !important;
}
#live-game-view.is-live-screen-simulated-compact .live-game-view__actions,
#live-game-view.is-live-screen-simulated-compact .live-game-view__action-row{
  min-width:0 !important;
  max-width:100% !important;
}
#live-game-view.is-live-screen-simulated-phone .live-game-view__brand{
  display:none !important;
}

/* 2026-08-04: ruutukokosimulaattorin näkyvyyskorjaus 3.
   Testikehys on pelin ainoa layout-viewport. Fullscreenin aiemmat fyysiseen
   viewportiin sidotut height/position-säännöt eivät saa tyhjentää kehystä. */
#live-game-view.is-live-screen-simulated > .live-screen-simulation-frame{
  isolation:isolate !important;
  visibility:visible !important;
  opacity:1 !important;
}
#live-game-view.is-live-screen-simulated > .live-screen-simulation-frame > .live-game-view__topbar,
#live-game-view.is-live-screen-simulated > .live-screen-simulation-frame > .live-fullscreen-brand,
#live-game-view.is-live-screen-simulated > .live-screen-simulation-frame > .live-game-app-frame{
  visibility:visible !important;
  opacity:1 !important;
}
#live-game-view.is-live-screen-simulated > .live-screen-simulation-frame > .live-game-app-frame{
  position:relative !important;
  inset:auto !important;
  display:flex !important;
  flex:1 1 0 !important;
  flex-direction:column !important;
  align-items:stretch !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:100% !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  transform:none !important;
}
#live-game-view.is-live-screen-simulated > .live-screen-simulation-frame > .live-game-app-frame > .live-game-shell{
  position:relative !important;
  inset:auto !important;
  display:flex !important;
  flex:1 1 0 !important;
  flex-direction:column !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:100% !important;
  margin:0 !important;
  overflow:hidden !important;
  transform:none !important;
}
#live-game-view.is-live-screen-simulated .live-game-shell__body{
  flex:1 1 0 !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:100% !important;
  overflow:hidden !important;
}
#live-game-view.is-live-screen-simulated .live-game-shell__stage,
#live-game-view.is-live-screen-simulated .live-room-viewport{
  min-width:0 !important;
  min-height:0 !important;
  visibility:visible !important;
  opacity:1 !important;
}
/* Simuloitu puhelin on testikehyksen sisäinen näkymä. Fyysisen dokumentin
   fixed-/contain-rajoituksia ei käytetä sen sisäiseen pelisovellukseen. */
#live-game-view.is-live-screen-simulated.is-live-phone-fullscreen{
  contain:none !important;
}
#live-game-view.is-live-screen-simulated.is-live-phone-fullscreen > .live-screen-simulation-frame > .live-game-app-frame{
  position:relative !important;
  left:auto !important;
  top:auto !important;
  right:auto !important;
  bottom:auto !important;
  flex:1 1 0 !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:100% !important;
}
#live-game-view.is-live-screen-simulated.is-live-phone-fullscreen > .live-screen-simulation-frame > .live-game-view__topbar{
  flex:0 0 auto !important;
}

/* Tekoälyapurin kupla siirretään pelilavan ylimmäksi overlayksi. Se ei jää
   vasemman/oikean pelaajapaneelin tai canvas-kerroksen alle. */
.live-ai-helper-bubble.is-stage-overlay{
  position:absolute !important;
  right:auto !important;
  bottom:auto !important;
  z-index:32000 !important;
  pointer-events:auto !important;
  isolation:isolate !important;
}
.live-ai-helper-bubble.is-stage-overlay .live-ai-helper-bubble__speech,
.live-ai-helper-bubble.is-stage-overlay .live-ai-helper-bubble__avatar{
  position:relative;
  z-index:1;
}

/* 2026-08-04: ruutukokosimulaattorin rakenteellinen korjaus 4.
   Testikehys on vain visuaalinen tausta. Pelin yläpalkkia ja sovellusrunkoa ei
   enää siirretä kehyksen sisään, koska se katkaisi fullscreenin suoriin lapsiin
   perustuvat CSS-säännöt ja saattoi jättää näkyviin vain vihreän ruudun. */
#live-game-view.is-live-screen-simulated.is-live-fullscreen,
#live-game-view.is-live-screen-simulated:fullscreen,
#live-game-view.is-live-screen-simulated:-webkit-full-screen,
#live-game-view.is-live-screen-simulated.is-live-fullscreen-fallback{
  --live-simulated-origin-left:calc(50% - (var(--live-simulated-screen-width) / 2));
  --live-simulated-origin-top:calc(50% - (var(--live-simulated-screen-height) / 2));
  position:fixed !important;
  inset:0 !important;
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  transform:none !important;
  background:#07111c !important;
}
#live-game-view.is-live-screen-simulated.is-live-screen-simulator-editor:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback){
  --live-simulated-origin-left:calc(50% - (var(--live-simulated-screen-width) / 2));
  --live-simulated-origin-top:18px;
  position:relative !important;
  inset:auto !important;
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:auto !important;
  min-height:calc(var(--live-simulated-screen-height) + 54px) !important;
  max-height:none !important;
  margin:0 0 32px !important;
  padding:0 !important;
  overflow:visible !important;
  transform:none !important;
  background:#07111c !important;
}
#live-game-view.is-live-screen-simulated > .live-screen-simulation-frame{
  position:absolute !important;
  left:var(--live-simulated-origin-left) !important;
  top:var(--live-simulated-origin-top) !important;
  right:auto !important;
  bottom:auto !important;
  display:block !important;
  width:var(--live-simulated-screen-width) !important;
  min-width:var(--live-simulated-screen-width) !important;
  max-width:var(--live-simulated-screen-width) !important;
  height:var(--live-simulated-screen-height) !important;
  min-height:var(--live-simulated-screen-height) !important;
  max-height:var(--live-simulated-screen-height) !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  transform:none !important;
  border-radius:0 !important;
  background:
    radial-gradient(circle at 50% 42%,
      var(--live-room-tone-center,#287649) 0%,
      var(--live-room-tone-mid,#124e31) 42%,
      var(--live-room-tone-edge,#092719) 76%,
      var(--live-room-tone-outer,#06180f) 100%) !important;
  outline:1px solid rgba(151,205,255,.58) !important;
  box-shadow:0 24px 70px rgba(0,0,0,.62) !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:none !important;
  z-index:0 !important;
}
#live-game-view.is-live-screen-simulated > .live-game-view__topbar{
  position:absolute !important;
  left:calc(var(--live-simulated-origin-left) + var(--live-simulated-frame-padding,0px)) !important;
  top:calc(var(--live-simulated-origin-top) + var(--live-simulated-frame-padding,0px)) !important;
  right:auto !important;
  bottom:auto !important;
  width:calc(var(--live-simulated-screen-width) - (2 * var(--live-simulated-frame-padding,0px))) !important;
  min-width:0 !important;
  max-width:none !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 !important;
  box-sizing:border-box !important;
  transform:none !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
  z-index:22000 !important;
}
#live-game-view.is-live-screen-simulated > .live-game-app-frame{
  position:absolute !important;
  left:calc(var(--live-simulated-origin-left) + var(--live-simulated-frame-padding,0px)) !important;
  top:calc(var(--live-simulated-origin-top) + var(--live-simulated-frame-padding,0px) + var(--live-simulated-topbar-height,0px) + var(--live-simulated-content-gap,0px)) !important;
  right:auto !important;
  bottom:auto !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  width:calc(var(--live-simulated-screen-width) - (2 * var(--live-simulated-frame-padding,0px))) !important;
  min-width:0 !important;
  max-width:none !important;
  height:max(1px,calc(var(--live-simulated-screen-height) - (2 * var(--live-simulated-frame-padding,0px)) - var(--live-simulated-topbar-height,0px) - var(--live-simulated-content-gap,0px))) !important;
  min-height:1px !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  transform:none !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
  z-index:2 !important;
}
#live-game-view.is-live-screen-simulated > .live-game-app-frame > .live-game-shell{
  position:relative !important;
  inset:auto !important;
  flex:1 1 0 !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:100% !important;
  margin:0 !important;
  overflow:hidden !important;
  transform:none !important;
  visibility:visible !important;
  opacity:1 !important;
}
#live-game-view.is-live-screen-simulated > .live-fullscreen-brand{
  z-index:3 !important;
}

/* 2026-08-04: ruutukokosimulaattorin korjaus 5.
   Kaikki geometria tulee JavaScriptistä valmiina pikseliarvoina. Näin CSS ei
   tarvitse selaimissa tukemattomia calc()-kerto- tai jakolaskuja. Valitsimet on
   tehty yhtä tarkoiksi kuin vanhat fullscreen-säännöt, jotta ne varmasti voittavat. */
#live-game-view.is-live-screen-simulated.is-live-fullscreen > .live-screen-simulation-frame,
#live-game-view.is-live-screen-simulated:fullscreen > .live-screen-simulation-frame,
#live-game-view.is-live-screen-simulated:-webkit-full-screen > .live-screen-simulation-frame,
#live-game-view.is-live-screen-simulated.is-live-fullscreen-fallback > .live-screen-simulation-frame,
#live-game-view.is-live-screen-simulated.is-live-screen-simulator-editor > .live-screen-simulation-frame{
  position:absolute !important;
  left:var(--live-simulated-origin-left,0px) !important;
  top:var(--live-simulated-origin-top,0px) !important;
  right:auto !important;
  bottom:auto !important;
  display:block !important;
  width:var(--live-simulated-screen-width) !important;
  min-width:var(--live-simulated-screen-width) !important;
  max-width:var(--live-simulated-screen-width) !important;
  height:var(--live-simulated-screen-height) !important;
  min-height:var(--live-simulated-screen-height) !important;
  max-height:var(--live-simulated-screen-height) !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
  pointer-events:none !important;
  z-index:0 !important;
}
#live-game-view.is-live-screen-simulated.is-live-fullscreen > .live-game-view__topbar,
#live-game-view.is-live-screen-simulated:fullscreen > .live-game-view__topbar,
#live-game-view.is-live-screen-simulated:-webkit-full-screen > .live-game-view__topbar,
#live-game-view.is-live-screen-simulated.is-live-fullscreen-fallback > .live-game-view__topbar,
#live-game-view.is-live-screen-simulated.is-live-screen-simulator-editor > .live-game-view__topbar{
  left:var(--live-simulated-content-left,0px) !important;
  top:var(--live-simulated-topbar-top,0px) !important;
  width:var(--live-simulated-content-width,1px) !important;
  min-width:0 !important;
  max-width:var(--live-simulated-content-width,1px) !important;
}
#live-game-view.is-live-screen-simulated.is-live-fullscreen > .live-game-app-frame,
#live-game-view.is-live-screen-simulated:fullscreen > .live-game-app-frame,
#live-game-view.is-live-screen-simulated:-webkit-full-screen > .live-game-app-frame,
#live-game-view.is-live-screen-simulated.is-live-fullscreen-fallback > .live-game-app-frame,
#live-game-view.is-live-screen-simulated.is-live-screen-simulator-editor > .live-game-app-frame{
  left:var(--live-simulated-content-left,0px) !important;
  top:var(--live-simulated-content-top,0px) !important;
  width:var(--live-simulated-content-width,1px) !important;
  min-width:0 !important;
  max-width:var(--live-simulated-content-width,1px) !important;
  height:var(--live-simulated-content-height,1px) !important;
  min-height:1px !important;
  max-height:var(--live-simulated-content-height,1px) !important;
}


/* 2026-08-05: Ranking-listan otsikkopalkki täsmälleen taulukon levyiseksi.
   Sama geometria kuin Uusimmat pelit -listassa, ilman vanhaa negatiivista marginaalia. */
.ranking-table > thead > tr:first-child > td.ranking-title-cell,
.game-list-table > tbody > tr:first-child > td.game-list-title-cell{
  padding:0 !important;
  border:0 !important;
  background:#003192 !important;
  background-image:none !important;
}
.ranking-header,
.game-list-header{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  margin:0 !important;
  padding:10px 12px !important;
  border-radius:var(--radius) var(--radius) 0 0 !important;
  background:#003192 !important;
  background-image:none !important;
}
.ranking-header h2,
.game-list-header h2{
  margin:0 !important;
  color:#eff6ff !important;
  text-align:center;
  text-shadow:0 2px 10px rgba(0,0,0,.42) !important;
}
.ranking-table{
  box-sizing:border-box !important;
}

/* 2026-08-05: Uusimmat pelit säilyttää mobiilissa kolmannen tilasarakkeen.
   Pitkä pelikuvaus poistuu ensin, mutta live-tila, turnauspainike ja linkitetty
   WhatsApp-QR jäävät näkyviin. Linkin muokkaus tehdään vain leveämmällä näytöllä. */
@media (max-width:760px){
  .game-list-table{
    display:table !important;
    width:100% !important;
    max-width:100% !important;
    table-layout:fixed !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  .game-list-table > tbody,
  .game-list-table > tbody > tr{
    width:100% !important;
  }
  .game-list-table .game-datetime-cell{
    width:76px !important;
    max-width:76px !important;
    box-sizing:border-box !important;
    padding:5px 3px !important;
    white-space:normal !important;
    vertical-align:top !important;
  }
  .game-list-table .game-players-cell{
    width:auto !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    padding:5px 5px !important;
    vertical-align:top !important;
  }
  .game-list-table .game-note-cell{
    display:table-cell !important;
    width:82px !important;
    min-width:82px !important;
    max-width:82px !important;
    box-sizing:border-box !important;
    padding:5px 4px !important;
    overflow:hidden !important;
    overflow-wrap:anywhere !important;
    vertical-align:top !important;
  }
  .game-list-table .game-note-description{
    display:none !important;
  }
  .game-list-table .live-game-list-badge{
    display:block !important;
    width:100% !important;
    box-sizing:border-box !important;
    margin:0 0 5px !important;
    padding:4px 3px !important;
    border-radius:6px !important;
    font-size:10px !important;
    line-height:1.15 !important;
    text-align:center !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }
  .game-list-table .tournament-game-results-block{
    margin:4px 0 0 !important;
  }
  .game-list-table .tournament-game-results-block .button-link,
  .game-list-table .tournament-game-results-block a{
    display:flex !important;
    width:100% !important;
    min-height:0 !important;
    box-sizing:border-box !important;
    padding:5px 3px !important;
    border-radius:6px !important;
    font-size:9px !important;
    line-height:1.15 !important;
    text-align:center !important;
    white-space:normal !important;
  }
  .game-list-table .live-game-whatsapp{
    margin:4px 0 0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
  .game-list-table .live-game-whatsapp--editable-only{
    display:none !important;
  }
  .game-list-table .live-game-whatsapp__title,
  .game-list-table .live-game-whatsapp__notice,
  .game-list-table .live-game-whatsapp__links,
  .game-list-table .live-game-whatsapp__form,
  .game-list-table .live-game-whatsapp__clear{
    display:none !important;
  }
  .game-list-table .live-game-whatsapp__qr-row{
    display:block !important;
    margin:0 !important;
  }
  .game-list-table .live-game-whatsapp__qr-row > a{
    display:block !important;
    width:58px !important;
    max-width:100% !important;
    margin:0 auto !important;
    line-height:0 !important;
  }
  .game-list-table .live-game-whatsapp__qr-row img{
    display:block !important;
    width:58px !important;
    height:58px !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    margin:0 !important;
    padding:3px !important;
    border-radius:7px !important;
  }
  .game-list-table .game-live-actions{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:3px !important;
    margin-top:5px !important;
  }
  .game-list-table .game-live-actions a,
  .game-list-table .game-datetime-cell > a{
    display:block !important;
    font-size:10px !important;
    line-height:1.15 !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }
}

@media (max-width:390px){
  .game-list-table .game-datetime-cell{
    width:68px !important;
    max-width:68px !important;
  }
  .game-list-table .game-note-cell{
    width:72px !important;
    min-width:72px !important;
    max-width:72px !important;
    padding-left:3px !important;
    padding-right:3px !important;
  }
  .game-list-table .live-game-whatsapp__qr-row > a,
  .game-list-table .live-game-whatsapp__qr-row img{
    width:52px !important;
    height:52px !important;
  }
  .game-list-table .game-player-row{
    grid-template-columns:14px minmax(0,1fr) 24px !important;
    gap:2px !important;
    font-size:10px !important;
  }
  .game-list-table .game-result-player-avatar{
    flex-basis:17px !important;
    width:17px !important;
    height:17px !important;
  }
}

/* Mobiilin oma tiivis tilamerkintä tavallisille, ei-live-peleille. */
.game-list-mobile-status{
  display:none;
}
@media (max-width:760px){
  .game-list-table .game-list-mobile-status{
    display:block !important;
    width:100% !important;
    box-sizing:border-box !important;
    margin:0 0 5px !important;
    padding:4px 3px !important;
    border:1px solid rgba(41,82,125,.24) !important;
    border-radius:6px !important;
    background:#e8f1fa !important;
    color:#244b70 !important;
    font-size:10px !important;
    font-weight:700 !important;
    line-height:1.15 !important;
    text-align:center !important;
    white-space:normal !important;
  }
  .game-list-table .game-list-mobile-status--active{
    background:#fff4d6 !important;
    color:#72510b !important;
    border-color:rgba(150,105,12,.25) !important;
  }
}


/* 2026-08-05: live-chatin nopeat emoji-reaktiot */
.live-chat-reactions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  margin:0 0 10px;
}
.live-chat-reaction{
  appearance:none;
  width:40px;
  height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  padding:0;
  border:1px solid rgba(255,255,255,.18);
  border-radius:12px;
  background:rgba(255,255,255,.09);
  color:#fff;
  font:inherit;
  font-size:22px;
  line-height:1;
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
  transition:transform .12s ease, background .12s ease, border-color .12s ease, opacity .12s ease;
}
.live-chat-reaction:hover,
.live-chat-reaction:focus-visible{
  transform:translateY(-2px) scale(1.05);
  background:rgba(255,255,255,.17);
  border-color:rgba(255,226,138,.72);
}
.live-chat-reaction:active{transform:translateY(0) scale(.96);}
.live-chat-reaction:disabled{opacity:.52;cursor:wait;}
.live-chat-reaction.is-sending{animation:live-chat-reaction-pulse .7s ease-in-out infinite alternate;}
@keyframes live-chat-reaction-pulse{to{transform:scale(1.12);}}
.live-fullscreen-chat__form{
  flex-direction:column !important;
  align-items:stretch !important;
}
.live-fullscreen-chat__form .live-chat-reactions{
  gap:4px !important;
  margin:0 !important;
  flex-wrap:nowrap !important;
  justify-content:space-between !important;
}
.live-fullscreen-chat__form .live-chat-reaction{
  width:32px !important;
  height:30px !important;
  min-width:0 !important;
  padding:0 !important;
  border-radius:9px !important;
  font-size:18px !important;
}
.live-fullscreen-chat__compose-row{
  display:flex !important;
  align-items:stretch !important;
  gap:6px !important;
  min-width:0 !important;
}
.live-fullscreen-chat__compose-row textarea{flex:1 1 auto !important;min-width:0 !important;}
.live-fullscreen-chat__compose-row > button{flex:0 0 auto !important;align-self:stretch !important;}
@media (max-width:640px){
  .live-chat-modal__form .live-chat-reactions{gap:5px;justify-content:space-between;}
  .live-chat-modal__form .live-chat-reaction{width:38px;height:34px;font-size:20px;}
}

/* 2026-08-05: alapelaajan emoji-pikavalikko ja kevyt pöytälento. */
.live-player-reaction-toggle{
  appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:2px !important;
  width:38px !important;
  min-width:38px !important;
  max-width:38px !important;
  height:24px !important;
  padding:0 4px !important;
  margin:0 !important;
  border:1px solid rgba(255,222,142,.34) !important;
  border-radius:999px !important;
  background:rgba(7,24,39,.66) !important;
  color:#ffe28a !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),0 3px 10px rgba(0,0,0,.18) !important;
  cursor:pointer !important;
  pointer-events:auto !important;
  overflow:visible !important;
  transition:transform .12s ease,background .12s ease,border-color .12s ease !important;
}
.live-player-reaction-toggle:hover,
.live-player-reaction-toggle:focus-visible,
.live-player-reaction-toggle.is-open{
  transform:translateY(-1px) !important;
  background:rgba(25,63,74,.88) !important;
  border-color:rgba(255,226,138,.72) !important;
}
.live-player-reaction-toggle:focus-visible{
  outline:2px solid rgba(255,226,138,.72) !important;
  outline-offset:2px !important;
}
.live-player-reaction-toggle__face{
  display:inline-block !important;
  font:900 18px/1 Arial,sans-serif !important;
  transform:translateY(-.5px) !important;
}
.live-player-reaction-toggle__caret{
  display:inline-block !important;
  font:900 8px/1 Arial,sans-serif !important;
  opacity:.82 !important;
  transition:transform .12s ease !important;
}
.live-player-reaction-toggle.is-open .live-player-reaction-toggle__caret{transform:rotate(180deg) !important;}
.live-seat--bottom .live-seat__meta--self-inline .live-player-reaction-toggle,
.live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] .live-player-reaction-toggle,
.live-seat__meta--bottom-topbar .live-player-reaction-toggle{
  flex:0 0 38px !important;
  pointer-events:auto !important;
}
.live-seat__meta--bottom-topbar.is-narrow-width .live-player-reaction-toggle{transform:scale(.88) !important;}
.live-seat__meta--bottom-topbar.is-tiny-width .live-player-reaction-toggle{transform:scale(.76) !important;}

.live-player-reaction-popover{
  position:fixed !important;
  z-index:42000 !important;
  display:grid !important;
  grid-template-columns:repeat(3,44px) !important;
  gap:7px !important;
  box-sizing:border-box !important;
  width:auto !important;
  padding:9px !important;
  border:1px solid rgba(255,226,138,.54) !important;
  border-radius:15px !important;
  background:linear-gradient(180deg,rgba(7,31,43,.97),rgba(3,18,28,.97)) !important;
  box-shadow:0 14px 34px rgba(0,0,0,.42),inset 0 0 0 1px rgba(255,255,255,.07) !important;
  backdrop-filter:blur(8px) !important;
  pointer-events:auto !important;
  isolation:isolate !important;
}
.live-player-reaction-popover::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-6px;
  width:12px;
  height:12px;
  transform:translateX(-50%) rotate(45deg);
  background:#061d2a;
  border-right:1px solid rgba(255,226,138,.54);
  border-bottom:1px solid rgba(255,226,138,.54);
}
.live-player-reaction-popover.opens-down::after{
  top:-6px;
  bottom:auto;
  transform:translateX(-50%) rotate(225deg);
}
.live-player-reaction-option{
  appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:44px !important;
  height:40px !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.14) !important;
  border-radius:12px !important;
  background:rgba(255,255,255,.08) !important;
  color:#fff !important;
  font:inherit !important;
  font-size:24px !important;
  line-height:1 !important;
  cursor:pointer !important;
  transition:transform .12s ease,background .12s ease,border-color .12s ease !important;
}
.live-player-reaction-option:hover,
.live-player-reaction-option:focus-visible{
  transform:translateY(-2px) scale(1.08) !important;
  background:rgba(255,255,255,.18) !important;
  border-color:rgba(255,226,138,.74) !important;
  outline:none !important;
}
.live-player-reaction-option:active{transform:scale(.94) !important;}
.live-player-reaction-option:disabled{opacity:.5 !important;cursor:wait !important;}

.live-quick-reaction-flight-host{
  position:fixed !important;
  inset:0 !important;
  z-index:41000 !important;
  overflow:hidden !important;
  pointer-events:none !important;
  contain:layout paint !important;
}
.live-quick-reaction-flight-host.is-fullscreen-host{
  position:absolute !important;
}
.live-quick-reaction-flight{
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  display:block !important;
  width:1.25em !important;
  height:1.25em !important;
  line-height:1.18 !important;
  text-align:center !important;
  pointer-events:none !important;
  user-select:none !important;
  will-change:transform,opacity,filter !important;
  filter:drop-shadow(0 9px 12px rgba(0,0,0,.36)) !important;
  transform-origin:center center !important;
}
.live-target-reaction-flight{
  z-index:2 !important;
  filter:drop-shadow(0 10px 14px rgba(0,0,0,.42)) drop-shadow(0 0 12px rgba(255,226,138,.62)) !important;
}
.live-quick-reaction-flight.is-css-flight{
  animation:kingiQuickReactionFlight var(--reaction-flight-duration,4450ms) cubic-bezier(.18,.76,.18,1) forwards !important;
}
@keyframes kingiQuickReactionFlight{
  0%{transform:translate3d(var(--reaction-start-x),var(--reaction-start-y),0) translate(-50%,-50%) scale(.46) rotate(-10deg);opacity:0;}
  8%{opacity:1;}
  70%{transform:translate3d(var(--reaction-target-x),calc(var(--reaction-target-y) - 34px),0) translate(-50%,-50%) scale(1.18) rotate(5deg);opacity:1;}
  100%{transform:translate3d(var(--reaction-target-x),var(--reaction-target-y),0) translate(-50%,-50%) scale(.92);opacity:0;}
}
@media (max-width:620px){
  .live-player-reaction-toggle{width:34px !important;min-width:34px !important;max-width:34px !important;height:23px !important;}
  .live-player-reaction-toggle__face{font-size:16px !important;}
  .live-player-reaction-popover{grid-template-columns:repeat(3,40px) !important;gap:6px !important;padding:8px !important;}
  .live-player-reaction-option{width:40px !important;height:38px !important;font-size:22px !important;}
}

/* 2026-08-05: alapelaajan infopalkki jaon aikana aina korttien yläpuolella.
   Jaon fan-proxy on kerroksessa 8250 ja avatarit 8350, joten ohjaimet
   nostetaan niiden päälle. Puhelintelakassa metarivi on vastaavasti
   korttikäden slotin yläpuolella. */
.live-room-stage.is-dealing-stage .live-seat--bottom .live-seat__meta--self-inline,
.live-room-stage.is-dealing-stage .live-seat__meta--bottom-topbar,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"]{
  z-index:8800 !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
  isolation:isolate !important;
}
.live-room-stage.is-dealing-stage .live-seat--bottom .live-seat__meta--self-inline button,
.live-room-stage.is-dealing-stage .live-seat__meta--bottom-topbar button,
.live-room-stage.is-dealing-stage .live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"] button{
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
}
/* Kun alapelaajan metarivi on kopioitu otsikkopalkiksi, alkuperäinen rivi ei
   saa palata jaon aikana näkyviin. Muuten korttialueella näkyvät toiseen
   kertaan korttijärjestys-, emoji- ja AI-painikkeet. */
.live-room-stage.is-dealing-stage
  .live-seat--bottom
  .live-seat__meta--self-inline[data-layout-proxy-source="seat_bottom_meta"]:not([data-layout-proxy-id]){
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.live-room-stage.is-dealing-stage
  .live-seat--bottom
  .live-seat__meta--self-inline[data-layout-proxy-source="seat_bottom_meta"]:not([data-layout-proxy-id])
  [data-action="toggle-card-sort-order"],
.live-room-stage.is-dealing-stage
  .live-seat--bottom
  .live-seat__meta--self-inline[data-layout-proxy-source="seat_bottom_meta"]:not([data-layout-proxy-id])
  [data-action="toggle-player-reaction-menu"],
.live-room-stage.is-dealing-stage
  .live-seat--bottom
  .live-seat__meta--self-inline[data-layout-proxy-source="seat_bottom_meta"]:not([data-layout-proxy-id])
  [data-action="toggle-ai-helper"]{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

/* 2026-08-06: jaon avatar-proxyjen lähde/kanoninen kopio -invariantti.
   visibility ei yksin piilota lähdettä, koska aiempi jaon sääntö asettaa
   lapsikuvan takaisin visible-tilaan. Opacity kuorella piilottaa koko lähteen
   varmasti. Sama sääntö kattaa ylä-, ala- ja molemmat sivupelaajat, joten
   ruudun ulkopuolellekaan ei jää turhia näkyviä avatar-kopioita. */
.live-room-stage.is-dealing-stage
  [data-layout-proxy-source^="seat_"][data-layout-proxy-source$="_avatar"]:not([data-layout-proxy-id]){
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
  filter:none !important;
}
.live-room-stage.is-dealing-stage
  [data-layout-proxy-source^="seat_"][data-layout-proxy-source$="_avatar"]:not([data-layout-proxy-id])
  .live-seat__avatar{
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
  filter:none !important;
}
/* Näkyvä proxy käsitellään yhtenä kuvakerroksena. Aiemmin sekä kuoren että
   kuvan opacity/drop-shadow pehmensivät etenkin isoa alapelaajan avatarta. */
.live-room-stage.is-dealing-stage
  > .live-layout-detached-proxy[data-layout-proxy-id$="_avatar"]{
  visibility:visible !important;
  opacity:1 !important;
  filter:drop-shadow(0 14px 26px rgba(0,0,0,.42)) !important;
}
.live-room-stage.is-dealing-stage
  > .live-layout-detached-proxy[data-layout-proxy-id$="_avatar"]
  > .live-seat__avatar{
  visibility:visible !important;
  opacity:1 !important;
  filter:none !important;
  image-rendering:auto !important;
}

/* 2026-08-06: leveä Windows-/työpöytänäyttö käyttää aina normaalia oikeaa
   sivupalkkia. Drawer kuuluu vain puhelimen/pienen kosketusnäytön omaan
   fullscreen-tilaan. Tämä on myös varmistus mahdollisesti vanhaksi jäänyttä
   drawer-luokkaa vastaan. */
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen)
  .live-game-shell__body > .live-game-shell__sidebar,
#live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen)
  .live-game-shell__body > .live-game-shell__sidebar,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen)
  .live-game-shell__body > .live-game-shell__sidebar,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen)
  .live-game-shell__body > .live-game-shell__sidebar{
  display:flex !important;
}
#live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen)
  .live-game-shell__body > .live-game-shell__drawer-rail,
#live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen)
  .live-game-shell__body > .live-game-shell__drawer-rail,
#live-game-view:fullscreen:not(.is-live-phone-fullscreen)
  .live-game-shell__body > .live-game-shell__drawer-rail,
#live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen)
  .live-game-shell__body > .live-game-shell__drawer-rail{
  display:none !important;
}

/* Matalalla mutta leveällä työpöytänäytöllä kaikki oikean laidan paneelit
   säilyvät samalla ruudulla. Pitkä tikkihistoria vierii oman listansa sisällä;
   pelaajarivit ja kello tiivistyvät, mutta mitään paneelia ei poisteta. */
@media (min-width:900px) and (max-height:820px){
  #live-game-view.is-live-fullscreen:not(.is-live-phone-fullscreen)
    .live-game-shell__body > .live-game-shell__sidebar,
  #live-game-view.is-live-fullscreen-fallback:not(.is-live-phone-fullscreen)
    .live-game-shell__body > .live-game-shell__sidebar,
  #live-game-view:fullscreen:not(.is-live-phone-fullscreen)
    .live-game-shell__body > .live-game-shell__sidebar,
  #live-game-view:-webkit-full-screen:not(.is-live-phone-fullscreen)
    .live-game-shell__body > .live-game-shell__sidebar{
    gap:5px !important;
    padding-bottom:2px !important;
  }
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-side-card--compact{
    padding:6px 7px !important;
    border-radius:13px !important;
  }
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-side-card h3{
    margin-bottom:4px !important;
    font-size:12px !important;
    line-height:1.05 !important;
  }
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-history__list{
    gap:3px !important;
    max-height:128px !important;
    overflow-y:auto !important;
  }
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-history__item,
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar button.live-history__item.is-latest-preview{
    min-height:30px !important;
    padding:4px 6px !important;
    border-radius:9px !important;
    font-size:10px !important;
  }
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar button.live-history__item.is-latest-preview{
    min-height:42px !important;
  }
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-history__latest-label > span{font-size:18px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-history__latest-label b{font-size:10px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-history__latest-action{padding:3px 6px !important;font-size:8px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-order-bubble--stack{gap:3px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-order-pill{
    min-height:28px !important;
    padding:3px 6px !important;
    border-radius:9px !important;
    font-size:10px !important;
  }
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-order-player{gap:5px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-order-avatar{width:22px !important;height:22px !important;flex-basis:22px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-analog-clock{
    gap:3px !important;
    margin:4px auto 0 !important;
    padding:4px 5px !important;
    border-radius:12px !important;
  }
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-analog-clock__face{width:62px !important;height:62px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-analog-clock__face::before{inset:7px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-analog-clock__tick{height:6px !important;margin-top:-28px !important;transform-origin:1px 28px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-analog-clock__tick:nth-child(3n){height:8px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-analog-clock__hand--hour{height:17px !important;width:4px !important;margin-left:-2px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-analog-clock__hand--minute{height:23px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-analog-clock__hand--second{height:26px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-analog-clock__brand{top:24% !important;font-size:6px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-analog-clock__date{font-size:5.5px !important;padding:1px 3px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-analog-clock__caption{font-size:8px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-prev-round-hands-btn{gap:3px !important;margin-top:2px !important;padding:3px 6px !important;font-size:8px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-spectator-empty{padding:4px 6px !important;font-size:9px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-spectator-list{gap:3px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-spectator-pill{min-height:28px !important;padding:3px 5px !important;font-size:10px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-game-shell__sidebar .live-spectator-avatar{width:22px !important;height:22px !important;flex-basis:22px !important;}
  #live-game-view:not(.is-live-phone-fullscreen) .live-fullscreen-sidebar-brand{display:none !important;}
}
#live-game-view.is-live-phone-fullscreen .live-phone-action-slot{
  z-index:9 !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-meta-slot{
  z-index:8 !important;
  overflow:visible !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-hand-slot{
  z-index:5 !important;
}
#live-game-view.is-live-phone-fullscreen .live-phone-meta-slot > .live-seat__meta,
#live-game-view.is-live-phone-fullscreen .live-phone-meta-slot > .live-layout-detached-proxy{
  z-index:8 !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
}

/* 2026-08-05: viestikohtaiset live-chat-reaktiot. */
.live-chat-reactable-message{
  position:relative !important;
  cursor:pointer !important;
  outline:none !important;
  transition:border-color .12s ease,box-shadow .12s ease,background .12s ease !important;
}
.live-chat-reactable-message.has-message-reactions{padding-bottom:30px !important;}
.live-chat-reactable-message:hover,
.live-chat-reactable-message:focus-visible,
.live-chat-reactable-message.is-reaction-menu-open{
  border-color:rgba(255,226,138,.58) !important;
  box-shadow:0 0 0 2px rgba(255,226,138,.12),0 8px 20px rgba(0,0,0,.18) !important;
}
.live-chat-message-reactions{
  position:absolute !important;
  right:7px !important;
  bottom:5px !important;
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:flex-end !important;
  align-items:center !important;
  gap:4px !important;
  max-width:calc(100% - 14px) !important;
  pointer-events:none !important;
}
.live-chat-message-reactions.is-compact{
  position:static !important;
  margin-top:4px !important;
  max-width:100% !important;
  justify-content:flex-start !important;
}
.live-chat-message-reaction-badge{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:3px !important;
  min-width:29px !important;
  height:22px !important;
  padding:0 6px !important;
  border:1px solid rgba(255,255,255,.20) !important;
  border-radius:999px !important;
  background:rgba(5,24,38,.78) !important;
  color:#fff !important;
  box-shadow:0 2px 7px rgba(0,0,0,.22) !important;
  font-size:15px !important;
  line-height:1 !important;
  white-space:nowrap !important;
}
.live-chat-message-reaction-badge b{
  color:#eef7ff !important;
  font-size:10px !important;
  line-height:1 !important;
}
.live-chat-message-reaction-badge.is-selected{
  border-color:rgba(255,226,138,.82) !important;
  background:rgba(38,78,86,.96) !important;
  box-shadow:0 0 0 1px rgba(255,226,138,.18),0 2px 8px rgba(0,0,0,.24) !important;
}
.live-table-chat__item .live-chat-message-reaction-badge{
  min-width:23px !important;
  height:18px !important;
  padding:0 4px !important;
  font-size:12px !important;
}
.live-table-chat__item .live-chat-message-reaction-badge b{font-size:9px !important;}
.live-chat-message-reaction-popover{
  position:fixed !important;
  z-index:43000 !important;
  display:grid !important;
  grid-template-columns:repeat(4,42px) !important;
  gap:6px !important;
  padding:9px !important;
  border:1px solid rgba(255,226,138,.58) !important;
  border-radius:15px !important;
  background:linear-gradient(180deg,rgba(7,31,43,.98),rgba(3,18,28,.98)) !important;
  box-shadow:0 16px 38px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.07) !important;
  backdrop-filter:blur(8px) !important;
  pointer-events:auto !important;
  isolation:isolate !important;
}
.live-chat-message-reaction-popover::after{
  content:"" !important;
  position:absolute !important;
  right:18px !important;
  top:-6px !important;
  width:12px !important;
  height:12px !important;
  transform:rotate(45deg) !important;
  background:#071f2c !important;
  border-left:1px solid rgba(255,226,138,.58) !important;
  border-top:1px solid rgba(255,226,138,.58) !important;
}
.live-chat-message-reaction-popover.opens-up::after{
  top:auto !important;
  bottom:-6px !important;
  transform:rotate(225deg) !important;
}
.live-chat-message-reaction-option{
  appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:42px !important;
  height:38px !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.14) !important;
  border-radius:11px !important;
  background:rgba(255,255,255,.08) !important;
  color:#fff !important;
  font:inherit !important;
  font-size:23px !important;
  line-height:1 !important;
  cursor:pointer !important;
  transition:transform .12s ease,background .12s ease,border-color .12s ease !important;
}
.live-chat-message-reaction-option:hover,
.live-chat-message-reaction-option:focus-visible{
  transform:translateY(-2px) scale(1.07) !important;
  background:rgba(255,255,255,.18) !important;
  border-color:rgba(255,226,138,.76) !important;
  outline:none !important;
}
.live-chat-message-reaction-option:active{transform:scale(.94) !important;}
.live-chat-message-reaction-option:disabled,
.live-chat-message-reaction-option.is-sending{opacity:.52 !important;cursor:wait !important;}

/* Yhdeksän pikareaktiota mahtuu myös kapeaan fullscreen-chatpaneeliin. */
.live-fullscreen-chat__form .live-chat-reactions{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:4px !important;
}
.live-fullscreen-chat__form .live-chat-reaction{
  width:100% !important;
  max-width:none !important;
}
@media (max-width:640px){
  .live-chat-modal__form .live-chat-reactions{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  }
  .live-chat-modal__form .live-chat-reaction{width:100% !important;}
  .live-chat-message-reaction-popover{
    grid-template-columns:repeat(4,39px) !important;
    gap:5px !important;
    padding:8px !important;
  }
  .live-chat-message-reaction-option{width:39px !important;height:36px !important;font-size:21px !important;}
}


/* 2026-08-05: kierroskohtaiset pelaajalle kohdennetut emoji-reaktiot. */
.live-seat__name-row{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5px !important;
  min-width:0 !important;
  max-width:100% !important;
}
.live-seat--top .live-seat__name-row{justify-content:flex-start !important;}
.live-target-reaction-toggle{
  appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  min-width:27px !important;
  height:23px !important;
  padding:0 5px !important;
  border:1px solid rgba(255,226,138,.45) !important;
  border-radius:999px !important;
  background:rgba(7,28,40,.76) !important;
  color:#ffe28a !important;
  font:900 12px/1 Arial,sans-serif !important;
  cursor:pointer !important;
  box-shadow:0 3px 9px rgba(0,0,0,.23),inset 0 0 0 1px rgba(255,255,255,.04) !important;
  pointer-events:auto !important;
}
.live-target-reaction-toggle:hover,
.live-target-reaction-toggle:focus-visible,
.live-target-reaction-toggle.is-open{
  background:rgba(24,68,77,.94) !important;
  border-color:rgba(255,226,138,.82) !important;
  transform:translateY(-1px) !important;
}
.live-target-reaction-toggle:focus-visible{outline:2px solid rgba(255,226,138,.75) !important;outline-offset:2px !important;}
.live-target-reaction-popover{
  position:fixed !important;
  z-index:43000 !important;
  display:grid !important;
  grid-template-columns:repeat(3,44px) !important;
  gap:7px !important;
  width:auto !important;
  padding:9px !important;
  border:1px solid rgba(255,226,138,.58) !important;
  border-radius:15px !important;
  background:linear-gradient(180deg,rgba(7,31,43,.98),rgba(3,18,28,.98)) !important;
  box-shadow:0 15px 36px rgba(0,0,0,.46),inset 0 0 0 1px rgba(255,255,255,.07) !important;
  backdrop-filter:blur(8px) !important;
  pointer-events:auto !important;
  isolation:isolate !important;
}
.live-target-reaction-option{
  appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:44px !important;
  height:40px !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.14) !important;
  border-radius:12px !important;
  background:rgba(255,255,255,.08) !important;
  color:#fff !important;
  font:inherit !important;
  font-size:24px !important;
  line-height:1 !important;
  cursor:pointer !important;
}
.live-target-reaction-option.is-combo-emoji{font-size:19px !important;letter-spacing:-4px !important;padding-right:4px !important;}
.live-target-reaction-option:hover,
.live-target-reaction-option:focus-visible{transform:translateY(-2px) scale(1.08) !important;background:rgba(255,255,255,.18) !important;border-color:rgba(255,226,138,.76) !important;outline:none !important;}
.live-target-reaction-option:active{transform:scale(.94) !important;}
.live-target-reaction-option:disabled,.live-target-reaction-option.is-sending{opacity:.5 !important;cursor:wait !important;}
.live-seat__avatar-shell,
.live-seat__mini-avatar-shell{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  overflow:visible !important;
  isolation:isolate !important;
}
.live-seat__avatar-shell > .live-seat__avatar{margin:0 !important;}
.live-seat__avatar-shell > .live-seat__avatar{
  flex-shrink:0 !important;
  max-width:none !important;
  max-height:none !important;
}
.live-layout-detached-proxy.live-seat__avatar-shell > .live-seat__avatar{
  width:100% !important;
  min-width:100% !important;
  max-width:100% !important;
  height:100% !important;
  min-height:100% !important;
  max-height:100% !important;
  box-sizing:border-box !important;
}
.live-target-reaction-badges{
  position:absolute !important;
  left:auto !important;
  right:6px !important;
  bottom:6px !important;
  transform:none !important;
  z-index:48 !important;
  display:flex !important;
  flex-wrap:nowrap !important;
  justify-content:flex-end !important;
  align-items:center !important;
  gap:2px !important;
  width:max-content !important;
  max-width:none !important;
  pointer-events:auto !important;
  overflow:visible !important;
}
.live-target-reaction-badges.is-mini-target{display:none !important;right:-6px !important;bottom:-8px !important;max-width:92px !important;}
.live-target-reaction-badge{
  appearance:none !important;
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  min-width:28px !important;
  height:28px !important;
  padding:0 3px !important;
  border:2px solid rgba(255,255,255,.92) !important;
  border-radius:999px !important;
  background:rgba(7,29,42,.94) !important;
  color:#fff !important;
  font:inherit !important;
  font-size:19px !important;
  line-height:1 !important;
  box-shadow:0 4px 10px rgba(0,0,0,.38) !important;
  cursor:help !important;
  overflow:visible !important;
  pointer-events:auto !important;
}
.live-target-reaction-badge.is-combo-emoji{min-width:39px !important;font-size:15px !important;letter-spacing:-4px !important;padding-right:6px !important;}
.live-target-reaction-badge:hover,.live-target-reaction-badge:focus-visible{z-index:70 !important;transform:translateY(-2px) scale(1.05) !important;outline:2px solid rgba(255,226,138,.78) !important;outline-offset:1px !important;}
.live-target-reaction-tooltip{
  position:absolute !important;
  left:50% !important;
  bottom:calc(100% + 9px) !important;
  transform:translateX(-50%) translateY(3px) !important;
  z-index:50000 !important;
  display:flex !important;
  align-items:center !important;
  gap:6px !important;
  min-width:max-content !important;
  max-width:190px !important;
  padding:6px 9px !important;
  border:1px solid rgba(255,226,138,.55) !important;
  border-radius:999px !important;
  background:rgba(4,25,37,.98) !important;
  color:#fff7d4 !important;
  font:800 11px/1.15 Arial,sans-serif !important;
  box-shadow:0 8px 22px rgba(0,0,0,.45) !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transition:opacity .12s ease,transform .12s ease,visibility .12s ease !important;
}
.live-target-reaction-tooltip::after{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  top:100% !important;
  width:8px !important;
  height:8px !important;
  transform:translate(-50%,-4px) rotate(45deg) !important;
  background:rgba(4,25,37,.98) !important;
  border-right:1px solid rgba(255,226,138,.55) !important;
  border-bottom:1px solid rgba(255,226,138,.55) !important;
}
.live-target-reaction-badge:hover .live-target-reaction-tooltip,
.live-target-reaction-badge:focus-visible .live-target-reaction-tooltip{opacity:1 !important;visibility:visible !important;transform:translateX(-50%) translateY(0) !important;}
.live-target-reaction-tooltip__avatar{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 24px !important;
  width:24px !important;
  height:24px !important;
  border-radius:50% !important;
  overflow:hidden !important;
  border:1px solid rgba(255,255,255,.72) !important;
  background:#244b70 !important;
}
.live-target-reaction-tooltip__avatar img{display:block !important;width:100% !important;height:100% !important;object-fit:cover !important;object-position:center top !important;}
.live-target-reaction-sender-initial{display:inline-flex !important;align-items:center !important;justify-content:center !important;width:100% !important;height:100% !important;color:#fff !important;font-size:12px !important;}
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat--bottom .live-target-reaction-badges.is-mini-target,
#live-game-view.is-live-phone-fullscreen .live-seat--bottom .live-target-reaction-badges.is-mini-target{display:flex !important;}
#kingi-live-app.is-self-avatar-minimized:not(.is-live-phone-fullscreen) .live-seat--bottom .live-target-reaction-badges.is-avatar-target{display:none !important;}
.live-chat-reaction[data-live-chat-reaction="🚗🔥"],
.live-player-reaction-option[data-live-chat-reaction="🚗🔥"],
.live-chat-message-reaction-option[data-chat-message-reaction="🚗🔥"]{font-size:17px !important;letter-spacing:-4px !important;padding-right:4px !important;}
@media (max-width:640px){
  .live-target-reaction-toggle{min-width:24px !important;height:21px !important;padding:0 4px !important;font-size:11px !important;}
  .live-target-reaction-popover{grid-template-columns:repeat(3,40px) !important;gap:6px !important;padding:8px !important;}
  .live-target-reaction-option{width:40px !important;height:37px !important;font-size:22px !important;}
  .live-target-reaction-option.is-combo-emoji{font-size:17px !important;}
  .live-target-reaction-badge{min-width:24px !important;height:24px !important;font-size:16px !important;border-width:1px !important;}
  .live-target-reaction-badge.is-combo-emoji{min-width:34px !important;font-size:13px !important;}
}


/* 2026-08-05: livepelin tiivis liikennevalostatus. */
.live-player-traffic-status{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:22px !important;
  padding:3px 9px !important;
  border:1px solid rgba(255,255,255,.34) !important;
  border-radius:999px !important;
  color:#fff !important;
  font:900 11px/1 Arial,sans-serif !important;
  letter-spacing:.02em !important;
  white-space:nowrap !important;
  box-shadow:0 4px 10px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.18) !important;
}
.live-player-traffic-status--offline{background:#b4232f !important;}
.live-player-traffic-status--online{background:#d97706 !important;}
.live-player-traffic-status--ingame{background:#198754 !important;}

/* Uutiskortissa teksti saa aina oman näkyvän alueensa kuvan jälkeen. */
.live-news-ticker,
.live-news-portal .live-news-ticker.is-screen-left-fixed{
  overflow:auto !important;
}
.live-news-ticker__item{
  display:flex !important;
  flex-direction:column !important;
  min-height:0 !important;
}
.live-news-ticker__image,
.live-news-portal .live-news-ticker.is-screen-left-fixed .live-news-ticker__image{
  flex:0 0 auto !important;
  width:100% !important;
  height:auto !important;
  max-height:72px !important;
  object-fit:cover !important;
}
.live-news-ticker__content{
  display:block !important;
  flex:1 1 auto !important;
  min-height:54px !important;
  overflow:visible !important;
}
.live-news-ticker__content strong{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}
.live-news-ticker__slide{
  position:relative !important;
  min-height:0 !important;
}
.live-news-ticker__navigation{
  position:absolute !important;
  left:5px !important;
  right:5px !important;
  top:0 !important;
  z-index:8 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  height:72px !important;
  opacity:0 !important;
  pointer-events:none !important;
  transition:opacity .16s ease !important;
}
.live-news-ticker__slide:not(.has-image) .live-news-ticker__navigation{
  height:44px !important;
}
.live-news-ticker__slide:hover .live-news-ticker__navigation,
.live-news-ticker__slide:focus-within .live-news-ticker__navigation{
  opacity:1 !important;
}
.live-news-ticker__navigation button{
  appearance:none !important;
  display:grid !important;
  place-items:center !important;
  width:28px !important;
  min-width:28px !important;
  height:28px !important;
  min-height:28px !important;
  margin:0 !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.70) !important;
  border-radius:50% !important;
  background:rgba(5,20,32,.78) !important;
  color:#fff !important;
  box-shadow:0 4px 11px rgba(0,0,0,.38) !important;
  cursor:pointer !important;
  pointer-events:auto !important;
  font:900 22px/1 Arial,sans-serif !important;
  backdrop-filter:blur(3px) !important;
}
.live-news-ticker__navigation button:hover{
  background:rgba(24,91,139,.94) !important;
  transform:scale(1.07) !important;
}
.live-news-ticker__navigation button:focus-visible{
  outline:3px solid #ffe178 !important;
  outline-offset:2px !important;
}
@media (hover:none){
  .live-news-ticker__navigation{opacity:.92 !important;}
}

/* Viimeisin tikki: pieni, läpinäkyvä ja suljettava dialogi korttien yläpuolella. */
.live-room-stage.is-showing-previous-trick .live-room-stage__table,
.live-room-stage.is-showing-previous-trick .live-turn-compass{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
}
.live-previous-trick{
  inset:auto !important;
  left:50% !important;
  top:30% !important;
  width:min(48%,520px) !important;
  height:min(34%,300px) !important;
  transform:translate(-50%,-50%) !important;
  z-index:9200 !important;
  border:1px solid rgba(255,238,184,.38) !important;
  border-radius:20px !important;
  background:rgba(5,25,25,.28) !important;
  box-shadow:0 14px 34px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,255,255,.05) !important;
  backdrop-filter:blur(2px) !important;
  cursor:default !important;
  overflow:visible !important;
}
.live-previous-trick::before{display:none !important;}
.live-previous-trick__badge{top:7px !important;}
.live-previous-trick__close{
  position:absolute !important;
  top:7px !important;
  right:7px !important;
  z-index:9300 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:30px !important;
  height:30px !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.42) !important;
  border-radius:50% !important;
  background:rgba(5,18,31,.82) !important;
  color:#fff !important;
  font:500 23px/1 Arial,sans-serif !important;
  cursor:pointer !important;
}
.live-previous-trick .live-card,
.live-previous-trick .live-card--table{
  width:clamp(52px,7vw,86px) !important;
  height:auto !important;
}

/* Viimeiset tikit -paneelin ensimmäinen rivi on selvä toimintopainike. */
button.live-history__item.is-latest-preview{
  min-height:58px !important;
  border:1px solid rgba(255,224,143,.74) !important;
  background:linear-gradient(180deg,rgba(118,75,13,.94),rgba(61,36,5,.96)) !important;
  color:#fff3bf !important;
  box-shadow:0 7px 18px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.16) !important;
}
button.live-history__item.is-latest-preview:hover,
button.live-history__item.is-latest-preview:focus-visible{
  transform:translateY(-2px) !important;
  background:linear-gradient(180deg,rgba(151,99,18,.98),rgba(77,46,6,.98)) !important;
  outline:2px solid rgba(255,230,151,.54) !important;
  outline-offset:2px !important;
}
.live-history__latest-label{display:grid !important;grid-template-columns:auto auto !important;align-items:center !important;gap:1px 7px !important;}
.live-history__latest-label > span{grid-row:1 / span 2 !important;font-size:24px !important;}
.live-history__latest-label b{font-size:12px !important;}
.live-history__latest-label small{font-size:9px !important;opacity:.78 !important;}
.live-history__latest-action{padding:5px 8px !important;border-radius:999px !important;background:#ffe28a !important;color:#4a3100 !important;font-size:10px !important;font-weight:900 !important;white-space:nowrap !important;}

/* Toiminnot yläpalkkiin Full screen -painikkeen vasemmalle puolelle. */
.live-message-card--compact .live-message-card__tools--topbar-source{display:none !important;}
.live-game-topbar-tools{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:5px !important;
  min-width:0 !important;
}
.live-game-topbar-tools .live-scorebook-controls,
.live-game-topbar-tools .live-message-card__appearance-row{
  display:flex !important;
  align-items:center !important;
  gap:5px !important;
}
.live-game-topbar-tools .live-icon-tool,
.live-game-topbar-tools .live-scorebook-badge,
.live-game-topbar-tools .live-card-back-picker,
.live-game-topbar-tools .live-table-tone-picker,
.live-game-topbar-tools .live-room-tone-picker{
  flex:0 0 auto !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-view__action-row{
  display:flex !important;
  align-items:center !important;
  gap:4px !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-topbar-tools{display:flex !important;}
#live-game-view.is-live-phone-fullscreen .live-game-topbar-tools .live-icon-tool,
#live-game-view.is-live-phone-fullscreen .live-game-topbar-tools .live-scorebook-badge,
#live-game-view.is-live-phone-fullscreen .live-game-topbar-tools .live-card-back-picker,
#live-game-view.is-live-phone-fullscreen .live-game-topbar-tools .live-table-tone-picker,
#live-game-view.is-live-phone-fullscreen .live-game-topbar-tools .live-room-tone-picker{
  width:30px !important;
  min-width:30px !important;
  max-width:30px !important;
  height:30px !important;
  min-height:30px !important;
  max-height:30px !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-view__action-row .live-game-fullscreen-toggle{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:34px !important;
  min-width:34px !important;
  max-width:34px !important;
  height:34px !important;
  min-height:34px !important;
  max-height:34px !important;
  padding:0 !important;
  border-radius:50% !important;
  color:transparent !important;
  font-size:0 !important;
}
#live-game-view.is-live-phone-fullscreen .live-game-view__action-row .live-game-fullscreen-toggle::after{
  content:"×" !important;
  color:#fff !important;
  font-size:25px !important;
  line-height:1 !important;
}

@media (max-width:700px){
  .live-previous-trick{width:min(76%,430px) !important;height:min(31%,230px) !important;top:28% !important;}
  .live-game-topbar-tools{gap:2px !important;}
}

/* Pelipöydän live-chat on suoraan kirjoitettava ja viesteihin voi reagoida. */
.live-table-chat.is-chat-fitted,
.live-table-chat.is-chat-on-table.is-chat-table-corner,
.live-table-chat.is-chat-on-table.is-chat-table-corner[data-layout-id]{
  pointer-events:auto !important;
  opacity:1 !important;
  filter:none !important;
}
.live-table-chat .live-table-chat__title,
.live-table-chat .live-table-chat__list,
.live-table-chat .live-table-chat__item,
.live-table-chat .live-table-chat__empty,
.live-table-chat .live-table-chat__composer,
.live-table-chat .live-chat-message-reaction-toggle{
  pointer-events:auto !important;
}
.live-table-chat.is-chat-fitted .live-table-chat__list,
.live-table-chat.is-chat-on-table.is-chat-table-corner .live-table-chat__list{
  flex:1 1 auto !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  scrollbar-width:thin !important;
  overscroll-behavior:contain !important;
}
.live-table-chat__title{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:8px !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
.live-table-chat__title strong{
  flex:0 0 auto !important;
  color:inherit !important;
  font:inherit !important;
  letter-spacing:inherit !important;
}
.live-table-chat__transparency{
  display:flex !important;
  flex:1 1 auto !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:4px !important;
  min-width:0 !important;
  cursor:pointer !important;
}
.live-table-chat__transparency input[type="range"]{
  display:block !important;
  flex:1 1 64px !important;
  width:64px !important;
  min-width:38px !important;
  max-width:86px !important;
  height:16px !important;
  margin:0 !important;
  padding:0 !important;
  accent-color:#ffe178 !important;
  cursor:pointer !important;
}
.live-table-chat__transparency output{
  flex:0 0 30px !important;
  min-width:30px !important;
  color:rgba(255,248,220,.86) !important;
  font:800 8px/1 Arial,sans-serif !important;
  letter-spacing:0 !important;
  text-align:right !important;
  text-transform:none !important;
  white-space:nowrap !important;
}
.live-table-chat__hide{
  appearance:none !important;
  display:grid !important;
  place-items:center !important;
  flex:0 0 22px !important;
  width:22px !important;
  min-width:22px !important;
  height:22px !important;
  min-height:22px !important;
  margin:0 !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.38) !important;
  border-radius:50% !important;
  background:rgba(3,14,23,.52) !important;
  color:#fff7df !important;
  box-shadow:0 3px 8px rgba(0,0,0,.26) !important;
  cursor:pointer !important;
}
.live-table-chat__hide svg{display:block !important;width:11px !important;height:11px !important;}
.live-table-chat__hide path{fill:none !important;stroke:currentColor !important;stroke-width:2.6 !important;stroke-linecap:round !important;}
.live-table-chat__hide:hover{background:rgba(154,35,35,.88) !important;transform:scale(1.06) !important;}
.live-table-chat__hide:focus-visible{outline:2px solid #ffe178 !important;outline-offset:2px !important;}
.live-table-chat__title,
.live-table-chat__list,
.live-table-chat__composer{
  opacity:var(--live-table-chat-opacity,.25) !important;
  transition:opacity .12s ease !important;
}
.live-table-chat__meta{
  display:flex !important;
  align-items:center !important;
  gap:5px !important;
  min-width:0 !important;
  margin-bottom:2px !important;
}
.live-table-chat__meta .live-table-chat__sender{
  flex:1 1 auto !important;
  min-width:0 !important;
  margin:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.live-table-chat__time{
  flex:0 0 auto !important;
  color:rgba(255,255,255,.62) !important;
  font-size:8px !important;
}
.live-chat-message-reaction-toggle{
  appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  width:29px !important;
  min-width:29px !important;
  height:23px !important;
  padding:0 !important;
  border:1px solid rgba(255,226,138,.46) !important;
  border-radius:999px !important;
  background:rgba(7,35,48,.82) !important;
  color:#ffe28a !important;
  font:900 12px/1 Arial,sans-serif !important;
  cursor:pointer !important;
}
.live-chat-message-reaction-toggle:hover,
.live-chat-message-reaction-toggle:focus-visible{
  background:rgba(47,96,101,.96) !important;
  border-color:#ffe28a !important;
  outline:2px solid rgba(255,226,138,.22) !important;
  outline-offset:1px !important;
}
.live-table-chat__item.live-chat-reactable-message.has-message-reactions{
  padding-bottom:4px !important;
}
.live-table-chat__composer{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto auto !important;
  flex:0 0 auto !important;
  gap:5px !important;
  width:auto !important;
  margin:0 !important;
  padding:6px 7px 7px !important;
  border-top:1px solid rgba(255,226,138,.20) !important;
  background:rgba(3,22,18,.76) !important;
}
.live-table-chat__emoji-bar{
  grid-column:auto !important;
  display:block !important;
  min-width:0 !important;
  padding:0 !important;
  overflow:visible !important;
}
.live-table-chat__composer .live-table-chat__emoji{
  appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:1 0 24px !important;
  min-width:24px !important;
  max-width:30px !important;
  height:25px !important;
  margin:0 !important;
  padding:0 !important;
  border:1px solid rgba(255,226,138,.32) !important;
  border-radius:8px !important;
  background:rgba(255,255,255,.10) !important;
  color:#fff !important;
  font:500 15px/1 Arial,sans-serif !important;
  cursor:pointer !important;
}
.live-table-chat__composer .live-table-chat__emoji.is-combo-emoji{letter-spacing:-4px !important;padding-right:4px !important;}
.live-table-chat__composer .live-table-chat__emoji:hover,
.live-table-chat__composer .live-table-chat__emoji:focus-visible{
  border-color:#ffe28a !important;
  background:rgba(255,255,255,.19) !important;
  outline:2px solid rgba(255,226,138,.18) !important;
  outline-offset:1px !important;
}
.live-table-chat__composer .live-table-chat__emoji:disabled{opacity:.5 !important;cursor:wait !important;}
.live-table-chat__composer input{
  width:100% !important;
  min-width:0 !important;
  height:32px !important;
  margin:0 !important;
  padding:6px 9px !important;
  border:1px solid rgba(255,255,255,.22) !important;
  border-radius:10px !important;
  background:rgba(255,255,255,.10) !important;
  color:#fff !important;
  box-sizing:border-box !important;
  font:600 11px/1.2 Arial,sans-serif !important;
  outline:none !important;
}
.live-table-chat__composer input::placeholder{color:rgba(255,255,255,.60) !important;}
.live-table-chat__composer input:focus{
  border-color:#ffe28a !important;
  box-shadow:0 0 0 2px rgba(255,226,138,.16) !important;
}
.live-table-chat__composer > button[type="submit"]{
  min-width:58px !important;
  height:32px !important;
  margin:0 !important;
  padding:0 9px !important;
  border:0 !important;
  border-radius:10px !important;
  background:linear-gradient(180deg,#4c9a72,#286448) !important;
  color:#fff !important;
  font:900 10px/1 Arial,sans-serif !important;
  cursor:pointer !important;
}
.live-table-chat__composer > button[type="submit"]:disabled{opacity:.55 !important;cursor:wait !important;}
.live-chat-composer-emoji-picker{
  position:relative !important;
  z-index:48 !important;
  display:inline-flex !important;
  flex:0 0 auto !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
}
.live-chat-composer-emoji-toggle{
  appearance:none !important;
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:34px !important;
  min-width:34px !important;
  max-width:34px !important;
  height:34px !important;
  min-height:34px !important;
  max-height:34px !important;
  margin:0 !important;
  padding:0 !important;
  border:1px solid rgba(255,226,138,.42) !important;
  border-radius:10px !important;
  background:rgba(255,255,255,.10) !important;
  color:#fff !important;
  box-shadow:0 4px 10px rgba(0,0,0,.22) !important;
  cursor:pointer !important;
  font:500 19px/1 Arial,sans-serif !important;
}
.live-chat-composer-emoji-toggle b{
  position:absolute !important;
  right:2px !important;
  bottom:1px !important;
  display:grid !important;
  place-items:center !important;
  width:12px !important;
  height:12px !important;
  border-radius:50% !important;
  background:#ffe178 !important;
  color:#17324a !important;
  font:900 10px/1 Arial,sans-serif !important;
}
.live-chat-composer-emoji-toggle:hover,
.live-chat-composer-emoji-toggle[aria-expanded="true"],
.live-chat-composer-emoji-toggle:focus-visible{
  border-color:#ffe178 !important;
  background:rgba(255,255,255,.20) !important;
  outline:2px solid rgba(255,226,138,.20) !important;
  outline-offset:1px !important;
}
.live-chat-composer-emoji-menu{
  position:absolute !important;
  right:0 !important;
  bottom:calc(100% + 7px) !important;
  z-index:70 !important;
  display:grid !important;
  grid-template-columns:repeat(3,40px) !important;
  gap:6px !important;
  width:auto !important;
  min-width:0 !important;
  margin:0 !important;
  padding:8px !important;
  border:1px solid rgba(255,226,138,.40) !important;
  border-radius:14px !important;
  background:rgba(5,22,35,.98) !important;
  box-shadow:0 16px 34px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.08) !important;
  backdrop-filter:blur(6px) !important;
}
.live-chat-composer-emoji-menu[hidden]{display:none !important;}
.live-chat-composer-emoji-option{
  appearance:none !important;
  display:grid !important;
  place-items:center !important;
  width:40px !important;
  min-width:40px !important;
  max-width:40px !important;
  height:38px !important;
  min-height:38px !important;
  max-height:38px !important;
  margin:0 !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.16) !important;
  border-radius:10px !important;
  background:rgba(255,255,255,.09) !important;
  color:#fff !important;
  font:500 22px/1 Arial,sans-serif !important;
  cursor:pointer !important;
}
.live-chat-composer-emoji-option.is-combo-emoji{font-size:17px !important;letter-spacing:-4px !important;padding-right:4px !important;}
.live-chat-composer-emoji-option:hover,
.live-chat-composer-emoji-option:focus-visible{
  border-color:#ffe178 !important;
  background:rgba(59,125,154,.62) !important;
  outline:2px solid rgba(255,226,138,.20) !important;
  outline-offset:1px !important;
  transform:translateY(-1px) !important;
}
.live-table-chat__composer .live-chat-composer-emoji-toggle{
  width:32px !important;
  min-width:32px !important;
  max-width:32px !important;
  height:32px !important;
  min-height:32px !important;
  max-height:32px !important;
}
.live-fullscreen-chat__compose-row .live-chat-composer-emoji-picker{align-self:flex-end !important;}
.live-fullscreen-chat__compose-row .live-chat-composer-emoji-toggle{height:100% !important;min-height:38px !important;max-height:none !important;}
.live-fullscreen-chat .live-chat-composer-emoji-menu{
  grid-template-columns:repeat(3,42px) !important;
  grid-auto-rows:40px !important;
  align-items:center !important;
  justify-items:center !important;
  column-gap:9px !important;
  row-gap:9px !important;
  width:max-content !important;
  min-width:max-content !important;
  box-sizing:border-box !important;
}
.live-fullscreen-chat .live-chat-composer-emoji-option{
  position:relative !important;
  display:grid !important;
  place-items:center !important;
  box-sizing:border-box !important;
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  height:40px !important;
  min-height:40px !important;
  max-height:40px !important;
  margin:0 !important;
  transform:none;
}
.live-chat-modal__form > .live-chat-composer-emoji-picker{display:flex !important;justify-content:flex-end !important;margin:0 0 8px auto !important;}
.live-chat-modal__meta .live-chat-message-reaction-toggle,
.live-fullscreen-chat__meta .live-chat-message-reaction-toggle{
  margin-left:auto !important;
}
@media (max-width:700px){
  .live-table-chat__title{gap:5px !important;}
  .live-table-chat__transparency input[type="range"]{max-width:58px !important;}
  .live-table-chat__transparency output{display:none !important;}
  .live-table-chat__composer{gap:4px !important;padding:5px !important;}
  .live-table-chat__composer input{height:30px !important;font-size:10px !important;}
  .live-table-chat__composer > button[type="submit"]{min-width:48px !important;height:30px !important;padding:0 6px !important;font-size:9px !important;}
  .live-table-chat__composer .live-chat-composer-emoji-toggle{width:30px !important;min-width:30px !important;max-width:30px !important;height:30px !important;min-height:30px !important;max-height:30px !important;}
  .live-chat-composer-emoji-menu{grid-template-columns:repeat(3,36px) !important;gap:5px !important;padding:7px !important;}
  .live-chat-composer-emoji-option{width:36px !important;min-width:36px !important;max-width:36px !important;height:35px !important;min-height:35px !important;max-height:35px !important;font-size:20px !important;}
}

/* Live-pelin tiiviin tilastokortin sijoituskaavio ja viiden pelin kuntopallot. */
.live-order-stats-card__placement-chart{
  display:flex !important;
  flex-direction:column !important;
  gap:4px !important;
  margin-top:7px !important;
  padding:7px !important;
  border:1px solid #d2dee9 !important;
  border-radius:9px !important;
  background:rgba(255,255,255,.76) !important;
}
.live-order-stats-card__placement-chart > small{
  color:#526d85 !important;
  font-size:9px !important;
  font-weight:900 !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
}
.live-order-stats-card__placement-row{
  display:grid !important;
  grid-template-columns:48px minmax(0,1fr) 35px !important;
  align-items:center !important;
  gap:5px !important;
  min-width:0 !important;
}
.live-order-stats-card__placement-row > span{
  color:#49647c !important;
  font-size:9px !important;
  font-variant-numeric:tabular-nums !important;
  white-space:nowrap !important;
}
.live-order-stats-card__placement-row > span b{color:#173d60 !important;font-size:10px !important;}
.live-order-stats-card__placement-row > i{
  display:block !important;
  height:8px !important;
  overflow:hidden !important;
  border-radius:999px !important;
  background:#dce5ed !important;
  box-shadow:inset 0 1px 2px rgba(28,55,78,.14) !important;
}
.live-order-stats-card__placement-row > i > em{
  display:block !important;
  width:0;
  height:100% !important;
  min-width:0 !important;
  border-radius:inherit !important;
  background:#507da5 !important;
}
.live-order-stats-card__placement-row--1 > i > em{background:linear-gradient(90deg,#d49b19,#f0c64b) !important;}
.live-order-stats-card__placement-row--2 > i > em{background:linear-gradient(90deg,#6f879d,#a9bac9) !important;}
.live-order-stats-card__placement-row--3 > i > em{background:linear-gradient(90deg,#a8642b,#d28a4e) !important;}
.live-order-stats-card__placement-row--4 > i > em{background:linear-gradient(90deg,#55718b,#7794ac) !important;}
.live-order-stats-card__placement-row > strong{
  color:#34526e !important;
  font-size:9px !important;
  font-variant-numeric:tabular-nums !important;
  text-align:right !important;
  white-space:nowrap !important;
}
.live-order-stats-card__recent{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:8px !important;
  margin-top:7px !important;
  padding:6px 7px !important;
  border-radius:9px !important;
  background:#e2ebf3 !important;
}
.live-order-stats-card__recent > small{
  color:#526b82 !important;
  font-size:9px !important;
  font-weight:900 !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
}
.live-order-stats-card__recent-balls{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:5px !important;
}
.live-order-stats-card__recent-ball{
  display:inline-block !important;
  flex:0 0 auto !important;
  width:14px !important;
  height:14px !important;
  border:1px solid rgba(20,47,70,.24) !important;
  border-radius:50% !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.34),0 1px 3px rgba(20,47,70,.25) !important;
  cursor:help !important;
  outline:none !important;
}
.live-order-stats-card__recent-ball:hover,
.live-order-stats-card__recent-ball:focus-visible{
  transform:scale(1.24) !important;
  box-shadow:0 0 0 2px rgba(24,70,107,.20),0 2px 5px rgba(20,47,70,.30) !important;
}
.live-order-stats-card__recent-ball.rank-recent-ball--empty{cursor:default !important;}

/* Päättyneen live-pelin kooste säilyy pelipöydän päällä full screenissä. */
.live-final-dialog{
  position:fixed !important;
  inset:0 !important;
  z-index:52000 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  padding:18px !important;
  color:#eef6ff !important;
  isolation:isolate !important;
}
.live-final-dialog__backdrop{
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  background:rgba(0,7,13,.64) !important;
  backdrop-filter:blur(5px) saturate(.72) !important;
  cursor:pointer !important;
}
.live-final-dialog__surface{
  position:relative !important;
  z-index:1 !important;
  width:min(940px,calc(100vw - 36px)) !important;
  max-width:940px !important;
  height:auto !important;
  max-height:calc(100vh - 36px) !important;
  max-height:calc(100dvh - 36px) !important;
  overflow:visible !important;
  border:1px solid rgba(167,203,226,.30) !important;
  border-radius:18px !important;
  background:rgba(4,18,28,.91) !important;
  box-shadow:0 30px 90px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.08) !important;
  backdrop-filter:blur(16px) saturate(.84) !important;
}
.live-final-dialog__scroll{
  width:100% !important;
  max-height:calc(100vh - 36px) !important;
  max-height:calc(100dvh - 36px) !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  overscroll-behavior:contain !important;
  scrollbar-gutter:stable !important;
  -webkit-overflow-scrolling:touch !important;
  box-sizing:border-box !important;
  padding:13px !important;
  border-radius:inherit !important;
}
.live-final-dialog__close{
  position:absolute !important;
  top:7px !important;
  right:7px !important;
  z-index:5 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:34px !important;
  height:34px !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.35) !important;
  border-radius:50% !important;
  background:rgba(2,13,21,.86) !important;
  color:#fff !important;
  box-shadow:0 5px 16px rgba(0,0,0,.34) !important;
  font:500 25px/1 Arial,sans-serif !important;
  cursor:pointer !important;
}
.live-final-dialog__close:hover,
.live-final-dialog__close:focus-visible{
  border-color:#ffe28a !important;
  background:#244b5d !important;
  outline:2px solid rgba(255,226,138,.24) !important;
}
.live-final-dialog .live-final-panel{color:#eef6ff !important;}
.live-final-dialog .live-final-panel__hero{
  margin:0 38px 7px 0 !important;
  padding:8px 11px !important;
  border:1px solid rgba(113,170,207,.28) !important;
  border-radius:10px !important;
  background:rgba(15,59,84,.74) !important;
  box-shadow:none !important;
}
.live-final-dialog .live-final-panel__hero h2{font-size:19px !important;line-height:1.1 !important;}
.live-final-dialog .live-final-panel__hero p{margin-top:2px !important;color:rgba(236,247,255,.76) !important;font-size:11px !important;}
.live-final-dialog .live-final-diary-reminder{
  margin:0 0 7px !important;
  padding:7px 9px !important;
  border:1px solid rgba(255,219,112,.40) !important;
  border-left:4px solid #e5b936 !important;
  border-radius:8px !important;
  background:rgba(85,64,9,.47) !important;
  color:#fff1bd !important;
  font-size:11px !important;
  line-height:1.28 !important;
}
.live-final-dialog .live-final-panel__grid{gap:8px !important;}
.live-final-dialog .live-final-card,
.live-final-dialog .live-final-card.live-game-notes-panel,
.live-final-dialog .live-final-card.live-ai-costs{
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  border:1px solid rgba(154,193,219,.22) !important;
  border-radius:10px !important;
  background:rgba(9,30,43,.76) !important;
  color:#edf6fc !important;
  box-shadow:none !important;
}
.live-final-dialog .live-final-card__title,
.live-final-dialog .live-final-card.live-ai-costs > .live-final-card__title{
  margin:0 !important;
  padding:6px 9px !important;
  border:0 !important;
  border-radius:0 !important;
  background:rgba(25,84,118,.78) !important;
  color:#fff !important;
  font-size:13px !important;
  line-height:1.15 !important;
  text-shadow:none !important;
  box-shadow:none !important;
}
.live-final-dialog .live-final-card__heading-row{
  min-height:0 !important;
  background:rgba(25,84,118,.78) !important;
}
.live-final-dialog .live-final-game-points{
  min-width:185px !important;
  padding:4px 9px !important;
  background:rgba(5,39,61,.78) !important;
}
.live-final-dialog .live-final-game-points span{font-size:9px !important;}
.live-final-dialog .live-final-game-points strong{font-size:17px !important;}
.live-final-dialog .live-final-game-points small{font-size:8px !important;color:rgba(235,246,255,.68) !important;}
.live-final-dialog .live-final-notice{
  margin:7px 8px 0 !important;
  padding:5px 7px !important;
  border-color:rgba(154,205,163,.36) !important;
  background:rgba(34,93,53,.34) !important;
  color:#dff9e5 !important;
  font-size:10px !important;
}
.live-final-dialog .live-final-notice--warning{
  border-color:rgba(224,194,108,.46) !important;
  background:rgba(101,75,8,.34) !important;
  color:#fff1bd !important;
}
.live-final-dialog .live-final-table-wrap{
  margin:0 !important;
  overflow-x:auto !important;
  -webkit-overflow-scrolling:touch !important;
}
.live-final-dialog .live-final-table{
  width:100% !important;
  min-width:0 !important;
  border-collapse:collapse !important;
  background:transparent !important;
  color:#e9f3fa !important;
  font-size:10px !important;
  line-height:1.12 !important;
}
.live-final-dialog .live-final-rank-impact-table{min-width:590px !important;}
.live-final-dialog .live-final-result-table{min-width:330px !important;}
.live-final-dialog .live-final-table th,
.live-final-dialog .live-final-table td{
  padding:4px 6px !important;
  border-color:rgba(168,199,218,.15) !important;
  background:rgba(255,255,255,.025) !important;
  color:#e9f3fa !important;
}
.live-final-dialog .live-final-table thead th{
  background:rgba(22,73,103,.80) !important;
  color:#fff !important;
  font-size:9px !important;
}
.live-final-dialog .live-final-table tbody tr:nth-child(even) td,
.live-final-dialog .live-final-table tbody tr:nth-child(even) th{background:rgba(255,255,255,.055) !important;}
.live-final-dialog .live-final-table__position{width:34px !important;color:#ffe28a !important;}
.live-final-dialog .live-final-table__num.is-positive{color:#80dfa0 !important;}
.live-final-dialog .live-final-table__num.is-negative{color:#ff9d91 !important;}
.live-final-dialog .live-final-rank-value strong,
.live-final-dialog .live-final-rank-value small{display:block !important;}
.live-final-dialog .live-final-rank-value small{margin-top:1px !important;color:rgba(231,243,251,.61) !important;font-size:8px !important;}
.live-final-dialog .live-final-player{gap:5px !important;}
.live-final-dialog .live-final-player-avatar{
  flex-basis:23px !important;
  width:23px !important;
  height:23px !important;
  border-width:1px !important;
  box-shadow:0 0 0 1px rgba(183,211,228,.36) !important;
}
.live-final-dialog .live-game-notes-panel__textarea{
  display:block !important;
  width:calc(100% - 16px) !important;
  min-height:86px !important;
  margin:8px !important;
  padding:8px 9px !important;
  box-sizing:border-box !important;
  border:1px solid rgba(255,226,138,.54) !important;
  border-radius:8px !important;
  background:rgba(1,13,21,.66) !important;
  color:#fff !important;
  box-shadow:inset 0 1px 4px rgba(0,0,0,.30) !important;
  font-size:12px !important;
  resize:vertical !important;
}
.live-final-dialog .live-game-notes-panel__textarea:focus{
  border-color:#ffe28a !important;
  outline:2px solid rgba(255,226,138,.18) !important;
}
.live-final-dialog .live-game-notes-panel__readonly,
.live-final-dialog .live-game-notes-panel__empty{padding:8px !important;color:#dcebf4 !important;font-size:11px !important;}
.live-final-dialog .live-final-card.live-game-notes-panel .live-final-panel__actions{padding:0 8px 8px !important;}
.live-final-dialog .live-final-card .live-ai-costs__help{margin:0 !important;padding:7px 9px !important;color:#c5d9e6 !important;font-size:9px !important;}
.live-final-dialog .live-final-panel__footer-actions{
  position:sticky !important;
  bottom:-13px !important;
  z-index:3 !important;
  display:flex !important;
  justify-content:flex-end !important;
  gap:7px !important;
  margin:9px -13px -13px !important;
  padding:9px 13px !important;
  border-top:1px solid rgba(166,199,219,.18) !important;
  background:rgba(3,16,25,.94) !important;
  backdrop-filter:blur(10px) !important;
}
.live-final-dialog .live-choice-button{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:34px !important;
  padding:6px 11px !important;
  border-radius:8px !important;
  font-size:11px !important;
  font-weight:900 !important;
  text-decoration:none !important;
  cursor:pointer !important;
}
.live-final-dialog .live-choice-button--primary{border:1px solid #4e8fb8 !important;background:#246b98 !important;color:#fff !important;}
.live-final-dialog .live-choice-button--secondary{border:1px solid rgba(194,216,229,.36) !important;background:rgba(255,255,255,.08) !important;color:#eef7fc !important;}
.live-final-table-tool{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:36px !important;
  min-width:36px !important;
  height:36px !important;
  min-height:36px !important;
  padding:0 !important;
  border:1px solid rgba(255,226,138,.36) !important;
  border-radius:50% !important;
  background:rgba(30,83,91,.78) !important;
  color:#fff1bd !important;
  font-size:17px !important;
  cursor:pointer !important;
}
.live-final-table-tool:hover,
.live-final-table-tool:focus-visible{border-color:#ffe28a !important;background:#356f78 !important;outline:none !important;}
.live-final-table-tool:disabled{opacity:.42 !important;cursor:not-allowed !important;}
#live-game-view.is-live-phone-fullscreen.is-live-game-finished .live-prev-round-hands-modal{display:flex !important;}
@media (max-width:700px){
  .live-final-dialog{padding:5px !important;}
  .live-final-dialog__surface{width:calc(100vw - 10px) !important;max-height:calc(100vh - 10px) !important;max-height:calc(100dvh - 10px) !important;border-radius:12px !important;}
  .live-final-dialog__scroll{max-height:calc(100vh - 10px) !important;max-height:calc(100dvh - 10px) !important;padding:9px !important;}
  .live-final-dialog .live-final-panel__hero{margin-right:36px !important;}
  .live-final-dialog .live-final-card__heading-row{display:flex !important;}
  .live-final-dialog .live-final-game-points{min-width:138px !important;}
  .live-final-dialog .live-final-game-points small{display:none !important;}
  .live-final-dialog .live-final-panel__footer-actions{bottom:-9px !important;margin:8px -9px -9px !important;padding:8px 9px !important;}
  .live-final-dialog .live-final-panel__footer-actions .live-choice-button{width:auto !important;}
}

/* 2026-08-06: Pelikierrostilastot pääsivun ilmeellä ja yhteisillä vertailupylväillä. */
.stats-rounds-panel{
  gap:16px !important;
}
.stats-rounds-panel > .stats-filter-card{
  width:min(100%,760px) !important;
  border:1px solid rgba(255,255,255,.15) !important;
  border-radius:18px !important;
  background:#003192 !important;
  background-image:none !important;
  box-shadow:0 12px 28px rgba(15,40,86,.18) !important;
}
.stats-rounds-panel > .stats-filter-card h2{
  color:#fff !important;
  text-shadow:none !important;
}
.stats-player-search-form--rounds .stats-player-search-form__multiselect{
  border:1px solid #afc3d8 !important;
  border-radius:12px !important;
  background:#fff !important;
  background-image:none !important;
  color:#183650 !important;
  box-shadow:inset 0 1px 3px rgba(24,54,80,.10) !important;
}
.stats-player-search-form--rounds .stats-player-search-form__multiselect option{
  padding:5px 8px;
}
.stats-player-search-form--rounds .stats-player-search-form__multiselect option:checked{
  background:#dcecff linear-gradient(0deg,#dcecff,#dcecff) !important;
  color:#003192 !important;
}
.stats-rounds-card{
  width:min(100%,1320px) !important;
  padding:18px clamp(8px,1.6vw,20px) 24px !important;
  border:1px solid #d3dfeb !important;
  border-radius:18px !important;
  background:#f4f8fc !important;
  background-image:none !important;
  box-shadow:0 14px 32px rgba(20,49,78,.11) !important;
}
.stats-rounds-card__header{
  margin-bottom:12px !important;
}
.stats-rounds-summary,
.stats-rounds-empty{
  border:1px solid #d3e0ec !important;
  background:#fff !important;
  background-image:none !important;
  color:#36536c !important;
  box-shadow:none !important;
}
.stats-rounds-section{
  margin-top:16px !important;
  border:1px solid #ccdbe8 !important;
  border-radius:16px !important;
  background:#fff !important;
  background-image:none !important;
  box-shadow:0 7px 18px rgba(24,54,80,.07) !important;
}
.stats-rounds-section__heading{
  padding:15px 18px !important;
  border:0 !important;
  background:#003192 !important;
  background-image:none !important;
  color:#fff !important;
}
.stats-rounds-section__heading h3{
  color:#fff !important;
  text-shadow:none !important;
}
.stats-rounds-section__heading p{
  color:#dfeaff !important;
}
.stats-rounds-section__eyebrow{
  color:#ffd665 !important;
}

/* Otsikkosoluissa ei käytetä kuvataustoja tai vanhoja liukuvärejä. */
.stats-rounds-card table,
.stats-rounds-card table thead,
.stats-rounds-card table thead tr,
.stats-rounds-card table th,
.stats-rounds-card table thead th,
.stats-rounds-card .stats-rounds-table thead th,
.stats-rounds-card .stats-distribution-table thead th,
.stats-rounds-card .stats-distribution-table tbody th{
  background-image:none !important;
}
.stats-rounds-section--averages .stats-rounds-table-wrap{
  border:0 !important;
  border-radius:0 !important;
  background:#fff !important;
}
.stats-rounds-section--averages .stats-rounds-table--compare{
  min-width:620px;
  border-collapse:separate !important;
  border-spacing:0 !important;
}
.stats-rounds-section--averages .stats-rounds-table--compare thead th{
  padding:12px 14px !important;
  border-right:1px solid rgba(255,255,255,.16) !important;
  border-bottom:0 !important;
  background:#1c5e9c !important;
  background-image:none !important;
  color:#fff !important;
  text-shadow:none !important;
}
.stats-rounds-section--averages .stats-rounds-table--compare thead th:first-child{
  background:#174f86 !important;
}
.stats-rounds-section--averages .stats-rounds-table--compare thead th:last-child{
  border-right:0 !important;
}
.stats-rounds-section--averages .stats-rounds-table--compare tbody tr:nth-child(odd),
.stats-rounds-section--averages .stats-rounds-table--compare tbody tr:nth-child(odd) td{
  background:#fff !important;
  background-image:none !important;
}
.stats-rounds-section--averages .stats-rounds-table--compare tbody tr:nth-child(even),
.stats-rounds-section--averages .stats-rounds-table--compare tbody tr:nth-child(even) td{
  background:#eef5fb !important;
  background-image:none !important;
}
.stats-rounds-section--averages .stats-rounds-table--compare tbody td{
  padding:9px 14px !important;
  border-right:1px solid #dce6ef !important;
  border-bottom:1px solid #dce6ef !important;
  color:#20384e !important;
  font-variant-numeric:tabular-nums;
}
.stats-rounds-section--averages .stats-rounds-table--compare tbody td:first-child{
  color:#294c68 !important;
  font-weight:800 !important;
}
.stats-rounds-section--averages .stats-rounds-table--compare tbody td:last-child{
  border-right:0 !important;
}
.stats-rounds-player-head{
  align-items:center;
}
.stats-rounds-player-head__identity{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-width:0;
}
.stats-rounds-section--averages .stats-rounds-player-head__name,
.stats-rounds-section--averages .stats-rounds-player-head__count{
  color:#fff !important;
}
.stats-rounds-section--averages .stats-rounds-player-head__count{
  opacity:.78;
}

.stats-player-color-dot{
  display:inline-block;
  flex:0 0 12px;
  width:12px;
  height:12px;
  border:2px solid rgba(255,255,255,.92);
  border-radius:50%;
  box-shadow:0 0 0 1px rgba(21,48,72,.23);
}
.stats-player-color--1{background:#1268a8 !important;}
.stats-player-color--2{background:#db7200 !important;}
.stats-player-color--3{background:#23834f !important;}
.stats-player-color--4{background:#a43c83 !important;}

.stats-rounds-section__heading--charts{
  align-items:center !important;
}
.stats-round-chart-toolbar{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
}
.stats-round-chart-toolbar p{
  max-width:510px !important;
  margin:0 !important;
  text-align:right !important;
}
.stats-round-chart-mode{
  display:inline-flex;
  flex:0 0 auto;
  gap:3px;
  padding:3px;
  border:1px solid rgba(255,255,255,.32);
  border-radius:10px;
  background:rgba(0,18,70,.28);
}
.stats-round-chart-mode button{
  min-height:34px;
  padding:6px 11px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:#e7efff;
  font:inherit;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}
.stats-round-chart-mode button:hover,
.stats-round-chart-mode button:focus-visible{
  background:rgba(255,255,255,.15);
  color:#fff;
  outline:2px solid rgba(255,214,101,.55);
  outline-offset:1px;
}
.stats-round-chart-mode button.is-active{
  background:#fff;
  color:#003192;
  box-shadow:0 2px 7px rgba(0,15,53,.25);
}
.stats-rounds-legend{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:9px 22px;
  padding:13px 18px;
  border-bottom:1px solid #d7e3ee;
  background:#edf5fc;
  background-image:none;
}
.stats-rounds-legend__item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#183b58;
}
.stats-rounds-legend__item > span:last-child{
  display:flex;
  flex-direction:column;
  line-height:1.15;
}
.stats-rounds-legend__item strong{
  font-size:13px;
}
.stats-rounds-legend__item small{
  margin-top:2px;
  color:#627b90;
  font-size:10px;
  font-weight:700;
}
.stats-rounds-legend .stats-player-color-dot{
  width:14px;
  height:14px;
  flex-basis:14px;
  border-color:#fff;
}

.stats-grouped-charts{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:14px;
  padding:14px;
  background:#f2f7fb;
  background-image:none;
}
.stats-grouped-chart{
  min-width:0;
  overflow:hidden;
  border:1px solid #cedce8;
  border-radius:13px;
  background:#fff;
  background-image:none;
  box-shadow:0 4px 12px rgba(23,63,96,.06);
}
.stats-grouped-chart__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:11px 14px;
  border-bottom:1px solid #d8e3ec;
  background:#e8f1f8;
  background-image:none;
}
.stats-grouped-chart__header h4{
  flex:0 0 auto;
  margin:0;
  color:#174c78;
  font-size:15px;
  line-height:1.25;
}
.stats-grouped-chart__header p{
  max-width:650px;
  margin:0;
  color:#587187;
  font-size:11px;
  line-height:1.4;
  text-align:right;
}
.stats-grouped-chart__scroll{
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-color:#7395b0 #e8f0f6;
  scrollbar-width:thin;
}
.stats-grouped-chart__plot{
  display:flex;
  align-items:stretch;
  width:max-content;
  min-width:100%;
  padding:12px 8px 8px;
  box-sizing:border-box;
}
.stats-grouped-chart__category{
  display:flex;
  flex:1 0 max(108px,calc(var(--stats-player-count) * 40px + 18px));
  min-width:max(108px,calc(var(--stats-player-count) * 40px + 18px));
  flex-direction:column;
  justify-content:flex-end;
  padding:0 7px;
  box-sizing:border-box;
  border-right:1px solid #e6edf3;
}
.stats-grouped-chart__category:last-child{
  border-right:0;
}
.stats-grouped-chart__bars{
  display:grid;
  grid-template-columns:repeat(var(--stats-player-count),32px);
  align-items:end;
  justify-content:center;
  gap:5px;
  min-height:150px;
}
.stats-grouped-chart__bar-column{
  display:flex;
  min-width:0;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  cursor:help;
}
.stats-grouped-chart__value{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:30px;
  min-height:19px;
  margin-bottom:4px;
  padding:1px 3px;
  box-sizing:border-box;
  border-radius:8px;
  background:#eef4f9;
  color:#234761;
  font-size:9px;
  font-weight:900;
  line-height:1.1;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.stats-grouped-chart__value-percent{
  display:none;
}
.stats-grouped-chart__bar-track{
  position:relative;
  display:block;
  width:27px;
  height:116px;
  overflow:hidden;
  border:1px solid #c9d6e2;
  border-radius:7px 7px 3px 3px;
  background:#edf3f7;
  box-shadow:inset 0 1px 4px rgba(30,66,94,.09);
}
.stats-grouped-chart__bar-fill{
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:var(--stats-height-count);
  min-height:0;
  border-radius:6px 6px 2px 2px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.38);
  transition:height .22s ease;
}
.stats-grouped-chart__bar-fill.stats-player-color--1{background:linear-gradient(180deg,#3f91cb,#1268a8) !important;}
.stats-grouped-chart__bar-fill.stats-player-color--2{background:linear-gradient(180deg,#f4a23e,#db7200) !important;}
.stats-grouped-chart__bar-fill.stats-player-color--3{background:linear-gradient(180deg,#55ad77,#23834f) !important;}
.stats-grouped-chart__bar-fill.stats-player-color--4{background:linear-gradient(180deg,#cf6eac,#a43c83) !important;}
.stats-grouped-chart__bar-column:hover .stats-grouped-chart__bar-track{
  border-color:#003192;
  box-shadow:0 0 0 3px rgba(0,49,146,.13),inset 0 1px 4px rgba(30,66,94,.09);
}
.stats-grouped-chart__bar-column:hover .stats-grouped-chart__value{
  background:#dceaff;
  color:#003192;
}
.stats-grouped-chart__bar-column.is-empty .stats-grouped-chart__value{
  color:#7a8c9b;
}
.stats-grouped-chart__bar-player{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}
.stats-grouped-chart__category-label{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  min-height:37px;
  margin-top:7px;
  padding:6px 3px 0;
  border-top:2px solid #9fb6c9;
  color:#3c5a71;
  font-size:9px;
  font-weight:800;
  line-height:1.18;
  text-align:center;
  overflow-wrap:anywhere;
  hyphens:auto;
}
.stats-grouped-chart__empty{
  padding:28px 16px;
  color:#6b8092;
  font-size:12px;
  font-weight:700;
  text-align:center;
}
.stats-rounds-section--distributions[data-round-chart-mode="percent"] .stats-grouped-chart__value-count{
  display:none;
}
.stats-rounds-section--distributions[data-round-chart-mode="percent"] .stats-grouped-chart__value-percent{
  display:inline;
}
.stats-rounds-section--distributions[data-round-chart-mode="percent"] .stats-grouped-chart__bar-fill{
  height:var(--stats-height-percent);
}

@media (max-width:900px){
  .stats-rounds-section__heading--charts{
    align-items:flex-start !important;
  }
  .stats-round-chart-toolbar{
    width:100%;
    justify-content:space-between;
  }
  .stats-round-chart-toolbar p{
    text-align:left !important;
  }
  .stats-grouped-chart__header{
    flex-direction:column;
    gap:3px;
  }
  .stats-grouped-chart__header p{
    text-align:left;
  }
}
@media (max-width:620px){
  .stats-rounds-card{
    padding:10px 6px 16px !important;
  }
  .stats-rounds-section__heading{
    padding:13px !important;
  }
  .stats-round-chart-toolbar{
    align-items:flex-start;
    flex-direction:column;
    gap:9px;
  }
  .stats-round-chart-mode{
    align-self:stretch;
  }
  .stats-round-chart-mode button{
    flex:1 1 50%;
  }
  .stats-rounds-legend{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
    padding:11px 13px;
  }
  .stats-rounds-legend__item{
    min-width:0;
  }
  .stats-rounds-legend__item strong{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .stats-grouped-charts{
    gap:10px;
    padding:8px;
  }
  .stats-grouped-chart__header{
    padding:10px 11px;
  }
  .stats-grouped-chart__plot{
    padding-right:3px;
    padding-left:3px;
  }
  .stats-grouped-chart__category{
    flex-basis:max(102px,calc(var(--stats-player-count) * 36px + 12px));
    min-width:max(102px,calc(var(--stats-player-count) * 36px + 12px));
    padding-right:4px;
    padding-left:4px;
  }
  .stats-grouped-chart__bars{
    grid-template-columns:repeat(var(--stats-player-count),29px);
    gap:3px;
  }
  .stats-grouped-chart__bar-track{
    width:24px;
  }
  .stats-grouped-chart__value{
    min-width:27px;
    font-size:8px;
  }
}
/* Harjoituspeli */
.public-entry-practice {
  display: grid;
  gap: 8px;
  margin-top: 18px;
}
.public-entry-practice-button {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 13px 18px !important;
  color: #fff !important;
  text-decoration: none !important;
  border: 1px solid #1762b8;
  border-radius: 13px;
  background: linear-gradient(145deg, #1976d2, #0e4f9b);
  box-shadow: 0 8px 20px rgba(14, 79, 155, .22);
}
.public-entry-practice-button span { font-size: 1.05rem; font-weight: 800; }
.public-entry-practice-button small { color: rgba(255,255,255,.84); font-size: .78rem; }
.public-entry-practice-history { justify-self: center; font-weight: 700; }

.practice-entry-page,
.practice-history-page {
  width: min(980px, calc(100% - 24px));
  margin: 28px auto;
}
.practice-entry-dialog,
.practice-history-page__header,
.practice-history-game,
.practice-lobby-card {
  border: 1px solid #d5e1ef;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(23, 54, 87, .12);
}
.practice-entry-dialog { max-width: 720px; margin: 0 auto; padding: clamp(20px, 4vw, 36px); }
.practice-entry-dialog__badge,
.practice-history-page__header > div > span,
.practice-lobby-card > header > span,
.practice-live-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 5px 10px;
  border-radius: 999px;
  color: #0c4d91;
  background: #e4f1ff;
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.practice-entry-dialog h2 { margin: 10px 0 6px; color: #173657; }
.practice-entry-dialog > p { margin: 0 0 20px; color: #52677d; line-height: 1.5; }
.practice-entry-error,
.practice-lobby-notice.is-error {
  margin: 12px 0;
  padding: 10px 12px;
  border-radius: 10px;
  color: #8e1724;
  background: #ffeaed;
  font-weight: 700;
}
.practice-entry-form { display: grid; gap: 18px; }
.practice-entry-name { display: grid; gap: 7px; color: #294660; font-weight: 800; }
.practice-entry-name input {
  width: 100%; box-sizing: border-box; padding: 12px 13px;
  border: 1px solid #b7c9db; border-radius: 10px; font: inherit;
}
.practice-avatar-picker { margin: 0; padding: 0; border: 0; }
.practice-avatar-picker legend { margin-bottom: 10px; color: #294660; font-weight: 800; }
.practice-avatar-picker__toolbar { display: flex; justify-content: flex-end; margin: -35px 0 10px; }
.practice-avatar-picker__toolbar button {
  padding: 7px 11px; border: 1px solid #9fc1df; border-radius: 9px;
  color: #155b98; background: #edf7ff; font: inherit; font-size: .8rem; font-weight: 850; cursor: pointer;
}
.practice-avatar-picker__toolbar button:hover { background: #ddecfa; }
.practice-avatar-picker__grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.practice-avatar-choice { cursor: pointer; }
.practice-avatar-choice input { position: absolute; opacity: 0; pointer-events: none; }
.practice-avatar-choice span {
  display: block; overflow: hidden; aspect-ratio: 1; padding: 3px;
  border: 3px solid transparent; border-radius: 50%; background: #edf3f9;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.practice-avatar-choice img { display: block; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.practice-avatar-choice input:checked + span { border-color: #1976d2; box-shadow: 0 0 0 3px rgba(25,118,210,.18); transform: scale(1.04); }
.practice-avatar-choice input:focus-visible + span { outline: 3px solid #ffb300; outline-offset: 2px; }
.practice-entry-form__actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.practice-entry-form__actions a { padding: 11px; font-weight: 700; }
.practice-entry-form__actions button,
.practice-lobby-toggle button,
.practice-lobby-bots button,
.practice-lobby-share button {
  border: 0; border-radius: 10px; padding: 11px 14px; color: #fff;
  background: #176bc1; font: inherit; font-weight: 800; cursor: pointer;
}

.practice-live-brand { display: flex; align-items: center; gap: 10px; }
.practice-live-brand img { max-height: 34px; }
.practice-live-badge { margin-left: 8px; vertical-align: middle; }
.practice-lobby-frame { display: grid; align-items: start; overflow: auto; padding: clamp(12px, 3vw, 28px); background: linear-gradient(150deg, #eff6fc, #dce9f5); }
.practice-lobby-card { width: min(900px, 100%); box-sizing: border-box; margin: 0 auto; padding: clamp(17px, 3vw, 28px); }
.practice-lobby-card > header h2 { margin: 7px 0 3px; color: #173657; }
.practice-lobby-card > header p { margin: 0; color: #536a80; }
.practice-lobby-guidance {
  display: grid; gap: 5px; margin: 18px 0; padding: 13px 15px;
  border-left: 4px solid #1976d2; border-radius: 8px; background: #edf6ff; color: #294a68;
}
.practice-lobby-guidance span { font-size: .9rem; }
.practice-lobby-slots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.practice-lobby-slot {
  position: relative; display: flex; align-items: center; gap: 12px; min-height: 70px;
  padding: 9px 38px 9px 9px; border: 1px solid #cbd9e7; border-radius: 13px; background: #f9fbfd;
}
.practice-lobby-slot.is-self { border-color: #4b9be5; background: #edf7ff; }
.practice-lobby-slot.is-empty { border-style: dashed; color: #75899d; }
.practice-lobby-slot.is-disabled { border-style: dashed; color: #7c8995; background: #eef1f4; opacity: .82; }
.practice-lobby-slot > img { flex: 0 0 auto; width: 58px; height: 58px; border-radius: 50%; object-fit: cover; background: #dce7f1; }
.practice-lobby-slot__number {
  position: absolute; top: 6px; right: 8px; color: #7690a8; font-size: .72rem; font-weight: 900;
}
.practice-lobby-slot__identity { display: grid; gap: 2px; min-width: 0; }
.practice-lobby-slot__identity strong { overflow: hidden; color: #173657; text-overflow: ellipsis; white-space: nowrap; }
.practice-lobby-slot__identity span { color: #648096; font-size: .78rem; }
.practice-lobby-slot > button { position: absolute; right: 8px; bottom: 7px; width: 27px; height: 27px; border: 0; border-radius: 50%; color: #8d1d27; background: #ffe3e7; font-size: 1.2rem; cursor: pointer; }
.practice-lobby-slot__placeholder { padding-left: 34px; font-weight: 750; }
.practice-lobby-controls { display: grid; grid-template-columns: 1fr 1.3fr; gap: 18px; margin-top: 20px; }
.practice-lobby-control-group { padding: 14px; border: 1px solid #d6e1ec; border-radius: 13px; }
.practice-lobby-control-group h3 { margin: 0 0 10px; color: #294660; font-size: .9rem; }
.practice-lobby-toggle,
.practice-lobby-bots { display: flex; flex-wrap: wrap; gap: 8px; }
.practice-lobby-toggle button { color: #34546f; background: #e5edf5; font-size: .8rem; }
.practice-lobby-toggle button.is-active { color: #fff; background: #176bc1; }
.practice-lobby-bots button { display: flex; align-items: center; gap: 7px; padding: 7px 10px; font-size: .83rem; }
.practice-lobby-bots button img { border-radius: 50%; object-fit: cover; }
.practice-lobby-bots button:disabled { opacity: .45; cursor: default; }
.practice-lobby-bots__empty { color: #708399; font-size: .82rem; }
.practice-lobby-share { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 10px; margin-top: 18px; }
.practice-lobby-share label { display: grid; gap: 5px; min-width: 0; color: #526b81; font-size: .8rem; font-weight: 800; }
.practice-lobby-share input { min-width: 0; padding: 10px; border: 1px solid #bdcede; border-radius: 9px; color: #34546f; background: #f5f8fb; }
.practice-lobby-share small { grid-column: 1 / -1; color: #25813a; font-weight: 700; }
.practice-lobby-notice { min-height: 22px; margin-top: 8px; color: #365d7d; }

.practice-history-page__header { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 22px; }
.practice-history-page__header h2 { margin: 6px 0 4px; color: #173657; }
.practice-history-page__header p { margin: 0; color: #61768a; }
.practice-history-page__header > a,
.practice-history-game__actions a { padding: 10px 13px; border-radius: 9px; color: #fff; background: #176bc1; font-weight: 800; text-decoration: none; white-space: nowrap; }
.practice-history-list { display: grid; gap: 12px; margin-top: 14px; }
.practice-history-game { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; padding: 16px 18px; }
.practice-history-game__meta { display: grid; gap: 3px; color: #6a7f93; font-size: .78rem; }
.practice-history-game__meta strong { color: #294660; font-size: .9rem; }
.practice-history-game__players { display: flex; flex-wrap: wrap; gap: 7px; }
.practice-history-game__players span { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border-radius: 999px; background: #edf3f8; color: #34546f; font-size: .8rem; font-weight: 750; }
.practice-history-game__players img { width: 25px; height: 25px; border-radius: 50%; object-fit: cover; }
.practice-history-game__actions { display: flex; gap: 7px; }
.practice-history-game__actions a:first-child { color: #235279; background: #e3edf6; }
.practice-history-empty { margin-top: 14px; padding: 28px; border: 1px dashed #b8cadb; border-radius: 14px; color: #60778d; text-align: center; }
.practice-history-page__footer { margin-top: 18px; text-align: center; }
.live-final-notice--practice { color: #174b78; border: 1px solid #abd0ef; background: #eaf6ff; }
.practice-feedback-card > p { margin: 4px 0 14px; color: #60758a; line-height: 1.45; }
.practice-feedback-stars { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; margin-bottom: 15px; }
.practice-feedback-star {
  width: 42px; height: 42px; padding: 0; border: 1px solid #d4dde7; border-radius: 10px;
  color: #aeb8c2; background: #f5f7f9; font-size: 1.65rem; line-height: 1; cursor: pointer;
}
.practice-feedback-star:hover,
.practice-feedback-star.is-active { color: #f4aa00; border-color: #efc45c; background: #fff8df; }
.practice-feedback-star:focus-visible { outline: 3px solid rgba(25,118,210,.28); outline-offset: 2px; }
.practice-feedback-stars strong { margin-left: 8px; color: #294660; font-size: .9rem; }
.practice-feedback-comment { display: grid; gap: 7px; color: #294660; font-weight: 800; }
.practice-feedback-comment textarea {
  width: 100%; box-sizing: border-box; resize: vertical; padding: 11px 12px;
  border: 1px solid #bdcede; border-radius: 10px; color: #243f58; background: #fbfdff; font: inherit; line-height: 1.45;
}
.practice-feedback-saved { align-self: center; color: #26733b; font-size: .82rem; font-weight: 800; }

@media (max-width: 720px) {
  .practice-avatar-picker__grid { grid-template-columns: repeat(4, 1fr); }
  .practice-lobby-slots,
  .practice-lobby-controls { grid-template-columns: 1fr; }
  .practice-lobby-share { grid-template-columns: 1fr; }
  .practice-history-page__header,
  .practice-history-game { grid-template-columns: 1fr; align-items: stretch; }
  .practice-history-page__header { display: grid; }
  .practice-history-page__header > a { justify-self: start; }
  .practice-history-game__actions { justify-content: flex-start; }
}

@media (max-width: 420px) {
  .practice-entry-page,
  .practice-history-page { width: min(100% - 12px, 980px); margin: 8px auto; }
  .practice-entry-dialog { border-radius: 14px; padding: 17px 14px; }
  .practice-avatar-picker__grid { gap: 7px; }
  .practice-entry-form__actions { align-items: stretch; flex-direction: column-reverse; }
  .practice-entry-form__actions a { text-align: center; }
}

/* 2026-08-06: fullscreen-uutiset säilyttävät korkeutensa myös ilman avointa
   pistevihkoa. Normaalinäkymän pistevihkon pop-up pidetään tiiviinä. */
.live-game-shell__leftbar .live-news-portal{
  flex:1 1 0 !important;
  height:100% !important;
  min-height:0 !important;
  max-height:100% !important;
  overflow:hidden !important;
}
.live-game-shell__leftbar .live-news-ticker.is-shell-left-panel{
  display:flex !important;
  flex:1 1 0 !important;
  flex-direction:column !important;
  min-height:0 !important;
  max-height:none !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
}
.live-game-shell__leftbar .live-news-portal.has-news:not(.has-fullscreen-scorebook):not(.has-fullscreen-chat) .live-news-ticker.is-shell-left-panel,
.live-game-shell__sidebar .live-news-portal.has-news:not(.has-fullscreen-scorebook):not(.has-fullscreen-chat) .live-news-ticker.is-shell-left-panel{
  min-height:min(58vh,460px) !important;
}
.live-game-shell__leftbar .live-news-ticker.is-shell-left-panel .live-news-ticker__slide,
.live-game-shell__leftbar .live-news-ticker.is-shell-left-panel .live-news-ticker__item{
  flex:1 1 auto !important;
}
.live-game-shell__leftbar .live-news-ticker.is-shell-left-panel .live-news-ticker__slide{
  display:flex !important;
  flex-direction:column !important;
  min-height:0 !important;
}
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-scorebook-badge__tooltip,
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-scorebook-badge__tooltip[data-scorebook-positioned="1"]{
  width:min(420px,calc(100vw - 28px)) !important;
  min-width:min(420px,calc(100vw - 28px)) !important;
  max-width:min(420px,calc(100vw - 28px)) !important;
  padding:10px !important;
  overflow:auto !important;
}
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-scorebook-badge__tooltip .live-score-grid thead th,
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-scorebook-badge__tooltip .live-score-grid tbody th,
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-scorebook-badge__tooltip .live-score-grid tbody td,
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback) .live-scorebook-badge__tooltip .live-score-grid .game-score-readonly-field{
  font-size:10px !important;
  line-height:1.1 !important;
  padding:3px 4px !important;
}

/* Tekoälypelaajan päätösloki: oma ylläpitäjän fullscreen-painike heti
   korttitaustan ja kahden värisäätimen oikealla puolella. */
.live-ai-log-toggle{
  appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  border:1px solid rgba(151,205,255,.48) !important;
  border-radius:11px !important;
  background:linear-gradient(180deg,rgba(28,91,143,.90),rgba(9,45,78,.94)) !important;
  color:#e8f5ff !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 4px 10px rgba(0,0,0,.24) !important;
  cursor:pointer !important;
}
.live-ai-log-toggle:hover,
.live-ai-log-toggle:focus-visible{
  border-color:#d7edff !important;
  background:linear-gradient(180deg,rgba(42,117,176,.98),rgba(12,61,104,.98)) !important;
  outline:2px solid rgba(173,219,255,.34) !important;
  outline-offset:2px !important;
}
.live-ai-log-toggle.is-active{
  border-color:#ffe28a !important;
  background:linear-gradient(180deg,#287bb9,#124d7d) !important;
  color:#fff6c9 !important;
  box-shadow:0 0 0 2px rgba(255,226,138,.24),inset 0 1px 0 rgba(255,255,255,.20),0 4px 12px rgba(0,0,0,.28) !important;
}
.live-ai-log-toggle__icon,
.live-ai-log-toggle__icon svg{
  display:block !important;
  width:27px !important;
  height:27px !important;
}
.live-ai-log-toggle__icon rect,
.live-ai-log-toggle__icon path{
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:2 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}
.live-ai-log-toggle__icon path:not(.live-ai-log-toggle__antenna){stroke-width:2.6 !important;}

/* Livepelin ulompi taustapaneeli ei saa ylittää dokumentin oikeaa reunaa.
   JS:n clientWidth-mitta ei sisällä pystyrullauspalkkia, joten molemmille
   sivuille jää täsmälleen sama suojaväli myös macOS-/Windows-selaimissa. */
html.kingi-live-view-active,
body.kingi-live-view-active{
  max-width:100% !important;
  overflow-x:hidden !important;
}
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback):not(:fullscreen){
  box-sizing:border-box !important;
  width:calc(var(--kingi-live-document-width,100vw) - 24px) !important;
  min-width:0 !important;
  max-width:calc(var(--kingi-live-document-width,100vw) - 24px) !important;
  margin-left:calc(50% - var(--kingi-live-document-half-width,50vw) + 12px) !important;
  margin-right:calc(50% - var(--kingi-live-document-half-width,50vw) + 12px) !important;
  overflow-x:hidden !important;
  overflow-x:clip !important;
}
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback):not(:fullscreen) .live-game-app-frame,
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback):not(:fullscreen) .live-game-shell,
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback):not(:fullscreen) .live-game-shell__stage,
#live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback):not(:fullscreen) .live-room-viewport{
  box-sizing:border-box !important;
  min-width:0 !important;
  max-width:100% !important;
}
@media (max-width:760px){
  #live-game-view:not(.is-live-fullscreen):not(.is-live-fullscreen-fallback):not(:fullscreen){
    width:calc(var(--kingi-live-document-width,100vw) - 12px) !important;
    max-width:calc(var(--kingi-live-document-width,100vw) - 12px) !important;
    margin-left:calc(50% - var(--kingi-live-document-half-width,50vw) + 6px) !important;
    margin-right:calc(50% - var(--kingi-live-document-half-width,50vw) + 6px) !important;
  }
}

/* Oikean sivupalkin itsenäisesti supistettavat paneelit. Säännöt pidetään
   tiedoston lopussa, jotta vanhat sivupalkki- ja kellotyylit eivät voi kumota
   otsikkopainikkeita tai supistettua korkeutta. */
.live-sidebar-panel__heading{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:8px !important;
  min-width:0 !important;
  margin:0 0 8px !important;
}
.live-sidebar-panel__heading h3{min-width:0 !important;margin:0 !important;}
.live-sidebar-panel__toggle{
  appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 23px !important;
  width:23px !important;
  min-width:23px !important;
  max-width:23px !important;
  height:23px !important;
  min-height:23px !important;
  max-height:23px !important;
  margin:0 !important;
  padding:0 !important;
  border:1px solid rgba(255,226,138,.48) !important;
  border-radius:7px !important;
  background:linear-gradient(180deg,rgba(39,75,91,.96),rgba(13,38,54,.98)) !important;
  color:#fff2bd !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 3px 8px rgba(0,0,0,.22) !important;
  font:900 18px/1 Arial,sans-serif !important;
  cursor:pointer !important;
}
.live-sidebar-panel__toggle:hover,
.live-sidebar-panel__toggle:focus-visible{
  border-color:#ffe28a !important;
  background:linear-gradient(180deg,rgba(58,101,118,.98),rgba(18,51,68,.99)) !important;
  outline:2px solid rgba(255,226,138,.30) !important;
  outline-offset:1px !important;
}
.live-sidebar-panel__toggle span{display:block !important;transform:translateY(-1px) !important;}
.live-sidebar-panel__body{display:block !important;min-width:0 !important;}
.live-sidebar-panel.is-collapsed:not(.live-sidebar-panel--history) .live-sidebar-panel__body{display:none !important;}
.live-sidebar-panel.is-collapsed:not(.live-sidebar-panel--history) .live-sidebar-panel__heading{margin-bottom:0 !important;}
.live-sidebar-panel--history.is-collapsed .live-history__item:nth-child(n+3){display:none !important;}
.live-sidebar-panel--history.is-collapsed .live-history__list{max-height:none !important;overflow:hidden !important;}
.live-sidebar-panel--clock .live-analog-clock{margin-top:0 !important;margin-bottom:0 !important;}

/* Matalalla työpöytäruudulla korostettu viimeisin tikki ja minimointipainikkeet
   pysyvät tiiviinä myös kaikkien yleisten komponenttityylien jälkeen. */
@media (min-width:900px) and (max-height:820px){
  #live-game-view:is(.is-live-fullscreen,.is-live-fullscreen-fallback):not(.is-live-phone-fullscreen)
    .live-game-shell__sidebar .live-history__item{min-height:30px !important;padding:4px 6px !important;}
  #live-game-view:is(.is-live-fullscreen,.is-live-fullscreen-fallback):not(.is-live-phone-fullscreen)
    .live-game-shell__sidebar button.live-history__item.is-latest-preview{min-height:42px !important;padding:4px 6px !important;}
  #live-game-view:is(.is-live-fullscreen,.is-live-fullscreen-fallback):not(.is-live-phone-fullscreen)
    .live-game-shell__sidebar .live-history__latest-label > span{font-size:18px !important;}
  #live-game-view:is(.is-live-fullscreen,.is-live-fullscreen-fallback):not(.is-live-phone-fullscreen)
    .live-game-shell__sidebar .live-history__latest-label b{font-size:10px !important;}
  #live-game-view:is(.is-live-fullscreen,.is-live-fullscreen-fallback):not(.is-live-phone-fullscreen)
    .live-game-shell__sidebar .live-history__latest-action{padding:3px 6px !important;font-size:8px !important;}
  #live-game-view:is(.is-live-fullscreen,.is-live-fullscreen-fallback):not(.is-live-phone-fullscreen)
    .live-sidebar-panel__heading{margin-bottom:4px !important;}
  #live-game-view:is(.is-live-fullscreen,.is-live-fullscreen-fallback):not(.is-live-phone-fullscreen)
    .live-sidebar-panel__toggle{
    flex-basis:19px !important;
    width:19px !important;
    min-width:19px !important;
    max-width:19px !important;
    height:19px !important;
    min-height:19px !important;
    max-height:19px !important;
    border-radius:6px !important;
    font-size:15px !important;
  }
}

/* 2026-08-06: Kellon minimointi piilottaa vain graafisen kellotaulun.
   Tekstimuotoinen kellonaika ja päivämäärä sekä Edellinen jako -painike
   jäävät käytettäviksi myös supistetussa paneelissa. */
.live-sidebar-panel.live-sidebar-panel--clock.is-collapsed .live-sidebar-panel__body{
  display:block !important;
}
.live-sidebar-panel.live-sidebar-panel--clock.is-collapsed .live-analog-clock{
  gap:4px !important;
  margin:0 !important;
  padding:3px 2px 1px !important;
  background:none !important;
  box-shadow:none !important;
}
.live-sidebar-panel.live-sidebar-panel--clock.is-collapsed .live-analog-clock__face{
  display:none !important;
}
.live-sidebar-panel.live-sidebar-panel--clock.is-collapsed .live-analog-clock__caption{
  display:block !important;
  margin:0 !important;
  text-align:center !important;
}
.live-sidebar-panel.live-sidebar-panel--clock.is-collapsed .live-prev-round-hands-btn{
  display:inline-flex !important;
  margin-top:2px !important;
}

/* Pöytächat näkyy fullscreenissä samalla tavalla kuin normaalinäkymässä.
   Sitä ei enää poisteta puhelin- tai constrained-fullscreenin takia. */
#live-game-view.is-live-phone-fullscreen .live-table-chat,
#live-game-view.is-live-fullscreen-constrained .live-table-chat{
  display:flex !important;
  visibility:visible !important;
  pointer-events:auto !important;
}


/* ============================================================
   2026-08-10 / v44: Testiturnaus + ylläpitäjän turnausvalvomo
   ============================================================ */
.calendar-test-tournament-box{
  margin-top:12px;
  padding:14px 16px;
  border:1px solid rgba(224,180,76,.45);
  border-radius:14px;
  background:linear-gradient(145deg,rgba(97,72,17,.16),rgba(19,44,55,.16));
  display:grid;
  gap:10px;
}
.calendar-test-tournament-toggle{
  display:flex !important;
  align-items:center;
  gap:9px;
  font-weight:800;
}
.calendar-test-tournament-toggle input{
  width:20px !important;
  height:20px !important;
  min-width:20px;
  accent-color:#d7b455;
}
.calendar-test-tournament-box small{line-height:1.45;color:var(--muted,#68737b);}
.tournament-test-badge{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:4px 9px;
  border-radius:999px;
  border:1px solid rgba(218,177,72,.55);
  background:rgba(218,177,72,.13);
  font-size:11px;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.tournament-monitor-launch{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  font-weight:800;
}
.tournament-monitor-launch::before{content:'◉';font-size:.88em;}

.tournament-monitor-body{
  margin:0;
  min-height:100vh;
  color:#edf7fb;
  background:
    radial-gradient(circle at 18% 2%,rgba(29,105,126,.28),transparent 35%),
    radial-gradient(circle at 86% 12%,rgba(177,137,48,.13),transparent 30%),
    linear-gradient(145deg,#07131d 0%,#0a1c28 52%,#061018 100%);
  overflow-x:hidden;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.tournament-monitor-body *{box-sizing:border-box;}
.tournament-monitor-shell{min-height:100vh;padding:14px clamp(10px,1.4vw,24px) 28px;}
.tm-topbar{
  position:sticky;
  top:0;
  z-index:30;
  display:grid;
  grid-template-columns:minmax(260px,1.35fr) minmax(280px,.85fr) auto;
  align-items:center;
  gap:16px;
  padding:13px 16px;
  border:1px solid rgba(145,203,220,.18);
  border-radius:18px;
  background:rgba(6,18,27,.92);
  box-shadow:0 14px 42px rgba(0,0,0,.24);
  backdrop-filter:blur(18px);
}
.tm-eyebrow,.tm-panel-kicker{
  color:#7fb7c6;
  font-size:10px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.tm-title-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:3px;}
.tm-title-row h1{margin:0;font-size:clamp(20px,2vw,32px);line-height:1.02;letter-spacing:-.025em;}
.tm-test-badge,.tm-status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:4px 8px;
  border-radius:999px;
  font-size:10px;
  font-weight:900;
  letter-spacing:.06em;
  white-space:nowrap;
}
.tm-test-badge{border:1px solid rgba(229,190,82,.55);background:rgba(229,190,82,.14);color:#ffe5a1;}
.tm-status-pill{border:1px solid rgba(107,186,203,.38);background:rgba(45,126,145,.18);color:#bdebf5;}
.tm-status-pill.status-completed{border-color:rgba(91,190,142,.42);background:rgba(45,136,91,.18);color:#b9efd1;}
.tm-subtitle{margin-top:7px;color:#93aeb8;font-size:12px;}
.tm-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;}
.tm-kpi{
  min-width:78px;
  padding:9px 10px;
  border:1px solid rgba(145,203,220,.12);
  border-radius:12px;
  background:rgba(255,255,255,.035);
  text-align:center;
}
.tm-kpi span{display:block;color:#7795a1;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;}
.tm-kpi strong{display:block;margin-top:3px;font-size:18px;line-height:1;}
.tm-topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;}
.tm-clock{min-width:92px;text-align:right;line-height:1.1;}
.tm-clock strong{display:block;font-size:18px;font-variant-numeric:tabular-nums;letter-spacing:.04em;}
.tm-clock span{display:block;margin-top:3px;color:#7f9aa5;font-size:9px;text-transform:uppercase;}
.tm-button{
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:8px 12px;
  border:1px solid rgba(145,203,220,.26);
  border-radius:10px;
  color:#eaf7fa;
  background:rgba(26,73,88,.42);
  text-decoration:none;
  font:inherit;
  font-size:11px;
  font-weight:850;
  cursor:pointer;
}
.tm-button:hover,.tm-button:focus-visible{border-color:rgba(226,190,91,.65);background:rgba(44,91,105,.55);outline:none;}
.tm-button--ghost{background:rgba(255,255,255,.035);}
.tm-connection-bar{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:31px;
  margin:8px 3px 10px;
  color:#89aab5;
  font-size:10px;
}
.tm-connection-bar.is-error{color:#ffc4bf;}
.tm-live-dot{width:8px;height:8px;border-radius:50%;background:#6bd49d;box-shadow:0 0 0 4px rgba(107,212,157,.08),0 0 14px rgba(107,212,157,.38);}
.tm-connection-bar.is-error .tm-live-dot{background:#ed756b;box-shadow:0 0 0 4px rgba(237,117,107,.08);}
.tm-last-update{margin-left:auto;font-variant-numeric:tabular-nums;}
.tm-main{display:grid;gap:12px;}
.tm-panel{
  min-width:0;
  border:1px solid rgba(145,203,220,.14);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(8,29,40,.82),rgba(6,19,29,.82));
  box-shadow:0 16px 48px rgba(0,0,0,.18);
  overflow:hidden;
}
.tm-panel-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  padding:13px 16px 10px;
  border-bottom:1px solid rgba(145,203,220,.1);
}
.tm-panel-head h2{margin:2px 0 0;font-size:16px;letter-spacing:-.01em;}
.tm-legend{display:flex;align-items:center;gap:12px;color:#7896a2;font-size:9px;}
.tm-legend span{display:flex;align-items:center;gap:5px;white-space:nowrap;}
.tm-legend-dot{width:7px;height:7px;border-radius:50%;background:#5a7a87;}
.tm-legend-dot.is-live{background:#68d4b0;}
.tm-legend-dot.is-waiting{background:#d8b969;}
.tm-legend-dot.is-complete{background:#7ba4b0;}
.tm-auto-label{color:#83a3ae;font-size:9px;text-align:right;}
.tm-bracket-scroll{overflow:auto;padding:13px 14px 16px;scrollbar-width:thin;scrollbar-color:#315565 transparent;}
.tm-bracket{display:flex;align-items:stretch;gap:28px;min-width:max-content;min-height:230px;}
.tm-round-column{
  position:relative;
  width:clamp(250px,21vw,330px);
  min-width:250px;
  display:grid;
  grid-template-rows:auto 1fr;
  gap:10px;
}
.tm-round-column:not(:last-child)::after{
  content:'➜';
  position:absolute;
  top:49%;
  right:-22px;
  color:rgba(121,176,191,.43);
  font-size:19px;
}
.tm-round-head{padding:0 3px;}
.tm-round-head span{color:#77a9b7;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;}
.tm-round-head h3{margin:2px 0 2px;font-size:15px;}
.tm-round-head small{color:#6f8a95;font-size:9px;}
.tm-round-games{display:flex;flex-direction:column;justify-content:space-evenly;gap:10px;min-height:180px;}
.tm-game-card{
  position:relative;
  min-width:0;
  padding:10px;
  border:1px solid rgba(130,186,201,.16);
  border-left:3px solid #477382;
  border-radius:13px;
  background:linear-gradient(155deg,rgba(16,48,61,.92),rgba(8,28,40,.94));
  box-shadow:0 8px 22px rgba(0,0,0,.16);
}
.tm-game-card.is-live{border-left-color:#55c99e;box-shadow:0 0 0 1px rgba(85,201,158,.05),0 8px 24px rgba(0,0,0,.18);}
.tm-game-card.is-waiting{border-left-color:#cfaa50;}
.tm-game-card.is-complete{border-left-color:#7197a3;opacity:.88;}
.tm-game-card.is-compact{padding:9px;}
.tm-game-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.tm-game-head > div{min-width:0;}
.tm-table-label{display:block;color:#72a5b3;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;}
.tm-game-head strong{display:block;margin-top:2px;font-size:12px;}
.tm-game-status{
  flex:0 0 auto;
  max-width:48%;
  padding:3px 6px;
  border-radius:7px;
  background:rgba(255,255,255,.055);
  color:#9bb6bf;
  font-size:8px;
  font-weight:800;
  text-align:right;
}
.tm-game-card.is-live .tm-game-status{color:#bdf2dc;background:rgba(72,190,145,.1);}
.tm-game-progress{height:4px;margin:8px 0 4px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;}
.tm-game-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3f9cb2,#61c79e);transition:width .3s ease;}
.tm-game-live-meta{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:7px;color:#7797a2;font-size:8px;font-weight:700;}
.tm-player-list{display:grid;gap:3px;}
.tm-player-row{
  min-width:0;
  display:grid;
  grid-template-columns:7px minmax(0,1fr) auto auto auto;
  align-items:center;
  gap:5px;
  min-height:24px;
  padding:3px 5px;
  border-radius:7px;
  background:rgba(255,255,255,.025);
  color:#b4cbd2;
  font-size:9px;
}
.tm-game-card.is-compact .tm-player-row{grid-template-columns:7px minmax(0,1fr) auto auto;min-height:22px;}
.tm-player-row.is-turn{background:rgba(87,201,161,.09);color:#e8fff5;}
.tm-turn-marker{width:6px;height:6px;border-radius:50%;background:#31515c;}
.tm-player-row.is-turn .tm-turn-marker{background:#63d5a9;box-shadow:0 0 8px rgba(99,213,169,.55);}
.tm-player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;}
.tm-player-tricks,.tm-player-round{color:#71939e;white-space:nowrap;font-size:8px;}
.tm-player-tricks b{color:#bfd7de;}
.tm-player-round{min-width:33px;text-align:right;}
.tm-player-points{min-width:34px;text-align:right;color:#f2f8fa;font-variant-numeric:tabular-nums;font-size:9px;}
.tm-game-message{margin-top:7px;padding:6px 7px;border-radius:7px;background:rgba(255,255,255,.025);color:#75929d;font-size:8px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tm-game-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;color:#64818c;font-size:8px;}
.tm-game-open{color:#9edbe8;text-decoration:none;font-weight:800;}
.tm-game-open:hover{text-decoration:underline;}
.tm-games-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:9px;padding:12px 14px 15px;}
.tm-games-grid .tm-game-card{height:100%;}
.tm-no-players,.tm-empty,.tm-loading{padding:18px;color:#6f8f9a;font-size:11px;text-align:center;}
.tm-final-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px;padding:12px 14px 15px;}
.tm-result-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:7px;padding:9px 10px;border-radius:10px;background:rgba(255,255,255,.035);font-size:10px;}
.tm-result-row.is-podium{border:1px solid rgba(218,180,78,.24);background:rgba(218,180,78,.07);}
.tm-result-row span{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tm-result-row strong{font-variant-numeric:tabular-nums;}
.tournament-monitor-missing{min-height:100vh;display:grid;place-items:center;padding:20px;text-align:center;}
.tournament-monitor-missing section{max-width:460px;padding:30px;border:1px solid rgba(145,203,220,.18);border-radius:18px;background:rgba(7,25,35,.78);}

@media (min-width:1500px){
  .tm-games-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
  .tm-round-column{width:310px;}
}
@media (max-width:1100px){
  .tm-topbar{grid-template-columns:1fr auto;}
  .tm-kpis{grid-row:2;grid-column:1/-1;grid-template-columns:repeat(3,minmax(90px,160px));justify-content:start;}
}
@media (max-width:760px){
  .tournament-monitor-shell{padding:7px 7px 18px;}
  .tm-topbar{position:relative;grid-template-columns:1fr;padding:11px;gap:10px;border-radius:14px;}
  .tm-kpis{grid-row:auto;grid-column:auto;grid-template-columns:repeat(3,1fr);}
  .tm-topbar-actions{justify-content:flex-start;flex-wrap:wrap;}
  .tm-clock{margin-right:auto;text-align:left;}
  .tm-panel{border-radius:14px;}
  .tm-panel-head{align-items:flex-start;flex-direction:column;padding:11px 12px 9px;}
  .tm-legend{flex-wrap:wrap;}
  .tm-bracket-scroll{padding:11px;}
  .tm-round-column{width:270px;min-width:270px;}
  .tm-games-grid{grid-template-columns:1fr;padding:10px;}
}
@media (max-height:760px) and (min-width:900px){
  .tournament-monitor-shell{padding-top:8px;}
  .tm-topbar{padding:8px 12px;border-radius:14px;}
  .tm-title-row h1{font-size:21px;}
  .tm-subtitle{margin-top:3px;}
  .tm-kpi{padding:6px 8px;}
  .tm-kpi strong{font-size:15px;}
  .tm-connection-bar{min-height:22px;margin:4px 3px 6px;}
  .tm-panel-head{padding:8px 12px 7px;}
  .tm-bracket-scroll{padding:8px 10px 10px;}
  .tm-round-games{gap:6px;min-height:130px;}
  .tm-game-card{padding:7px;}
  .tm-player-row{min-height:20px;padding:2px 4px;}
  .tm-games-grid{gap:6px;padding:8px 10px 10px;}
}
.tournament-monitor-overlay{
  position:fixed;
  inset:0;
  z-index:2147483000;
  width:100vw;
  height:100vh;
  background:#07131d;
}
.tournament-monitor-overlay__frame{display:block;width:100%;height:100%;border:0;background:#07131d;}

/* Livepeli v48: varmojen loppujen tikkien pöytäys / claim */
.live-action-panel--remaining-claim{
  border:1px solid rgba(255,222,124,.72);
  background:linear-gradient(180deg,rgba(24,74,55,.97),rgba(11,47,36,.98));
  box-shadow:0 16px 42px rgba(0,0,0,.30),0 0 0 1px rgba(255,255,255,.05) inset;
}
.live-action-panel--remaining-claim .live-action-panel__title{
  font-size:18px;
  letter-spacing:.01em;
}
.live-remaining-claim-actions{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  gap:10px;
  margin-top:12px;
}
.live-choice-button--claim-all{
  background:linear-gradient(180deg,#f3c45e,#c98d25) !important;
  border-color:rgba(255,235,175,.82) !important;
  color:#1e291f !important;
  text-shadow:none !important;
  font-weight:900 !important;
}
.live-choice-button--continue-cards{
  background:rgba(255,255,255,.09) !important;
}
.live-remaining-claim-animation{
  position:absolute;
  inset:0;
  z-index:9800;
  pointer-events:none;
  overflow:hidden;
  isolation:isolate;
}
.live-remaining-claim-animation__shade{
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 50% 50%,rgba(255,236,170,.05),rgba(4,23,17,.10) 55%,rgba(2,13,10,.22));
  animation:liveRemainingClaimShade 8000ms linear both;
  animation-delay:var(--claim-elapsed,0ms);
}
.live-remaining-claim-animation__label{
  position:absolute;
  left:50%;
  top:7%;
  transform:translateX(-50%);
  max-width:min(760px,90%);
  padding:9px 16px;
  border-radius:999px;
  border:1px solid rgba(255,230,156,.66);
  background:rgba(8,42,31,.92);
  color:#fff6d7;
  box-shadow:0 12px 34px rgba(0,0,0,.32);
  font-size:clamp(13px,1.5vw,19px);
  text-align:center;
  white-space:nowrap;
  z-index:9950;
  animation:liveRemainingClaimLabel 8000ms ease both;
  animation-delay:var(--claim-elapsed,0ms);
}
.live-remaining-claim-animation__cards{
  position:absolute;
  inset:0;
  z-index:9820;
}
.live-remaining-claim-owner-label{
  position:absolute;
  left:var(--claim-label-x);
  top:var(--claim-label-y);
  transform:translate(-50%,-50%);
  padding:3px 8px;
  border-radius:999px;
  background:rgba(5,28,21,.78);
  border:1px solid rgba(255,244,198,.38);
  color:#fff4cf;
  font-size:11px;
  font-weight:800;
  line-height:1.15;
  white-space:nowrap;
  opacity:0;
  z-index:9920;
  animation:liveRemainingClaimOwnerLabel 360ms ease-out both;
  animation-delay:var(--claim-reveal-delay,0ms);
}
.live-remaining-claim-owner-label--left{transform:translate(-50%,-50%) rotate(-90deg);}
.live-remaining-claim-owner-label--right{transform:translate(-50%,-50%) rotate(90deg);}
.live-remaining-claim-card{
  position:absolute;
  left:var(--claim-table-x);
  top:var(--claim-table-y);
  width:clamp(40px,5vw,70px);
  aspect-ratio:.7142857;
  transform:translate(-50%,-50%) scale(1);
  transform-origin:50% 50%;
  z-index:var(--claim-z);
  opacity:1;
  filter:drop-shadow(0 8px 10px rgba(0,0,0,.32));
  animation-name:liveRemainingClaimCollectCard;
  animation-duration:var(--claim-collect-duration,420ms);
  animation-timing-function:cubic-bezier(.22,.72,.2,1);
  animation-fill-mode:both;
  animation-delay:var(--claim-collect-delay,3000ms);
  will-change:left,top,transform,opacity;
}
.live-remaining-claim-card__face{
  display:block;
  width:100%;
  height:100%;
  opacity:0;
  transform:translate(var(--claim-deal-x,0),var(--claim-deal-y,0)) rotate(var(--claim-rot,0deg)) scale(.82);
  transform-origin:50% 50%;
  animation:liveRemainingClaimRevealCard 320ms cubic-bezier(.2,.8,.2,1) both;
  animation-delay:var(--claim-reveal-delay,0ms);
  will-change:transform,opacity;
}
.live-remaining-claim-card img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:8px;
}
@keyframes liveRemainingClaimRevealCard{
  0%{opacity:0;transform:translate(var(--claim-deal-x,0),var(--claim-deal-y,0)) rotate(var(--claim-rot,0deg)) scale(.82);}
  70%{opacity:1;transform:translate(0,0) rotate(var(--claim-rot,0deg)) scale(1.04);}
  100%{opacity:1;transform:translate(0,0) rotate(var(--claim-rot,0deg)) scale(1);}
}
@keyframes liveRemainingClaimCollectCard{
  0%{
    left:var(--claim-table-x);
    top:var(--claim-table-y);
    transform:translate(-50%,-50%) scale(1);
    opacity:1;
  }
  68%{
    left:var(--claim-to-x);
    top:var(--claim-to-y);
    transform:translate(-50%,-50%) scale(.78);
    opacity:1;
  }
  100%{
    left:var(--claim-to-x);
    top:var(--claim-to-y);
    transform:translate(-50%,-50%) scale(.38);
    opacity:0;
  }
}
@keyframes liveRemainingClaimOwnerLabel{
  0%{opacity:0;}
  100%{opacity:.92;}
}
@keyframes liveRemainingClaimLabel{
  0%{opacity:0;transform:translate(-50%,-9px) scale(.97);}
  6%,88%{opacity:1;transform:translate(-50%,0) scale(1);}
  100%{opacity:0;transform:translate(-50%,-5px) scale(.98);}
}
@keyframes liveRemainingClaimShade{
  0%{opacity:0;}
  7%,90%{opacity:1;}
  100%{opacity:0;}
}
.live-room-stage.is-remaining-claim-stage .live-card-drop-hint,
.live-room-stage.is-remaining-claim-stage .live-turn-arrow-layer{
  opacity:0 !important;
}
@media (max-width:700px){
  .live-remaining-claim-actions{grid-template-columns:1fr;}
  .live-remaining-claim-animation__label{white-space:normal;top:4%;padding:7px 11px;max-width:92%;}
  .live-remaining-claim-card{width:clamp(32px,7.2vw,48px);}
  .live-remaining-claim-owner-label{font-size:9px;padding:2px 5px;}
}
@media (prefers-reduced-motion:reduce){
  .live-remaining-claim-card{animation-duration:220ms;}
  .live-remaining-claim-card__face{animation-duration:180ms;}
}


/* 2026-08-11 v50: Pelatut pelit -tilasto ja kirjautumiskenttien yhtenäinen korkeus */
.auth-card .auth-form input[type="email"],
.auth-card .auth-form input[type="password"]{
  width:100%;
  min-height:40px;
  font:inherit;
  line-height:1.25;
  color:var(--text);
  border:1px solid #cfd8e3;
  background:#fff;
  border-radius:10px;
  padding:7px 9px;
  box-sizing:border-box;
}
.auth-card .auth-form input[type="email"]:focus,
.auth-card .auth-form input[type="password"]:focus{
  outline:none;
  border-color:#6aa3d7;
  box-shadow:0 0 0 3px rgba(106,163,215,.18);
}

.stats-games-summary{text-align:center;}
.stats-games-legend{border-bottom:1px solid #d7e3ee;}
.stats-games-charts{padding:14px;}
.stats-games-chart__plot{
  display:flex;
  align-items:stretch;
  width:max-content;
  min-width:100%;
  padding:14px 10px 10px;
  box-sizing:border-box;
}
.stats-games-chart__category{
  display:flex;
  flex:1 0 150px;
  min-width:150px;
  flex-direction:column;
  justify-content:flex-end;
  padding:0 8px;
  box-sizing:border-box;
  border-right:1px solid #e6edf3;
  color:inherit;
  text-decoration:none;
}
.stats-games-chart__category:last-child{border-right:0;}
.stats-games-chart__category--link{
  border-radius:10px;
  transition:background .16s ease, box-shadow .16s ease;
}
.stats-games-chart__category--link:hover,
.stats-games-chart__category--link:focus-visible{
  background:#eef5ff;
  box-shadow:inset 0 0 0 2px rgba(0,49,146,.16);
  outline:none;
  text-decoration:none;
}
.stats-games-chart__bars{
  display:grid;
  grid-template-columns:repeat(3,32px);
  align-items:end;
  justify-content:center;
  gap:7px;
  min-height:164px;
}
.stats-games-chart__category-label{
  display:flex;
  min-height:48px;
  margin-top:8px;
  padding:7px 4px 0;
  border-top:2px solid #9fb6c9;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:2px;
  color:#294c68;
  text-align:center;
}
.stats-games-chart__category-label strong{
  font-size:12px;
  font-weight:900;
  line-height:1.15;
}
.stats-games-chart__category-label small{
  color:#6a7f92;
  font-size:10px;
  font-weight:750;
}
.stats-games-back-link{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:6px 11px;
  border:1px solid rgba(255,255,255,.45);
  border-radius:8px;
  background:#fff;
  color:#003192 !important;
  font-size:12px;
  font-weight:850;
  text-decoration:none !important;
}
.stats-games-back-link:hover,
.stats-games-back-link:focus-visible{
  background:#f4f8ff;
  outline:2px solid rgba(255,214,101,.55);
  outline-offset:1px;
}
@media (max-width:620px){
  .stats-games-charts{padding:8px;}
  .stats-games-chart__plot{padding:10px 3px 7px;}
  .stats-games-chart__category{
    flex-basis:128px;
    min-width:128px;
    padding:0 4px;
  }
  .stats-games-chart__bars{
    grid-template-columns:repeat(3,29px);
    gap:4px;
  }
}

/* 2026-08-11 v54: iPhone fullscreen - yksi alapelaajan palkki, avattavat työkalut,
   viimeisen tikin popover, kortin levyinen laillisuuspalkki ja hieman suurempi pöytä. */
.live-phone-tools-toggle,
.live-phone-previous-trick-toggle{display:none;}

/* iPhonen oma alapelaajan telakka on ainoa näkyvä nimi/tikki/toimintopalkki.
   Piilotetaan stageen jäävät lähde- ja proxykopiot, mutta ei telakoitua solmua. */
#live-game-view.is-live-iphone-fullscreen .live-room-stage .live-seat--bottom .live-seat__meta--self-inline:not(.is-live-phone-docked),
#live-game-view.is-live-iphone-fullscreen .live-room-stage .live-layout-detached-proxy[data-layout-proxy-id="seat_bottom_meta"]:not(.is-live-phone-docked){
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* Layout-editoria ei tarjota iPhonen fullscreenissä. */
#live-game-view.is-live-iphone-fullscreen [data-action="open-layout-editor"]{
  display:none !important;
}

/* Oikeaan yläkulmaan jää vain työkalujen avaus sekä fullscreenin sulku. */
#live-game-view.is-live-iphone-fullscreen .live-game-view__action-row{
  position:relative !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:5px !important;
  overflow:visible !important;
}
#live-game-view.is-live-iphone-fullscreen .live-phone-tools-toggle{
  appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:34px !important;
  min-width:34px !important;
  max-width:34px !important;
  height:34px !important;
  min-height:34px !important;
  max-height:34px !important;
  margin:0 !important;
  padding:0 0 5px !important;
  border:1px solid rgba(255,255,255,.42) !important;
  border-radius:50% !important;
  background:rgba(5,18,31,.86) !important;
  color:#fff4c9 !important;
  box-shadow:0 4px 12px rgba(0,0,0,.34) !important;
  font:900 17px/1 Arial,sans-serif !important;
  letter-spacing:1px !important;
  cursor:pointer !important;
  pointer-events:auto !important;
}
#live-game-view.is-live-iphone-fullscreen .live-phone-tools-toggle.is-open{
  background:rgba(88,61,14,.94) !important;
  border-color:rgba(255,226,138,.72) !important;
}
#live-game-view.is-live-iphone-fullscreen .live-game-view__action-row .live-game-fullscreen-toggle{
  display:flex !important;
  flex:0 0 34px !important;
}
#live-game-view.is-live-iphone-fullscreen .live-game-topbar-tools{
  display:none !important;
  position:absolute !important;
  top:40px !important;
  right:0 !important;
  z-index:20650 !important;
  width:max-content !important;
  max-width:min(286px, calc(var(--live-phone-viewport-width, 100vw) - 12px)) !important;
  padding:7px !important;
  border:1px solid rgba(255,226,138,.46) !important;
  border-radius:13px !important;
  background:rgba(5,20,34,.97) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.46) !important;
  backdrop-filter:blur(8px) !important;
  pointer-events:auto !important;
}
#live-game-view.is-live-iphone-fullscreen .live-game-topbar-tools.is-open{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:5px !important;
}
#live-game-view.is-live-iphone-fullscreen .live-game-topbar-tools.is-open .live-scorebook-controls,
#live-game-view.is-live-iphone-fullscreen .live-game-topbar-tools.is-open .live-message-card__appearance-row{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:5px !important;
  margin:0 !important;
  padding:0 !important;
}
#live-game-view.is-live-iphone-fullscreen .live-game-topbar-tools.is-open .live-icon-tool,
#live-game-view.is-live-iphone-fullscreen .live-game-topbar-tools.is-open .live-scorebook-badge,
#live-game-view.is-live-iphone-fullscreen .live-game-topbar-tools.is-open .live-card-back-picker,
#live-game-view.is-live-iphone-fullscreen .live-game-topbar-tools.is-open .live-table-tone-picker,
#live-game-view.is-live-iphone-fullscreen .live-game-topbar-tools.is-open .live-room-tone-picker{
  display:inline-flex !important;
  width:34px !important;
  min-width:34px !important;
  max-width:34px !important;
  height:34px !important;
  min-height:34px !important;
  max-height:34px !important;
  margin:0 !important;
}

/* iPhonen vihreä/punainen kortin laillisuuspalkki on täsmälleen kortin levyinen. */
#live-game-view.is-live-iphone-fullscreen .live-phone-hand-slot .live-card-button > .live-card-button__bg{
  left:50% !important;
  width:var(--live-phone-card-width, 62px) !important;
  min-width:var(--live-phone-card-width, 62px) !important;
  max-width:var(--live-phone-card-width, 62px) !important;
  box-sizing:border-box !important;
}

/* iPhonessa vanha Viimeiset tikit -sivukortti poistuu. Viimeisin tikki avataan
   pienestä pöydän omasta painikkeesta. */
#live-game-view.is-live-iphone-fullscreen .live-game-shell__sidebar{
  display:none !important;
}
#live-game-view.is-live-iphone-fullscreen .live-phone-previous-trick-toggle{
  appearance:none !important;
  position:absolute !important;
  top:5px !important;
  left:5px !important;
  z-index:18850 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:4px !important;
  height:30px !important;
  min-height:30px !important;
  margin:0 !important;
  padding:4px 8px !important;
  border:1px solid rgba(255,226,138,.58) !important;
  border-radius:999px !important;
  background:rgba(5,24,31,.88) !important;
  color:#fff1bc !important;
  box-shadow:0 4px 12px rgba(0,0,0,.32) !important;
  font-size:10px !important;
  line-height:1 !important;
  pointer-events:auto !important;
  cursor:pointer !important;
}
#live-game-view.is-live-iphone-fullscreen .live-phone-previous-trick-toggle > span{
  font-size:16px !important;
}
#live-game-view.is-live-iphone-fullscreen .live-phone-previous-trick-toggle b{
  font-size:10px !important;
  white-space:nowrap !important;
}
#live-game-view.is-live-iphone-fullscreen .live-phone-previous-trick-toggle small{
  min-width:17px !important;
  padding:2px 4px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.13) !important;
  color:#fff !important;
  font-size:8px !important;
}
#live-game-view.is-live-iphone-fullscreen .live-phone-previous-trick-toggle.is-open{
  background:rgba(92,61,10,.94) !important;
}
#live-game-view.is-live-iphone-fullscreen .live-previous-trick{
  left:50% !important;
  top:38% !important;
  width:min(88%,520px) !important;
  height:min(58%,260px) !important;
  max-height:calc(100% - 54px) !important;
  background:rgba(5,25,25,.82) !important;
  border-color:rgba(255,238,184,.52) !important;
  backdrop-filter:blur(6px) !important;
  box-shadow:0 18px 42px rgba(0,0,0,.46), inset 0 0 0 1px rgba(255,255,255,.07) !important;
  pointer-events:auto !important;
}
#live-game-view.is-live-iphone-fullscreen .live-previous-trick .live-card,
#live-game-view.is-live-iphone-fullscreen .live-previous-trick .live-card--table{
  width:clamp(48px,8.2vw,78px) !important;
}

/* Vapautuneen tilan vuoksi iPhone Max / muut iPhonet saavat hieman enemmän
   näkyvää pöytäalaa; varsinainen skaala lasketaan JS:ssä turvallisesti viewportista. */
#live-game-view.is-live-iphone-fullscreen .live-room-stage{
  box-shadow:0 14px 34px rgba(0,0,0,.30), inset 0 0 0 1px rgba(255,255,255,.05) !important;
}
