:root{
  --bg:#f5f7fb;--card:#fff;--line:#dfe5ee;--text:#1f2937;--muted:#6b7280;
  --blue:#1f4e78;--blue2:#5b9bd5;--input:#fff2cc;--green:#e2f0d9;--red:#f8d7da;--app-font-scale:1;
}
*{box-sizing:border-box}
body{margin:0;font-family:Segoe UI,Tahoma,sans-serif;background:var(--bg);color:var(--text)}
header{background:var(--blue);color:#fff;padding:16px 20px;position:sticky;top:0;z-index:20}
header h1{margin:0;font-size:calc(21px * var(--app-font-scale,1))}
.wrap{max-width:1440px;margin:18px auto;padding:0 14px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
button,.btnlike{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 13px;cursor:pointer;font-size:calc(14px * var(--app-font-scale,1))}
button.primary{background:var(--blue);color:#fff;border-color:var(--blue)}
button.danger{color:#a61b1b}
.tabs button.active{background:var(--blue);color:#fff}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:15px;margin-bottom:14px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
h2,h3{margin-top:0}
.grid{display:grid;grid-template-columns:repeat(6,minmax(135px,1fr));gap:10px}
.field label{display:block;font-size:calc(12px * var(--app-font-scale,1));color:var(--muted);margin-bottom:5px}
input,select{width:100%;border:1px solid #cfd6df;border-radius:7px;padding:8px;background:#fff}
.inputcell{background:var(--input)}
table{width:100%;border-collapse:collapse;font-size:calc(14px * var(--app-font-scale,1))}
th,td{padding:8px;border-bottom:1px solid var(--line);text-align:center}
th{background:#eef4fa;white-space:nowrap}
td.left{text-align:left}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.kpis .k{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:12px}
.k b{font-size:calc(20px * var(--app-font-scale,1));display:block;margin-top:4px}
.ok{color:#15803d;font-weight:700}
.ng{color:#b91c1c;font-weight:700}
.hidden{display:none}
.small{font-size:calc(12px * var(--app-font-scale,1));color:var(--muted)}
.note{background:#eef6ff;border-left:4px solid var(--blue2);padding:10px 12px;border-radius:6px}
@media(max-width:950px){
  .grid{grid-template-columns:repeat(2,1fr)}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .wrap{padding:0 8px}
  table{font-size:calc(12px * var(--app-font-scale,1))}
}

.date-picker-wrap{display:flex;gap:6px;align-items:center;position:relative}
.date-picker-wrap #date{flex:1;background:#fff;cursor:pointer}
.calendar-btn{padding:8px 10px;min-width:42px}
.native-date-picker{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;right:0;bottom:0}


.login-screen{
  position:fixed;inset:0;background:#f5f7fb;z-index:9999;
  display:flex;align-items:center;justify-content:center;padding:20px
}
.login-card{
  width:min(420px,100%);background:#fff;border:1px solid var(--line);
  border-radius:16px;padding:24px;box-shadow:0 10px 30px rgba(0,0,0,.08)
}
.login-card h2{margin:0 0 8px;text-align:center;color:var(--blue)}
.login-card p{margin:0 0 18px;text-align:center;color:var(--muted)}
.login-card .field{margin-bottom:12px}
.login-error{color:#b91c1c;font-size:calc(13px * var(--app-font-scale,1));margin-top:10px;display:none}
.app-hidden{display:none !important}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.logout-btn{background:#fff;color:var(--blue);border-color:#fff}


/* ===== Mobile Friendly UI ===== */
.mobile-scroll{overflow:auto;-webkit-overflow-scrolling:touch}
@media(max-width:720px){
  body{font-size:calc(14px * var(--app-font-scale,1))}
  header{padding:10px 12px}
  header h1{font-size:calc(16px * var(--app-font-scale,1));line-height:1.25}
  .header-row{align-items:flex-start}
  .logout-btn{padding:7px 9px;font-size:calc(12px * var(--app-font-scale,1))}

  .wrap{margin:8px auto;padding:0 6px}
  .tabs{
    position:sticky;top:52px;z-index:15;background:var(--bg);
    flex-wrap:nowrap;overflow-x:auto;padding:4px 0 8px;margin-bottom:8px
  }
  .tabs button{white-space:nowrap;flex:0 0 auto;padding:8px 10px}

  .card{padding:10px;border-radius:10px;margin-bottom:10px}
  .card h2{font-size:calc(18px * var(--app-font-scale,1))}
  .card h3{font-size:calc(17px * var(--app-font-scale,1));margin-bottom:10px}

  .grid{grid-template-columns:1fr 1fr;gap:8px}
  .field label{font-size:calc(11px * var(--app-font-scale,1))}
  input,select{padding:8px 7px;font-size:calc(14px * var(--app-font-scale,1))}
  .toolbar{display:grid;grid-template-columns:1fr;gap:7px}
  .toolbar button,.toolbar .btnlike{width:100%;text-align:center}
  .note{font-size:calc(11px * var(--app-font-scale,1));line-height:1.45}

  .kpis{grid-template-columns:1fr 1fr;gap:7px}
  .kpis .k{padding:9px}
  .k b{font-size:calc(17px * var(--app-font-scale,1))}

  /* Convert key tables into stacked mobile cards */
  table.mobile-cards{display:block;width:100%}
  table.mobile-cards thead{display:none}
  table.mobile-cards tbody{display:block;width:100%}
  table.mobile-cards tr{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px 9px;
    border:1px solid var(--line);
    border-radius:10px;
    padding:10px;
    margin-bottom:9px;
    background:#fff;
  }
  table.mobile-cards td{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:4px;
    border:0;
    padding:0;
    text-align:left;
    min-width:0;
  }
  table.mobile-cards td::before{
    content:attr(data-label);
    color:var(--muted);
    font-size:calc(11px * var(--app-font-scale,1));
    font-weight:600;
    min-height:14px;
  }
  table.mobile-cards td.full-mobile{grid-column:1/-1}
  table.mobile-cards td.center-mobile{align-items:center}
  table.mobile-cards td input,
  table.mobile-cards td select{width:100%;min-width:0}
  table.mobile-cards td button{width:100%}

  /* Players: make name / time / water easy to tap */
  table.players-mobile tr{grid-template-columns:60px 1fr 1fr}
  table.players-mobile td:nth-child(1),
  table.players-mobile td:nth-child(2){align-items:center;justify-content:center}
  table.players-mobile td:nth-child(3){grid-column:2/-1}
  table.players-mobile td:nth-child(4),
  table.players-mobile td:nth-child(5){grid-column:auto}
  table.players-mobile td:nth-child(6){align-items:center;justify-content:center}
  table.players-mobile td:nth-child(7),
  table.players-mobile td:nth-child(8){grid-column:auto}
  table.players-mobile td:nth-child(9){align-items:center;justify-content:center}
  table.players-mobile td:last-child{grid-column:1/-1}

  /* Time cost cards */
  table.slots-mobile tr{grid-template-columns:1fr 1fr}
  table.slots-mobile td:last-child{grid-column:1/-1}

  /* Summary and history remain scrollable but denser */
  .summary-table-wrap,.history-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .summary-table-wrap table,.history-table-wrap table{min-width:760px}

  /* Login */
  .login-card{padding:18px;border-radius:13px}
}

/* ===== v94: Expandable teammate performance in leaderboard ===== */
.competition-player-cell{display:flex;align-items:flex-start;flex-direction:column;gap:6px}.competition-player-partner-toggle{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:26px;padding:4px 8px;border-color:#bcd7f2;border-radius:7px;color:#086fdc;background:#f4f9ff;font-size:calc(7px * var(--app-font-scale,1));font-weight:900;box-shadow:none}.competition-player-partner-toggle:hover{border-color:#77b5ef;background:#e9f4ff}.competition-player-partner-toggle .app-icon{width:12px;height:12px}.competition-player-summary-table tr.is-expanded>td{border-bottom-color:transparent;background:#f7fbff}
.competition-partner-detail-row>td{width:auto!important;padding:0 8px 10px!important;border-bottom:1px solid #cfe0ef!important;background:#f7fbff!important;text-align:left!important}.competition-partner-panel{overflow:hidden;border:1px solid #cfe0ef;border-radius:11px;background:#fff;box-shadow:0 5px 16px rgba(18,60,100,.06)}.competition-partner-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:linear-gradient(90deg,#eaf4ff,#f5faff)}.competition-partner-panel-head>div{display:flex;min-width:0;flex-direction:column}.competition-partner-panel-head b{color:#143d64;font-size:calc(10px * var(--app-font-scale,1))}.competition-partner-panel-head small{margin-top:2px;color:#6f8397;font-size:calc(7px * var(--app-font-scale,1))}.competition-partner-panel-head>span{padding:4px 8px;border-radius:999px;color:#086cca;background:#fff;font-size:calc(7px * var(--app-font-scale,1));font-weight:900;white-space:nowrap}
.competition-partner-list{display:flex;flex-direction:column;gap:6px;padding:8px}.competition-partner-item{overflow:hidden;border:1px solid #dce7f1;border-radius:9px;background:#fff}.competition-partner-item>summary{display:grid;grid-template-columns:minmax(130px,1fr) auto;gap:10px;align-items:center;padding:8px 10px;cursor:pointer;list-style:none}.competition-partner-item>summary::-webkit-details-marker{display:none}.competition-partner-item>summary::after{content:'⌄';grid-column:3;color:#668099;font-size:calc(12px * var(--app-font-scale,1));font-weight:900;transition:transform .15s ease}.competition-partner-item[open]>summary::after{transform:rotate(180deg)}.competition-partner-name{display:flex;align-items:center;gap:6px;min-width:0}.competition-partner-name .app-icon{width:14px;height:14px;flex:0 0 14px;color:#0877f9}.competition-partner-name>b{overflow:hidden;color:#173b60;font-size:calc(9px * var(--app-font-scale,1));text-overflow:ellipsis;white-space:nowrap}.competition-partner-name>em{padding:3px 6px;border-radius:999px;color:#8a5a00;background:#fff0bb;font-size:calc(6px * var(--app-font-scale,1));font-style:normal;font-weight:900;white-space:nowrap}.competition-partner-metrics{display:grid;grid-template-columns:repeat(4,auto);gap:5px;align-items:center}.competition-partner-metrics small{display:flex;align-items:baseline;gap:2px;padding:4px 6px;border-radius:7px;color:#5f7489;background:#f0f5fa;font-size:calc(6.5px * var(--app-font-scale,1));font-weight:800;white-space:nowrap}.competition-partner-metrics small b{color:#173b60;font-size:calc(9px * var(--app-font-scale,1))}.competition-partner-metrics .wins{color:#087052;background:#e2f8ee}.competition-partner-metrics .wins b{color:#087052}.competition-partner-metrics .losses{color:#b42318;background:#ffeaec}.competition-partner-metrics .losses b{color:#b42318}.competition-partner-metrics>strong{min-width:44px;color:#173b60;font-size:calc(10px * var(--app-font-scale,1));text-align:right}.competition-partner-item.partner-high .competition-partner-metrics>strong{color:#087052}.competition-partner-item.partner-medium .competition-partner-metrics>strong{color:#9b6c00}.competition-partner-item.partner-low .competition-partner-metrics>strong{color:#b42318}
.competition-partner-rate{height:4px;margin:0 10px 7px;border-radius:999px;background:#edf2f7}.competition-partner-rate i{display:block;height:100%;border-radius:inherit}.competition-partner-item.partner-high .competition-partner-rate i{background:#19ae79}.competition-partner-item.partner-medium .competition-partner-rate i{background:#d5aa2f}.competition-partner-item.partner-low .competition-partner-rate i{background:#e96f68}.competition-partner-games{display:flex;flex-direction:column;gap:0;margin:0;padding:0 10px 8px;list-style:none}.competition-partner-games li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 2px;border-top:1px solid #e3ebf3}.competition-partner-games li>span{display:flex;align-items:center;gap:6px;min-width:0}.competition-partner-games li>span:first-child{align-items:flex-start;flex-direction:column;gap:1px}.competition-partner-games li b{color:#173b60;font-size:calc(8px * var(--app-font-scale,1))}.competition-partner-games li small{overflow:hidden;color:#6d8296;font-size:calc(7px * var(--app-font-scale,1));text-overflow:ellipsis;white-space:nowrap}.competition-partner-games li em{padding:3px 7px;border-radius:999px;font-size:calc(7px * var(--app-font-scale,1));font-style:normal;font-weight:900}.competition-partner-games li em.win{color:#087052;background:#dcf7eb}.competition-partner-games li em.loss{color:#b42318;background:#ffe7e9}.competition-partner-empty{padding:18px;color:#71869a;font-size:calc(9px * var(--app-font-scale,1));text-align:center}

@media(max-width:720px){
  .competition-player-cell{gap:4px}.competition-player-partner-toggle{min-height:23px;padding:3px 5px;font-size:calc(6.5px * var(--app-font-scale,1))}.competition-player-partner-toggle .app-icon{width:10px;height:10px}.competition-partner-detail-row>td{padding:0 3px 8px!important}.competition-partner-panel-head{padding:9px}.competition-partner-panel-head b{font-size:calc(9px * var(--app-font-scale,1))}.competition-partner-panel-head small{font-size:calc(6.5px * var(--app-font-scale,1))}.competition-partner-list{padding:6px;gap:5px}.competition-partner-item>summary{grid-template-columns:1fr auto;gap:6px;padding:8px}.competition-partner-item>summary::after{grid-column:2;grid-row:1}.competition-partner-name{grid-column:1;grid-row:1}.competition-partner-name>em{display:none}.competition-partner-metrics{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(4,1fr);gap:4px}.competition-partner-metrics small{justify-content:center;padding:4px 2px}.competition-partner-metrics>strong{display:grid;place-items:center;min-width:0;padding:4px 2px;border-radius:7px;background:#edf2f7;text-align:center}.competition-partner-rate{margin:0 8px 6px}.competition-partner-games{padding:0 8px 6px}.competition-partner-games li{align-items:flex-start;flex-direction:column;gap:4px}.competition-partner-games li>span:last-child{width:100%;justify-content:space-between}.competition-partner-games li small{white-space:normal}
}
@media(max-width:420px){
  .grid{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr 1fr}
  table.players-mobile tr{grid-template-columns:50px 1fr}
  table.players-mobile td:nth-child(3){grid-column:1/-1}
  table.players-mobile td:nth-child(n+4){grid-column:auto}
  table.players-mobile td:last-child{grid-column:1/-1}
}


/* ===== v14: Summary + History Mobile Cards ===== */
@media(max-width:720px){
  .summary-table-wrap,.history-table-wrap{
    overflow:visible;
  }
  .summary-table-wrap table,.history-table-wrap table{
    min-width:0;
  }

  table.summary-mobile-cards,
  table.history-mobile-cards{
    display:block;width:100%;
  }
  table.summary-mobile-cards thead,
  table.history-mobile-cards thead{
    display:none;
  }
  table.summary-mobile-cards tbody,
  table.history-mobile-cards tbody{
    display:block;width:100%;
  }

  table.summary-mobile-cards tbody tr,
  table.history-mobile-cards tbody tr{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px 10px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:12px;
    margin-bottom:10px;
    box-shadow:0 1px 2px rgba(0,0,0,.03);
  }

  table.summary-mobile-cards tbody td,
  table.history-mobile-cards tbody td{
    border:0;
    padding:0;
    text-align:left;
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:2px;
  }

  table.summary-mobile-cards tbody td::before,
  table.history-mobile-cards tbody td::before{
    content:attr(data-label);
    font-size:calc(11px * var(--app-font-scale,1));
    color:var(--muted);
    font-weight:600;
  }

  /* Summary: name and total stand out */
  table.summary-mobile-cards tbody td[data-label="ชื่อ"]{
    grid-column:1/-1;
    font-size:calc(17px * var(--app-font-scale,1));
    font-weight:700;
    padding-bottom:7px;
    border-bottom:1px solid var(--line);
  }
  table.summary-mobile-cards tbody td[data-label="ชื่อ"]::before{display:none}

  table.summary-mobile-cards tbody td[data-label="รวมจ่าย"]{
    grid-column:1/-1;
    background:#eef6ff;
    padding:9px 10px;
    border-radius:8px;
    flex-direction:row;
    justify-content:space-between;
    align-items:center;
  }
  table.summary-mobile-cards tbody td[data-label="รวมจ่าย"]::before{
    font-size:calc(13px * var(--app-font-scale,1));
    color:var(--blue);
  }
  table.summary-mobile-cards tbody td[data-label="รวมจ่าย"] b{
    font-size:calc(19px * var(--app-font-scale,1));
    color:var(--blue);
  }

  table.summary-mobile-cards tbody td[data-label="จ่ายแล้ว"]{
    grid-column:1/-1;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    padding-top:4px;
  }
  table.summary-mobile-cards tbody td[data-label="จ่ายแล้ว"] input{
    width:24px;height:24px;
  }

  table.summary-mobile-cards tfoot{
    display:none;
  }

  /* History: date + name headline, total prominent */
  table.history-mobile-cards tbody td[data-label="วันที่"]{
    grid-column:1/2;
    color:var(--blue);
    font-weight:700;
  }
  table.history-mobile-cards tbody td[data-label="ชื่อ"]{
    grid-column:1/-1;
    order:-1;
    font-size:calc(17px * var(--app-font-scale,1));
    font-weight:700;
    padding-bottom:7px;
    border-bottom:1px solid var(--line);
  }
  table.history-mobile-cards tbody td[data-label="ชื่อ"]::before{display:none}

  table.history-mobile-cards tbody td[data-label="รวม"]{
    grid-column:1/-1;
    background:#eef6ff;
    padding:9px 10px;
    border-radius:8px;
    flex-direction:row;
    justify-content:space-between;
    align-items:center;
    font-size:calc(18px * var(--app-font-scale,1));
    font-weight:700;
    color:var(--blue);
  }

  #history .toolbar{
    display:grid;
    grid-template-columns:1fr;
  }
  #historyDateSelect{
    max-width:none !important;
    width:100%;
  }
}

@media(max-width:420px){
  table.summary-mobile-cards tbody tr,
  table.history-mobile-cards tbody tr{
    grid-template-columns:1fr 1fr;
    padding:10px;
  }
}


.section-titlebar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 12px;border-radius:10px;margin:-2px -2px 12px;
}
.section-titlebar h3{margin:0;color:#fff}
.section-titlebar.cost{background:#2563eb}
.section-titlebar.players{background:#0f766e}
.section-actions{display:flex;gap:8px;flex-wrap:wrap}
.section-actions button{padding:7px 10px}
.collapsed{display:none !important}
@media(max-width:720px){
  .section-titlebar{align-items:flex-start;flex-direction:column}
  .section-actions{width:100%}
  .section-actions button{flex:1}
}


.input-error{border:2px solid #dc2626 !important;background:#fff7f7 !important}


.page-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 18px;
  margin:0 0 14px;
  border-radius:14px;
  border:1px solid rgba(31,78,120,.10);
  box-shadow:0 2px 8px rgba(15,23,42,.05);
}
.page-header .page-icon{
  width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  border-radius:12px;
  background:rgba(255,255,255,.72);
  font-size:calc(22px * var(--app-font-scale,1));
  flex:0 0 auto;
}
.page-header h2{margin:0;font-size:calc(21px * var(--app-font-scale,1));color:#17324d}
.page-header p{margin:3px 0 0;font-size:calc(12px * var(--app-font-scale,1));color:#52677b}
.page-header.today{background:#eaf4ff;border-left:5px solid #5b9bd5}
.page-header.summary{background:#eaf8f2;border-left:5px solid #65a98c}
.page-header.history{background:#fff6e8;border-left:5px solid #d9a85b}
.page-header.settings{background:#f3effb;border-left:5px solid #8f7ab8}
@media(max-width:720px){
  .page-header{padding:13px 14px;border-radius:12px}
  .page-header .page-icon{width:38px;height:38px;font-size:calc(20px * var(--app-font-scale,1))}
  .page-header h2{font-size:calc(18px * var(--app-font-scale,1))}
  .page-header p{font-size:calc(11px * var(--app-font-scale,1))}
}


/* ===== LINE Share / Screenshot Mode ===== */
#lineShareBtn{
  background:#16a34a;
  color:#fff;
  border-color:#16a34a;
}
#lineShareBtn.active{
  background:#334155;
  border-color:#334155;
}
.line-share-head{display:none}

body.line-share-mode{
  background:#fff;
}
body.line-share-mode #appHeader,
body.line-share-mode .tabs,
body.line-share-mode #summary > .page-header,
body.line-share-mode #summary .toolbar,
body.line-share-mode #summary #balanceCheck{
  display:none !important;
}
body.line-share-mode #appWrap{
  max-width:430px;
  margin:0 auto;
  padding:4px;
}
body.line-share-mode #summary{
  display:block !important;
}
body.line-share-mode #summary .card{
  border-radius:8px;
  padding:7px;
  margin-bottom:6px;
  box-shadow:none;
}
body.line-share-mode .line-share-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:8px;
  margin:4px 2px 6px;
  padding:8px 9px;
  background:#eef6ff;
  border-left:4px solid #5b9bd5;
  border-radius:8px;
}
body.line-share-mode .line-share-head .title{
  font-size:calc(13px * var(--app-font-scale,1));
  font-weight:700;
}
body.line-share-mode .line-share-head .sub{
  font-size:calc(9px * var(--app-font-scale,1));
  color:#64748b;
  margin-top:2px;
}
body.line-share-mode .line-share-head .right{
  text-align:right;
  font-size:calc(9px * var(--app-font-scale,1));
  color:#64748b;
}
body.line-share-mode .kpis{
  grid-template-columns:repeat(3,1fr) !important;
  gap:4px !important;
}
body.line-share-mode .kpis .k{
  padding:6px !important;
  border-radius:6px !important;
}
body.line-share-mode .kpis .k{
  font-size:calc(9px * var(--app-font-scale,1)) !important;
}
body.line-share-mode .kpis .k b{
  font-size:calc(14px * var(--app-font-scale,1)) !important;
  margin-top:2px !important;
}
body.line-share-mode #summary h3{
  font-size:calc(12px * var(--app-font-scale,1));
  margin-bottom:5px;
}
body.line-share-mode #summaryModeBadge{
  font-size:calc(8px * var(--app-font-scale,1)) !important;
  padding:3px 5px !important;
}
body.line-share-mode .summary-table-wrap{
  overflow:visible !important;
}
body.line-share-mode table.summary-mobile-cards{
  display:table !important;
  width:100% !important;
  min-width:0 !important;
  table-layout:fixed;
}
body.line-share-mode table.summary-mobile-cards thead{
  display:table-header-group !important;
}
body.line-share-mode table.summary-mobile-cards tbody{
  display:table-row-group !important;
}
body.line-share-mode table.summary-mobile-cards tfoot{
  display:table-footer-group !important;
}
body.line-share-mode table.summary-mobile-cards tr{
  display:table-row !important;
  border:0 !important;
  padding:0 !important;
  margin:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
body.line-share-mode table.summary-mobile-cards th{
  display:table-cell !important;
  padding:4px 2px !important;
  font-size:calc(8px * var(--app-font-scale,1)) !important;
  background:#edf4fa !important;
  white-space:nowrap;
}
body.line-share-mode table.summary-mobile-cards td{
  display:table-cell !important;
  padding:4px 2px !important;
  font-size:calc(9px * var(--app-font-scale,1)) !important;
  text-align:right !important;
  border-bottom:1px solid #e5e7eb !important;
  background:transparent !important;
}
body.line-share-mode table.summary-mobile-cards td::before{
  display:none !important;
  content:none !important;
}
body.line-share-mode table.summary-mobile-cards td:first-child{
  text-align:left !important;
  font-weight:600;
}
body.line-share-mode table.summary-mobile-cards td[data-label="ชื่อ"]{
  font-size:calc(9px * var(--app-font-scale,1)) !important;
  padding:4px 2px !important;
  border-bottom:1px solid #e5e7eb !important;
}
body.line-share-mode table.summary-mobile-cards td[data-label="รวมจ่าย"]{
  background:transparent !important;
  border-radius:0 !important;
  padding:4px 2px !important;
  display:table-cell !important;
  color:#174f83 !important;
}
body.line-share-mode table.summary-mobile-cards td[data-label="รวมจ่าย"] b{
  font-size:calc(9px * var(--app-font-scale,1)) !important;
  color:#174f83 !important;
}
body.line-share-mode table.summary-mobile-cards td[data-label="จ่ายแล้ว"]{
  display:none !important;
}
body.line-share-mode table.summary-mobile-cards th:last-child{
  display:none !important;
}
body.line-share-mode table.summary-mobile-cards th:nth-child(1){width:34%}
body.line-share-mode table.summary-mobile-cards th:nth-child(2){width:11%}
body.line-share-mode table.summary-mobile-cards th:nth-child(3),
body.line-share-mode table.summary-mobile-cards th:nth-child(4),
body.line-share-mode table.summary-mobile-cards th:nth-child(5),
body.line-share-mode table.summary-mobile-cards th:nth-child(6){width:13.75%}

@media(max-width:720px){
  #lineShareBtn{width:100%}
}


#lineShareBackBtn{
  display:none;
}
body.line-share-mode #lineShareBackBtn{
  display:block !important;
  position:fixed;
  right:10px;
  bottom:14px;
  z-index:9999;
  border:0;
  border-radius:999px;
  padding:10px 14px;
  background:#334155;
  color:#fff;
  font-weight:700;
  box-shadow:0 4px 14px rgba(15,23,42,.22);
}


#history table th:nth-child(3),#history table td:nth-child(3){min-width:180px;white-space:normal}
@media(max-width:720px){
  #history .toolbar{display:grid;grid-template-columns:1fr}
  #history .toolbar select,#history .toolbar button{width:100%;max-width:none!important}
}

/* ===== v36: Mode selector panel responsive ===== */
.mode-panel{
  border:1px solid #d7e5f2;
  background:#f8fbff !important;
  overflow:hidden;
}
.mode-grid{
  display:grid;
  grid-template-columns:minmax(220px,1.2fr) minmax(250px,1.35fr) minmax(180px,.9fr);
  gap:12px;
  align-items:start;
}
.mode-grid .field{
  min-width:0;
}
.mode-grid .field label{
  min-height:18px;
  line-height:1.25;
}
.mode-grid select,
.mode-grid input{
  width:100%;
  min-width:0;
}
#totalShuttleCostText{
  margin-top:6px !important;
  padding-left:2px;
  line-height:1.3;
}

/* Tablet */
@media(max-width:900px){
  .mode-grid{
    grid-template-columns:1fr 1fr;
  }
  #totalShuttleWrap{
    grid-column:1/-1;
  }
}

/* Mobile */
@media(max-width:620px){
  .mode-panel{
    padding:10px !important;
  }
  .mode-grid{
    grid-template-columns:1fr;
    gap:10px;
  }
  #shuttleModeWrap,
  #totalShuttleWrap{
    grid-column:auto;
  }
  .mode-grid .field label{
    font-size:calc(11px * var(--app-font-scale,1));
    margin-bottom:4px;
  }
  .mode-grid select,
  .mode-grid input{
    font-size:calc(14px * var(--app-font-scale,1));
    padding:9px 10px;
    height:40px;
  }
  #modeHelp{
    margin-top:8px !important;
    padding:9px 10px;
    font-size:calc(11px * var(--app-font-scale,1));
    line-height:1.4;
  }
  #totalShuttleCostText{
    font-size:calc(11px * var(--app-font-scale,1));
  }
}


/* ===== v37: Player table column sizing ===== */
@media(min-width:721px){
  table.players-mobile{
    table-layout:fixed;
    width:100%;
  }

  /* ลำดับ */
  table.players-mobile th:nth-child(1),
  table.players-mobile td:nth-child(1){
    width:5%;
  }

  /* มา */
  table.players-mobile th:nth-child(2),
  table.players-mobile td:nth-child(2){
    width:6%;
  }

  /* ชื่อ - ขยายให้ยาวขึ้น */
  table.players-mobile th:nth-child(3),
  table.players-mobile td:nth-child(3){
    width:23%;
  }

  /* เวลาเข้า */
  table.players-mobile th:nth-child(4),
  table.players-mobile td:nth-child(4){
    width:11%;
  }

  /* เวลาออก */
  table.players-mobile th:nth-child(5),
  table.players-mobile td:nth-child(5){
    width:11%;
  }

  /* ชั่วโมง */
  table.players-mobile th:nth-child(6),
  table.players-mobile td:nth-child(6){
    width:7%;
  }

  /* น้ำเล็ก */
  table.players-mobile th:nth-child(7),
  table.players-mobile td:nth-child(7){
    width:8%;
  }

  /* น้ำใหญ่ */
  table.players-mobile th:nth-child(8),
  table.players-mobile td:nth-child(8){
    width:8%;
  }

  /* ค่าน้ำ */
  table.players-mobile th:nth-child(9),
  table.players-mobile td:nth-child(9){
    width:7%;
  }

  /* ปุ่มลบ */
  table.players-mobile th:nth-child(10),
  table.players-mobile td:nth-child(10){
    width:6%;
  }

  /* ชื่อให้ใช้พื้นที่เต็ม */
  table.players-mobile td:nth-child(3) select{
    width:100%;
    min-width:0;
  }

  /* น้ำเล็ก / น้ำใหญ่ ให้พอดีกับตัวเลขประมาณ 2 หลัก */
  table.players-mobile td:nth-child(7) input,
  table.players-mobile td:nth-child(8) input{
    width:100%;
    min-width:0;
    max-width:72px;
    margin:0 auto;
    text-align:center;
    padding-left:6px;
    padding-right:6px;
  }

  table.players-mobile th:nth-child(7),
  table.players-mobile th:nth-child(8){
    white-space:nowrap;
  }
}

/* จอขนาดกลาง ลดคอลัมน์น้ำลงอีกเล็กน้อยและให้ชื่อกินพื้นที่มากขึ้น */
@media(min-width:721px) and (max-width:1050px){
  table.players-mobile th:nth-child(3),
  table.players-mobile td:nth-child(3){
    width:25%;
  }

  table.players-mobile th:nth-child(7),
  table.players-mobile td:nth-child(7),
  table.players-mobile th:nth-child(8),
  table.players-mobile td:nth-child(8){
    width:7%;
  }

  table.players-mobile td:nth-child(7) input,
  table.players-mobile td:nth-child(8) input{
    max-width:60px;
  }
}


/* ===== v38 Today UX/UI ===== */
.player-actions{display:flex;gap:8px;align-items:center}
.player-actions #addPlayer{background:#eef6ff;border-color:#c8dff5;color:#174f83;font-weight:700}
.player-actions #addAllMembers{background:#eefbf7;border-color:#cce9df;color:#0f766e;font-weight:700}

@media(min-width:721px){
  .players-table-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:12px}
  table.players-mobile thead th{background:#f1f6fb;color:#27445f;font-weight:700}
  table.players-mobile tbody tr:hover{background:#fafcff}
}

@media(max-width:720px){
  #today .card{padding:9px;margin-bottom:9px;border-radius:14px}
  .player-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:8px}
  .player-actions button{width:100%;padding:8px 7px;font-size:calc(12px * var(--app-font-scale,1))}

  .players-table-wrap{overflow:visible}
  table.players-mobile{display:block;width:100%}
  table.players-mobile thead{display:none}
  table.players-mobile tbody{display:block}
  table.players-mobile tr{
    display:grid!important;
    grid-template-columns:46px 64px 1fr 1fr;
    gap:8px;
    padding:10px!important;
    margin-bottom:9px!important;
    border:1px solid #dbe5ef!important;
    border-radius:12px!important;
    background:#fff!important;
    box-shadow:0 1px 2px rgba(15,23,42,.03)
  }
  table.players-mobile td{
    display:flex!important;
    flex-direction:column;
    min-width:0;
    padding:0!important;
    border:0!important;
    text-align:left!important;
    gap:3px
  }
  table.players-mobile td::before{
    content:attr(data-label);
    display:block;
    color:#64748b;
    font-size:calc(10px * var(--app-font-scale,1));
    font-weight:700;
    line-height:1.1
  }

  table.players-mobile td:nth-child(1){
    grid-column:1;grid-row:1;align-items:center!important;justify-content:center!important;
    background:#f8fafc;border-radius:8px;min-height:42px
  }
  table.players-mobile td:nth-child(1) b{font-size:calc(16px * var(--app-font-scale,1))}
  table.players-mobile td:nth-child(2){
    grid-column:2;grid-row:1;align-items:center!important;justify-content:center!important;
    background:#f0fdf4;border-radius:8px;min-height:42px
  }
  table.players-mobile td:nth-child(2) input[type="checkbox"]{width:22px;height:22px;min-height:0}
  table.players-mobile td:nth-child(3){grid-column:3/5;grid-row:1}
  table.players-mobile td:nth-child(3) select{width:100%;height:42px;font-size:calc(14px * var(--app-font-scale,1));font-weight:600}

  table.players-mobile td:nth-child(4){grid-column:1/3;grid-row:2}
  table.players-mobile td:nth-child(5){grid-column:3/5;grid-row:2}

  table.players-mobile td:nth-child(6){
    grid-column:1/2;grid-row:3;align-items:center!important;justify-content:center!important;
    background:#f8fafc;border-radius:8px;min-height:54px;font-weight:700
  }
  table.players-mobile td:nth-child(7){grid-column:2/3;grid-row:3}
  table.players-mobile td:nth-child(8){grid-column:3/4;grid-row:3}
  table.players-mobile td:nth-child(9){
    grid-column:4/5;grid-row:3;align-items:center!important;justify-content:center!important;
    background:#f8fafc;border-radius:8px;min-height:54px;font-weight:700
  }
  table.players-mobile td:nth-child(7) input,
  table.players-mobile td:nth-child(8) input{
    width:100%!important;max-width:none!important;text-align:center;font-size:calc(14px * var(--app-font-scale,1));min-height:38px
  }
  table.players-mobile td:nth-child(10){grid-column:1/5;grid-row:4}
  table.players-mobile td:nth-child(10) button{
    width:100%;min-height:34px;color:#b91c1c;background:#fff8f8;border-color:#f1d4d4;
    font-size:calc(12px * var(--app-font-scale,1));font-weight:700
  }

  .section-titlebar.players{padding:9px 10px}
  .section-titlebar.players h3{font-size:calc(16px * var(--app-font-scale,1))}

  #today > .card:first-of-type .toolbar{
    display:grid;grid-template-columns:1fr 1fr;gap:7px
  }
  #today > .card:first-of-type .toolbar .danger{grid-column:1/-1}
}

@media(max-width:390px){
  .player-actions{grid-template-columns:1fr}
  table.players-mobile tr{grid-template-columns:42px 58px 1fr 1fr;gap:7px}
}

/* ===== v39: Mobile Player Card = same visual rhythm as Time Slot cards ===== */
@media(max-width:720px){

  /* Player card: simple 2-column form, similar to ค่าใช้จ่ายตามช่วงเวลา */
  table.players-mobile tr{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:9px 8px !important;
    padding:11px !important;
    border:1px solid #d7e1eb !important;
    border-radius:11px !important;
    background:#fff !important;
  }

  table.players-mobile td{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    min-height:0 !important;
    background:transparent !important;
    border-radius:0 !important;
    padding:0 !important;
  }

  table.players-mobile td::before{
    display:block !important;
    margin-bottom:4px;
    color:#64748b;
    font-size:calc(10px * var(--app-font-scale,1));
    font-weight:700;
  }

  /* ลำดับ + มา อยู่คู่กัน */
  table.players-mobile td:nth-child(1){
    grid-column:1;
    grid-row:1;
  }
  table.players-mobile td:nth-child(2){
    grid-column:2;
    grid-row:1;
  }

  table.players-mobile td:nth-child(1),
  table.players-mobile td:nth-child(2){
    align-items:flex-start !important;
    justify-content:flex-start !important;
  }

  table.players-mobile td:nth-child(1) b{
    font-size:calc(15px * var(--app-font-scale,1));
    line-height:38px;
    padding-left:10px;
  }

  table.players-mobile td:nth-child(2) input[type="checkbox"]{
    width:22px;
    height:22px;
    margin:8px 0 0 10px;
  }

  /* ชื่อเต็มแถว */
  table.players-mobile td:nth-child(3){
    grid-column:1 / -1;
    grid-row:2;
  }

  /* เวลาเข้า / เวลาออก เหมือน เริ่ม / จบ */
  table.players-mobile td:nth-child(4){
    grid-column:1;
    grid-row:3;
  }
  table.players-mobile td:nth-child(5){
    grid-column:2;
    grid-row:3;
  }

  table.players-mobile td:nth-child(4) select,
  table.players-mobile td:nth-child(5) select,
  table.players-mobile td:nth-child(3) select{
    width:100% !important;
    height:40px;
    min-height:40px;
    border-radius:8px;
    font-size:calc(14px * var(--app-font-scale,1));
  }

  /* ชั่วโมง / น้ำเล็ก */
  table.players-mobile td:nth-child(6){
    grid-column:1;
    grid-row:4;
  }
  table.players-mobile td:nth-child(7){
    grid-column:2;
    grid-row:4;
  }

  /* น้ำใหญ่ / ค่าน้ำ */
  table.players-mobile td:nth-child(8){
    grid-column:1;
    grid-row:5;
  }
  table.players-mobile td:nth-child(9){
    grid-column:2;
    grid-row:5;
  }

  /* ค่าที่คำนวณ ให้ดูเหมือน readonly field */
  table.players-mobile td:nth-child(6),
  table.players-mobile td:nth-child(9){
    min-height:61px !important;
  }

  table.players-mobile td:nth-child(6)::after{
    content:'';
  }

  table.players-mobile td:nth-child(6),
  table.players-mobile td:nth-child(9){
    font-weight:700;
  }

  table.players-mobile td:nth-child(7) input,
  table.players-mobile td:nth-child(8) input{
    width:100% !important;
    max-width:none !important;
    height:40px;
    min-height:40px;
    text-align:left;
    padding:8px 10px;
    border-radius:8px;
  }

  /* ลบ เต็มแถว */
  table.players-mobile td:nth-child(10){
    grid-column:1 / -1;
    grid-row:6;
  }

  table.players-mobile td:nth-child(10) button{
    width:100%;
    height:36px;
    min-height:36px;
    background:#fff;
    border:1px solid #d7e1eb;
    color:#dc2626;
    border-radius:8px;
  }
}


/* ===== v40: Mobile Player Card Balanced Layout ===== */
@media(max-width:720px){

  table.players-mobile tr{
    display:grid !important;
    grid-template-columns:72px 72px minmax(0,1fr) minmax(0,1fr) !important;
    gap:8px 10px !important;
    padding:12px !important;
  }

  table.players-mobile td{
    min-width:0 !important;
  }

  /* Row 1: ลำดับ | มา */
  table.players-mobile td:nth-child(1){
    grid-column:1;
    grid-row:1;
  }
  table.players-mobile td:nth-child(2){
    grid-column:2;
    grid-row:1;
  }

  /* ชื่อ เต็มแถว */
  table.players-mobile td:nth-child(3){
    grid-column:1 / -1;
    grid-row:2;
  }

  /* เวลาเข้า / เวลาออก ครึ่งต่อครึ่ง */
  table.players-mobile td:nth-child(4){
    grid-column:1 / 3;
    grid-row:3;
  }
  table.players-mobile td:nth-child(5){
    grid-column:3 / 5;
    grid-row:3;
  }

  /* ชั่วโมง / ค่าน้ำ เป็น read-only summary box คนละครึ่ง */
  table.players-mobile td:nth-child(6){
    grid-column:1 / 3;
    grid-row:4;
  }
  table.players-mobile td:nth-child(9){
    grid-column:3 / 5;
    grid-row:4;
  }

  /* น้ำเล็ก / น้ำใหญ่ ครึ่งต่อครึ่ง */
  table.players-mobile td:nth-child(7){
    grid-column:1 / 3;
    grid-row:5;
  }
  table.players-mobile td:nth-child(8){
    grid-column:3 / 5;
    grid-row:5;
  }

  /* ปุ่มลบ */
  table.players-mobile td:nth-child(10){
    grid-column:1 / -1;
    grid-row:6;
  }

  /* visual balance */
  table.players-mobile td:nth-child(1),
  table.players-mobile td:nth-child(2){
    background:#f8fafc !important;
    border:1px solid #e5e7eb !important;
    border-radius:9px !important;
    padding:7px 9px !important;
    min-height:56px !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
  }

  table.players-mobile td:nth-child(2){
    background:#f0fdf4 !important;
  }

  table.players-mobile td:nth-child(6),
  table.players-mobile td:nth-child(9){
    background:#f8fafc !important;
    border:1px solid #e5e7eb !important;
    border-radius:9px !important;
    padding:8px 10px !important;
    min-height:62px !important;
    justify-content:center !important;
    font-size:calc(15px * var(--app-font-scale,1));
  }

  table.players-mobile td:nth-child(3) select,
  table.players-mobile td:nth-child(4) select,
  table.players-mobile td:nth-child(5) select,
  table.players-mobile td:nth-child(7) input,
  table.players-mobile td:nth-child(8) input{
    width:100% !important;
    max-width:none !important;
    height:42px !important;
    min-height:42px !important;
    font-size:calc(14px * var(--app-font-scale,1)) !important;
  }

  table.players-mobile td:nth-child(7) input,
  table.players-mobile td:nth-child(8) input{
    text-align:center !important;
  }

  table.players-mobile td:nth-child(10) button{
    height:38px !important;
    min-height:38px !important;
    background:#fff8f8 !important;
    border:1px solid #f1d4d4 !important;
    color:#b91c1c !important;
    font-weight:700;
  }

  /* ลดความรู้สึกโล่งด้านบน */
  table.players-mobile td:nth-child(1) b{
    line-height:1.2 !important;
    padding-left:0 !important;
    margin-top:2px;
  }

  table.players-mobile td:nth-child(2) input[type="checkbox"]{
    margin:4px 0 0 0 !important;
  }
}

@media(max-width:400px){
  table.players-mobile tr{
    grid-template-columns:64px 64px minmax(0,1fr) minmax(0,1fr) !important;
    gap:7px 8px !important;
    padding:10px !important;
  }
}


/* ===== v41: Player columns reordered ===== */

/* Number + checkbox in same 'มา All' column */
.present-cell{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.present-cell .player-no{
  min-width:18px;
  text-align:right;
}

/* Desktop / Tablet */
@media(min-width:721px){
  table.players-mobile{
    table-layout:fixed;
    width:100%;
  }

  /* มา All + No. */
  table.players-mobile th:nth-child(1),
  table.players-mobile td:nth-child(1){ width:9%; }

  /* ชื่อ */
  table.players-mobile th:nth-child(2),
  table.players-mobile td:nth-child(2){ width:27%; }

  /* เวลาเข้า */
  table.players-mobile th:nth-child(3),
  table.players-mobile td:nth-child(3){ width:12%; }

  /* เวลาออก */
  table.players-mobile th:nth-child(4),
  table.players-mobile td:nth-child(4){ width:12%; }

  /* น้ำเล็ก */
  table.players-mobile th:nth-child(5),
  table.players-mobile td:nth-child(5){ width:8%; }

  /* น้ำใหญ่ */
  table.players-mobile th:nth-child(6),
  table.players-mobile td:nth-child(6){ width:8%; }

  /* ชั่วโมง - ย้ายมาอยู่ก่อนค่าน้ำ */
  table.players-mobile th:nth-child(7),
  table.players-mobile td:nth-child(7){ width:8%; }

  /* ค่าน้ำ */
  table.players-mobile th:nth-child(8),
  table.players-mobile td:nth-child(8){ width:8%; }

  /* ลบ */
  table.players-mobile th:nth-child(9),
  table.players-mobile td:nth-child(9){ width:8%; }

  table.players-mobile td:nth-child(2) select{
    width:100%;
    min-width:0;
  }

  table.players-mobile td:nth-child(5) input,
  table.players-mobile td:nth-child(6) input{
    width:100%;
    max-width:64px;
    min-width:0;
    margin:0 auto;
    text-align:center;
    padding-left:5px;
    padding-right:5px;
  }
}

/* Mobile: balanced two-column card */
@media(max-width:720px){
  table.players-mobile tr{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:9px 8px !important;
    padding:11px !important;
  }

  table.players-mobile td{
    min-width:0 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
  }

  /* มา + เลข */
  table.players-mobile td:nth-child(1){
    grid-column:1 / -1 !important;
    grid-row:1 !important;
  }
  table.players-mobile td:nth-child(1) .present-cell{
    justify-content:flex-start;
    min-height:40px;
    padding:6px 10px;
    background:#f0fdf4;
    border:1px solid #dcfce7;
    border-radius:8px;
  }

  /* ชื่อ */
  table.players-mobile td:nth-child(2){
    grid-column:1 / -1 !important;
    grid-row:2 !important;
  }

  /* เวลาเข้า / เวลาออก */
  table.players-mobile td:nth-child(3){
    grid-column:1 !important;
    grid-row:3 !important;
  }
  table.players-mobile td:nth-child(4){
    grid-column:2 !important;
    grid-row:3 !important;
  }

  /* น้ำเล็ก / น้ำใหญ่ */
  table.players-mobile td:nth-child(5){
    grid-column:1 !important;
    grid-row:4 !important;
  }
  table.players-mobile td:nth-child(6){
    grid-column:2 !important;
    grid-row:4 !important;
  }

  /* ชั่วโมง / ค่าน้ำ */
  table.players-mobile td:nth-child(7){
    grid-column:1 !important;
    grid-row:5 !important;
  }
  table.players-mobile td:nth-child(8){
    grid-column:2 !important;
    grid-row:5 !important;
  }

  table.players-mobile td:nth-child(7),
  table.players-mobile td:nth-child(8){
    background:#f8fafc !important;
    border:1px solid #e5e7eb !important;
    border-radius:8px !important;
    padding:8px 10px !important;
    min-height:58px !important;
    font-weight:700;
  }

  /* ปุ่มลบ */
  table.players-mobile td:nth-child(9){
    grid-column:1 / -1 !important;
    grid-row:6 !important;
  }

  table.players-mobile td:nth-child(2) select,
  table.players-mobile td:nth-child(3) select,
  table.players-mobile td:nth-child(4) select,
  table.players-mobile td:nth-child(5) input,
  table.players-mobile td:nth-child(6) input{
    width:100% !important;
    max-width:none !important;
    height:42px !important;
    min-height:42px !important;
  }

  table.players-mobile td:nth-child(5) input,
  table.players-mobile td:nth-child(6) input{
    text-align:center !important;
  }

  table.players-mobile td:nth-child(9) button{
    width:100%;
    min-height:36px;
  }
}


/* ===== v42: Alternating player rows for easier reading ===== */
@media(min-width:721px){
  table.players-mobile tbody tr:nth-child(odd){
    background:#ffffff !important;
  }

  table.players-mobile tbody tr:nth-child(even){
    background:#f5f7fa !important;
  }

  table.players-mobile tbody tr:hover{
    background:#eaf3fb !important;
  }

  table.players-mobile tbody tr:nth-child(even) td,
  table.players-mobile tbody tr:nth-child(odd) td{
    background:transparent !important;
  }
}


/* ===== v43: Mobile hamburger for server/reload/logout ===== */
.header-tools{
  position:relative;
  margin-left:auto;
}
.header-tools-desktop{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.mobile-menu-btn,
.mobile-header-menu{
  display:none;
}

@media(max-width:720px){
  .header-row{
    align-items:center;
    gap:8px;
  }

  .header-row h1{
    font-size:calc(15px * var(--app-font-scale,1));
    line-height:1.25;
    margin:0;
    flex:1;
    min-width:0;
  }

  .header-tools-desktop{
    display:none !important;
  }

  .mobile-menu-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    min-height:42px;
    padding:0;
    border-radius:10px;
    border:1px solid rgba(255,255,255,.45);
    background:#fff;
    color:#1f4e78;
    font-size:calc(22px * var(--app-font-scale,1));
    font-weight:700;
    cursor:pointer;
  }

  .mobile-header-menu{
    display:none;
    position:absolute;
    right:0;
    top:50px;
    z-index:9999;
    width:220px;
    padding:10px;
    border:1px solid #d7e1eb;
    border-radius:12px;
    background:#fff;
    box-shadow:0 10px 30px rgba(15,23,42,.18);
  }

  .mobile-header-menu.open{
    display:grid;
    gap:8px;
  }

  .mobile-header-menu button{
    width:100%;
    min-height:40px;
    border-radius:8px;
    text-align:left;
    padding:8px 10px;
    background:#f8fafc;
    color:#1f2937;
    border:1px solid #dbe3ec;
  }

  .mobile-header-menu button:last-child{
    color:#b91c1c;
    background:#fff8f8;
    border-color:#f1d4d4;
  }

  .mobile-server-row{
    padding-bottom:2px;
  }

  .mobile-server-status{
    display:block;
    width:100%;
    padding:8px 10px;
    border-radius:8px;
    background:#e5e7eb;
    color:#374151;
    font-size:calc(12px * var(--app-font-scale,1));
    line-height:1.3;
  }
}


/* ===== v44 Mobile Player Controls ===== */
.mobile-present-all-v44{
  display:none;
}

.player-actions-v44 #applyPlayerTimes{
  background:#fff8e8;
  border-color:#ead8a8;
  color:#8a5a00;
  font-weight:700;
}

@media(min-width:721px){
  .player-actions-v44{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
  }
}

@media(max-width:720px){
  .player-actions-v44{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:7px !important;
    margin-bottom:8px !important;
  }

  .player-actions-v44 #addPlayer{
    grid-column:1 / -1;
    width:100%;
  }

  .player-actions-v44 #addAllMembers{
    grid-column:1;
    width:100%;
  }

  .player-actions-v44 #applyPlayerTimes{
    grid-column:2;
    width:100%;
  }

  .player-actions-v44 button{
    min-height:42px;
    padding:8px 7px;
    line-height:1.25;
    white-space:normal;
    font-size:calc(12px * var(--app-font-scale,1));
  }

  .mobile-present-all-v44{
    display:block;
    margin:0 0 9px;
    padding:9px 10px;
    border:1px solid #d9e4ee;
    border-radius:10px;
    background:#f5f9fd;
  }

  .mobile-present-all-v44 label{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    cursor:pointer;
  }

  .mobile-present-title{
    font-size:calc(12px * var(--app-font-scale,1));
    font-weight:700;
    color:#27445f;
  }

  .mobile-present-check{
    display:flex;
    align-items:center;
    gap:8px;
    padding:6px 10px;
    border-radius:8px;
    background:#eefbf7;
    color:#0f766e;
    font-size:calc(12px * var(--app-font-scale,1));
  }

  .mobile-present-check input{
    width:21px;
    height:21px;
    min-height:0 !important;
    margin:0;
  }
}

@media(max-width:390px){
  .player-actions-v44{
    grid-template-columns:1fr !important;
  }

  .player-actions-v44 #addPlayer,
  .player-actions-v44 #addAllMembers,
  .player-actions-v44 #applyPlayerTimes{
    grid-column:1 !important;
  }
}


/* ===== v46 urgent fix: Mobile มา All clickable ===== */
@media(max-width:720px){
  .mobile-present-all-v44{
    position:relative;
    z-index:5;
  }
  .mobile-present-all-v44 label,
  .mobile-present-check,
  #presentAllMobile{
    pointer-events:auto !important;
  }
  #presentAllMobile{
    appearance:auto;
    -webkit-appearance:checkbox;
    cursor:pointer;
    flex:0 0 auto;
  }
}


[data-hybrid-header],[data-hybrid-cell]{display:none}
@media(min-width:721px){
  table.slots-mobile th[data-hybrid-header],
  table.slots-mobile td[data-hybrid-cell]{min-width:190px}
}
@media(max-width:720px){
  table.slots-mobile td[data-hybrid-cell]{grid-column:1/-1}
  table.slots-mobile td[data-hybrid-cell] select{width:100%;min-height:40px}
}

/* ===== v48 Mode C selector visibility fix ===== */
[data-hybrid-cell] select{
  min-width:170px;
  font-weight:600;
  background:#fffdf3;
  border-color:#e8d9a5;
}
@media(max-width:720px){
  [data-hybrid-cell]{
    flex-direction:column !important;
    grid-column:1/-1 !important;
  }
  [data-hybrid-cell] select{
    width:100% !important;
    min-width:0 !important;
  }
}


.mode-c-rule-note{
  margin-top:6px;
  padding:8px 10px;
  border-radius:8px;
  background:#eef7ff;
  border-left:4px solid #60a5fa;
  font-size:calc(11px * var(--app-font-scale,1));
  line-height:1.45;
  color:#35516a;
}


/* ===== v50 Summary Refresh Button ===== */
.summary-refresh-bar{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  margin:8px 0 10px;
  flex-wrap:wrap;
}
#refreshSummaryBtn{
  min-height:38px;
  padding:8px 14px;
  border-radius:9px;
  font-weight:700;
  cursor:pointer;
  background:#eef7ff;
  border:1px solid #bfd9ee;
  color:#24577a;
}
#refreshSummaryBtn:hover{
  background:#e3f1fc;
}
#refreshSummaryBtn:disabled{
  opacity:.65;
  cursor:wait;
}
.summary-refresh-status{
  font-size:calc(11px * var(--app-font-scale,1));
  color:#64748b;
}
@media(max-width:720px){
  .summary-refresh-bar{
    display:grid;
    grid-template-columns:1fr;
    gap:5px;
  }
  #refreshSummaryBtn{
    width:100%;
  }
  .summary-refresh-status{
    text-align:right;
  }
}


/* ===== v51 Mode C simplified ===== */
.hybrid-static-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:38px;
  padding:7px 10px;
  border-radius:8px;
  background:#eef7ff;
  border:1px solid #cfe2f3;
  color:#24577a;
  font-weight:700;
  font-size:calc(12px * var(--app-font-scale,1));
}
@media(max-width:720px){
  [data-hybrid-cell]{
    grid-column:1/-1 !important;
  }
}



/* ===== v54 Mode C: time-overlap only ===== */
.hybrid-static-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:36px;
  padding:7px 10px;
  border-radius:8px;
  background:#eef7ff;
  border:1px solid #cfe2f3;
  color:#24577a;
  font-weight:700;
  font-size:calc(12px * var(--app-font-scale,1));
}
.actual-player-summary{
  display:flex;
  gap:6px;
  margin-bottom:6px;
}
.actual-player-summary span{
  display:inline-flex;
  align-items:center;
  gap:3px;
  padding:5px 7px;
  border-radius:999px;
  background:#eef7ff;
  color:#24577a;
  font-size:calc(10px * var(--app-font-scale,1));
}
@media(max-width:720px){
  [data-hybrid-cell]{grid-column:1/-1!important}
}


/* ===== v55: Visible +/- steppers for numeric inputs ===== */
.num-stepper{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 38px;
  align-items:stretch;
  gap:4px;
  width:100%;
}
.num-stepper input[type="number"]{
  width:100% !important;
  min-width:0 !important;
  text-align:center !important;
  -moz-appearance:textfield;
}
.num-stepper input[type="number"]::-webkit-outer-spin-button,
.num-stepper input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.num-stepper-btn{
  min-width:38px !important;
  min-height:38px !important;
  height:auto !important;
  padding:0 !important;
  border:1px solid #cfd8e3 !important;
  border-radius:8px !important;
  background:#f8fafc !important;
  color:#1f4e78 !important;
  font-size:calc(20px * var(--app-font-scale,1)) !important;
  font-weight:700 !important;
  line-height:1 !important;
  cursor:pointer;
  touch-action:manipulation;
}
.num-stepper-btn:active{
  background:#eaf3fb !important;
  transform:translateY(1px);
}
.num-stepper-btn:disabled{
  opacity:.4;
  cursor:not-allowed;
}

@media(max-width:720px){
  .num-stepper{
    grid-template-columns:42px minmax(0,1fr) 42px;
    gap:5px;
  }
  .num-stepper-btn{
    min-width:42px !important;
    min-height:42px !important;
    font-size:calc(22px * var(--app-font-scale,1)) !important;
  }
  .num-stepper input[type="number"]{
    min-height:42px !important;
    font-size:calc(15px * var(--app-font-scale,1)) !important;
  }
}


/* ===== v56: Custom +/- only on small screens ===== */
@media(min-width:721px){
  .num-stepper{
    display:block !important;
    width:100% !important;
  }

  .num-stepper .num-stepper-btn{
    display:none !important;
  }

  .num-stepper input[type="number"]{
    width:100% !important;
    text-align:inherit !important;
    -moz-appearance:auto !important;
    appearance:auto !important;
  }

  .num-stepper input[type="number"]::-webkit-outer-spin-button,
  .num-stepper input[type="number"]::-webkit-inner-spin-button{
    -webkit-appearance:auto !important;
    opacity:1 !important;
    margin:0 !important;
  }
}

@media(max-width:720px){
  .num-stepper{
    display:grid !important;
    grid-template-columns:42px minmax(0,1fr) 42px !important;
    gap:5px !important;
    width:100% !important;
  }

  .num-stepper .num-stepper-btn{
    display:block !important;
  }

  .num-stepper input[type="number"]{
    text-align:center !important;
    -moz-appearance:textfield !important;
    appearance:textfield !important;
  }

  .num-stepper input[type="number"]::-webkit-outer-spin-button,
  .num-stepper input[type="number"]::-webkit-inner-spin-button{
    -webkit-appearance:none !important;
    margin:0 !important;
  }
}


/* ===== v57 Summary: subtotal before water ===== */
table.summary-mobile-cards tbody td[data-label="รวมก่อนค่าน้ำ"] b{font-weight:700}
@media(max-width:720px){
  table.summary-mobile-cards tbody td[data-label="รวมก่อนค่าน้ำ"]{
    background:#f8fafc;
    border-radius:7px;
  }
}


/* ===== v58: LINE share/capture mode fit phone width ===== */
@media(max-width:720px){
  body.line-share-mode{
    overflow-x:hidden !important;
  }

  body.line-share-mode #app,
  body.line-share-mode #appWrap,
  body.line-share-mode main,
  body.line-share-mode .wrap{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
  }

  /* Summary remains a real table in capture mode, but is compressed to viewport. */
  body.line-share-mode table.summary-mobile-cards{
    display:table !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    table-layout:fixed !important;
    border-collapse:collapse !important;
  }

  body.line-share-mode table.summary-mobile-cards thead{
    display:table-header-group !important;
  }
  body.line-share-mode table.summary-mobile-cards tbody{
    display:table-row-group !important;
  }
  body.line-share-mode table.summary-mobile-cards tfoot{
    display:table-footer-group !important;
  }
  body.line-share-mode table.summary-mobile-cards tr{
    display:table-row !important;
  }

  body.line-share-mode table.summary-mobile-cards th,
  body.line-share-mode table.summary-mobile-cards td{
    display:table-cell !important;
    position:static !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    height:auto !important;
    padding:3px 2px !important;
    border-radius:0 !important;
    background:transparent;
    font-size:calc(8px * var(--app-font-scale,1)) !important;
    line-height:1.18 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:clip !important;
    box-sizing:border-box !important;
    text-align:center !important;
  }

  body.line-share-mode table.summary-mobile-cards td.left,
  body.line-share-mode table.summary-mobile-cards td[data-label="ชื่อ"]{
    text-align:left !important;
  }

  /* Hide mobile card pseudo-labels in screenshot table mode. */
  body.line-share-mode table.summary-mobile-cards td::before{
    display:none !important;
    content:none !important;
  }

  /* Column widths: total 100%. */
  body.line-share-mode table.summary-mobile-cards th:nth-child(1),
  body.line-share-mode table.summary-mobile-cards td:nth-child(1){width:23% !important;}

  body.line-share-mode table.summary-mobile-cards th:nth-child(2),
  body.line-share-mode table.summary-mobile-cards td:nth-child(2){width:8% !important;}

  body.line-share-mode table.summary-mobile-cards th:nth-child(3),
  body.line-share-mode table.summary-mobile-cards td:nth-child(3){width:11% !important;}

  body.line-share-mode table.summary-mobile-cards th:nth-child(4),
  body.line-share-mode table.summary-mobile-cards td:nth-child(4){width:10% !important;}

  body.line-share-mode table.summary-mobile-cards th:nth-child(5),
  body.line-share-mode table.summary-mobile-cards td:nth-child(5){width:15% !important;}

  body.line-share-mode table.summary-mobile-cards th:nth-child(6),
  body.line-share-mode table.summary-mobile-cards td:nth-child(6){width:10% !important;}

  body.line-share-mode table.summary-mobile-cards th:nth-child(7),
  body.line-share-mode table.summary-mobile-cards td:nth-child(7){width:13% !important;}

  body.line-share-mode table.summary-mobile-cards th:nth-child(8),
  body.line-share-mode table.summary-mobile-cards td:nth-child(8){width:10% !important;}

  body.line-share-mode table.summary-mobile-cards input[type="checkbox"]{
    width:13px !important;
    height:13px !important;
    min-width:13px !important;
    min-height:13px !important;
    margin:0 auto !important;
  }

  body.line-share-mode .summary-refresh-bar{
    display:none !important;
  }

  /* Reduce capture card padding so content uses available width. */
  body.line-share-mode .card,
  body.line-share-mode .summary-card{
    padding-left:6px !important;
    padding-right:6px !important;
  }
}


/* ===== v59: LINE share responsive table - phone + desktop ===== */
body.line-share-mode{
  overflow-x:hidden !important;
}

body.line-share-mode table.summary-mobile-cards{
  display:table !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  table-layout:fixed !important;
  border-collapse:collapse !important;
}

body.line-share-mode table.summary-mobile-cards thead{display:table-header-group !important;}
body.line-share-mode table.summary-mobile-cards tbody{display:table-row-group !important;}
body.line-share-mode table.summary-mobile-cards tfoot{display:table-footer-group !important;}
body.line-share-mode table.summary-mobile-cards tr{display:table-row !important;}

body.line-share-mode table.summary-mobile-cards th,
body.line-share-mode table.summary-mobile-cards td{
  display:table-cell !important;
  position:static !important;
  min-width:0 !important;
  max-width:none !important;
  box-sizing:border-box !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:clip !important;
  vertical-align:middle !important;
  text-align:center !important;
}

body.line-share-mode table.summary-mobile-cards td.left,
body.line-share-mode table.summary-mobile-cards td[data-label="ชื่อ"]{
  text-align:left !important;
}

body.line-share-mode table.summary-mobile-cards td::before{
  display:none !important;
  content:none !important;
}

/* 8 columns = 100%. Give name/subtotal/total enough room. */
body.line-share-mode table.summary-mobile-cards th:nth-child(1),
body.line-share-mode table.summary-mobile-cards td:nth-child(1){width:22% !important;}
body.line-share-mode table.summary-mobile-cards th:nth-child(2),
body.line-share-mode table.summary-mobile-cards td:nth-child(2){width:8% !important;}
body.line-share-mode table.summary-mobile-cards th:nth-child(3),
body.line-share-mode table.summary-mobile-cards td:nth-child(3){width:11% !important;}
body.line-share-mode table.summary-mobile-cards th:nth-child(4),
body.line-share-mode table.summary-mobile-cards td:nth-child(4){width:10% !important;}
body.line-share-mode table.summary-mobile-cards th:nth-child(5),
body.line-share-mode table.summary-mobile-cards td:nth-child(5){width:15% !important;}
body.line-share-mode table.summary-mobile-cards th:nth-child(6),
body.line-share-mode table.summary-mobile-cards td:nth-child(6){width:10% !important;}
body.line-share-mode table.summary-mobile-cards th:nth-child(7),
body.line-share-mode table.summary-mobile-cards td:nth-child(7){width:14% !important;}
body.line-share-mode table.summary-mobile-cards th:nth-child(8),
body.line-share-mode table.summary-mobile-cards td:nth-child(8){width:10% !important;}

/* Desktop/tablet capture: readable but guaranteed inside card. */
@media(min-width:721px){
  body.line-share-mode table.summary-mobile-cards th,
  body.line-share-mode table.summary-mobile-cards td{
    font-size:calc(10px * var(--app-font-scale,1)) !important;
    line-height:1.2 !important;
    padding:4px 3px !important;
  }

  body.line-share-mode .summary-card,
  body.line-share-mode .card{
    box-sizing:border-box !important;
    max-width:100% !important;
  }
}

/* Phone capture: tighter layout. */
@media(max-width:720px){
  body.line-share-mode table.summary-mobile-cards th,
  body.line-share-mode table.summary-mobile-cards td{
    font-size:calc(7.5px * var(--app-font-scale,1)) !important;
    line-height:1.15 !important;
    padding:3px 1px !important;
  }

  body.line-share-mode table.summary-mobile-cards input[type="checkbox"]{
    width:12px !important;
    height:12px !important;
    min-width:12px !important;
    min-height:12px !important;
    margin:0 auto !important;
  }
}


/* ===== v60 Whole-baht settlement ===== */
#sumTotal,
table.summary-mobile-cards td[data-label="รวมจ่าย"] b{
  font-weight:800;
}


/* ===== v61: Summary slots + paid status in LINE share ===== */
.summary-slots-card h3{
  margin:0 0 10px;
}
.summary-slot-wrap{
  overflow-x:auto;
}
.summary-slots-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
}
.summary-slots-table th{
  background:#edf4fa;
  padding:8px 6px;
  font-size:calc(12px * var(--app-font-scale,1));
  text-align:center;
}
.summary-slots-table td{
  padding:8px 6px;
  border-bottom:1px solid #e1e8ef;
  font-size:calc(12px * var(--app-font-scale,1));
  text-align:center;
}
.summary-slots-table tfoot th{
  background:#f1f6fb;
  font-weight:800;
}
.paid-share-status{
  display:none;
}

/* Share mode: paid checkbox -> readable text */
body.line-share-mode .paid-check{
  display:none !important;
}
body.line-share-mode .paid-share-status{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:20px;
  border-radius:999px;
  padding:2px 4px;
  font-size:calc(8px * var(--app-font-scale,1)) !important;
  font-weight:800;
  white-space:nowrap;
}
body.line-share-mode .paid-share-status.paid{
  background:#dcfce7;
  color:#166534;
}
body.line-share-mode .paid-share-status.unpaid{
  background:#f1f5f9;
  color:#64748b;
}

/* LINE share: both tables must fit the capture width */
body.line-share-mode .summary-slot-wrap,
body.line-share-mode .summary-table-wrap{
  overflow:visible !important;
  width:100% !important;
  max-width:100% !important;
}

body.line-share-mode .summary-slots-table{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  table-layout:fixed !important;
}

body.line-share-mode .summary-slots-table th,
body.line-share-mode .summary-slots-table td{
  min-width:0 !important;
  max-width:none !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:clip !important;
  text-align:center !important;
}

/* 8 summary-person columns */
body.line-share-mode table.summary-mobile-cards th:nth-child(1),
body.line-share-mode table.summary-mobile-cards td:nth-child(1){width:20% !important;}
body.line-share-mode table.summary-mobile-cards th:nth-child(2),
body.line-share-mode table.summary-mobile-cards td:nth-child(2){width:8% !important;}
body.line-share-mode table.summary-mobile-cards th:nth-child(3),
body.line-share-mode table.summary-mobile-cards td:nth-child(3){width:11% !important;}
body.line-share-mode table.summary-mobile-cards th:nth-child(4),
body.line-share-mode table.summary-mobile-cards td:nth-child(4){width:10% !important;}
body.line-share-mode table.summary-mobile-cards th:nth-child(5),
body.line-share-mode table.summary-mobile-cards td:nth-child(5){width:15% !important;}
body.line-share-mode table.summary-mobile-cards th:nth-child(6),
body.line-share-mode table.summary-mobile-cards td:nth-child(6){width:9% !important;}
body.line-share-mode table.summary-mobile-cards th:nth-child(7),
body.line-share-mode table.summary-mobile-cards td:nth-child(7){width:12% !important;}
body.line-share-mode table.summary-mobile-cards th:nth-child(8),
body.line-share-mode table.summary-mobile-cards td:nth-child(8){
  width:15% !important;
  display:table-cell !important;
}

/* 8 slot columns */
body.line-share-mode .summary-slots-table th:nth-child(1),
body.line-share-mode .summary-slots-table td:nth-child(1){width:12%}
body.line-share-mode .summary-slots-table th:nth-child(2),
body.line-share-mode .summary-slots-table td:nth-child(2){width:12%}
body.line-share-mode .summary-slots-table th:nth-child(3),
body.line-share-mode .summary-slots-table td:nth-child(3){width:9%}
body.line-share-mode .summary-slots-table th:nth-child(4),
body.line-share-mode .summary-slots-table td:nth-child(4){width:15%}
body.line-share-mode .summary-slots-table th:nth-child(5),
body.line-share-mode .summary-slots-table td:nth-child(5){width:8%}
body.line-share-mode .summary-slots-table th:nth-child(6),
body.line-share-mode .summary-slots-table td:nth-child(6){width:14%}
body.line-share-mode .summary-slots-table th:nth-child(7),
body.line-share-mode .summary-slots-table td:nth-child(7){width:9%}
body.line-share-mode .summary-slots-table th:nth-child(8),
body.line-share-mode .summary-slots-table td:nth-child(8){width:21%}

/* Large screens / tablets */
@media(min-width:721px){
  body.line-share-mode #appWrap{
    width:min(760px,100%) !important;
    max-width:760px !important;
    margin:0 auto !important;
    padding:6px !important;
  }
  body.line-share-mode table.summary-mobile-cards th,
  body.line-share-mode table.summary-mobile-cards td,
  body.line-share-mode .summary-slots-table th,
  body.line-share-mode .summary-slots-table td{
    font-size:calc(9px * var(--app-font-scale,1)) !important;
    line-height:1.2 !important;
    padding:4px 3px !important;
  }
  body.line-share-mode .paid-share-status{
    font-size:calc(8px * var(--app-font-scale,1)) !important;
  }
}

/* Phones */
@media(max-width:720px){
  .summary-slot-wrap{
    overflow-x:auto;
  }

  body.line-share-mode #appWrap{
    width:100% !important;
    max-width:430px !important;
    margin:0 auto !important;
    padding:4px !important;
  }

  body.line-share-mode table.summary-mobile-cards th,
  body.line-share-mode table.summary-mobile-cards td,
  body.line-share-mode .summary-slots-table th,
  body.line-share-mode .summary-slots-table td{
    font-size:calc(7px * var(--app-font-scale,1)) !important;
    line-height:1.12 !important;
    padding:3px 1px !important;
  }

  body.line-share-mode .paid-share-status{
    font-size:calc(6.8px * var(--app-font-scale,1)) !important;
    padding:2px !important;
  }

  body.line-share-mode .summary-slots-card,
  body.line-share-mode #summary .card{
    padding-left:5px !important;
    padding-right:5px !important;
  }
}


/* ===== v62: Highlight "รวมจ่าย" ===== */
/* หน้าปกติ */
table.summary-mobile-cards thead th:nth-child(7),
table.summary-mobile-cards tbody td:nth-child(7),
table.summary-mobile-cards tfoot #sumTotal{
  font-size:1.12em !important;
  font-weight:800 !important;
  color:#0b4f8a !important;
}

table.summary-mobile-cards tbody td:nth-child(7) b{
  font-size:1.08em !important;
  font-weight:900 !important;
  color:#0b4f8a !important;
  text-decoration:underline !important;
  text-decoration-thickness:2px !important;
  text-underline-offset:3px !important;
}

/* หัวตาราง รวมจ่าย */
table.summary-mobile-cards thead th:nth-child(7){
  background:#dcecff !important;
  color:#083b66 !important;
  border-bottom-color:#d9e5ec !important;
}

/* แถวรวมด้านล่างของ column รวมจ่าย */
table.summary-mobile-cards tfoot #sumTotal{
  font-size:1.15em !important;
  font-weight:900 !important;
  color:#083b66 !important;
  background:#dcecff !important;
  text-decoration:underline !important;
  text-decoration-thickness:2px !important;
  text-underline-offset:3px !important;
}

/* โหมดแคป LINE - ให้เด่นขึ้น แต่ยังคง fit ทั้งมือถือ/จอใหญ่ */
body.line-share-mode table.summary-mobile-cards thead th:nth-child(7),
body.line-share-mode table.summary-mobile-cards tbody td:nth-child(7),
body.line-share-mode table.summary-mobile-cards tfoot #sumTotal{
  background:#e6f2ff !important;
  color:#073f73 !important;
  font-weight:900 !important;
}

body.line-share-mode table.summary-mobile-cards tbody td:nth-child(7) b{
  color:#073f73 !important;
  font-size:1.22em !important;
  font-weight:900 !important;
  text-decoration:underline !important;
  text-decoration-thickness:1.5px !important;
  text-underline-offset:2px !important;
}

/* เพิ่มพื้นที่ให้ รวมจ่าย อีกเล็กน้อย โดยลดจากชื่อเล็กน้อย */
body.line-share-mode table.summary-mobile-cards th:nth-child(1),
body.line-share-mode table.summary-mobile-cards td:nth-child(1){width:19% !important;}

body.line-share-mode table.summary-mobile-cards th:nth-child(7),
body.line-share-mode table.summary-mobile-cards td:nth-child(7){width:13% !important;}

/* ยังคงผลรวมความกว้าง 100% */


/* ===== v63: Mode B total-shuttle summary fix ===== */
.summary-slots-note{
  display:none;
  margin-top:8px;
  padding:8px 10px;
  border-radius:8px;
  background:#fff8e8;
  border:1px solid #ead8a8;
  color:#805d12;
  font-size:calc(11px * var(--app-font-scale,1));
  line-height:1.4;
}
body.line-share-mode .summary-slots-note{
  font-size:calc(8px * var(--app-font-scale,1)) !important;
  padding:5px 6px !important;
}


/* ===== v63 add Refresh on Summary page ===== */
.summary-page-refresh{
  margin:0 0 12px;
}
@media(max-width:720px){
  .summary-page-refresh{
    padding:0 4px;
  }
}


/* ===== Summary slots compact 8-column layout ===== */
.summary-slots-table{
  min-width:760px;
}
.summary-slots-table th:nth-child(6),
.summary-slots-table th:nth-child(7),
.summary-slots-table td:nth-child(6),
.summary-slots-table td:nth-child(7){
  background:#f5f9ff;
  font-weight:700;
}

/* LINE Capture: 8 columns fit in one frame */
body.line-share-mode .summary-slots-table th:nth-child(1),
body.line-share-mode .summary-slots-table td:nth-child(1){width:15% !important;}
body.line-share-mode .summary-slots-table th:nth-child(2),
body.line-share-mode .summary-slots-table td:nth-child(2){width:18% !important;}
body.line-share-mode .summary-slots-table th:nth-child(3),
body.line-share-mode .summary-slots-table td:nth-child(3){width:7% !important;}
body.line-share-mode .summary-slots-table th:nth-child(4),
body.line-share-mode .summary-slots-table td:nth-child(4){width:12% !important;}
body.line-share-mode .summary-slots-table th:nth-child(5),
body.line-share-mode .summary-slots-table td:nth-child(5){width:7% !important;}
body.line-share-mode .summary-slots-table th:nth-child(6),
body.line-share-mode .summary-slots-table td:nth-child(6){width:13% !important;}
body.line-share-mode .summary-slots-table th:nth-child(7),
body.line-share-mode .summary-slots-table td:nth-child(7){width:13% !important;}
body.line-share-mode .summary-slots-table th:nth-child(8),
body.line-share-mode .summary-slots-table td:nth-child(8){width:15% !important;}

/* ===== Copy summary text button ===== */
.copy-summary-status{
  align-self:center;
  font-size:calc(12px * var(--app-font-scale,1));
  font-weight:700;
  color:#15803d;
  min-height:18px;
}
@media(max-width:720px){
  #copySummaryTextBtn,
  #copyDetailedRoundsBtn{
    width:100%;
  }
  .copy-summary-status{
    grid-column:1/-1;width:100%;
  }
  #summaryPersonCard #saveHistory{grid-column:1/-1}
}


/* ===== Send summary to LINE ===== */
#sendLineSummaryBtn{
  white-space:nowrap;
}
@media(max-width:720px){
  #sendLineSummaryBtn{
    width:100%;
  }
}






/* ===== Table-only capture mode: responsive small-screen fit ===== */
.table-capture-back-bar{
  display:none;
}

body.table-only-capture-mode{
  background:#fff !important;
  overflow-x:hidden !important;
}

body.table-only-capture-mode > header,
body.table-only-capture-mode #appWrap > .tabs,
body.table-only-capture-mode #summary > .page-header,
body.table-only-capture-mode #summary > .summary-refresh-bar,
body.table-only-capture-mode #summary > .card:not(#summaryPersonCard),
body.table-only-capture-mode #summaryPersonCard > h3,
body.table-only-capture-mode #summaryPersonCard > #balanceCheck,
body.table-only-capture-mode #summaryPersonCard > .toolbar{
  display:none !important;
}

body.table-only-capture-mode #appWrap{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  padding:0 !important;
  margin:0 !important;
}

body.table-only-capture-mode #summary{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  padding:0 !important;
  margin:0 !important;
}

body.table-only-capture-mode #tableCaptureBackBar{
  display:flex !important;
  position:sticky !important;
  top:0 !important;
  z-index:9999 !important;
  justify-content:space-between !important;
  gap:8px !important;
  align-items:center !important;
  width:100% !important;
  padding:6px 8px !important;
  box-sizing:border-box !important;
  background:#fff !important;
  border-bottom:1px solid #dbe3ec !important;
}

body.table-only-capture-mode #tableCaptureBackBtn,
body.table-only-capture-mode #tableCaptureShareBtn{
  width:auto !important;
  max-width:100% !important;
  padding:7px 10px !important;
  font-size:calc(13px * var(--app-font-scale,1)) !important;
  white-space:nowrap !important;
}
body.table-only-capture-mode #tableCaptureShareBtn{
  background:#168548 !important;
  color:#fff !important;
  border-color:#168548 !important;
  font-weight:700 !important;
}
@media(max-width:480px){
  body.table-only-capture-mode #tableCaptureBackBtn,
  body.table-only-capture-mode #tableCaptureShareBtn{
    flex:1 1 50%;padding:8px 5px !important;font-size:calc(12px * var(--app-font-scale,1)) !important;
  }
}

body.table-only-capture-mode #summaryPersonCard{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  box-shadow:none !important;
  background:#fff !important;
}

body.table-only-capture-mode #summaryPersonCard .summary-table-wrap{
  overflow:hidden !important;
  width:100% !important;
  max-width:100vw !important;
  margin:0 !important;
  padding:0 !important;
}

body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards{
  display:table !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  table-layout:fixed !important;
  margin:0 !important;
  border-collapse:collapse !important;
}

body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards thead{
  display:table-header-group !important;
}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards tbody{
  display:table-row-group !important;
}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards tfoot{
  display:table-footer-group !important;
}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards tr{
  display:table-row !important;
}

body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th,
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td{
  display:table-cell !important;
  position:static !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  text-align:center !important;
  padding:5px 3px !important;
  font-size:clamp(7px,1.65vw,12px) !important;
  line-height:1.15 !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
  word-break:break-word !important;
  box-sizing:border-box !important;
}

body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(1),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(1){width:18% !important;}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(2),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(2){width:8% !important;}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(3),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(3){width:11% !important;}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(4),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(4){width:11% !important;}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(5),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(5){width:15% !important;}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(6),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(6){width:9% !important;}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(7),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(7){width:12% !important;}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(8),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(8){width:16% !important;}

body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td.left{
  text-align:left !important;
}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td::before{
  display:none !important;
  content:none !important;
}

body.table-only-capture-mode #summaryPersonCard .paid-check{
  display:none !important;
}
body.table-only-capture-mode #summaryPersonCard .paid-share-status{
  display:inline-block !important;
  width:auto !important;
  max-width:100% !important;
  padding:4px 6px !important;
  font-size:clamp(7px,1.5vw,11px) !important;
  white-space:nowrap !important;
}

@media(max-width:520px){
  body.table-only-capture-mode #tableCaptureBackBar{
    padding:4px 5px !important;
  }
  body.table-only-capture-mode #tableCaptureBackBtn{
    font-size:calc(11px * var(--app-font-scale,1)) !important;
    padding:6px 8px !important;
  }
  body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th,
  body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td{
    padding:4px 2px !important;
    font-size:clamp(6.5px,1.9vw,9px) !important;
  }
  body.table-only-capture-mode #summaryPersonCard .paid-share-status{
    padding:3px 4px !important;
    font-size:clamp(6px,1.75vw,8.5px) !important;
  }
}


/* ===== Two-session support ===== */
.session-card,.summary-session-card{background:#fff}
.session-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.session-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.session-tabs button{
  flex:1 1 220px;border:1px solid #cbd5e1;background:#f8fafc;
  padding:10px 12px;border-radius:10px;font-weight:800;color:#334155;
}
.session-tabs button span{display:block;font-size:calc(12px * var(--app-font-scale,1));font-weight:600;margin-top:2px;color:#64748b}
.session-tabs button.active{background:#245b86;color:#fff;border-color:#245b86}
.session-tabs button.active span{color:#e0f2fe}
.session-active-note{margin-top:8px;padding:8px 10px;border-radius:8px;background:#eff6ff;color:#1e3a5f;font-size:calc(13px * var(--app-font-scale,1))}
@media(max-width:600px){
  .session-head{align-items:stretch;flex-direction:column}
  .session-tabs{gap:6px}
  .session-tabs button{flex:1 1 calc(50% - 6px);padding:8px 5px;font-size:calc(12px * var(--app-font-scale,1))}
  .session-tabs button span{font-size:calc(10px * var(--app-font-scale,1))}
  #copyPlayersFromPrevSession{width:100%}
}


.session-actions{display:flex;gap:8px;flex-wrap:wrap}
.session-editor{display:grid;grid-template-columns:minmax(130px,1.4fr) minmax(90px,.8fr) minmax(90px,.8fr) auto auto;gap:8px;align-items:end;margin-top:10px;padding:10px;border:1px solid #dbe5ef;border-radius:10px;background:#f8fbff}
.session-editor label{font-size:calc(12px * var(--app-font-scale,1));font-weight:700;color:#475569}.session-editor input,.session-editor select{width:100%;margin-top:4px}
@media(max-width:720px){.session-actions{width:100%}.session-actions button{flex:1 1 45%}.session-editor{grid-template-columns:1fr 1fr}.session-editor label:first-child{grid-column:1/-1}.session-editor button{width:100%}}

/* ===== v67: one-click image sharing + compact mobile summary ===== */
#shareSummaryImageBtn,#lineShareExportBtn{
  background:#168548;color:#fff;border-color:#168548;font-weight:700
}
#shareSummaryImageBtn:hover,#lineShareExportBtn:hover{background:#10713b}
#lineShareBtn{background:#fff;color:#185b87;border-color:#9fc3dc}
.share-image-toast{
  position:fixed;left:50%;bottom:22px;z-index:10020;transform:translate(-50%,18px);
  max-width:min(520px,calc(100vw - 24px));padding:11px 16px;border-radius:999px;
  background:#153149;color:#fff;font-weight:700;text-align:center;opacity:0;pointer-events:none;
  box-shadow:0 10px 28px rgba(15,35,50,.25);transition:.2s ease
}
.share-image-toast.show{opacity:1;transform:translate(-50%,0)}
.share-image-toast.error{background:#a52a2a}
#lineShareExportBtn{display:none;position:fixed;left:16px;bottom:16px;z-index:10005;box-shadow:0 8px 24px rgba(0,0,0,.2)}
body.line-share-mode #lineShareExportBtn{display:block}

@media(max-width:720px){
  #summaryPersonCard .summary-table-wrap{overflow:visible}
  #summaryPersonCard table.summary-mobile-cards{display:block;min-width:0}
  #summaryPersonCard .summary-mobile-cards thead,
  #summaryPersonCard .summary-mobile-cards tfoot{display:none}
  #summaryPersonCard .summary-mobile-cards tbody{display:block}
  #summaryPersonCard .summary-mobile-cards tr{
    display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:12px 10px;
    padding:16px 13px;margin-bottom:11px;border:1px solid #d5e3ee;border-radius:14px;background:#fff;
    box-shadow:0 3px 10px rgba(25,67,94,.05)
  }
  #summaryPersonCard .summary-mobile-cards td{
    display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:0;border:0;text-align:left;min-width:0
  }
  #summaryPersonCard .summary-mobile-cards td::before{content:attr(data-label);font-size:calc(11px * var(--app-font-scale,1));color:#718096;font-weight:500}
  #summaryPersonCard .summary-mobile-cards td:nth-child(1){grid-column:1/-1;padding-bottom:9px;border-bottom:1px solid #dbe5ec;font-size:calc(17px * var(--app-font-scale,1));font-weight:800;color:#253f52}
  #summaryPersonCard .summary-mobile-cards td:nth-child(1)::before{display:none}
  #summaryPersonCard .summary-mobile-cards td:nth-child(2),
  #summaryPersonCard .summary-mobile-cards td:nth-child(3),
  #summaryPersonCard .summary-mobile-cards td:nth-child(4),
  #summaryPersonCard .summary-mobile-cards td:nth-child(5),
  #summaryPersonCard .summary-mobile-cards td:nth-child(6){grid-column:span 2}
  #summaryPersonCard .summary-mobile-cards td:nth-child(7){grid-column:1/6;background:#edf6ff;border-radius:10px;padding:10px;font-size:calc(18px * var(--app-font-scale,1));color:#07558c;font-weight:800}
  #summaryPersonCard .summary-mobile-cards td:nth-child(8){grid-column:6/-1;display:flex;flex-direction:row;align-items:center;justify-content:flex-end;padding:10px}
  #summaryPersonCard .summary-mobile-cards td:nth-child(8)::before{margin-right:auto}
  #summaryPersonCard .paid-check{width:25px;height:25px}
  #summaryPersonCard .paid-share-status{display:none}
  #summaryPersonCard .person-time{font-size:calc(12px * var(--app-font-scale,1));margin-top:5px}
  #summaryPersonCard .toolbar{display:grid;grid-template-columns:1fr 1fr}
  #summaryPersonCard .toolbar button,#summaryPersonCard .toolbar .btnlike{width:100%}
  #shareSummaryImageBtn{grid-column:1/-1;min-height:48px}
  body.line-share-mode #lineShareExportBtn{left:10px;bottom:12px}
  body.line-share-mode #lineShareBackBtn{right:10px;bottom:12px}
}

/* ===== v68: Modern cards, clearer hierarchy and collapsible sections ===== */
:root{
  --bg:#f3f7fa;--card:#ffffff;--line:#dbe5ec;--text:#173042;--muted:#6b7f8e;
  --blue:#17658f;--blue2:#45a3cf;--green:#16835b;
  --surface-soft:#f7fafc;--shadow:0 8px 28px rgba(25,64,89,.07);
}
body{
  color:var(--text);
  background:
    radial-gradient(circle at 8% 0%,rgba(74,163,207,.10),transparent 28rem),
    linear-gradient(180deg,#f8fbfd 0,#f3f7fa 420px);
}
header{background:linear-gradient(115deg,#124e73,#1974a2);box-shadow:0 5px 18px rgba(13,66,99,.18)}
header .header-row{max-width:1440px;margin:auto}
.wrap{max-width:1440px;margin-top:20px}
.card,.modern-card{
  border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.98);
  box-shadow:var(--shadow);overflow:hidden;
}
.modern-card{position:relative}
.modern-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--card-accent,#45a3cf)}
.modern-card.accent-blue{--card-accent:#328fc0;--card-soft:#edf7fc}
.modern-card.accent-violet{--card-accent:#8b78c6;--card-soft:#f4f1fb}
.modern-card.accent-green{--card-accent:#31a37c;--card-soft:#edf9f5}
.modern-card.accent-orange{--card-accent:#d79a43;--card-soft:#fff7ea}
.modern-card.accent-slate{--card-accent:#70879a;--card-soft:#f1f5f7}
.modern-card-head,.section-titlebar{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin:-15px -15px 14px;padding:14px 16px 13px 19px;
  background:linear-gradient(90deg,var(--card-soft,#eef7fb),#fff);
  border-bottom:1px solid #e5edf2;
}
.modern-card-title{display:flex;align-items:center;gap:11px;min-width:0}
.modern-card-icon{
  display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;
  background:var(--card-soft,#eef7fb);font-size:calc(19px * var(--app-font-scale,1))
}
.modern-card-head h3,.modern-card-head h2,.section-titlebar h3{margin:0;color:#17384d;font-size:calc(17px * var(--app-font-scale,1))}
.modern-card-head p{margin:2px 0 0;color:var(--muted);font-size:calc(11px * var(--app-font-scale,1));line-height:1.4}
.modern-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.collapse-toggle,.section-titlebar .section-actions button{
  min-width:76px;padding:7px 11px;border-radius:999px;background:#fff;color:#315268;
  border:1px solid #cfdde6;font-size:calc(12px * var(--app-font-scale,1));font-weight:700;box-shadow:0 2px 5px rgba(26,68,94,.04)
}
.collapse-toggle:hover,.section-titlebar .section-actions button:hover{background:#eef6fb;border-color:#8bb9d2}
.collapse-toggle .chevron{display:inline-block;margin-left:5px;transition:transform .2s ease}
.collapse-toggle[aria-expanded="false"] .chevron{transform:rotate(-90deg)}
.collapsible-body.is-collapsed{display:none!important}
.section-titlebar.cost,.section-titlebar.players{color:inherit}
.section-titlebar.cost{--card-accent:#328fc0;--card-soft:#edf7fc}
.section-titlebar.players{--card-accent:#31a37c;--card-soft:#edf9f5}
.section-titlebar h3{color:#17384d}
.section-titlebar .section-actions{margin-left:auto}
.page-header{border:0;border-left:5px solid;box-shadow:0 6px 20px rgba(28,68,92,.06)}
.tabs{padding:5px;background:#eaf1f5;border:1px solid #dbe6ed;border-radius:14px;gap:5px}
.tabs button{flex:1;border:0;background:transparent;color:#547083;font-weight:700;border-radius:10px;min-height:42px}
.tabs button.active{background:#fff;color:#155f89;box-shadow:0 3px 10px rgba(22,79,111,.10)}
button,.btnlike,input,select{transition:border-color .18s,box-shadow .18s,background .18s,transform .12s}
button:not(:disabled):active,.btnlike:active{transform:translateY(1px)}
button:disabled{opacity:.48;cursor:not-allowed}
input,select{min-height:42px;border-color:#cddce5;border-radius:10px;background:#fff}
input:focus,select:focus{outline:0;border-color:#4b9fc8;box-shadow:0 0 0 3px rgba(75,159,200,.14)}
.field label{font-weight:700;color:#526b7b}
.mode-panel{border:1px solid #dbe8ef!important;border-radius:13px!important;box-shadow:none!important}
.note{border-left:0;border:1px solid #d6e8f3;background:#f2f8fc;border-radius:11px;color:#496577}
th{background:#edf4f8;color:#36586e;font-size:calc(12px * var(--app-font-scale,1));letter-spacing:.01em}
tbody tr:hover{background:#f8fbfd}
.kpis .k{position:relative;border:1px solid #dce7ee;background:linear-gradient(145deg,#fff,#f5f9fb);border-radius:13px}
.kpis .k::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:3px;border-radius:3px;background:#7cb4cf}
.kpis .k:last-child{background:linear-gradient(145deg,#effbf7,#e4f6ef);border-color:#b9e0d1}
.kpis .k:last-child::after{background:#249168}
.kpis .k:last-child b{color:#08704c}
.session-tabs button{border-radius:12px;min-height:54px}
.session-editor{border-color:#dce7ee;background:#f7fafc;border-radius:13px}
.summary-refresh-bar{border-radius:12px}
#membersActiveStatus{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;background:#eef6fb;color:#35627b;font-weight:700}
.person-name{font-weight:800;color:#17384d;line-height:1.35}
.person-time{display:flex;flex-direction:column;gap:2px;margin-top:4px;color:#6a7f8e;font-size:calc(11px * var(--app-font-scale,1));font-weight:600;line-height:1.35;white-space:normal}
body.line-share-mode .person-time{margin-top:2px;font-size:calc(6.8px * var(--app-font-scale,1))!important;line-height:1.2;color:#64748b!important}
body.table-only-capture-mode #summaryPersonCard .person-time{font-size:clamp(7px,.78vw,11px)!important;line-height:1.25}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(1),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(1){width:24%!important}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(2),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(2){width:8%!important}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(3),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(3),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(4),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(4){width:10%!important}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(5),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(5){width:14%!important}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(6),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(6){width:8%!important}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(7),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(7){width:12%!important}
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards th:nth-child(8),
body.table-only-capture-mode #summaryPersonCard .summary-mobile-cards td:nth-child(8){width:14%!important}
body.line-share-mode #summaryPersonCard td.payment-status-cell.is-paid,
body.table-only-capture-mode #summaryPersonCard td.payment-status-cell.is-paid{
  background:#e8f8ef!important;box-shadow:none!important;
}
body.line-share-mode #summaryPersonCard .paid-share-status.paid,
body.table-only-capture-mode #summaryPersonCard .paid-share-status.paid{
  display:inline-flex!important;align-items:center;justify-content:center;
  background:#22a06b!important;color:#fff!important;border:1px solid #16835b!important;
  font-weight:900!important;
}
body.line-share-mode #summaryPersonCard td.payment-status-cell.is-unpaid,
body.table-only-capture-mode #summaryPersonCard td.payment-status-cell.is-unpaid{background:#f7f9fb!important}
body.table-only-capture-mode #summaryPersonCard > .modern-card-head{display:none!important}
body.table-only-capture-mode #summaryPersonCard .toolbar,
body.table-only-capture-mode #summaryPersonCard #balanceCheck{display:none!important}
body.line-share-mode .collapse-toggle{display:none!important}
.capture-part-hidden{display:none!important}
body.line-share-mode #summary,
body.line-share-mode #summary .card,
body.line-share-mode #summary .summary-slot-wrap,
body.line-share-mode #summary .summary-table-wrap{
  width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important;
}
body.line-share-mode #summary{padding:8px!important;background:#f5f8fa!important}
body.line-share-mode #summaryPersonCard{
  width:100%!important;margin:0 auto 8px!important;padding:7px!important;
  border:1px solid #d7e4ec!important;border-radius:12px!important;background:#fff!important;
}
body.table-only-capture-mode #summary{padding:8px!important;background:#f5f8fa!important}
body.table-only-capture-mode #summaryPersonCard{
  width:100%!important;margin:0 auto!important;padding:7px!important;
  border:1px solid #d7e4ec!important;border-radius:12px!important;background:#fff!important;
}
body.line-share-mode #summaryPersonCard td[data-label="ชื่อ"],
body.table-only-capture-mode #summaryPersonCard td[data-label="ชื่อ"]{
  padding-left:8px!important;padding-right:5px!important;
}
body.line-share-mode #summaryPersonCard .summary-mobile-cards th:nth-child(1),
body.line-share-mode #summaryPersonCard .summary-mobile-cards td:nth-child(1){width:24%!important}
body.line-share-mode #summaryPersonCard .summary-mobile-cards th:nth-child(2),
body.line-share-mode #summaryPersonCard .summary-mobile-cards td:nth-child(2){width:8%!important}
body.line-share-mode #summaryPersonCard .summary-mobile-cards th:nth-child(3),
body.line-share-mode #summaryPersonCard .summary-mobile-cards td:nth-child(3){width:10%!important}
body.line-share-mode #summaryPersonCard .summary-mobile-cards th:nth-child(4),
body.line-share-mode #summaryPersonCard .summary-mobile-cards td:nth-child(4){width:10%!important}
body.line-share-mode #summaryPersonCard .summary-mobile-cards th:nth-child(5),
body.line-share-mode #summaryPersonCard .summary-mobile-cards td:nth-child(5){width:14%!important}
body.line-share-mode #summaryPersonCard .summary-mobile-cards th:nth-child(6),
body.line-share-mode #summaryPersonCard .summary-mobile-cards td:nth-child(6){width:9%!important}
body.line-share-mode #summaryPersonCard .summary-mobile-cards th:nth-child(7),
body.line-share-mode #summaryPersonCard .summary-mobile-cards td:nth-child(7){width:13%!important}
body.line-share-mode #summaryPersonCard .summary-mobile-cards th:nth-child(8),
body.line-share-mode #summaryPersonCard .summary-mobile-cards td:nth-child(8){width:12%!important}
body.line-share-mode #summarySessionTabs{width:100%!important;max-width:100%!important;overflow:hidden!important}
body.line-share-mode #summarySessionTabs button{
  min-width:0!important;max-width:100%!important;flex:1 1 calc(50% - 4px)!important;white-space:normal!important;
}
body.table-only-capture-mode #summaryPersonCard,
body.table-only-capture-mode #summaryPersonCardBody,
body.table-only-capture-mode #summaryPersonCard .summary-table-wrap{
  width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important;
}

@media(max-width:720px){
  body{padding-bottom:78px}
  .wrap{margin-top:10px;padding:0 8px}
  .card,.modern-card{border-radius:14px;padding:12px;margin-bottom:11px}
  .modern-card-head,.section-titlebar{margin:-12px -12px 12px;padding:12px 12px 11px 15px;align-items:center;flex-direction:row}
  .modern-card-icon{width:34px;height:34px;flex-basis:34px;font-size:calc(17px * var(--app-font-scale,1))}
  .modern-card-head h3,.modern-card-head h2,.section-titlebar h3{font-size:calc(15px * var(--app-font-scale,1))}
  .modern-card-head p{display:none}
  .modern-card-actions{gap:5px}
  .collapse-toggle,.section-titlebar .section-actions button{min-width:64px;padding:7px 9px}
  .tabs{position:fixed;left:7px;right:7px;bottom:7px;top:auto;z-index:1000;margin:0;padding:6px;background:rgba(255,255,255,.96);box-shadow:0 8px 28px rgba(15,52,74,.22);backdrop-filter:blur(12px)}
  .tabs button{min-height:49px;padding:6px 3px;font-size:calc(11px * var(--app-font-scale,1))}
  .page-header{margin-bottom:10px}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpis .k:last-child{grid-column:1/-1}
  .session-head.modern-card-head{flex-direction:column;align-items:stretch}
  .session-actions.modern-card-actions{width:100%;justify-content:stretch}
  .session-actions.modern-card-actions > button{flex:1 1 30%}
  body.line-share-mode #appWrap{width:100%!important;max-width:100%!important;margin:0!important;padding:4px!important}
  table.players-mobile tr{
    position:relative!important;
    grid-template-columns:44px minmax(0,1fr) 44px minmax(0,1fr)!important;
  }
  table.players-mobile td.player-index-cell{
    position:static!important;grid-column:1!important;grid-row:1!important;align-self:end!important;
    width:auto!important;min-height:42px!important;display:grid!important;place-items:center!important;
    padding:0!important;border:0!important;background:transparent!important;z-index:2;
  }
  table.players-mobile td.player-index-cell::before{display:none!important}
  table.players-mobile td.player-index-cell .player-no{
    display:grid;place-items:center;width:32px;height:32px;border-radius:10px;
    background:#e9f8f2;color:#087052;border:1px solid #c8eadc;font-size:calc(14px * var(--app-font-scale,1));
  }
  table.players-mobile td:nth-child(2){grid-column:2/-1!important;grid-row:1!important;padding-left:0!important}
  table.players-mobile td:nth-child(3){grid-column:1/3!important;grid-row:2!important}
  table.players-mobile td:nth-child(4){grid-column:3/5!important;grid-row:2!important}
  table.players-mobile td:nth-child(5){grid-column:1/3!important;grid-row:3!important}
  table.players-mobile td:nth-child(6){grid-column:3/5!important;grid-row:3!important}
  table.players-mobile td:nth-child(7){grid-column:1/3!important;grid-row:4!important}
  table.players-mobile td:nth-child(8){grid-column:3/5!important;grid-row:4!important}
  table.players-mobile td:nth-child(9){grid-column:1/-1!important;grid-row:5!important}
}
@media(max-width:390px){
  .modern-card-head p{display:none}
  .modern-card-title{gap:7px}
  .collapse-toggle{min-width:58px;padding-inline:7px}
}

/* Utility and component styles extracted from inline HTML attributes. */
.full-width{width:100%}
.server-status{font-size:calc(12px * var(--app-font-scale,1));background:#e5e7eb;color:#374151;padding:6px 9px;border-radius:999px}
.mode-panel-compact{padding:12px;margin-bottom:12px;background:#f8fbff}
.mt-5{margin-top:5px}
.mt-6{margin-top:6px}
.mt-10{margin-top:10px}
.mt-12{margin-top:12px}
.overflow-table{overflow:auto}
.summary-mode-badge{font-size:calc(12px * var(--app-font-scale,1));padding:4px 8px;border-radius:999px;background:#eef6ff;color:#1f4e78}
.history-filter{max-width:220px}
.history-person-filter{max-width:260px}

/* ===== Expense dashboard ===== */
.expense-page{--expense-blue:#1473d4;--expense-green:#0aa76d;--expense-orange:#ff7a16;--expense-violet:#7447d7}
.expense-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:4px 0 18px}
.expense-page-heading h2{font-size:calc(30px * var(--app-font-scale,1));line-height:1.15;margin:0 0 5px;color:#17243b}
.expense-page-heading p{margin:0;color:#6b7b91}
.expense-mode-badge{display:inline-flex;align-items:center;justify-content:center;max-width:430px;padding:11px 16px;border-radius:12px;background:#dceeff;color:#0c60b2;font-size:calc(14px * var(--app-font-scale,1));font-weight:800;text-align:center}
.expense-filter-card{padding:16px 20px;margin-bottom:14px}
.expense-filter-grid{display:grid;grid-template-columns:1fr 1fr 1.15fr minmax(150px,.85fr);gap:18px;align-items:end}
.expense-filter-field{display:grid;gap:7px;color:#18263d;font-size:calc(13px * var(--app-font-scale,1));font-weight:800}
.expense-filter-field input,.expense-filter-field select{height:48px;background:#fff;border-color:#cbd8e7;color:#1a2b45;font-weight:600}
.expense-filter-field input[readonly]{background:#fff}
.expense-input-with-icon{position:relative;display:block}
.expense-input-with-icon>span{position:absolute;left:13px;top:50%;transform:translateY(-50%);z-index:1}
.expense-input-with-icon input{padding-left:42px}
.expense-show-btn{height:48px;font-weight:800;font-size:calc(15px * var(--app-font-scale,1));background:linear-gradient(135deg,#2588e7,#086acb)!important;border:0!important;box-shadow:0 8px 18px rgba(16,112,207,.16)}
.expense-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}
.expense-kpi{display:flex;align-items:center;gap:17px;min-height:112px;padding:20px;background:#fff;border:1px solid #dbe5f0;border-radius:12px;box-shadow:0 1px 3px rgba(20,40,70,.04)}
.expense-kpi-icon{display:grid;place-items:center;flex:0 0 62px;width:62px;height:62px;border-radius:50%;font-size:calc(27px * var(--app-font-scale,1));font-weight:900}
.expense-kpi>div{min-width:0}
.expense-kpi>div>span{display:block;font-weight:800;color:#26364d;margin-bottom:5px}
.expense-kpi strong{display:block;font-size:calc(27px * var(--app-font-scale,1));line-height:1.1;white-space:nowrap}
.expense-kpi strong small{font-size:calc(16px * var(--app-font-scale,1));font-weight:800}
.expense-kpi.total .expense-kpi-icon{color:#07955f;background:#def8ec}.expense-kpi.total strong{color:#07955f}
.expense-kpi.court .expense-kpi-icon{color:#0968c7;background:#e0f0ff}.expense-kpi.court strong{color:#0968c7}
.expense-kpi.shuttle .expense-kpi-icon{color:#ee6b08;background:#fff0df}.expense-kpi.shuttle strong{color:#ee6b08}
.expense-kpi.water .expense-kpi-icon{color:#7040cf;background:#eee6ff}.expense-kpi.water strong{color:#7040cf}
.expense-overview-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:14px}
.expense-dashboard-card{padding:19px 21px}
.expense-dashboard-card h3{font-size:calc(19px * var(--app-font-scale,1));color:#17243b;margin:0 0 18px}
.expense-breakdown-bar{height:56px;display:flex;overflow:hidden;border-radius:8px;background:#e7edf4;margin:28px 0 23px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.expense-breakdown-bar span{display:flex;align-items:center;justify-content:center;min-width:0;color:#fff;font-weight:900;transition:width .25s ease}
.expense-breakdown-bar span::after{content:attr(data-percent)}
.expense-breakdown-bar .court,.expense-legend i.court{background:linear-gradient(135deg,#177dd7,#0869bf)}
.expense-breakdown-bar .shuttle,.expense-legend i.shuttle{background:linear-gradient(135deg,#ff902e,#f36b06)}
.expense-breakdown-bar .water,.expense-legend i.water{background:linear-gradient(135deg,#936be9,#7040cf)}
.expense-legend{display:flex;flex-wrap:wrap;gap:15px 24px;color:#475a72;font-size:calc(13px * var(--app-font-scale,1))}
.expense-legend span{display:flex;align-items:center;gap:7px}
.expense-legend i{display:inline-block;width:15px;height:15px;border-radius:50%}
.expense-legend b{color:#24354c;font-weight:700}
.expense-table-scroll{overflow:auto;-webkit-overflow-scrolling:touch}
.expense-dashboard-card table{font-size:calc(13px * var(--app-font-scale,1))}
.expense-dashboard-card th{background:#edf3f9;color:#253750;font-weight:800}
.expense-dashboard-card th,.expense-dashboard-card td{padding:10px 9px;border:1px solid #dce5ef}
.expense-dashboard-card tfoot th{background:#e5f2ff;color:#173d68}
.expense-slot-table th:last-child,.expense-slot-table td:last-child{font-weight:900;color:#075fb8}
.expense-person-card{margin-top:14px}
.expense-person-head{display:flex;align-items:center;gap:22px;margin-bottom:12px}
.expense-person-head h3{margin:0;white-space:nowrap}
.expense-search{position:relative;display:block;max-width:460px;flex:1}
.expense-search span{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#73849a}
.expense-search input{height:42px;padding-left:38px;background:#fff}
.expense-person-table td:first-child{text-align:left;font-weight:800}
.expense-person-table td:nth-child(5){background:#edf7ff;color:#075fb8;font-size:calc(16px * var(--app-font-scale,1));font-weight:900}
.expense-status{display:inline-flex;align-items:center;justify-content:center;min-width:96px;padding:5px 11px;border-radius:999px;font-size:calc(12px * var(--app-font-scale,1));font-weight:900}
.expense-status.paid{background:#dcf7e7;color:#08733e}.expense-status.unpaid{background:#ffe1e1;color:#c02626}
.expense-empty{padding:25px!important;color:#7b899c;text-align:center!important}
.expense-formula-note{display:flex;align-items:center;gap:8px;padding:12px 17px;margin:0 0 14px;border-radius:9px;background:#e1efff;color:#315a84;font-size:calc(12px * var(--app-font-scale,1));font-weight:700}
.expense-formula-note span{font-weight:500}

@media(max-width:1050px){
  .expense-filter-grid{grid-template-columns:1fr 1fr}
  .expense-kpis{grid-template-columns:1fr 1fr}
  .expense-overview-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .expense-page-heading{align-items:stretch;flex-direction:column;margin:2px 4px 12px}
  .expense-page-heading h2{font-size:calc(24px * var(--app-font-scale,1))}
  .expense-page-heading p{font-size:calc(12px * var(--app-font-scale,1));line-height:1.5}
  .expense-mode-badge{align-self:flex-start;padding:8px 11px;font-size:calc(12px * var(--app-font-scale,1))}
  .expense-filter-card,.expense-dashboard-card{padding:13px}
  .expense-filter-grid{grid-template-columns:1fr;gap:10px}
  .expense-filter-field input,.expense-filter-field select,.expense-show-btn{height:44px}
  .expense-kpis{grid-template-columns:1fr 1fr;gap:8px}
  .expense-kpi{min-height:92px;padding:12px;gap:10px}
  .expense-kpi-icon{flex-basis:42px;width:42px;height:42px;font-size:calc(20px * var(--app-font-scale,1))}
  .expense-kpi>div>span{font-size:calc(12px * var(--app-font-scale,1))}
  .expense-kpi strong{font-size:calc(19px * var(--app-font-scale,1));white-space:normal}
  .expense-kpi strong small{font-size:calc(11px * var(--app-font-scale,1))}
  .expense-breakdown-bar{height:42px;margin:18px 0}
  .expense-breakdown-bar span{font-size:calc(11px * var(--app-font-scale,1))}
  .expense-legend{display:grid;grid-template-columns:1fr;gap:8px}
  .expense-person-head{align-items:stretch;flex-direction:column;gap:10px}
  .expense-person-head h3{white-space:normal}
  .expense-search{max-width:none;width:100%}
  .expense-slot-table{min-width:620px}
  .expense-person-table{min-width:720px}
  .expense-formula-note{align-items:flex-start;line-height:1.5}
}
@media(max-width:420px){
  .expense-kpis{grid-template-columns:1fr}
  .expense-kpi{min-height:80px}
}

/* ===== v69: Unified responsive product design ===== */
:root{
  --navy-950:#0b2239;
  --navy-900:#102a43;
  --navy-800:#173f63;
  --primary:#2563eb;
  --primary-dark:#1d4ed8;
  --primary-soft:#eaf2ff;
  --success:#10b981;
  --success-soft:#dcfce7;
  --warning:#f97316;
  --warning-soft:#fff0df;
  --violet:#8b5cf6;
  --violet-soft:#efe8ff;
  --danger:#dc2626;
  --surface:#ffffff;
  --surface-muted:#f5f7fb;
  --line-modern:#dbe5f0;
  --text-modern:#14243b;
  --muted-modern:#64748b;
  --shadow-modern:0 8px 26px rgba(15,42,67,.07);
}

/* Keep inactive pages hidden even when an active page uses CSS Grid. */
.tab.hidden{display:none!important}

body{
  min-height:100vh;
  font-family:"Segoe UI","Noto Sans Thai",Tahoma,sans-serif;
  color:var(--text-modern);
  background:var(--surface-muted);
}
body:not(.line-share-mode):not(.table-only-capture-mode) .wrap{max-width:none}

/* Login is part of the same product language. */
.login-screen{
  background:
    radial-gradient(circle at 15% 15%,rgba(37,99,235,.18),transparent 31rem),
    linear-gradient(145deg,#eef5ff,#f8fafc 55%,#edf7f4);
}
.login-card{border:1px solid rgba(203,213,225,.75);border-radius:22px;box-shadow:0 24px 70px rgba(15,42,67,.16);padding:30px}
.login-card h2{font-size:calc(25px * var(--app-font-scale,1));color:var(--navy-900)}
.login-card p{margin-bottom:22px}
.login-card input{height:48px}
.login-card button{height:48px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));border:0;font-weight:800}

/* App top bar */
body:not(.line-share-mode):not(.table-only-capture-mode) header{
  color:var(--navy-900);
  background:rgba(255,255,255,.96);
  border-bottom:1px solid #e4ebf3;
  box-shadow:0 3px 14px rgba(15,42,67,.05);
  backdrop-filter:blur(12px);
}
body:not(.line-share-mode):not(.table-only-capture-mode) header .header-row{max-width:none}
.header-brand-mark{font-size:calc(20px * var(--app-font-scale,1))}
.header-tools-desktop{align-items:center}
.admin-chip{display:inline-flex;align-items:center;gap:8px;color:var(--navy-900);font-size:calc(13px * var(--app-font-scale,1));font-weight:700}
.admin-chip b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;font-size:calc(15px * var(--app-font-scale,1))}
body:not(.line-share-mode):not(.table-only-capture-mode) .server-status{
  display:inline-flex;align-items:center;gap:6px;border-radius:999px!important;border:1px solid rgba(16,185,129,.14);font-weight:700;
}
body:not(.line-share-mode):not(.table-only-capture-mode) .logout-btn{border-color:#dbe5f0;background:#fff;color:#24415e}

/* Shared navigation */
.sidebar-brand{display:flex;align-items:center;gap:10px;color:#fff;font-size:calc(17px * var(--app-font-scale,1));padding:6px 7px 20px;margin-bottom:9px;border-bottom:1px solid rgba(255,255,255,.10)}
.sidebar-brand>span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:rgba(255,255,255,.10)}
.sidebar-footer{display:flex;flex-direction:column;gap:3px;margin-top:auto;padding:16px 8px 4px;color:#9fb4c9;font-size:calc(10px * var(--app-font-scale,1));line-height:1.45}
.sidebar-footer b{color:#dbe8f4;font-size:calc(11px * var(--app-font-scale,1))}
.nav-icon{display:grid;place-items:center;width:25px;height:25px;font-size:calc(17px * var(--app-font-scale,1));line-height:1}
.nav-label{line-height:1.2}

/* Page titles */
body:not(.line-share-mode):not(.table-only-capture-mode) .page-header{
  min-height:70px;margin:0 0 15px;padding:3px 4px;border:0;background:transparent;box-shadow:none;
}
body:not(.line-share-mode):not(.table-only-capture-mode) .page-header .page-icon{display:none}
body:not(.line-share-mode):not(.table-only-capture-mode) .page-header h2{font-size:calc(30px * var(--app-font-scale,1));line-height:1.16;color:#102a43;letter-spacing:-.02em}
body:not(.line-share-mode):not(.table-only-capture-mode) .page-header p{margin-top:5px;font-size:calc(14px * var(--app-font-scale,1));color:#66788d}

/* Cards and controls */
body:not(.line-share-mode):not(.table-only-capture-mode) .card,
body:not(.line-share-mode):not(.table-only-capture-mode) .modern-card{
  border:1px solid var(--line-modern);border-radius:14px;background:#fff;box-shadow:var(--shadow-modern);
}
body:not(.line-share-mode):not(.table-only-capture-mode) .modern-card::before{display:none}
body:not(.line-share-mode):not(.table-only-capture-mode) .modern-card-head,
body:not(.line-share-mode):not(.table-only-capture-mode) .section-titlebar{
  margin:-15px -15px 15px;padding:15px 17px;background:#fff;border-bottom:1px solid #e7edf4;
}
body:not(.line-share-mode):not(.table-only-capture-mode) .modern-card-icon{
  color:#175ec6;background:#e9f2ff;border-radius:50%;
}
body:not(.line-share-mode):not(.table-only-capture-mode) .modern-card-head h3,
body:not(.line-share-mode):not(.table-only-capture-mode) .section-titlebar h3{color:#14243b;font-size:calc(18px * var(--app-font-scale,1))}
body:not(.line-share-mode):not(.table-only-capture-mode) .modern-card-head p{color:#728196;font-size:calc(12px * var(--app-font-scale,1))}
body:not(.line-share-mode):not(.table-only-capture-mode) button,
body:not(.line-share-mode):not(.table-only-capture-mode) .btnlike{border-radius:10px;font-weight:700}
body:not(.line-share-mode):not(.table-only-capture-mode) button.primary{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-color:var(--primary);box-shadow:0 5px 13px rgba(37,99,235,.16)
}
body:not(.line-share-mode):not(.table-only-capture-mode) input,
body:not(.line-share-mode):not(.table-only-capture-mode) select{border:1px solid #cbd8e7;border-radius:10px;color:#172b46;background:#fff}
body:not(.line-share-mode):not(.table-only-capture-mode) input:focus,
body:not(.line-share-mode):not(.table-only-capture-mode) select:focus{border-color:#4f8df5;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
body:not(.line-share-mode):not(.table-only-capture-mode) th{background:#edf3f9;color:#29425f}
body:not(.line-share-mode):not(.table-only-capture-mode) td,
body:not(.line-share-mode):not(.table-only-capture-mode) th{border-bottom-color:#e2eaf2}

/* Today workspace */
body:not(.line-share-mode):not(.table-only-capture-mode) #today{display:grid;grid-template-columns:minmax(390px,.9fr) minmax(560px,1.1fr);gap:15px;align-items:start}
body:not(.line-share-mode):not(.table-only-capture-mode) #today>.page-header,
body:not(.line-share-mode):not(.table-only-capture-mode) #todaySetupGroup{grid-column:1/-1}
body:not(.line-share-mode):not(.table-only-capture-mode) #today>.card{margin:0}
#todaySlotsCard{grid-column:1}
#todayPlayersCard{grid-column:2}
#todaySessionCard .session-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#todaySessionCard .session-tabs button{flex:none;min-height:66px;text-align:left;border-color:#d5e1ee;background:#f7faff;color:#26425f}
#todaySessionCard .session-tabs button.active{border-color:#3b82f6;background:#eaf2ff;color:#124fba;box-shadow:inset 0 0 0 1px #3b82f6}
#todaySessionCard .session-tabs button.active span{color:#346aa9}
#todayCalculationCard .grid{grid-template-columns:repeat(6,minmax(120px,1fr))}
#todayCalculationCard .mode-panel{background:#f7faff!important}
#todaySlotsCard,#todayPlayersCard{min-width:0}
#todaySlotsCard .overflow-table,#todayPlayersCard .players-table-wrap{max-height:650px;overflow:auto}
#todayPlayersCard .player-actions-v44{display:grid;grid-template-columns:1fr 1fr}
#todayPlayersCard #applyPlayerTimes{grid-column:1/-1}

/* Summary */
body:not(.line-share-mode):not(.table-only-capture-mode) #summary>.card{margin-bottom:15px}
#summarySessionTabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
#summarySessionTabs button{flex:none;text-align:left;border-color:#d7e2ee;background:#f7faff}
#summarySessionTabs button.active{background:linear-gradient(135deg,#2f75ec,#1d4ed8);color:#fff;border-color:#2563eb;box-shadow:0 8px 18px rgba(37,99,235,.17)}
#summaryKpiCard .kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
#summaryKpiCard .k{min-height:94px;padding:15px;background:#fff;border-radius:12px}
#summaryKpiCard .k::after{height:4px;background:#60a5fa}
#summaryKpiCard .k:nth-child(4)::after{background:#f97316}
#summaryKpiCard .k:nth-child(5)::after{background:#8b5cf6}
#summaryKpiCard .k:last-child::after{background:#10b981}
.summary-validation-banner{display:flex;align-items:center;gap:13px;margin:0 0 15px;padding:13px 16px;border:1px solid;border-radius:13px}
#summaryValidationBanner{display:none!important}
.summary-validation-banner.ok{background:#ecfdf5;border-color:#a7f3d0;color:#087052}
.summary-validation-banner.ng{background:#fff7ed;border-color:#fed7aa;color:#b45309}
.summary-validation-icon{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:50%;color:#fff;font-size:calc(22px * var(--app-font-scale,1));font-weight:900}
.summary-validation-banner.ok .summary-validation-icon{background:#10b981}
.summary-validation-banner.ng .summary-validation-icon{background:#f59e0b}
.summary-validation-banner>div{display:flex;flex-direction:column;gap:2px}
.summary-validation-banner b{font-size:calc(15px * var(--app-font-scale,1))}.summary-validation-banner span:not(.summary-validation-icon){font-size:calc(12px * var(--app-font-scale,1));color:#507166}
body:not(.line-share-mode):not(.table-only-capture-mode) #balanceCheck{display:none}
#summaryPersonCard .toolbar{justify-content:flex-end;padding-top:10px;border-top:1px solid #e7edf4}
#summaryPersonCard .payment-status-cell{min-width:115px}
#summaryPersonCard .paid-check{accent-color:#10b981}

/* Expense analytics */
.expense-overview-grid{grid-template-columns:1fr 1fr;align-items:stretch}
.expense-overview-grid>.expense-dashboard-card:nth-child(3){grid-column:1/-1}
.expense-overview-grid>.expense-dashboard-card:first-child{display:grid;grid-template-columns:170px 1fr;grid-template-rows:auto 1fr;align-items:center;column-gap:24px}
.expense-overview-grid>.expense-dashboard-card:first-child h3{grid-column:1/-1}
.expense-breakdown-bar{
  --court-percent:0%;--shuttle-end:0%;position:relative;display:block;width:150px;height:150px;margin:2px auto;border-radius:50%;overflow:visible;
  background:conic-gradient(#1473d4 0 var(--court-percent),#f97316 var(--court-percent) var(--shuttle-end),#8b5cf6 var(--shuttle-end) 100%);
  box-shadow:none;
}
.expense-breakdown-bar>span{display:none}
.expense-breakdown-bar::before{content:"";position:absolute;inset:23px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #edf2f7}
.expense-breakdown-bar::after{content:attr(data-total) "\A บาท";white-space:pre;position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#14304d;font-size:calc(22px * var(--app-font-scale,1));line-height:1.25;font-weight:900}
.expense-legend{display:grid;grid-template-columns:1fr;gap:13px}
.expense-legend span{display:grid;grid-template-columns:16px auto;align-items:center}
.expense-legend span b{grid-column:2;display:block;margin-top:2px;font-size:calc(14px * var(--app-font-scale,1))}
.expense-payment-content{display:flex;align-items:center;justify-content:center;gap:40px;min-height:166px}
.expense-payment-ring{position:relative;display:grid;place-items:center;width:150px;height:150px;flex:0 0 150px;border-radius:50%;background:conic-gradient(#10b981 0 0%,#fecaca 0 100%)}
.expense-payment-ring::before{content:"";position:absolute;inset:23px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #edf2f7}
.expense-payment-ring>div{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}
.expense-payment-ring strong{font-size:calc(26px * var(--app-font-scale,1));color:#16324f}.expense-payment-ring span{font-size:calc(12px * var(--app-font-scale,1));color:#6b7f93}
.expense-payment-legend{display:grid;gap:18px}
.expense-payment-legend>span{display:flex;align-items:flex-start;gap:10px}
.expense-payment-legend i{width:15px;height:15px;margin-top:2px;border-radius:50%}.expense-payment-legend i.paid{background:#10b981}.expense-payment-legend i.unpaid{background:#fca5a5}
.expense-payment-legend>span>span{display:flex;flex-direction:column;color:#52667c;font-size:calc(13px * var(--app-font-scale,1))}.expense-payment-legend b{color:#19324d;font-size:calc(15px * var(--app-font-scale,1));margin-top:2px}
.expense-total-shuttle-row{background:#fff8ee}

/* History */
#history .modern-card{padding:18px}
#history .modern-card-head{margin:-18px -18px 16px}
.history-filter-bar{display:grid!important;grid-template-columns:180px minmax(180px,240px) minmax(180px,260px) auto auto;gap:10px;margin:0 0 16px!important;padding:14px;border:1px solid #dce6f1;border-radius:13px;background:#f7faff}
.history-filter-bar select{max-width:none!important;height:44px}
.history-filter-bar button{min-height:44px}
.history-filter-bar .danger{background:#fff;color:#b42318;border-color:#fecaca}
.history-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.history-kpis>div{display:flex;align-items:center;gap:13px;min-height:86px;padding:14px 16px;border:1px solid #dce6f1;border-radius:13px;background:#fff}
.history-kpis>div>span:last-child{display:flex;flex-direction:column;gap:3px;color:#607086;font-size:calc(12px * var(--app-font-scale,1));font-weight:700}
.history-kpis b{color:#122b48;font-size:calc(23px * var(--app-font-scale,1))}
.history-kpi-icon{display:grid!important;place-items:center;width:48px;height:48px;border-radius:50%;font-size:calc(21px * var(--app-font-scale,1));font-weight:900}
.history-kpi-icon.records{color:#1769d2;background:#e4f0ff}.history-kpi-icon.total{color:#07845c;background:#dcf8ec}.history-kpi-icon.people{color:#7045d3;background:#eee8ff}
#history .history-table-wrap{border:1px solid #dce6f1;border-radius:12px;overflow:auto}
#history .history-table-wrap table{margin:0}
#history .history-table-wrap th,#history .history-table-wrap td{padding:11px 9px}
#history .history-table-wrap td:last-child{color:#0765c3;font-size:calc(15px * var(--app-font-scale,1));font-weight:900}

/* Settings */
body:not(.line-share-mode):not(.table-only-capture-mode) #settings{display:grid;grid-template-columns:minmax(430px,1.05fr) minmax(420px,.95fr);gap:15px;align-items:start}
#settings>.page-header,#settings>.settings-subtabs,#settings>.settings-save-bar{grid-column:1/-1}
#settingsCostCard{grid-column:1}#settingsMembersCard{grid-column:2}
.settings-subtabs{display:flex;gap:4px;padding:5px;border:1px solid #dbe5f0;border-radius:12px;background:#eaf0f7}
.settings-subtabs button{min-width:190px;border:0;background:transparent;color:#425a73;box-shadow:none}
.settings-subtabs button.active{background:#2563eb;color:#fff;box-shadow:0 5px 12px rgba(37,99,235,.15)}
#settings>.card{margin:0}
#settingsCostCard thead{display:none}
#settingsCostCard table,#settingsCostCard tbody{display:block;width:100%}
#settingsCostCard tr{display:grid;grid-template-columns:minmax(180px,1fr) minmax(230px,.85fr);align-items:center;gap:18px;padding:12px 4px;border-bottom:1px solid #e6edf4}
#settingsCostCard tr:last-child{border-bottom:0}
#settingsCostCard td{display:block;padding:0;border:0;text-align:left!important}
#settingsCostCard td:first-child{font-weight:800;color:#263e59}
#settingsCostCard td:last-child{min-width:0}
#settingsCostCard select{min-height:46px}
#settingsCostCard .num-stepper{max-width:300px;margin-left:auto}
#settingsCostCard .num-stepper input{text-align:center;font-size:calc(16px * var(--app-font-scale,1));font-weight:800}
#settingsMembersCard .toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#settingsMembersCard #addMember{grid-column:1/-1;background:#2563eb;color:#fff;border-color:#2563eb}
#settingsMembersCard #membersActiveStatus{grid-column:1/-1;justify-self:start;color:#087052;background:#dcfce7}
#settingsMembersCard .overflow-table{max-height:590px;border:1px solid #e0e8f1;border-radius:11px}
#settingsMembersCard td:nth-child(3) input{width:22px;height:22px;accent-color:#10b981}
.settings-save-bar{position:sticky;bottom:12px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border:1px solid #dbe5f0;border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 10px 28px rgba(15,42,67,.13);backdrop-filter:blur(12px)}
.settings-save-bar>span{display:flex;flex-direction:column;color:#087052}.settings-save-bar small{color:#748398;margin-top:2px}.settings-save-bar button{min-width:220px;min-height:46px}

/* Desktop shell */
@media(min-width:901px){
  body:not(.line-share-mode):not(.table-only-capture-mode) header{position:sticky;top:0;z-index:45;height:62px;margin-left:194px;padding:0 24px}
  body:not(.line-share-mode):not(.table-only-capture-mode) header .header-row{height:100%}
  body:not(.line-share-mode):not(.table-only-capture-mode) header h1{display:none}
  body:not(.line-share-mode):not(.table-only-capture-mode) .wrap{margin:20px 20px 30px 214px;padding:0;width:auto}
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs{
    position:fixed;inset:0 auto 0 0;z-index:60;display:flex;flex-direction:column;flex-wrap:nowrap;gap:7px;width:194px;margin:0;padding:18px 14px 14px;border:0;border-radius:0;
    background:linear-gradient(180deg,#0f2f4e,#0a2238);box-shadow:8px 0 25px rgba(11,34,57,.13);
  }
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs button{display:flex;flex:0 0 auto;align-items:center;gap:11px;width:100%;min-height:46px;padding:10px 12px;border:0;border-radius:9px;background:transparent;color:#d7e4f0;text-align:left;box-shadow:none}
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs button:hover{background:rgba(255,255,255,.08);color:#fff}
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs button.active{background:linear-gradient(135deg,#2684f3,#1467dc);color:#fff;box-shadow:0 8px 18px rgba(3,24,48,.24)}
}

@media(max-width:1250px) and (min-width:901px){
  body:not(.line-share-mode):not(.table-only-capture-mode) #today{grid-template-columns:1fr}
  #todaySlotsCard,#todayPlayersCard{grid-column:1}
  #todayCalculationCard .grid{grid-template-columns:repeat(3,minmax(130px,1fr))}
  body:not(.line-share-mode):not(.table-only-capture-mode) #settings{grid-template-columns:1fr}
  #settingsCostCard,#settingsMembersCard{grid-column:1}
  .history-filter-bar{grid-template-columns:1fr 1fr 1fr}
  .history-filter-bar .danger{grid-row:2}
}

/* Tablet and mobile shell */
@media(max-width:900px){
  body{padding-bottom:82px}
  body:not(.line-share-mode):not(.table-only-capture-mode) header{position:sticky;top:0;z-index:55;margin:0;padding:9px 13px;background:linear-gradient(135deg,#0f4167,#0c3150);color:#fff}
  body:not(.line-share-mode):not(.table-only-capture-mode) header h1{display:flex;align-items:center;gap:7px;font-size:calc(17px * var(--app-font-scale,1))}
  body:not(.line-share-mode):not(.table-only-capture-mode) .wrap{width:auto;margin:10px auto;padding:0 9px}
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs{
    position:fixed;left:7px;right:7px;bottom:7px;top:auto;z-index:1000;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;margin:0;padding:5px;border:1px solid #dce5ef;border-radius:15px;
    background:rgba(255,255,255,.97);box-shadow:0 10px 30px rgba(15,42,67,.22);backdrop-filter:blur(14px);
  }
  .sidebar-brand,.sidebar-footer{display:none}
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:54px;padding:5px 2px;border:0;background:transparent;color:#60738a;font-size:calc(10px * var(--app-font-scale,1));box-shadow:none}
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs button.active{background:#eaf2ff;color:#175fc7;box-shadow:none}
  .nav-icon{width:23px;height:22px;font-size:calc(17px * var(--app-font-scale,1))}.nav-label{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  body:not(.line-share-mode):not(.table-only-capture-mode) .page-header{min-height:auto;margin:1px 2px 12px;padding:5px 2px}
  body:not(.line-share-mode):not(.table-only-capture-mode) .page-header h2{font-size:calc(25px * var(--app-font-scale,1))}
  body:not(.line-share-mode):not(.table-only-capture-mode) .page-header p{font-size:calc(12px * var(--app-font-scale,1));line-height:1.5}
  body:not(.line-share-mode):not(.table-only-capture-mode) #today,
  body:not(.line-share-mode):not(.table-only-capture-mode) #settings{display:grid;grid-template-columns:1fr;gap:11px}
  #today>.page-header,#todaySetupGroup,#todaySlotsCard,#todayPlayersCard,
  #settings>.page-header,#settings>.settings-subtabs,#settingsCostCard,#settingsMembersCard,#settings>.settings-save-bar{grid-column:1}
  #todaySessionCard .session-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px}
  #todaySessionCard .session-tabs button{flex:0 0 145px;min-height:59px}
  #todayCalculationCard .grid{grid-template-columns:1fr 1fr}
  #todayCalculationCard .grid>.field:first-child{grid-column:1/-1}
  #todaySlotsCard .overflow-table,#todayPlayersCard .players-table-wrap{max-height:none}
  #summarySessionTabs{display:flex;flex-wrap:nowrap;overflow-x:auto}
  #summarySessionTabs button{flex:0 0 145px}
  #summaryKpiCard .kpis{grid-template-columns:1fr 1fr}
  #summaryKpiCard .k:last-child{grid-column:auto}
  .summary-validation-banner{padding:11px 12px}
  .expense-overview-grid{grid-template-columns:1fr}
  .expense-overview-grid>.expense-dashboard-card:nth-child(3){grid-column:1}
  .history-filter-bar{grid-template-columns:1fr 1fr!important}
  .history-filter-bar select:first-child{grid-column:1/-1}
  .history-filter-bar .danger{grid-row:auto}
  .history-kpis{grid-template-columns:repeat(3,1fr)}
  .history-kpis>div{min-height:74px;padding:10px;gap:8px}.history-kpi-icon{width:38px;height:38px;font-size:calc(16px * var(--app-font-scale,1))}.history-kpis b{font-size:calc(18px * var(--app-font-scale,1))}
  .settings-subtabs{position:sticky;top:63px;z-index:30}.settings-subtabs button{flex:1;min-width:0}
  .settings-panel-hidden{display:none!important}
  .settings-save-bar{bottom:76px}.settings-save-bar button{min-width:180px}
}

@media(max-width:720px){
  .admin-chip{display:none}
  body:not(.line-share-mode):not(.table-only-capture-mode) .card,
  body:not(.line-share-mode):not(.table-only-capture-mode) .modern-card{border-radius:13px;box-shadow:0 5px 18px rgba(15,42,67,.06)}
  body:not(.line-share-mode):not(.table-only-capture-mode) .modern-card-head,
  body:not(.line-share-mode):not(.table-only-capture-mode) .section-titlebar{background:#fff}
  #todayCalculationCard .mode-grid{grid-template-columns:1fr}
  #todayCalculationCard .grid{grid-template-columns:1fr 1fr}
  #todayPlayersCard .player-actions-v44{grid-template-columns:1fr}
  #todayPlayersCard #applyPlayerTimes{grid-column:1}
  #summaryKpiCard .k{min-height:82px;padding:12px}
  #summaryKpiCard .k b{font-size:calc(19px * var(--app-font-scale,1))}
  #summaryPersonCard .toolbar{position:sticky;bottom:75px;z-index:20;padding:8px;border:1px solid #dce5ef;border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 8px 22px rgba(15,42,67,.12)}
  .expense-page-heading{margin-top:2px}
  .expense-overview-grid>.expense-dashboard-card:first-child{grid-template-columns:118px 1fr;column-gap:14px}
  .expense-breakdown-bar,.expense-payment-ring{width:110px;height:110px;flex-basis:110px}
  .expense-breakdown-bar::before,.expense-payment-ring::before{inset:17px}
  .expense-breakdown-bar::after{font-size:calc(17px * var(--app-font-scale,1))}
  .expense-payment-ring strong{font-size:calc(21px * var(--app-font-scale,1))}
  .expense-payment-content{gap:22px;min-height:120px}
  .expense-payment-legend{gap:10px}.expense-payment-legend b{font-size:calc(13px * var(--app-font-scale,1))}
  .expense-slot-table,.expense-person-table{display:block;min-width:0!important;width:100%}
  .expense-slot-table thead,.expense-slot-table tfoot,.expense-person-table thead{display:none}
  .expense-slot-table tbody,.expense-person-table tbody{display:block}
  .expense-slot-table tr,.expense-person-table tr{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px;margin-bottom:9px;padding:12px;border:1px solid #dbe5f0;border-radius:12px;background:#fff}
  .expense-slot-table td,.expense-person-table td{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:0!important;border:0!important;text-align:left!important;background:transparent!important;font-size:calc(13px * var(--app-font-scale,1))!important}
  .expense-slot-table td::before,.expense-person-table td::before{content:attr(data-label);color:#748398;font-size:calc(10px * var(--app-font-scale,1));font-weight:700}
  .expense-slot-table td:first-child,.expense-person-table td:first-child{grid-column:1/-1;padding-bottom:8px!important;border-bottom:1px solid #e4ebf2!important;font-size:calc(15px * var(--app-font-scale,1))!important;font-weight:900}
  .expense-slot-table td:last-child{align-items:flex-end;color:#075fc2!important;font-size:calc(18px * var(--app-font-scale,1))!important}
  .expense-person-table td:nth-child(5){padding:9px!important;border-radius:9px!important;background:#edf6ff!important;color:#075fc2!important}
  .expense-person-table td:last-child{align-items:flex-end;justify-content:flex-end}
  .history-filter-bar{grid-template-columns:1fr!important;padding:11px}
  .history-filter-bar select:first-child{grid-column:1}
  .history-kpis{grid-template-columns:1fr 1fr;gap:8px}.history-kpis>div:last-child{grid-column:1/-1}
  #history .history-table-wrap{border:0;overflow:visible}
  #history table.history-mobile-cards tbody tr{border:1px solid #dbe5f0;border-radius:13px;box-shadow:0 4px 15px rgba(15,42,67,.05)}
  #settingsCostCard tr{grid-template-columns:1fr;gap:8px;padding:13px 2px}
  #settingsCostCard .num-stepper{max-width:none;margin:0}
  #settingsMembersCard .toolbar{grid-template-columns:1fr}
  #settingsMembersCard #addMember,#settingsMembersCard #membersActiveStatus{grid-column:1}
  #settingsMembersCard table,#settingsMembersCard tbody{display:block;width:100%}
  #settingsMembersCard thead{display:none}
  #settingsMembersCard tr{display:grid;grid-template-columns:42px minmax(0,1fr) 70px;gap:8px;margin-bottom:9px;padding:10px;border:1px solid #dbe5f0;border-radius:11px;background:#fff}
  #settingsMembersCard td{display:flex;flex-direction:column;gap:3px;padding:0;border:0;text-align:left}
  #settingsMembersCard td::before{content:attr(data-label);font-size:calc(10px * var(--app-font-scale,1));color:#748398}
  #settingsMembersCard td:last-child{grid-column:1/-1}
  #settingsMembersCard td:last-child button{width:100%}
  .settings-save-bar{align-items:stretch;flex-direction:column;padding:10px}.settings-save-bar button{width:100%;min-width:0}
}

@media(max-width:430px){
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs{left:4px;right:4px;bottom:4px;padding:4px}
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs button{font-size:calc(9px * var(--app-font-scale,1))}
  .nav-icon{font-size:calc(16px * var(--app-font-scale,1))}
  #todayCalculationCard .grid{grid-template-columns:1fr}
  #summaryKpiCard .kpis,.expense-kpis{grid-template-columns:1fr 1fr}
  .expense-kpi{min-height:84px}
  .expense-overview-grid>.expense-dashboard-card:first-child{grid-template-columns:1fr}
  .expense-overview-grid>.expense-dashboard-card:first-child h3{grid-column:1}
  .expense-legend{margin-top:13px}
  .expense-payment-content{align-items:center;flex-direction:column;gap:15px}
  .expense-payment-legend{grid-template-columns:1fr 1fr;width:100%}
}

/* ===== v70: Today screen matched to approved mockup ===== */
body:not(.line-share-mode):not(.table-only-capture-mode) #todaySessionCard,
body:not(.line-share-mode):not(.table-only-capture-mode) #todayCalculationCard{padding:12px 14px}
#todaySessionCard .modern-card-head,
#todayCalculationCard .modern-card-head{margin:-12px -14px 11px;padding:11px 14px;border-bottom:0}
#todaySessionCard .modern-card-icon,
#todayCalculationCard .modern-card-icon{width:30px;height:30px;flex-basis:30px;font-size:calc(15px * var(--app-font-scale,1))}
#todaySessionCard .modern-card-head h3,
#todayCalculationCard .modern-card-head h3{font-size:calc(15px * var(--app-font-scale,1))}
#todaySessionCard .modern-card-head p,
#todayCalculationCard .modern-card-head p{font-size:calc(10px * var(--app-font-scale,1))}

.session-picker-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
#todaySessionCard .session-tabs{display:contents!important;margin:0}
#todaySessionCard .session-tabs button,
#todaySessionCard .session-add-tile{
  position:relative;display:flex;align-items:center;justify-content:space-between;gap:9px;
  width:100%;min-height:58px;margin:0;padding:9px 11px;border:1px solid #d7e4f2;border-radius:10px;
  background:#f2f7fd;color:#173b68;text-align:left;box-shadow:none
}
#todaySessionCard .session-tabs button.active{border-color:#2878ed;background:#edf5ff;color:#0a57c7;box-shadow:inset 0 0 0 1px #2878ed}
#todaySessionCard .session-copy{display:flex;flex-direction:column;min-width:0;margin:0}
#todaySessionCard .session-copy b{overflow:hidden;font-size:calc(13px * var(--app-font-scale,1));line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
#todaySessionCard .session-copy>span{display:block;margin:3px 0 0;color:#47698f;font-size:calc(11px * var(--app-font-scale,1));font-weight:700}
#todaySessionCard .session-edit-icon{
  display:grid!important;place-items:center;width:28px;height:28px;flex:0 0 28px;margin:0!important;
  border-radius:7px;color:#145fc5!important;background:transparent;font-size:calc(16px * var(--app-font-scale,1))!important;line-height:1
}
#todaySessionCard .session-edit-icon:hover{background:#dcecff}
#todaySessionCard .session-add-tile{justify-content:center;border-style:dashed;background:#f7fbff;color:#1768d1}
#todaySessionCard .session-add-tile>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#1675e9;color:#fff;font-size:calc(18px * var(--app-font-scale,1));line-height:1}
#todaySessionCard .session-add-tile>b{font-size:calc(12px * var(--app-font-scale,1))}
#todaySessionCard .session-active-note{display:none}
#todaySessionCard .session-editor{display:none!important;grid-template-columns:minmax(180px,1.3fr) minmax(120px,.7fr) minmax(120px,.7fr);gap:9px;margin:11px 0 0;padding:11px;border-color:#d7e4f2;background:#f8fbff}
#todaySessionCard .session-editor.is-open{display:grid!important}
.session-editor-title{display:flex;grid-column:1/-1;align-items:center;justify-content:space-between;color:#173653;font-size:calc(13px * var(--app-font-scale,1))}
.session-editor-title button{width:30px;min-height:30px;padding:0;border:0;background:transparent;color:#60758d;font-size:calc(21px * var(--app-font-scale,1));box-shadow:none}
.session-editor-actions{display:flex;grid-column:1/-1;justify-content:flex-end;gap:8px}
.session-editor-actions button{min-height:38px}

.today-config-grid{display:grid;grid-template-columns:1.12fr .72fr .72fr 2fr .8fr .8fr;gap:9px;align-items:end}
.today-config-grid .field{min-width:0}
.today-config-grid .field label{overflow:hidden;margin-bottom:4px;color:#38506b;font-size:calc(10px * var(--app-font-scale,1));line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.today-config-grid input,.today-config-grid select{min-height:39px;height:39px;padding:7px 9px;border-radius:8px;font-size:calc(12px * var(--app-font-scale,1))}
.today-config-grid .calendar-btn{min-width:38px;width:38px;height:39px;padding:5px;color:#1269d1;background:#f3f8ff;border-color:#cddff4}
.today-config-grid .config-date{grid-column:1}.today-config-grid .config-start{grid-column:2}.today-config-grid .config-end{grid-column:3}
.today-config-grid .config-mode{grid-column:4}.today-config-grid .config-court{grid-column:5}.today-config-grid .config-shuttle{grid-column:6}
.today-config-grid .config-slot{display:none}
.today-config-grid .config-shuttle-mode{grid-column:4/6;margin-top:2px}
.today-config-grid .config-total-shuttle{grid-column:6;margin-top:2px}
#totalShuttleCostText{position:absolute;margin-top:2px!important;font-size:calc(9px * var(--app-font-scale,1))}
.calculation-info-strip{margin-top:10px;border:1px solid #d8e5f3;border-radius:9px;background:#f7fbff}
.calculation-info-strip summary{display:grid;grid-template-columns:28px 1fr 24px;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;list-style:none;color:#173c6b}
.calculation-info-strip summary::-webkit-details-marker{display:none}
.calculation-info-strip summary>span:nth-child(2){display:flex;flex-direction:column;gap:1px}
.calculation-info-strip summary b{font-size:calc(11px * var(--app-font-scale,1))}.calculation-info-strip summary small{color:#718399;font-size:calc(9px * var(--app-font-scale,1))}
.calculation-info-icon{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#1675e9;color:#fff;font-size:calc(12px * var(--app-font-scale,1));font-weight:900}
.calculation-info-chevron{color:#255c9a;text-align:center;transition:transform .2s}
.calculation-info-strip[open] .calculation-info-chevron{transform:rotate(180deg)}
.calculation-info-body{padding:0 10px 10px;color:#61738a;font-size:calc(11px * var(--app-font-scale,1))}
.calculation-info-body .note{margin:0 0 6px;padding:9px;font-size:calc(11px * var(--app-font-scale,1))}.calculation-info-body p{margin:5px 0 8px}
.calculation-info-body .danger{padding:7px 10px;font-size:calc(11px * var(--app-font-scale,1))}

#todaySlotsCard .section-titlebar,#todayPlayersCard .section-titlebar{min-height:50px;margin-bottom:9px}
#todaySlotsCard .section-actions,#todayPlayersCard .section-actions{display:flex;align-items:center;gap:6px}
#todaySlotsCard .section-create-action{color:#1168d5!important;background:#eef6ff!important;border-color:#cfe2fb!important}
.today-action-bar{
  position:sticky;bottom:12px;z-index:35;grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin:0;padding:10px 13px;border:1px solid #d7e3f0;border-radius:12px;background:rgba(255,255,255,.96);
  box-shadow:0 10px 28px rgba(20,48,80,.14);backdrop-filter:blur(12px)
}
.today-save-state{display:flex;align-items:center;gap:9px;color:#087d59}
.today-save-state>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#15ad79;color:#fff;font-weight:900}
.today-save-state>div{display:flex;flex-direction:column}.today-save-state b{font-size:calc(11px * var(--app-font-scale,1))}.today-save-state small{margin-top:1px;color:#718197;font-size:calc(9px * var(--app-font-scale,1))}
.today-save-state.is-error{color:#b42318}.today-save-state.is-error>span{background:#dc2626}
.today-action-buttons{display:flex;align-items:center;gap:8px}.today-action-buttons button{min-width:145px;min-height:41px}
.today-create-slots{color:#1267d1;background:#fff;border-color:#2f7df0}

@media(max-width:1250px) and (min-width:901px){
  .today-config-grid{grid-template-columns:1fr 1fr 1fr}
  .today-config-grid .config-date,.today-config-grid .config-start,.today-config-grid .config-end,
  .today-config-grid .config-mode,.today-config-grid .config-court,.today-config-grid .config-shuttle{grid-column:auto}
  .today-config-grid .config-mode{grid-column:1/-1}.today-config-grid .config-shuttle-mode{grid-column:1/3}.today-config-grid .config-total-shuttle{grid-column:3}
}

@media(max-width:900px){
  #today>.today-action-bar{grid-column:1}
  .session-picker-row{display:flex;gap:7px;overflow-x:auto;padding:1px 1px 3px;scrollbar-width:none}
  .session-picker-row::-webkit-scrollbar{display:none}
  #todaySessionCard .session-tabs{display:contents!important}
  #todaySessionCard .session-tabs button,#todaySessionCard .session-add-tile{flex:0 0 132px;min-height:57px}
  #todaySessionCard .session-add-tile{flex-basis:105px}
  #todaySessionCard .session-editor.is-open{grid-template-columns:1fr 1fr}
  #todaySessionCard .session-editor label:first-of-type{grid-column:1/-1}
  .session-editor-actions{display:grid;grid-template-columns:1fr 1fr}
  .session-editor-actions #copyPlayersFromPrevSession{grid-column:1/-1}
  .today-config-grid{grid-template-columns:1.2fr 1fr 1fr;gap:7px}
  .today-config-grid .config-date{grid-column:1}.today-config-grid .config-start{grid-column:2}.today-config-grid .config-end{grid-column:3}
  .today-config-grid .config-mode{grid-column:1/-1}.today-config-grid .config-court{grid-column:1/2}.today-config-grid .config-shuttle{grid-column:2/4}
  .today-config-grid .config-shuttle-mode{grid-column:1/-1}.today-config-grid .config-total-shuttle{grid-column:1/-1}
  .today-action-bar{bottom:75px}
}

@media(max-width:720px){
  body:not(.line-share-mode):not(.table-only-capture-mode) #today{gap:8px}
  body:not(.line-share-mode):not(.table-only-capture-mode) #todaySessionCard,
  body:not(.line-share-mode):not(.table-only-capture-mode) #todayCalculationCard{padding:9px}
  #todaySessionCard .modern-card-head,#todayCalculationCard .modern-card-head{margin:-9px -9px 7px;padding:8px 9px}
  #todaySessionCard .modern-card-title,#todayCalculationCard .modern-card-title{gap:7px}
  #todaySessionCard .modern-card-icon,#todayCalculationCard .modern-card-icon{width:25px;height:25px;flex-basis:25px;font-size:calc(13px * var(--app-font-scale,1))}
  #todaySessionCard .modern-card-head h3,#todayCalculationCard .modern-card-head h3{font-size:calc(13px * var(--app-font-scale,1))}
  #todaySessionCard .session-tabs button,#todaySessionCard .session-add-tile{flex-basis:112px;min-height:52px;padding:7px 8px}
  #todaySessionCard .session-add-tile{flex-basis:94px}
  #todaySessionCard .session-copy b{font-size:calc(11px * var(--app-font-scale,1))}#todaySessionCard .session-copy>span{font-size:calc(9px * var(--app-font-scale,1))}
  #todaySessionCard .session-edit-icon{width:22px;height:22px;flex-basis:22px;font-size:calc(13px * var(--app-font-scale,1))!important}
  #todaySessionCard .session-add-tile>b{font-size:calc(10px * var(--app-font-scale,1))}
  .today-config-grid .field label{font-size:calc(9px * var(--app-font-scale,1))}.today-config-grid input,.today-config-grid select{min-height:36px;height:36px;padding:6px;font-size:calc(10px * var(--app-font-scale,1))}
  .today-config-grid .calendar-btn{min-width:32px;width:32px;height:36px}
  .calculation-info-strip{margin-top:8px}
  #todaySlotsCard .section-titlebar,#todayPlayersCard .section-titlebar{min-height:42px;margin-bottom:6px;padding:7px 8px}
  #todaySlotsCard .section-titlebar h3,#todayPlayersCard .section-titlebar h3{font-size:calc(13px * var(--app-font-scale,1))}
  #todaySlotsCard .section-actions button,#todayPlayersCard .section-actions button{min-width:0;padding:6px 7px;font-size:calc(9px * var(--app-font-scale,1))}
  #slotHelpCourt,#slotHelpShuttle{display:none}
  #todayPlayersCard .player-actions-v44{display:flex;flex-wrap:wrap;gap:5px}
  #todayPlayersCard .player-actions-v44 button{min-height:34px;padding:6px;font-size:calc(9px * var(--app-font-scale,1))}
  #todayPlayersCard #addPlayer{flex:1 1 90px}#todayPlayersCard #addAllMembers{flex:1 1 150px}#todayPlayersCard #applyPlayerTimes{flex:1 1 100%}
  .today-action-bar{padding:7px;border-radius:10px}
  .today-save-state,.today-create-slots{display:none}
  .today-action-buttons,.today-action-buttons #todaySaveBtn{width:100%}
  .today-action-buttons #todaySaveBtn{min-height:43px}
}

@media(max-width:430px){
  .today-config-grid{grid-template-columns:1.25fr 1fr 1fr}
  .today-config-grid .config-court{grid-column:1/2}.today-config-grid .config-shuttle{grid-column:2/4}
  #todaySessionCard .session-editor.is-open{grid-template-columns:1fr 1fr}
}

/* v70.1 mobile overflow and compact calculation refinements */
.calculation-advanced-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(160px,1fr);gap:8px;margin-bottom:8px}
.calculation-advanced-grid .field{min-width:0}
.calculation-advanced-grid .field label{display:block;margin-bottom:4px;color:#38506b;font-size:calc(10px * var(--app-font-scale,1));font-weight:700}
.calculation-advanced-grid input,.calculation-advanced-grid select{min-height:38px;height:38px;padding:7px 9px;border-radius:8px;font-size:calc(11px * var(--app-font-scale,1))}
.calculation-advanced-grid #totalShuttleCostText{position:static;margin:3px 0 0!important}

@media(max-width:720px){
  html,body{max-width:100%;overflow-x:hidden}
  body{padding-bottom:138px}
  body:not(.line-share-mode):not(.table-only-capture-mode) header .header-row{min-width:0}
  body:not(.line-share-mode):not(.table-only-capture-mode) header .header-tools{display:flex;align-items:center;gap:7px;min-width:0}
  body:not(.line-share-mode):not(.table-only-capture-mode) header .header-tools-desktop{display:flex!important;min-width:0}
  body:not(.line-share-mode):not(.table-only-capture-mode) header .header-tools-desktop .admin-chip,
  body:not(.line-share-mode):not(.table-only-capture-mode) header .header-tools-desktop .logout-btn{display:none!important}
  body:not(.line-share-mode):not(.table-only-capture-mode) header .server-status{max-width:94px;padding:5px 7px!important;overflow:hidden;font-size:calc(9px * var(--app-font-scale,1));text-overflow:ellipsis;white-space:nowrap}
  body:not(.line-share-mode):not(.table-only-capture-mode) header .mobile-menu-btn{
    width:29px;height:29px;min-height:29px;border:0;border-radius:50%;background:#fff;color:#164f94;font-size:calc(12px * var(--app-font-scale,1));font-weight:900
  }
  body:not(.line-share-mode):not(.table-only-capture-mode) .wrap,
  body:not(.line-share-mode):not(.table-only-capture-mode) #today,
  #todaySetupGroup,#todaySetupGroupBody,#todaySessionCard,#todayCalculationCard,#todaySlotsCard,#todayPlayersCard,
  .today-config-grid,.today-config-grid .field,.today-config-grid .date-picker-wrap{min-width:0;max-width:100%}
  .today-config-grid input,.today-config-grid select,.today-config-grid #date{min-width:0;max-width:100%}
  .calculation-advanced-grid{grid-template-columns:1fr}
  #todaySlotsCard .section-titlebar h3{white-space:nowrap}

  body:not(.line-share-mode):not(.table-only-capture-mode) #todayCalculationCard{
    display:grid;padding:0;border:0;background:transparent;box-shadow:none
  }
  #todayCalculationCard #calculationCardBody{display:contents}
  #todayCalculationCard .calculation-info-strip{order:3;margin:8px 0 0;border-radius:11px;background:#fff;box-shadow:0 4px 14px rgba(15,42,67,.04)}
  #todayCalculationCard>.modern-card-head{
    order:1;margin:8px 0 0;padding:8px 9px;border:1px solid #dce5ef;border-bottom:0;border-radius:12px 12px 0 0;background:#fff
  }
  #todayCalculationCard .today-config-grid{
    order:2;padding:0 9px 9px;border:1px solid #dce5ef;border-top:0;border-radius:0 0 12px 12px;background:#fff
  }

  table.slots-mobile tr{position:relative;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px 8px;padding:9px!important}
  table.slots-mobile td:nth-child(1){grid-column:1/3}
  table.slots-mobile td:nth-child(2){grid-column:3/5;padding-right:30px!important}
  table.slots-mobile td:nth-child(3){grid-column:1}
  table.slots-mobile td:nth-child(5){grid-column:2/4}
  table.slots-mobile td:nth-child(6){grid-column:1/3;padding:7px!important;border-radius:8px!important;background:#f1f7ff!important;color:#0c62c7;font-weight:800}
  table.slots-mobile td:nth-child(9){grid-column:3}
  table.slots-mobile td:nth-child(10){grid-column:4}
  table.slots-mobile td:nth-child(12){position:absolute;right:7px;top:7px;width:27px}
  table.slots-mobile td:nth-child(12)::before{display:none}
  table.slots-mobile td:nth-child(12) button{width:27px;min-height:27px;padding:0;overflow:hidden;font-size:0}
  table.slots-mobile td:nth-child(12) button::before{content:"×";font-size:calc(15px * var(--app-font-scale,1))}
  #today>.today-action-bar{
    position:fixed;left:9px;right:9px;bottom:75px;z-index:900;margin:0;width:auto
  }
}

/* ===== v71: Design-accurate iconography and color system ===== */
:root{
  --navy-950:#072b47;
  --navy-900:#0b2f4d;
  --navy-800:#0d456c;
  --primary:#0877f9;
  --primary-dark:#0564df;
  --primary-soft:#eaf4ff;
  --success:#12b981;
  --success-soft:#e4fbf2;
  --surface-muted:#f3f7fc;
  --line-modern:#d9e6f3;
  --text-modern:#102947;
  --muted-modern:#637a93;
  --shadow-modern:0 7px 22px rgba(14,54,88,.065);
}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.app-icon{display:block;width:1em;height:1em;flex:0 0 auto;color:inherit;overflow:visible}
.slot-field-label{display:none}
.slot-delete-button{display:inline-flex;align-items:center;justify-content:center;gap:5px}
.slot-delete-button .app-icon{width:15px;height:15px}
.player-field-label{display:none}
.player-delete-button{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.player-delete-button .app-icon{width:15px;height:15px}
body{background:#f3f7fc;color:#102947}
body:not(.line-share-mode):not(.table-only-capture-mode) header{border-color:#dce8f3}
body:not(.line-share-mode):not(.table-only-capture-mode) .server-status{color:#087b59!important;background:#e5faef!important;border-color:#bcebd5!important}
body:not(.line-share-mode):not(.table-only-capture-mode) button.primary{
  background:#0877f9;border-color:#0877f9;box-shadow:0 5px 13px rgba(8,119,249,.18)
}
body:not(.line-share-mode):not(.table-only-capture-mode) button.primary:hover{background:#0568e3;border-color:#0568e3}

.header-brand-mark{display:grid;place-items:center;width:26px;height:26px;color:#9ed8ff}
.header-brand-mark .app-icon{width:21px;height:21px}
.sidebar-brand>span{color:#7fc9ff;background:rgba(255,255,255,.08)}
.sidebar-brand>span .app-icon{width:21px;height:21px}
.nav-icon .app-icon{width:19px;height:19px;stroke-width:1.8}

@media(min-width:901px){
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs{
    background:linear-gradient(180deg,#0b3b5d 0%,#082d49 72%,#07263f 100%);
    box-shadow:8px 0 26px rgba(7,38,63,.14)
  }
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs button{color:#c7daea}
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs button.active{
    background:#0877f9;color:#fff;box-shadow:0 8px 18px rgba(2,31,67,.25)
  }
}

body:not(.line-share-mode):not(.table-only-capture-mode) .card,
body:not(.line-share-mode):not(.table-only-capture-mode) .modern-card{border-color:#d9e6f3;box-shadow:0 7px 22px rgba(14,54,88,.06)}
body:not(.line-share-mode):not(.table-only-capture-mode) .modern-card-icon{
  width:27px;height:27px;flex-basis:27px;border-radius:0;background:transparent;color:#0877f9
}
body:not(.line-share-mode):not(.table-only-capture-mode) .modern-card-icon .app-icon{width:21px;height:21px}
body:not(.line-share-mode):not(.table-only-capture-mode) .modern-card-head h3,
body:not(.line-share-mode):not(.table-only-capture-mode) .section-titlebar h3{color:#102b4c}
.section-titlebar h3{display:flex;align-items:center;gap:8px}
.section-heading-icon{width:20px;height:20px;color:#0877f9}

#todaySessionCard .session-tabs button.active{border-color:#0877f9;background:#edf6ff;color:#075fcf;box-shadow:inset 0 0 0 1px #0877f9}
#todaySessionCard .session-edit-icon{color:#075fcf!important}
#todaySessionCard .session-edit-icon .app-icon{width:16px;height:16px}
#todaySessionCard .session-add-tile{color:#086add;border-color:#bcd9fb;background:#f5faff}
#todaySessionCard .session-add-tile>span{background:#0877f9}
.calculation-info-icon{background:#0877f9}
.today-save-state>span{background:#13b981}
.today-action-buttons #todaySaveBtn{background:#0877f9;border-color:#0877f9}

.expense-input-with-icon>span:first-child{color:#0877f9}
.expense-input-with-icon .app-icon{width:17px;height:17px}
.expense-kpi-icon .app-icon,.history-kpi-icon .app-icon{width:22px;height:22px}
.expense-kpi.court .expense-kpi-icon{color:#0877f9;background:#eaf4ff}
.expense-kpi.shuttle .expense-kpi-icon{color:#f97316;background:#fff1e7}
.expense-kpi.water .expense-kpi-icon{color:#7c4de2;background:#f0eaff}
.history-kpi-icon.records{color:#0877f9;background:#eaf4ff}
.history-kpi-icon.total{color:#0c9b6d;background:#e4f9f0}
.history-kpi-icon.people{color:#7547d6;background:#f0eaff}
.settings-subtabs button{display:flex;align-items:center;justify-content:center;gap:8px}
.settings-subtabs button .app-icon{width:18px;height:18px}
.settings-subtabs button.active{background:#0877f9}
#settingsSaveBtn{display:inline-flex;align-items:center;justify-content:center;gap:8px}
#settingsSaveBtn .app-icon{width:18px;height:18px}

@media(max-width:900px){
  body:not(.line-share-mode):not(.table-only-capture-mode) header{background:#0b4265}
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs button.active{color:#0871eb;background:#e9f3ff}
  .nav-icon .app-icon{width:18px;height:18px}
}

@media(max-width:720px){
  body:not(.line-share-mode):not(.table-only-capture-mode) .modern-card-icon{width:24px;height:24px;flex-basis:24px}
  body:not(.line-share-mode):not(.table-only-capture-mode) .modern-card-icon .app-icon{width:18px;height:18px}
  .section-heading-icon{width:17px;height:17px}

  /* Today > time-cost cards: primary values stay on one mobile row. */
  table.slots-mobile tr{
    grid-template-columns:minmax(64px,1.12fr) minmax(64px,1.12fr) minmax(54px,.82fr) minmax(48px,.72fr) 28px;
    column-gap:6px;padding:9px!important
  }
  table.slots-mobile td.slot-primary-field{grid-row:1!important;min-width:0}
  table.slots-mobile td.slot-start-field{grid-column:1!important}
  table.slots-mobile td.slot-end-field{grid-column:2!important;padding-right:0!important}
  table.slots-mobile td.slot-courts-field{grid-column:3!important}
  table.slots-mobile td.slot-minutes-field{grid-column:4!important}
  table.slots-mobile td.slot-primary-field::before{display:none}
  table.slots-mobile .slot-field-label{
    display:flex;align-items:center;gap:3px;min-height:13px;color:#58718e;font-size:calc(9px * var(--app-font-scale,1));font-weight:800;line-height:1
  }
  table.slots-mobile .slot-field-label .app-icon{width:11px;height:11px;color:#0877f9}
  table.slots-mobile td.slot-primary-field select,
  table.slots-mobile td.slot-primary-field input,
  table.slots-mobile .slot-static-value{
    width:100%;height:38px;min-width:0;min-height:38px;padding:5px;border:1px solid #cbdcf0;border-radius:8px;
    background:#fff;color:#12304f;font-size:calc(11px * var(--app-font-scale,1));font-weight:700;text-align:center
  }
  table.slots-mobile td.slot-primary-field select{padding-right:19px;text-align:left}
  table.slots-mobile .slot-static-value{display:grid;place-items:center;background:#f5f9fe;color:#315477}
  table.slots-mobile td:nth-child(12){
    position:static!important;grid-column:5!important;grid-row:1!important;width:auto;align-self:end
  }
  table.slots-mobile td:nth-child(12) button{width:28px;height:38px;min-height:38px;border-radius:8px}
  table.slots-mobile td:nth-child(12) button::before{display:none}
  table.slots-mobile td:nth-child(12) button .app-icon{display:block;width:14px;height:14px}
  table.slots-mobile td:nth-child(12) button span{display:none}
}

@media(max-width:420px){
  table.slots-mobile tr{
    grid-template-columns:minmax(59px,1.12fr) minmax(59px,1.12fr) minmax(48px,.82fr) minmax(43px,.72fr) 26px;
    column-gap:4px;padding-right:9px!important
  }
  table.slots-mobile td.slot-primary-field select,
  table.slots-mobile td.slot-primary-field input,
  table.slots-mobile .slot-static-value{height:36px;min-height:36px;padding:4px;font-size:calc(10px * var(--app-font-scale,1))}
  table.slots-mobile .slot-field-label{font-size:calc(8px * var(--app-font-scale,1))}
  table.slots-mobile .slot-field-label .app-icon{width:10px;height:10px}
  table.slots-mobile td:nth-child(12) button{width:26px;height:36px;min-height:36px}
}

/* ===== v72: Compact mobile player editor ===== */
@media(max-width:720px){
  #todayPlayersCard .player-actions-v44{
    display:grid!important;grid-template-columns:minmax(72px,.72fr) minmax(116px,1.18fr) minmax(116px,1.18fr)!important;
    gap:5px!important;align-items:stretch;flex-wrap:nowrap;margin-bottom:8px!important
  }
  #todayPlayersCard .player-actions-v44 #addPlayer,
  #todayPlayersCard .player-actions-v44 #addAllMembers,
  #todayPlayersCard .player-actions-v44 #applyPlayerTimes{
    grid-column:auto!important;width:100%;min-width:0;min-height:42px;padding:5px 4px;
    display:flex;align-items:center;justify-content:center;gap:4px;font-size:calc(8.5px * var(--app-font-scale,1));line-height:1.15;text-align:center
  }
  #todayPlayersCard .player-actions-v44 button .app-icon{width:13px;height:13px;flex:0 0 13px;color:#0877f9}
  #todayPlayersCard .player-actions-v44 button span{min-width:0}

  table.players-mobile tr{
    position:relative!important;display:grid!important;
    grid-template-columns:minmax(64px,1.15fr) minmax(64px,1.15fr) minmax(40px,.58fr) minmax(48px,.72fr) minmax(48px,.72fr)!important;
    gap:8px 6px!important;padding:9px!important
  }
  table.players-mobile td.player-mobile-field::before,
  table.players-mobile td.player-actions-field::before{display:none!important}
  table.players-mobile .player-field-label{
    display:flex;align-items:center;gap:3px;min-height:13px;color:#58718e;font-size:calc(9px * var(--app-font-scale,1));font-weight:800;line-height:1
  }
  table.players-mobile .player-field-label .app-icon{width:11px;height:11px;color:#0877f9}

  table.players-mobile td.player-index-cell{
    position:absolute!important;left:9px;top:25px;z-index:2;width:36px!important;min-height:36px!important;
    display:grid!important;place-items:center!important;background:transparent!important
  }
  table.players-mobile td.player-index-cell .player-no{width:32px;height:32px;border-radius:9px}
  table.players-mobile td.player-name-field{
    grid-column:1/-1!important;grid-row:1!important;padding-left:43px!important;background:transparent!important
  }
  table.players-mobile td.player-in-field{grid-column:1!important;grid-row:2!important}
  table.players-mobile td.player-out-field{grid-column:2!important;grid-row:2!important}
  table.players-mobile td.player-hours-field{grid-column:3!important;grid-row:2!important}
  table.players-mobile td.player-small-water-field{grid-column:4!important;grid-row:2!important}
  table.players-mobile td.player-large-water-field{grid-column:5!important;grid-row:2!important}
  table.players-mobile td.player-water-cost-field{display:none!important}
  table.players-mobile td.player-actions-field{grid-column:1/-1!important;grid-row:3!important}

  table.players-mobile td.player-name-field select{height:39px;min-height:39px;padding:5px 24px 5px 8px;font-size:calc(12px * var(--app-font-scale,1));font-weight:700}
  table.players-mobile td.player-in-field select,
  table.players-mobile td.player-out-field select,
  table.players-mobile td.player-small-water-field input,
  table.players-mobile td.player-large-water-field input,
  table.players-mobile .player-static-value{
    width:100%!important;height:36px;min-width:0!important;min-height:36px;padding:4px 18px 4px 5px;
    border:1px solid #cbdcf0;border-radius:8px;background:#fff;color:#12304f;font-size:calc(10px * var(--app-font-scale,1));font-weight:700;text-align:center
  }
  table.players-mobile td.player-in-field select,
  table.players-mobile td.player-out-field select{text-align:left}
  table.players-mobile .player-static-value{display:grid;place-items:center;padding:4px;background:#f5f9fe;color:#315477}
  table.players-mobile td.player-small-water-field .num-stepper,
  table.players-mobile td.player-large-water-field .num-stepper{display:contents!important}
  table.players-mobile td.player-small-water-field .num-stepper-btn,
  table.players-mobile td.player-large-water-field .num-stepper-btn{display:none!important}
  table.players-mobile td.player-actions-field button{
    width:100%;min-height:34px;padding:6px;color:#c72525;background:#fff8f8;border-color:#f1cfcf;font-size:calc(11px * var(--app-font-scale,1));font-weight:800
  }
  table.players-mobile td.player-actions-field button .app-icon{display:block;width:13px;height:13px}
}

@media(max-width:420px){
  #todayPlayersCard .player-actions-v44{
    grid-template-columns:minmax(67px,.7fr) minmax(103px,1.13fr) minmax(103px,1.17fr)!important;gap:4px!important
  }
  #todayPlayersCard .player-actions-v44 #addPlayer,
  #todayPlayersCard .player-actions-v44 #addAllMembers,
  #todayPlayersCard .player-actions-v44 #applyPlayerTimes{min-height:40px;padding:4px 3px;font-size:calc(8px * var(--app-font-scale,1))}
  #todayPlayersCard .player-actions-v44 button .app-icon{width:11px;height:11px;flex-basis:11px}
  table.players-mobile tr{
    grid-template-columns:minmax(58px,1.15fr) minmax(58px,1.15fr) minmax(36px,.58fr) minmax(43px,.72fr) minmax(43px,.72fr)!important;
    gap:7px 4px!important;padding:8px!important
  }
  table.players-mobile td.player-index-cell{left:8px;top:24px}
  table.players-mobile td.player-name-field{padding-left:41px!important}
  table.players-mobile .player-field-label{font-size:calc(8px * var(--app-font-scale,1))}
  table.players-mobile .player-field-label .app-icon{width:10px;height:10px}
  table.players-mobile td.player-in-field select,
  table.players-mobile td.player-out-field select,
  table.players-mobile td.player-small-water-field input,
  table.players-mobile td.player-large-water-field input,
  table.players-mobile .player-static-value{height:34px;min-height:34px;padding:3px 16px 3px 4px;font-size:calc(9px * var(--app-font-scale,1))}
}

/* v72.1: equal-size controls for the five mobile player values */
@media(max-width:720px){
  table.players-mobile tr{
    grid-template-columns:repeat(5,minmax(0,1fr))!important
  }
  table.players-mobile td.player-in-field,
  table.players-mobile td.player-out-field,
  table.players-mobile td.player-hours-field,
  table.players-mobile td.player-small-water-field,
  table.players-mobile td.player-large-water-field{
    width:auto!important;min-width:0!important;min-height:0!important;padding:0!important;
    align-items:stretch!important;justify-content:flex-start!important;border:0!important;border-radius:0!important;background:transparent!important
  }
  table.players-mobile td.player-in-field select,
  table.players-mobile td.player-out-field select,
  table.players-mobile td.player-small-water-field input,
  table.players-mobile td.player-large-water-field input,
  table.players-mobile .player-static-value{
    box-sizing:border-box;width:100%!important;height:40px!important;min-width:0!important;min-height:40px!important;
    margin:0!important;padding:5px 17px 5px 5px!important;border:1px solid #cbdcf0!important;border-radius:8px!important;
    background:#fff!important;color:#12304f!important;font-size:calc(10px * var(--app-font-scale,1))!important;font-weight:700!important;text-align:center!important
  }
  table.players-mobile .player-static-value{display:grid!important;place-items:center!important;padding:5px!important}
  table.players-mobile .player-field-label{width:100%;min-width:0;min-height:14px;overflow:hidden;white-space:nowrap}
}

@media(max-width:420px){
  table.players-mobile td.player-in-field select,
  table.players-mobile td.player-out-field select,
  table.players-mobile td.player-small-water-field input,
  table.players-mobile td.player-large-water-field input,
  table.players-mobile .player-static-value{
    height:38px!important;min-height:38px!important;padding:4px 15px 4px 4px!important;font-size:calc(9px * var(--app-font-scale,1))!important
  }
  table.players-mobile .player-static-value{padding:4px!important}
}

/* ===== v73: Colorful paid/unpaid toggle ===== */
.payment-status-cell{vertical-align:middle}
.paid-toggle{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-width:116px;min-height:32px;cursor:pointer;user-select:none
}
.paid-toggle .paid-check{
  position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;
  opacity:0!important;pointer-events:none
}
.paid-toggle-track{
  position:relative;display:block;width:43px;height:24px;flex:0 0 43px;border-radius:999px;
  background:#fb5260;border:1px solid #ee3949;box-shadow:inset 0 1px 2px rgba(100,20,28,.13);transition:.2s ease
}
.paid-toggle-thumb{
  position:absolute;left:2px;top:2px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;
  background:#fff;color:#e73343;box-shadow:0 2px 5px rgba(29,49,72,.22);transition:.2s ease
}
.paid-toggle-thumb .app-icon{grid-area:1/1;width:11px;height:11px}
.paid-icon-check{display:none}
.paid-toggle-text{display:inline-flex;align-items:center;gap:4px;color:#df2f3f;font-size:calc(11px * var(--app-font-scale,1));font-weight:800;white-space:nowrap}
.paid-toggle-text>.app-icon{width:12px;height:12px}
.paid-text-check{display:none}
.paid-toggle .paid-check:checked + .paid-toggle-track{background:#12b981;border-color:#0aa872;box-shadow:inset 0 1px 2px rgba(5,103,71,.14)}
.paid-toggle .paid-check:checked + .paid-toggle-track .paid-toggle-thumb{transform:translateX(19px);color:#079663}
.paid-toggle .paid-check:checked + .paid-toggle-track .paid-icon-check{display:block}
.paid-toggle .paid-check:checked + .paid-toggle-track .paid-icon-close{display:none}
.paid-toggle .paid-check:checked ~ .paid-toggle-text{color:#079663}
.paid-toggle .paid-check:checked ~ .paid-toggle-text .paid-text-check{display:block}
.paid-toggle .paid-check:checked ~ .paid-toggle-text .paid-text-close{display:none}
.paid-toggle .paid-check:focus-visible + .paid-toggle-track{outline:3px solid rgba(8,119,249,.25);outline-offset:2px}
#summaryPersonCard .payment-status-cell.is-paid{background:#f0fcf7}
#summaryPersonCard .payment-status-cell.is-unpaid{background:#fff5f6}

body.line-share-mode #summaryPersonCard .paid-toggle,
body.table-only-capture-mode #summaryPersonCard .paid-toggle{display:none!important}

body.line-share-mode #summaryValidationBanner,
body.table-only-capture-mode #summaryValidationBanner{display:none!important}

@media(max-width:720px){
  #summaryPersonCard .summary-mobile-cards td.payment-status-cell{
    min-height:50px;border:1px solid transparent;border-radius:10px
  }
  #summaryPersonCard .summary-mobile-cards td.payment-status-cell.is-paid{border-color:#c6efdf;background:#effbf6}
  #summaryPersonCard .summary-mobile-cards td.payment-status-cell.is-unpaid{border-color:#ffd2d6;background:#fff4f5}
  #summaryPersonCard .paid-toggle{min-width:124px;justify-content:flex-end}
  #summaryPersonCard .paid-toggle-track{width:45px;height:25px;flex-basis:45px}
  #summaryPersonCard .paid-toggle-thumb{width:19px;height:19px}
  #summaryPersonCard .paid-toggle .paid-check:checked + .paid-toggle-track .paid-toggle-thumb{transform:translateX(20px)}
  #summaryPersonCard .paid-toggle-text{font-size:calc(11px * var(--app-font-scale,1))}
}

/* ===== v74: Design-style summary KPI tiles ===== */
#summaryKpiCard .summary-kpis{gap:10px}
#summaryKpiCard .summary-kpis .k{
  display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:11px;
  min-width:0;min-height:92px;padding:12px;border:1px solid transparent;border-radius:12px;
  background:#fff;box-shadow:0 3px 10px rgba(39,76,119,.08);overflow:hidden
}
#summaryKpiCard .summary-kpis .k::after{display:none}
.summary-kpi-icon{
  display:grid;place-items:center;width:46px;height:46px;border-radius:50%;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.65)
}
.summary-kpi-icon .app-icon{width:24px;height:24px}
.summary-kpi-content{display:flex;flex-direction:column;min-width:0}
.summary-kpi-label{
  overflow:hidden;color:#46617d;font-size:calc(11px * var(--app-font-scale,1));font-weight:800;line-height:1.25;
  text-overflow:ellipsis;white-space:nowrap
}
#summaryKpiCard .summary-kpis .k b{
  display:flex;align-items:baseline;gap:5px;min-width:0;margin:4px 0 0;
  color:#0e2d59;font-size:calc(20px * var(--app-font-scale,1));font-weight:900;line-height:1.05
}
#summaryKpiCard .summary-kpis .k b small{
  color:#58718e;font-size:calc(10px * var(--app-font-scale,1));font-weight:800;white-space:nowrap
}
#summaryKpiCard .summary-kpis .kpi-players{border-color:#d6eaff;background:linear-gradient(135deg,#f7fbff 0%,#eaf5ff 100%)}
#summaryKpiCard .summary-kpis .kpi-players .summary-kpi-icon{color:#0877f9;background:#cfe8ff}
#summaryKpiCard .summary-kpis .kpi-court{border-color:#d2f2e2;background:linear-gradient(135deg,#f7fdfa 0%,#e9faf2 100%)}
#summaryKpiCard .summary-kpis .kpi-court .summary-kpi-icon{color:#08a56c;background:#c9f3df}
#summaryKpiCard .summary-kpis .kpi-shuttle-count{border-color:#dce4ff;background:linear-gradient(135deg,#f8f9ff 0%,#eef2ff 100%)}
#summaryKpiCard .summary-kpis .kpi-shuttle-count .summary-kpi-icon{color:#536ee8;background:#dce5ff}
#summaryKpiCard .summary-kpis .kpi-shuttle-cost{border-color:#ffe1ca;background:linear-gradient(135deg,#fffaf6 0%,#fff1e6 100%)}
#summaryKpiCard .summary-kpis .kpi-shuttle-cost .summary-kpi-icon{color:#f26a1b;background:#ffd9bb}
#summaryKpiCard .summary-kpis .kpi-water{border-color:#d5f1fb;background:linear-gradient(135deg,#f6fcff 0%,#eaf9fd 100%)}
#summaryKpiCard .summary-kpis .kpi-water .summary-kpi-icon{color:#0799bc;background:#cef0f8}
#summaryKpiCard .summary-kpis .kpi-total{border-color:#e8d9ff;background:linear-gradient(135deg,#fbf8ff 0%,#f2eaff 100%)}
#summaryKpiCard .summary-kpis .kpi-total .summary-kpi-icon{color:#7547dc;background:#dfceff}
#summaryKpiCard .summary-kpis .kpi-total b{color:#6639cf}

@media(hover:hover) and (pointer:fine){
  #summaryKpiCard .summary-kpis .k{transition:transform .18s ease,box-shadow .18s ease}
  #summaryKpiCard .summary-kpis .k:hover{transform:translateY(-2px);box-shadow:0 7px 16px rgba(39,76,119,.13)}
}

@media(max-width:720px){
  #summaryKpiCard .summary-kpis{gap:7px}
  #summaryKpiCard .summary-kpis .k{
    grid-template-columns:40px minmax(0,1fr);gap:8px;min-height:80px;padding:9px;border-radius:10px
  }
  .summary-kpi-icon{width:38px;height:38px}
  .summary-kpi-icon .app-icon{width:20px;height:20px}
  .summary-kpi-label{font-size:calc(9px * var(--app-font-scale,1))}
  #summaryKpiCard .summary-kpis .k b{gap:4px;margin-top:3px;font-size:calc(17px * var(--app-font-scale,1))}
  #summaryKpiCard .summary-kpis .k b small{font-size:calc(8px * var(--app-font-scale,1))}
}

@media(max-width:420px){
  #summaryKpiCard .summary-kpis .k{grid-template-columns:36px minmax(0,1fr);gap:6px;min-height:74px;padding:8px}
  .summary-kpi-icon{width:34px;height:34px}
  .summary-kpi-icon .app-icon{width:18px;height:18px}
  #summaryKpiCard .summary-kpis .k b{font-size:calc(16px * var(--app-font-scale,1))}
}

body.line-share-mode #summaryKpiCard .summary-kpis .k{
  grid-template-columns:24px minmax(0,1fr);gap:4px;min-height:50px;padding:5px;border-radius:7px
}
body.line-share-mode #summaryKpiCard .summary-kpi-icon{width:22px;height:22px}
body.line-share-mode #summaryKpiCard .summary-kpi-icon .app-icon{width:13px;height:13px}
body.line-share-mode #summaryKpiCard .summary-kpi-label{font-size:calc(7px * var(--app-font-scale,1))}
body.line-share-mode #summaryKpiCard .summary-kpis .k b{gap:2px;margin-top:2px;font-size:calc(12px * var(--app-font-scale,1))!important}
body.line-share-mode #summaryKpiCard .summary-kpis .k b small{font-size:calc(6px * var(--app-font-scale,1))}

/* ===== v75: Keep the last mobile payment row visible ===== */
@media(max-width:720px){
  body:not(.line-share-mode):not(.table-only-capture-mode) #summaryPersonCard .toolbar{
    position:static;bottom:auto;z-index:auto;margin-top:12px
  }
  #summaryPersonCard .summary-mobile-cards tbody tr:last-child{margin-bottom:0}
}

/* ===== v76: Member active/inactive toggle ===== */
#settingsMembersCard .member-active-cell{vertical-align:middle;min-width:124px}
.member-toggle{
  position:relative;display:inline-flex;align-items:center;justify-content:flex-start;gap:7px;
  min-width:112px;min-height:32px;cursor:pointer;user-select:none
}
.member-toggle .member-active-check{
  position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;
  opacity:0!important;pointer-events:none
}
.member-toggle-track{
  position:relative;display:block;width:43px;height:24px;flex:0 0 43px;border:1px solid #ee3949;border-radius:999px;
  background:#fb5260;box-shadow:inset 0 1px 2px rgba(100,20,28,.13);transition:.2s ease
}
.member-toggle-thumb{
  position:absolute;left:2px;top:2px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;
  background:#fff;color:#e73343;box-shadow:0 2px 5px rgba(29,49,72,.22);transition:.2s ease
}
.member-toggle-thumb .app-icon{grid-area:1/1;width:11px;height:11px}
.member-icon-check{display:none}
.member-toggle-text{color:#df2f3f;font-size:calc(11px * var(--app-font-scale,1));font-weight:800;white-space:nowrap}
.member-toggle .member-active-check:checked + .member-toggle-track{border-color:#0aa872;background:#12b981;box-shadow:inset 0 1px 2px rgba(5,103,71,.14)}
.member-toggle .member-active-check:checked + .member-toggle-track .member-toggle-thumb{transform:translateX(19px);color:#079663}
.member-toggle .member-active-check:checked + .member-toggle-track .member-icon-check{display:block}
.member-toggle .member-active-check:checked + .member-toggle-track .member-icon-close{display:none}
.member-toggle .member-active-check:checked ~ .member-toggle-text{color:#079663}
.member-toggle .member-active-check:focus-visible + .member-toggle-track{outline:3px solid rgba(8,119,249,.25);outline-offset:2px}
#settingsMembersCard .member-active-cell.is-active{background:#f0fcf7}
#settingsMembersCard .member-active-cell.is-inactive{background:#fff5f6}

@media(max-width:720px){
  #settingsMembersCard tr{grid-template-columns:42px minmax(0,1fr) 104px}
  #settingsMembersCard .member-active-cell{min-width:0;align-items:flex-start}
  #settingsMembersCard .member-toggle{min-width:0;gap:5px}
  #settingsMembersCard .member-toggle-text{font-size:calc(10px * var(--app-font-scale,1))}
}

/* ===== v77: Payment toggle is self-explanatory on mobile ===== */
@media(max-width:720px){
  #summaryPersonCard .summary-mobile-cards td.payment-status-cell{justify-content:center}
  #summaryPersonCard .summary-mobile-cards td.payment-status-cell::before{display:none}
  #summaryPersonCard .payment-status-cell .paid-toggle{width:100%;min-width:0;justify-content:center}
}

/* ===== v78: Wrap summary session buttons instead of horizontal scrolling ===== */
@media(max-width:720px){
  body:not(.line-share-mode):not(.table-only-capture-mode) #summarySessionTabs{
    display:flex;flex-wrap:wrap;gap:8px;width:100%;max-width:100%;padding-bottom:0;
    overflow:visible;scrollbar-width:none
  }
  body:not(.line-share-mode):not(.table-only-capture-mode) #summarySessionTabs button{
    flex:1 0 145px;max-width:100%;min-height:58px;white-space:normal
  }
}

/* ===== v79: Remove every player in the active session ===== */
#todayPlayersCard .player-actions-v44 #removeAllPlayers{
  grid-column:1/-1;width:100%;display:flex;align-items:center;justify-content:center;gap:6px;
  color:#c62828;border-color:#f0caca;background:#fff7f7;font-weight:800
}
#todayPlayersCard .player-actions-v44 #removeAllPlayers:hover:not(:disabled){border-color:#e9a9a9;background:#fff0f0}
#todayPlayersCard .player-actions-v44 #removeAllPlayers .app-icon{color:#d92d2d}

@media(max-width:720px){
  #todayPlayersCard .player-actions-v44 #removeAllPlayers{
    grid-column:1/-1!important;min-height:40px;padding:6px;font-size:calc(9px * var(--app-font-scale,1));line-height:1.15
  }
}

@media(max-width:420px){
  #todayPlayersCard .player-actions-v44 #removeAllPlayers{min-height:38px;padding:5px;font-size:calc(8.5px * var(--app-font-scale,1))}
}

/* ===== v80: Keep the last member delete action reachable on mobile ===== */
@media(max-width:720px){
  #settingsMembersCard .overflow-table{
    max-height:none;overflow:visible;-webkit-overflow-scrolling:auto
  }
  #settingsMembersCard tbody tr:last-child{margin-bottom:0}
  body:not(.line-share-mode):not(.table-only-capture-mode) #settings>.settings-save-bar{
    position:static;bottom:auto;z-index:auto;margin-top:0
  }
}

/* ===== v81: Summary workflow — readiness, payments, details, undo and locking ===== */
.session-lock-badge{
  display:inline-flex;align-items:center;margin-left:4px;padding:2px 5px;border-radius:999px;
  background:#fff1c7;color:#8a5a00;font-size:calc(8px * var(--app-font-scale,1));font-style:normal;font-weight:900;vertical-align:middle
}
#summarySessionTabs button.active .session-lock-badge,#todaySessionCard .session-tabs button.active .session-lock-badge{
  background:rgba(255,255,255,.2);color:inherit
}

.summary-lock-bar{
  display:flex;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;border:1px solid #d9e6f3;border-radius:11px;
  background:#f7faff;color:#294762
}
.summary-lock-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#e7f2ff;color:#0877f9}
.summary-lock-icon .app-icon{width:17px;height:17px}
.summary-lock-copy{display:flex;flex:1;flex-direction:column;min-width:0}
.summary-lock-copy b{font-size:calc(12px * var(--app-font-scale,1))}.summary-lock-copy small{margin-top:2px;color:#6b7f96;font-size:calc(10px * var(--app-font-scale,1))}
.summary-lock-bar>button{min-width:190px;color:#fff;border-color:#0877f9;background:#0877f9}
.summary-lock-bar.has-warning{border-color:#f7d59c;background:#fffaf0}
.summary-lock-bar.has-warning>button{color:#875600;border-color:#e9c679;background:#fff4d8}
.summary-lock-bar.is-locked{border-color:#bdebd9;background:#effbf6;color:#087052}
.summary-lock-bar.is-locked .summary-lock-icon{background:#c9f3df}
.summary-lock-bar>button.unlock{color:#9b3131;border-color:#efc1c1;background:#fff7f7}

.summary-payment-overview{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.summary-payment-stat{
  display:flex;align-items:center;gap:11px;min-height:76px;padding:12px 14px;border:1px solid;border-radius:12px
}
.summary-payment-stat>span:last-child{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2px 10px;min-width:0;width:100%}
.summary-payment-stat small{grid-column:1/-1;font-size:calc(10px * var(--app-font-scale,1));font-weight:800}
.summary-payment-stat b{font-size:calc(20px * var(--app-font-scale,1));font-weight:900}.summary-payment-stat em{font-size:calc(10px * var(--app-font-scale,1));font-style:normal;font-weight:800;white-space:nowrap}
.summary-payment-stat-icon{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%}
.summary-payment-stat-icon .app-icon{width:21px;height:21px}
.summary-payment-stat.received{border-color:#c8efdf;background:#effbf6;color:#07815a}
.summary-payment-stat.received .summary-payment-stat-icon{background:#c9f3df;color:#079663}
.summary-payment-stat.outstanding{border-color:#ffd4d8;background:#fff5f6;color:#c52f3f}
.summary-payment-stat.outstanding .summary-payment-stat-icon{background:#ffdadd;color:#df2f3f}

.summary-validation-banner{align-items:flex-start}
.summary-validation-content{width:100%;min-width:0}
.summary-readiness-list{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 8px;width:100%;margin:8px 0 0;padding:0;list-style:none
}
.summary-readiness-list li{display:flex;align-items:center;gap:5px;min-width:0;padding:6px 8px;border:1px solid;border-radius:8px;font-size:calc(10px * var(--app-font-scale,1));font-weight:700;line-height:1.25}
.summary-readiness-list li>span{display:grid;place-items:center;width:16px;height:16px;flex:0 0 16px;border-radius:50%;color:#fff;font-size:calc(10px * var(--app-font-scale,1));font-weight:900}
.summary-readiness-list .pass{border-color:#c8eddc;background:#f4fcf8;color:#087052}.summary-readiness-list .pass>span{background:#10b981}
.summary-readiness-list .fail{border-color:#fed7aa;background:#fff9ed;color:#a95b08}.summary-readiness-list .fail>span{background:#f59e0b}

.summary-person-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}
.summary-payment-filters{display:flex;gap:6px;flex-wrap:wrap}
.summary-payment-filters button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:7px 10px;color:#526b84;background:#f7faff}
.summary-payment-filters button span{display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:#e8eef6;font-size:calc(10px * var(--app-font-scale,1))}
.summary-payment-filters button.active{color:#fff;border-color:#0877f9;background:#0877f9;box-shadow:0 4px 10px rgba(8,119,249,.16)}
.summary-payment-filters button.active span{color:#075fcf;background:#fff}
.summary-filter-result{color:#718399;font-size:calc(10px * var(--app-font-scale,1));font-weight:700;white-space:nowrap}

.summary-person-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0}
.summary-person-title>div{min-width:0}
.summary-detail-toggle{
  display:inline-flex;align-items:center;gap:4px;min-width:0;min-height:28px;padding:4px 7px;
  color:#086add;border-color:#cfe2fb;background:#f5faff;font-size:calc(9px * var(--app-font-scale,1));white-space:nowrap
}
.summary-detail-toggle b{font-size:calc(13px * var(--app-font-scale,1));line-height:1;transition:transform .18s}
.summary-detail-toggle[aria-expanded="true"] b{transform:rotate(180deg)}
.summary-person-detail-row>td{padding:0!important;border-bottom:1px solid #dce8f4!important;background:#f8fbff!important}
.summary-person-detail-panel{padding:12px 14px;text-align:left}
.summary-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.summary-detail-heading>span:first-child{display:flex;flex-direction:column}.summary-detail-heading b{color:#173b60;font-size:calc(12px * var(--app-font-scale,1))}.summary-detail-heading small{margin-top:2px;color:#6f8298;font-size:calc(10px * var(--app-font-scale,1))}
.summary-detail-formula{padding:4px 7px;border-radius:999px;background:#eaf4ff;color:#075fcf;font-size:calc(9px * var(--app-font-scale,1));font-weight:800}
.summary-detail-values{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.summary-detail-values>span{display:flex;flex-direction:column;gap:2px;padding:8px;border:1px solid #dce7f3;border-radius:8px;background:#fff}
.summary-detail-values small{color:#718399;font-size:calc(9px * var(--app-font-scale,1))}.summary-detail-values b{color:#183756;font-size:calc(12px * var(--app-font-scale,1))}
.summary-detail-values .summary-detail-total{border-color:#c7e0ff;background:#edf6ff}.summary-detail-values .summary-detail-total b{color:#075fcf;font-size:calc(14px * var(--app-font-scale,1))}
.summary-detail-round+.summary-detail-round{margin-top:10px;padding-top:10px;border-top:1px dashed #cad8e6}
.summary-detail-actions{display:flex;justify-content:flex-end;margin-top:9px}
.summary-person-delete{display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:6px 9px;color:#c72525!important;border-color:#f1cfcf!important;background:#fff8f8!important;font-size:calc(10px * var(--app-font-scale,1))}
.summary-person-delete .app-icon{width:13px;height:13px}
.summary-detail-locked{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:8px;background:#eef3f8;color:#60758c;font-size:calc(10px * var(--app-font-scale,1));font-weight:800}
.summary-detail-locked .app-icon{width:13px;height:13px}
.summary-filter-empty-row td{padding:24px!important;color:#718399!important;background:#f8fbff!important;text-align:center!important;font-weight:700}

.summary-undo-toast{
  position:fixed;left:50%;bottom:24px;z-index:1010;display:flex;align-items:center;gap:16px;min-width:min(420px,calc(100vw - 24px));
  padding:11px 12px 11px 15px;border:1px solid #bcd8f8;border-radius:13px;background:#102f4d;color:#fff;
  box-shadow:0 12px 32px rgba(10,37,64,.28);transform:translateX(-50%)
}
.summary-undo-toast>span{display:flex;flex:1;flex-direction:column}.summary-undo-toast b{font-size:calc(12px * var(--app-font-scale,1))}.summary-undo-toast small{margin-top:2px;color:#cfe1f3;font-size:calc(9px * var(--app-font-scale,1))}
.summary-undo-toast button{color:#075fcf;border-color:#fff;background:#fff;white-space:nowrap}
.summary-undo-toast button .app-icon{width:14px;height:14px;margin-right:4px;vertical-align:-2px}
.summary-undo-toast.hidden{display:none!important}

#today.round-locked #todayCalculationCard,#today.round-locked #todaySlotsCard,#today.round-locked #todayPlayersCard{border-color:#d6e2ed;background:#fbfcfd}
#today.round-locked input:disabled,#today.round-locked select:disabled,#today.round-locked button:disabled{cursor:not-allowed;opacity:.62}

body.line-share-mode .summary-lock-bar,
body.table-only-capture-mode .summary-lock-bar,
body.line-share-mode .summary-person-controls,
body.table-only-capture-mode .summary-person-controls,
body.line-share-mode .summary-person-detail-row,
body.table-only-capture-mode .summary-person-detail-row,
body.line-share-mode .summary-undo-toast,
body.table-only-capture-mode .summary-undo-toast{display:none!important}

@media(max-width:900px){
  .summary-readiness-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:720px){
  .summary-lock-bar{align-items:flex-start;flex-wrap:wrap;padding:9px}
  .summary-lock-copy{padding-top:2px}.summary-lock-bar>button{width:100%;min-width:0}
  .summary-payment-overview{gap:7px}
  .summary-payment-stat{gap:7px;min-height:68px;padding:9px}
  .summary-payment-stat-icon{width:36px;height:36px;flex-basis:36px}.summary-payment-stat-icon .app-icon{width:18px;height:18px}
  .summary-payment-stat b{font-size:calc(16px * var(--app-font-scale,1))}.summary-payment-stat em{font-size:calc(8px * var(--app-font-scale,1))}
  .summary-readiness-list{grid-template-columns:1fr;gap:5px}
  .summary-readiness-list li{padding:6px;font-size:calc(9px * var(--app-font-scale,1))}
  .summary-person-controls{align-items:stretch;flex-direction:column;gap:6px}
  .summary-payment-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .summary-payment-filters button{justify-content:center;min-width:0;padding:6px 4px;font-size:calc(9px * var(--app-font-scale,1))}
  .summary-filter-result{text-align:right}
  #summaryPersonCard .summary-mobile-cards tr.summary-person-detail-row{
    display:block!important;margin:-5px 0 10px;padding:0!important;border-color:#cfe0f2;border-radius:0 0 12px 12px;background:#f8fbff!important;box-shadow:none
  }
  #summaryPersonCard .summary-mobile-cards tr.summary-person-detail-row>td{
    display:block!important;width:100%!important;padding:0!important;border:0!important;background:transparent!important
  }
  #summaryPersonCard .summary-mobile-cards tr.summary-person-detail-row>td::before{display:none!important}
  #summaryPersonCard .summary-mobile-cards tr.summary-filter-empty-row{display:block!important;padding:0!important}
  #summaryPersonCard .summary-mobile-cards tr.summary-filter-empty-row td{display:block!important;width:100%!important}
  #summaryPersonCard .summary-mobile-cards tr.summary-filter-empty-row td::before{display:none!important}
  .summary-person-detail-panel{padding:10px}
  .summary-detail-values{grid-template-columns:repeat(2,minmax(0,1fr))}
  .summary-detail-values .summary-detail-total{grid-column:1/-1}
  .summary-detail-actions .summary-person-delete{width:100%;justify-content:center}
  .summary-undo-toast{bottom:78px;gap:9px;min-width:calc(100vw - 18px);padding:9px 9px 9px 12px}
  .summary-undo-toast button{padding:7px 9px;font-size:calc(10px * var(--app-font-scale,1))}
}

/* ===== v82: Stable row layout for LINE preview and table capture ===== */
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tbody tr.summary-person-detail-row,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tbody tr.summary-person-detail-row{
  display:none!important
}
body.line-share-mode #summaryPersonCard .summary-detail-toggle,
body.table-only-capture-mode #summaryPersonCard .summary-detail-toggle{
  display:none!important
}

/* "รวมก่อนค่าน้ำ" is redundant in a compact capture. Removing it leaves
   enough room for every person to stay on one readable horizontal row. */
body.line-share-mode #summaryPersonCard table.summary-mobile-cards thead th:nth-child(5),
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tbody tr.summary-person-row>td:nth-child(5),
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tfoot #sumBeforeWater,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards thead th:nth-child(5),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tbody tr.summary-person-row>td:nth-child(5),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tfoot #sumBeforeWater{
  display:none!important
}

body.line-share-mode #summaryPersonCard table.summary-mobile-cards,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards{
  width:100%!important;max-width:100%!important;min-width:0!important;
  table-layout:fixed!important;border-collapse:separate!important;border-spacing:0!important
}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards thead,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards thead{
  display:table-header-group!important
}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tbody,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tbody{
  display:table-row-group!important
}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tfoot,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tfoot{
  display:table-footer-group!important
}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tr.summary-person-row,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tr.summary-person-row{
  display:table-row!important;height:auto!important;margin:0!important;padding:0!important
}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards th,
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tr.summary-person-row>td,
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tfoot th,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards th,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tr.summary-person-row>td,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tfoot th{
  display:table-cell!important;position:static!important;min-width:0!important;max-width:none!important;
  padding:7px 3px!important;border-bottom:1px solid #d9e6f1!important;
  font-size:calc(9px * var(--app-font-scale,1))!important;line-height:1.25!important;vertical-align:middle!important;
  text-align:center!important;white-space:nowrap!important;overflow:hidden!important;overflow-wrap:normal!important;word-break:normal!important
}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards thead th,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards thead th{
  padding-top:6px!important;padding-bottom:6px!important;background:#eaf3fb!important;
  color:#315878!important;font-size:calc(8px * var(--app-font-scale,1))!important;font-weight:900!important
}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tbody tr.summary-person-row:nth-of-type(even)>td,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tbody tr.summary-person-row:nth-of-type(even)>td{
  background:#f8fbfe!important
}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards td[data-label="ชื่อ"],
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards td[data-label="ชื่อ"]{
  padding-left:6px!important;text-align:left!important;white-space:normal!important;overflow:visible!important
}
body.line-share-mode #summaryPersonCard .summary-person-title,
body.table-only-capture-mode #summaryPersonCard .summary-person-title{
  display:block!important;min-width:0!important
}
body.line-share-mode #summaryPersonCard .person-name,
body.table-only-capture-mode #summaryPersonCard .person-name{
  color:#113a61!important;font-size:calc(9px * var(--app-font-scale,1))!important;line-height:1.25!important;
  white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important
}
body.line-share-mode #summaryPersonCard .person-time,
body.table-only-capture-mode #summaryPersonCard .person-time{
  margin-top:2px!important;color:#668097!important;font-size:calc(7px * var(--app-font-scale,1))!important;line-height:1.25!important;
  white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important
}
body.line-share-mode #summaryPersonCard td.payment-status-cell,
body.table-only-capture-mode #summaryPersonCard td.payment-status-cell{
  padding-left:3px!important;padding-right:3px!important
}
body.line-share-mode #summaryPersonCard .paid-share-status,
body.table-only-capture-mode #summaryPersonCard .paid-share-status{
  width:100%!important;max-width:100%!important;min-width:0!important;min-height:24px!important;
  padding:4px 3px!important;border-radius:7px!important;font-size:calc(7.5px * var(--app-font-scale,1))!important;line-height:1.15!important;
  white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important
}

body.line-share-mode #summaryPersonCard table.summary-mobile-cards th:nth-child(1),
body.line-share-mode #summaryPersonCard table.summary-mobile-cards td:nth-child(1),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards th:nth-child(1),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards td:nth-child(1){width:29%!important}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards th:nth-child(2),
body.line-share-mode #summaryPersonCard table.summary-mobile-cards td:nth-child(2),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards th:nth-child(2),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards td:nth-child(2){width:8%!important}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards th:nth-child(3),
body.line-share-mode #summaryPersonCard table.summary-mobile-cards td:nth-child(3),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards th:nth-child(3),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards td:nth-child(3){width:10%!important}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards th:nth-child(4),
body.line-share-mode #summaryPersonCard table.summary-mobile-cards td:nth-child(4),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards th:nth-child(4),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards td:nth-child(4){width:10%!important}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards th:nth-child(6),
body.line-share-mode #summaryPersonCard table.summary-mobile-cards td:nth-child(6),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards th:nth-child(6),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards td:nth-child(6){width:9%!important}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards th:nth-child(7),
body.line-share-mode #summaryPersonCard table.summary-mobile-cards td:nth-child(7),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards th:nth-child(7),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards td:nth-child(7){width:14%!important}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards th:nth-child(8),
body.line-share-mode #summaryPersonCard table.summary-mobile-cards td:nth-child(8),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards th:nth-child(8),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards td:nth-child(8){width:20%!important}

/* ===== v83: Fair competition rotation ===== */
.competition-page{max-width:1220px;margin:0 auto}
.page-header.competition .page-icon{color:#805ad5;background:#f0eaff}
.competition-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.competition-overview article{
  display:flex;align-items:center;gap:11px;min-height:76px;padding:12px 14px;border:1px solid #d9e6f3;border-radius:13px;
  background:#fff;box-shadow:0 7px 22px rgba(14,54,88,.05)
}
.competition-overview article>span:last-child{display:flex;flex-direction:column;gap:3px;color:#62778d;font-size:calc(11px * var(--app-font-scale,1))}
.competition-overview article b{color:#12385f;font-size:calc(19px * var(--app-font-scale,1));line-height:1.1}
.competition-overview-icon{display:grid;place-items:center;width:43px;height:43px;flex:0 0 43px;border-radius:50%}
.competition-overview-icon .app-icon{width:21px;height:21px}
.competition-overview-icon.players{color:#0877f9;background:#e5f2ff}
.competition-overview-icon.games{color:#8155d8;background:#f0e8ff}
.competition-overview-icon.balance{color:#0b9b6c;background:#e3f8ef}

.competition-participants-card{padding-bottom:14px}
.competition-player-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.competition-player-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px}
.competition-player-actions .app-icon{width:16px;height:16px;color:#0877f9}
.competition-player-actions .danger .app-icon{color:#c72525}
.competition-player-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.competition-player-option{
  position:relative;display:flex;align-items:center;gap:9px;min-width:0;min-height:58px;padding:8px 10px;border:1px solid #d9e5f1;border-radius:11px;
  background:#f9fbfe;cursor:pointer;transition:border-color .18s,background .18s,box-shadow .18s
}
.competition-player-option:hover{border-color:#a9ccec;background:#f2f8ff}
.competition-player-option.selected{border-color:#65a9f6;background:#edf6ff;box-shadow:inset 0 0 0 1px rgba(8,119,249,.12)}
.competition-player-option>input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.competition-player-avatar{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:#e6edf5;color:#315878;font-size:calc(13px * var(--app-font-scale,1));font-weight:900}
.competition-player-option.selected .competition-player-avatar{color:#fff;background:linear-gradient(135deg,#2684f3,#1467dc)}
.competition-player-copy{display:flex;flex:1;flex-direction:column;min-width:0}
.competition-player-copy b{overflow:hidden;color:#163b5e;font-size:calc(12px * var(--app-font-scale,1));text-overflow:ellipsis;white-space:nowrap}
.competition-player-copy small{margin-top:2px;color:#71859a;font-size:calc(9px * var(--app-font-scale,1))}
.competition-player-check{display:grid;place-items:center;width:23px;height:23px;flex:0 0 23px;border:1px solid #cfdae6;border-radius:50%;color:transparent;background:#fff}
.competition-player-check .app-icon{width:13px;height:13px}
.competition-player-option.selected .competition-player-check{border-color:#10b981;color:#fff;background:#10b981}
.competition-selection-hint{margin-top:10px;padding:9px 11px;border:1px solid;border-radius:9px;font-size:calc(11px * var(--app-font-scale,1));font-weight:800}
.competition-selection-hint.ready{border-color:#bdebd9;background:#effbf6;color:#087052}
.competition-selection-hint.warning{border-color:#f4d7a6;background:#fff9ed;color:#9a5b0a}
.competition-empty-options{grid-column:1/-1;padding:20px;border:1px dashed #cbd9e7;border-radius:11px;color:#718399;text-align:center;font-size:calc(11px * var(--app-font-scale,1))}

.competition-workspace{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:14px;align-items:start}
.competition-card-title{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.competition-card-title>span:first-child{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:#eaf4ff;color:#0877f9}
.competition-card-title>span:first-child .app-icon{width:18px;height:18px}
.competition-card-title>div{flex:1;min-width:0}
.competition-card-title h3{margin:0;color:#123556;font-size:calc(16px * var(--app-font-scale,1))}
.competition-card-title p{margin:2px 0 0;color:#718399;font-size:calc(10px * var(--app-font-scale,1))}
.competition-card-title>em,.competition-current-tools>em{padding:5px 8px;border-radius:999px;background:#edf3fa;color:#41617e;font-size:calc(9px * var(--app-font-scale,1));font-style:normal;font-weight:900;white-space:nowrap}
.competition-current-tools{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.competition-current-tools>button{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:31px;padding:5px 8px;
  border-color:#cdbdf4;background:#f5f1ff;color:#6e43c0;font-size:calc(9px * var(--app-font-scale,1));font-weight:900;white-space:nowrap
}
.competition-current-tools>button .app-icon{width:13px;height:13px}
.competition-current-tools>button.active{border-color:#8155d8;background:#8155d8;color:#fff}

.competition-current-match{min-height:225px}
.competition-match-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:225px;padding:20px;border:1px dashed #c6d9eb;border-radius:13px;background:#f8fbff;text-align:center}
.competition-match-empty>span{display:grid;place-items:center;width:58px;height:58px;margin-bottom:9px;border-radius:50%;background:#ece5ff;color:#8155d8}
.competition-match-empty .app-icon{width:29px;height:29px}
.competition-match-empty b{color:#173b60;font-size:calc(15px * var(--app-font-scale,1))}.competition-match-empty small{margin-top:4px;color:#718399;font-size:calc(10px * var(--app-font-scale,1))}
.competition-court{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);gap:8px;align-items:stretch;padding:12px;border:1px solid #d7e4ef;border-radius:14px;background:linear-gradient(180deg,#edf7ff,#f9fcff)}
.competition-team{display:flex;flex-direction:column;gap:7px;padding:10px;border:1px solid;border-radius:11px}
.competition-team>small{font-size:calc(10px * var(--app-font-scale,1));font-weight:900;text-transform:uppercase}
.competition-team.team-a{border-color:#bcdcff;background:#fff;color:#086add}
.competition-team.team-b{border-color:#ffd2ae;background:#fff;color:#d46611}
.competition-match-player{display:flex;align-items:center;gap:7px;min-width:0;min-height:42px;padding:6px 8px;border-radius:9px;background:#f5f9fd;color:#163a5a}
.competition-match-player i{display:grid;place-items:center;width:27px;height:27px;flex:0 0 27px;border-radius:8px;background:#e4eef8;color:#245984;font-size:calc(10px * var(--app-font-scale,1));font-style:normal;font-weight:900}
.competition-match-player b{overflow:hidden;font-size:calc(12px * var(--app-font-scale,1));text-overflow:ellipsis;white-space:nowrap}
.competition-versus{display:grid;place-items:center;align-self:center;width:42px;height:42px;border-radius:50%;background:#143f66;color:#fff;font-size:calc(11px * var(--app-font-scale,1));font-weight:900;box-shadow:0 6px 14px rgba(20,63,102,.18)}
.competition-resting{display:flex;align-items:flex-start;gap:9px;margin-top:9px;padding:9px 10px;border:1px solid #e1e9f1;border-radius:10px;background:#f9fbfd}
.competition-resting>b{flex:0 0 auto;color:#5d7288;font-size:calc(10px * var(--app-font-scale,1))}
.competition-resting>span{display:flex;gap:5px;flex-wrap:wrap}
.competition-resting em{padding:3px 7px;border-radius:999px;background:#e9eff6;color:#43607b;font-size:calc(9px * var(--app-font-scale,1));font-style:normal;font-weight:800}
.competition-manual-panel{position:fixed;inset:0;z-index:2600;display:grid;place-items:center;margin:0;padding:18px;background:rgba(14,38,63,.58);backdrop-filter:blur(3px)}
.competition-manual-panel.hidden{display:none!important}
.competition-manual-dialog{width:min(680px,100%);max-height:calc(100dvh - 36px);overflow:auto;padding:17px;border:1px solid #cdbdf4;border-radius:16px;background:#faf8ff;box-shadow:0 24px 70px rgba(9,31,54,.32);animation:competitionModalIn .18s ease-out}
body.competition-modal-open{overflow:hidden}
@keyframes competitionModalIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.competition-manual-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px}
.competition-manual-head>span{display:flex;flex-direction:column}.competition-manual-head b{color:#56349d;font-size:calc(12px * var(--app-font-scale,1))}.competition-manual-head small{margin-top:2px;color:#786b91;font-size:calc(9px * var(--app-font-scale,1))}
.competition-manual-head>button{width:28px;height:28px;min-height:0;padding:0;border-color:#ddd4f1;background:#fff;color:#6c598a;font-size:calc(18px * var(--app-font-scale,1));line-height:1}
.competition-manual-teams{display:grid;grid-template-columns:minmax(0,1fr) 35px minmax(0,1fr);gap:7px;align-items:center}
.competition-manual-teams fieldset{min-width:0;margin:0;padding:9px;border:1px solid;border-radius:10px;background:#fff}
.competition-manual-teams fieldset.team-a{border-color:#bcdcff}.competition-manual-teams fieldset.team-b{border-color:#ffd2ae}
.competition-manual-teams legend{padding:0 5px;font-size:calc(9px * var(--app-font-scale,1));font-weight:900}.competition-manual-teams .team-a legend{color:#0877f9}.competition-manual-teams .team-b legend{color:#d46611}
.competition-manual-teams label{display:flex;flex-direction:column;gap:3px;color:#60758c;font-size:calc(8px * var(--app-font-scale,1));font-weight:800}
.competition-manual-teams label+label{margin-top:7px}
.competition-manual-teams select{width:100%;min-width:0;height:36px;padding:5px 25px 5px 8px;border:1px solid #d4e1ed;border-radius:8px;background-color:#f8fbfe;color:#173b60;font-size:calc(10px * var(--app-font-scale,1));font-weight:800}
.competition-manual-teams select:focus{border-color:#6caef5;outline:3px solid rgba(8,119,249,.1)}
.competition-manual-vs{display:grid;place-items:center;width:33px;height:33px;border-radius:50%;background:#143f66;color:#fff;font-size:calc(8px * var(--app-font-scale,1));font-weight:900}
.competition-manual-status{margin-top:9px;padding:7px 9px;border:1px solid;border-radius:8px;font-size:calc(9px * var(--app-font-scale,1));font-weight:800}
.competition-manual-status.ready{border-color:#bdebd9;background:#effbf6;color:#087052}.competition-manual-status.warning{border-color:#f4d7a6;background:#fff9ed;color:#9a5b0a}
.competition-manual-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:9px}
.competition-manual-actions button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:36px}.competition-manual-actions .app-icon{width:13px;height:13px}
.competition-fairness-note{margin-top:9px;padding:8px 10px;border:1px solid #bcebd6;border-radius:9px;background:#effbf6;color:#087052;font-size:calc(10px * var(--app-font-scale,1));font-weight:800;text-align:center}
.competition-match-actions{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:7px;margin-top:11px}
.competition-match-actions button{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:42px;padding:7px;font-size:calc(10px * var(--app-font-scale,1));font-weight:800}
.competition-match-actions .app-icon{width:15px;height:15px}

.competition-stats-wrap{overflow:auto;border:1px solid #dbe6f0;border-radius:11px}
.competition-stats-table{width:100%;min-width:420px;border-collapse:collapse}
.competition-stats-table th,.competition-stats-table td{padding:8px 6px;border-bottom:1px solid #e2eaf2;font-size:calc(10px * var(--app-font-scale,1));text-align:center}
.competition-stats-table th{background:#edf4fa;color:#44627e;font-size:calc(9px * var(--app-font-scale,1))}
.competition-stats-table td:first-child{text-align:left}
.competition-stats-table tbody tr:last-child td{border-bottom:0}
.competition-stats-table strong{color:#075fcf;font-size:calc(14px * var(--app-font-scale,1))}
.competition-stat-name{display:flex;align-items:center;gap:5px;min-width:0}.competition-stat-name b{overflow:hidden;color:#173b60;text-overflow:ellipsis;white-space:nowrap}
.competition-stat-name em{padding:2px 5px;border-radius:999px;background:#e2f8ed;color:#087052;font-size:calc(7px * var(--app-font-scale,1));font-style:normal;font-weight:900;white-space:nowrap}
.competition-last-status{display:inline-flex;padding:3px 6px;border-radius:999px;font-size:calc(8px * var(--app-font-scale,1));font-weight:800;white-space:nowrap}
.competition-last-status.played{background:#e6f1ff;color:#086add}.competition-last-status.rested{background:#f1f4f8;color:#60758c}
.competition-table-empty{padding:24px!important;color:#718399!important;text-align:center!important}

.competition-history-card{margin-top:14px}
.competition-history-export{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 13px;
  border-color:#9fc7f4;background:#eef6ff;color:#075fcf;font-size:calc(10px * var(--app-font-scale,1));font-weight:900;white-space:nowrap
}
.competition-history-export:hover:not(:disabled){border-color:#0877f9;background:#0877f9;color:#fff}
.competition-history-export:disabled{border-color:#dbe5ef;background:#f3f6f9;color:#92a2b3;cursor:not-allowed}
.competition-history-export .app-icon{width:16px;height:16px}
.competition-history-card.is-exporting-image{box-shadow:none}
.competition-history-card.is-exporting-image .competition-history-export{display:none!important}
.competition-history-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}
.competition-history-meta>span{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;background:#f0f6fc;color:#315777;font-size:calc(9px * var(--app-font-scale,1));font-weight:700}
.competition-history-meta .app-icon{width:13px;height:13px;color:#0877f9}
.competition-history-card.is-exporting-image{width:760px!important;max-width:none!important;padding:22px!important;background:#fff}
.competition-history-card.is-exporting-image>.competition-card-title{align-items:flex-start;flex-wrap:nowrap!important;margin-bottom:18px}
.competition-history-card.is-exporting-image>.competition-card-title>span:first-child{width:48px;height:48px;flex-basis:48px;border-radius:14px}
.competition-history-card.is-exporting-image>.competition-card-title>span:first-child .app-icon{width:25px;height:25px}
.competition-history-card.is-exporting-image .competition-card-title h3{font-size:26px!important;line-height:1.2}
.competition-history-card.is-exporting-image .competition-card-title p{margin-top:5px;font-size:14px!important;line-height:1.45}
.competition-history-card.is-exporting-image .competition-history-meta{gap:8px;margin-top:11px}
.competition-history-card.is-exporting-image .competition-history-meta>span{padding:7px 11px;font-size:14px!important}
.competition-history-card.is-exporting-image .competition-history-meta .app-icon{width:17px;height:17px}
.competition-history-card.is-exporting-image .competition-history-list{gap:12px}
.competition-history-card.is-exporting-image .competition-history-item{grid-template-columns:86px minmax(0,1fr) 42px minmax(0,1fr)!important;gap:12px;padding:14px;border-width:1.5px;border-radius:14px;background:#fbfdff}
.competition-history-card.is-exporting-image .competition-history-number{grid-column:auto!important;flex-direction:column!important;align-items:flex-start!important;gap:0!important;padding-right:0!important}
.competition-history-card.is-exporting-image .competition-history-number b{font-size:18px!important}
.competition-history-card.is-exporting-image .competition-history-number small{font-size:13px!important}
.competition-history-card.is-exporting-image .competition-history-edit{display:none!important}
.competition-history-card.is-exporting-image .competition-history-team{padding:11px 13px;border-radius:11px}
.competition-history-card.is-exporting-image .competition-history-team small{font-size:12px!important}
.competition-history-card.is-exporting-image .competition-history-team b{margin-top:4px;overflow:visible;font-size:17px!important;line-height:1.35;text-overflow:clip;white-space:normal}
.competition-history-card.is-exporting-image .competition-result-choice{pointer-events:none;font-size:12px!important}
.competition-history-card.is-exporting-image .competition-result-choice.pending{display:none}
.competition-history-card.is-exporting-image .competition-history-vs{font-size:14px!important}
.competition-history-card.is-exporting-image .competition-history-rest,
.competition-history-card.is-exporting-image .competition-history-pair{display:none!important}
.competition-history-list{display:flex;flex-direction:column;gap:8px}
.competition-history-empty{display:flex;align-items:center;justify-content:center;gap:10px;min-height:92px;padding:16px;border:1px dashed #cbd9e7;border-radius:11px;color:#718399}
.competition-history-empty>.app-icon{width:27px;height:27px}.competition-history-empty>span{display:flex;flex-direction:column}.competition-history-empty b{color:#315777;font-size:calc(12px * var(--app-font-scale,1))}.competition-history-empty small{margin-top:2px;font-size:calc(9px * var(--app-font-scale,1))}
.competition-history-item{display:grid;grid-template-columns:72px minmax(0,1fr) 34px minmax(0,1fr) minmax(110px,.75fr) 70px;gap:8px;align-items:center;padding:9px;border:1px solid #dbe6f0;border-radius:11px;background:#fbfdff}
.competition-history-number{display:flex;flex-direction:column;align-items:flex-start}.competition-history-number b{color:#123b62;font-size:calc(12px * var(--app-font-scale,1))}.competition-history-number small{margin-top:2px;color:#7b8da0;font-size:calc(8px * var(--app-font-scale,1))}
.competition-history-edit{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-height:23px;margin-top:5px;padding:3px 6px;border-color:#b9d5f2;border-radius:7px;color:#0868d5;background:#f2f8ff;font-size:calc(8px * var(--app-font-scale,1));font-weight:900;white-space:nowrap}.competition-history-edit:hover{border-color:#0877f9;background:#e7f2ff}.competition-history-edit .app-icon{width:11px;height:11px}
.competition-history-team{display:flex;flex-direction:column;min-width:0;padding:7px 9px;border-radius:8px}.competition-history-team small{font-size:calc(8px * var(--app-font-scale,1));font-weight:900}.competition-history-team b{margin-top:2px;overflow:hidden;color:#173b60;font-size:calc(10px * var(--app-font-scale,1));text-overflow:ellipsis;white-space:nowrap}
.competition-history-team.team-a{background:#edf6ff}.competition-history-team.team-a small{color:#0877f9}
.competition-history-team.team-b{background:#fff3e9}.competition-history-team.team-b small{color:#d46611}
.competition-history-team-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.competition-result-choice{min-height:24px;padding:3px 8px;border:1px solid;border-radius:999px;background:#fff;font-size:calc(8px * var(--app-font-scale,1));font-weight:900;line-height:1;white-space:nowrap}
.competition-result-choice.pending{border-color:#b9c9da;color:#4c6781}
.competition-result-choice.pending:hover{border-color:#0877f9;background:#fff;color:#0877f9}
.competition-result-choice.winner{border-color:#12a875;background:#12a875;color:#fff}
.competition-result-choice.loser{border-color:#ef9a9a;background:#fff5f5;color:#c62828}
.competition-history-team.is-winner{box-shadow:inset 0 0 0 2px #12a875;background:#ecfdf5}
.competition-history-team.is-loser{box-shadow:inset 0 0 0 1px #f1b7b7;background:#fff8f8}
.competition-history-vs{color:#5a7188;font-size:calc(9px * var(--app-font-scale,1));font-weight:900;text-align:center}
.competition-history-rest{display:flex;flex-direction:column;min-width:0}.competition-history-rest small{color:#718399;font-size:calc(8px * var(--app-font-scale,1))}.competition-history-rest span{margin-top:2px;overflow:hidden;color:#405e79;font-size:calc(9px * var(--app-font-scale,1));text-overflow:ellipsis;white-space:nowrap}
.competition-history-pair{padding:5px;border-radius:999px;font-size:calc(8px * var(--app-font-scale,1));font-style:normal;font-weight:900;text-align:center;white-space:nowrap}
.competition-history-pair.new{background:#e1f8ed;color:#087052}.competition-history-pair.repeat{background:#fff2db;color:#9a5b0a}
.competition-history-pair.manual{background:#eee7ff;color:#6941b4}

@media(max-width:900px){
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs{grid-template-columns:repeat(6,minmax(0,1fr))}
  .competition-workspace{grid-template-columns:1fr}
  .competition-stats-table{min-width:0}
}

@media(max-width:720px){
  .competition-page{padding-bottom:6px}
  .competition-overview{gap:6px;margin-bottom:10px}
  .competition-overview article{gap:6px;min-height:66px;padding:8px}
  .competition-overview-icon{width:34px;height:34px;flex-basis:34px}.competition-overview-icon .app-icon{width:17px;height:17px}
  .competition-overview article>span:last-child{font-size:calc(8px * var(--app-font-scale,1))}.competition-overview article b{font-size:calc(14px * var(--app-font-scale,1))}
  .competition-player-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .competition-player-actions button{min-width:0;padding:6px 4px;font-size:calc(9px * var(--app-font-scale,1))}
  .competition-player-actions #competitionClearPlayers{grid-column:1/-1}
  .competition-player-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .competition-player-option{gap:6px;min-height:54px;padding:7px}
  .competition-player-avatar{width:30px;height:30px;flex-basis:30px;font-size:calc(11px * var(--app-font-scale,1))}.competition-player-copy b{font-size:calc(10px * var(--app-font-scale,1))}.competition-player-copy small{font-size:calc(7px * var(--app-font-scale,1))}
  .competition-player-check{width:20px;height:20px;flex-basis:20px}.competition-player-check .app-icon{width:11px;height:11px}
  .competition-selection-hint{font-size:calc(9px * var(--app-font-scale,1))}
  .competition-card-title h3{font-size:calc(14px * var(--app-font-scale,1))}.competition-card-title p{font-size:calc(9px * var(--app-font-scale,1))}
  .competition-history-card>.competition-card-title{align-items:flex-start;flex-wrap:wrap}
  .competition-history-card>.competition-card-title>div{flex:1 1 calc(100% - 48px)}
  .competition-history-export{width:100%;min-height:40px}
  .competition-history-meta{gap:4px}.competition-history-meta>span{padding:4px 6px;font-size:calc(8px * var(--app-font-scale,1))}
  .competition-history-card.is-exporting-image>.competition-card-title>div{flex:1 1 calc(100% - 60px)}
  .competition-history-card.is-exporting-image .competition-history-meta>span{font-size:13px!important}
  .competition-current-tools{align-items:flex-end;flex-direction:column;gap:4px}.competition-current-tools>button{min-height:29px;padding:4px 6px;font-size:calc(8px * var(--app-font-scale,1))}
  .competition-current-match{min-height:0}.competition-match-empty{min-height:180px}
  .competition-court{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:5px;padding:7px}
  .competition-team{gap:5px;padding:7px}.competition-match-player{gap:5px;min-height:38px;padding:5px}.competition-match-player i{width:23px;height:23px;flex-basis:23px}.competition-match-player b{font-size:calc(10px * var(--app-font-scale,1))}
  .competition-versus{width:33px;height:33px;font-size:calc(8px * var(--app-font-scale,1))}
  .competition-manual-panel{padding:10px}.competition-manual-dialog{max-height:calc(100dvh - 20px);padding:12px;border-radius:14px}.competition-manual-teams{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:4px}.competition-manual-vs{width:27px;height:27px;font-size:calc(7px * var(--app-font-scale,1))}.competition-manual-teams fieldset{padding:7px 5px}.competition-manual-teams select{height:34px;padding-left:5px;font-size:calc(9px * var(--app-font-scale,1))}
  .competition-manual-actions{display:grid;grid-template-columns:1fr 1.4fr}.competition-manual-actions button{width:100%;padding:6px 4px;font-size:calc(9px * var(--app-font-scale,1))}
  .competition-match-actions{grid-template-columns:1fr 1fr}.competition-match-actions #competitionNextMatch{grid-column:1/-1;grid-row:1}
  .competition-match-actions button{min-height:39px;font-size:calc(9px * var(--app-font-scale,1))}
  .competition-stats-wrap{overflow:hidden}
  .competition-stats-table th,.competition-stats-table td{padding:7px 3px;font-size:calc(8px * var(--app-font-scale,1))}.competition-stats-table th{font-size:calc(7px * var(--app-font-scale,1))}
  .competition-stats-table th:first-child,.competition-stats-table td:first-child{width:31%}.competition-stats-table th:last-child,.competition-stats-table td:last-child{width:28%}
  .competition-stat-name{flex-direction:column;align-items:flex-start;gap:2px}.competition-stat-name b{font-size:calc(9px * var(--app-font-scale,1))}.competition-stats-table strong{font-size:calc(12px * var(--app-font-scale,1))}
  .competition-last-status{padding:3px 4px;font-size:calc(7px * var(--app-font-scale,1));white-space:normal;text-align:center}
  .competition-history-item{position:relative;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:6px;padding:9px}
  .competition-history-number{grid-column:1/-1;padding-right:76px;flex-direction:row;align-items:center;gap:6px}.competition-history-number .competition-history-edit{margin:0 0 0 auto}
  .competition-history-team{padding:7px}.competition-history-team b{font-size:calc(9px * var(--app-font-scale,1));white-space:normal}
  .competition-history-rest{grid-column:1/-1;flex-direction:row;gap:6px;padding-top:5px;border-top:1px dashed #dbe5ef}.competition-history-rest span{margin:0;white-space:normal}
  .competition-history-pair{position:absolute;right:8px;top:8px}
}

@media(max-width:430px){
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs button{font-size:calc(8px * var(--app-font-scale,1))}
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs button .nav-icon{width:19px;height:19px}
  .competition-player-options{grid-template-columns:1fr 1fr}
  .competition-player-option{padding:6px 5px}.competition-player-avatar{width:27px;height:27px;flex-basis:27px}.competition-player-check{width:18px;height:18px;flex-basis:18px}
  .competition-overview-icon{display:none}.competition-overview article{justify-content:center;text-align:center}
}

/* ===== v84: User-selectable type scale ===== */
body.line-share-mode,body.table-only-capture-mode{--app-font-scale:1!important}
#settingsDisplayCard{grid-column:1/-1}
.font-menu-aa{font-size:calc(15px * var(--app-font-scale,1));font-weight:900;line-height:1}
.font-card-icon{font-size:calc(14px * var(--app-font-scale,1))!important;font-weight:900}
.font-size-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.font-size-option{
  position:relative;display:flex;align-items:center;gap:10px;min-width:0;min-height:78px;padding:11px 12px;
  border:1px solid #d8e3ee;border-radius:12px;background:#f9fbfe;cursor:pointer;transition:.18s ease
}
.font-size-option:hover{border-color:#9fc7f4;background:#f2f8ff}
.font-size-option>input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.font-size-sample{display:grid;place-items:center;width:43px;height:43px;flex:0 0 43px;border-radius:11px;background:#e8f2ff;color:#1268d2;font-weight:900}
.font-size-option.standard .font-size-sample{font-size:calc(16px * var(--app-font-scale,1))}.font-size-option.large .font-size-sample{font-size:calc(20px * var(--app-font-scale,1))}.font-size-option.extra-large .font-size-sample{font-size:calc(24px * var(--app-font-scale,1))}
.font-size-copy{display:flex;flex:1;flex-direction:column;min-width:0}.font-size-copy b{color:#183b5e;font-size:calc(13px * var(--app-font-scale,1))}.font-size-copy small{margin-top:3px;color:#718399;font-size:calc(10px * var(--app-font-scale,1))}
.font-size-check{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border:1px solid #ccd9e6;border-radius:50%;color:transparent;background:#fff}
.font-size-check .app-icon{width:13px;height:13px}
.font-size-option:has(input:checked){border-color:#3187ef;background:#edf6ff;box-shadow:inset 0 0 0 1px rgba(8,119,249,.14),0 5px 14px rgba(8,119,249,.08)}
.font-size-option:has(input:checked) .font-size-sample{color:#fff;background:linear-gradient(135deg,#2684f3,#1467dc)}
.font-size-option:has(input:checked) .font-size-check{border-color:#10b981;color:#fff;background:#10b981}
.font-size-option:has(input:focus-visible){outline:3px solid rgba(8,119,249,.22);outline-offset:2px}
.font-size-preview{display:flex;align-items:center;gap:11px;margin-top:10px;padding:11px 13px;border:1px dashed #b9d1e9;border-radius:11px;background:#fbfdff}
.font-size-preview-icon{display:grid;place-items:center;width:39px;height:39px;flex:0 0 39px;border-radius:10px;background:#e8f2ff;color:#1469ce;font-size:calc(15px * var(--app-font-scale,1));font-weight:900}
.font-size-preview>span:last-child{display:flex;flex-direction:column}.font-size-preview b{color:#183b5e;font-size:calc(13px * var(--app-font-scale,1))}.font-size-preview small{margin-top:2px;color:#6c8095;font-size:calc(10px * var(--app-font-scale,1))}
.font-size-note{margin:9px 0 0;color:#718399;font-size:calc(10px * var(--app-font-scale,1));line-height:1.45}

@media(min-width:1251px){
  #settingsDisplayCard{grid-row:3}
  #settingsCostCard,#settingsMembersCard{grid-row:4}
  #settings>.settings-save-bar{grid-row:5}
}

@media(max-width:1250px) and (min-width:901px){
  #settingsDisplayCard{grid-column:1}
}

@media(max-width:900px){
  #settings>.page-header,#settings>.settings-subtabs,#settingsCostCard,#settingsDisplayCard,#settingsMembersCard,#settings>.settings-save-bar{grid-column:1}
}

@media(max-width:720px){
  .font-menu-aa{font-size:calc(12px * var(--app-font-scale,1))}.settings-subtabs button{gap:4px;padding-left:4px;padding-right:4px}
  .font-size-options{grid-template-columns:1fr;gap:7px}.font-size-option{min-height:67px;padding:9px 10px}
  .font-size-sample{width:38px;height:38px;flex-basis:38px}.font-size-copy b{font-size:calc(11px * var(--app-font-scale,1))}.font-size-copy small{font-size:calc(9px * var(--app-font-scale,1))}
  .font-size-preview{padding:9px}.font-size-note{font-size:calc(9px * var(--app-font-scale,1))}
}

/* ===== v87: Today session and calculation as one collapsible group ===== */
body:not(.line-share-mode):not(.table-only-capture-mode) #todaySetupGroup{
  min-width:0;padding:10px;border:1px solid #cbdff2;border-radius:17px;
  background:linear-gradient(180deg,#f7fbff 0%,#f2f7fc 100%);box-shadow:0 7px 22px rgba(30,74,116,.08)
}
.today-setup-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 5px 12px}
.today-setup-group-title{display:flex;align-items:center;gap:10px;min-width:0}
.today-setup-group-title>span:first-child{
  display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:11px;
  color:#0877f9;background:#e3f0ff
}
.today-setup-group-title .app-icon{width:18px;height:18px}
.today-setup-group-title h3{margin:0;color:#12395f;font-size:calc(16px * var(--app-font-scale,1));line-height:1.25}
.today-setup-group-title p{margin:2px 0 0;color:#637b94;font-size:calc(10px * var(--app-font-scale,1));line-height:1.35}
.today-setup-group-head>.collapse-toggle{flex:0 0 auto;color:#075fcf;border-color:#b9d5f3;background:#fff}
.today-setup-group-head>.collapse-toggle:hover{border-color:#68a7ea;background:#edf6ff}
.today-setup-group-body{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;min-width:0}
body:not(.line-share-mode):not(.table-only-capture-mode) .today-setup-group-body>#todaySessionCard,
body:not(.line-share-mode):not(.table-only-capture-mode) .today-setup-group-body>#todayCalculationCard{width:100%;min-width:0;margin:0}

@media(max-width:720px){
  body:not(.line-share-mode):not(.table-only-capture-mode) #todaySetupGroup{padding:6px;border-radius:14px}
  .today-setup-group-head{gap:7px;padding:3px 3px 8px}
  .today-setup-group-title{gap:7px}
  .today-setup-group-title>span:first-child{width:30px;height:30px;flex-basis:30px;border-radius:9px}
  .today-setup-group-title .app-icon{width:15px;height:15px}
  .today-setup-group-title h3{font-size:calc(13px * var(--app-font-scale,1))}
  .today-setup-group-title p{font-size:calc(8px * var(--app-font-scale,1))}
  .today-setup-group-head>.collapse-toggle{min-width:66px;padding:6px 8px;font-size:calc(9px * var(--app-font-scale,1))}
  .today-setup-group-body{gap:7px}
}

/* ===== v88: Keep the mobile navigation clear of the Today save bar ===== */
@media(max-width:900px){
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs{
    bottom:calc(6px + env(safe-area-inset-bottom,0px));z-index:2100;isolation:isolate
  }
}

@media(max-width:720px){
  body:not(.line-share-mode):not(.table-only-capture-mode){
    padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))
  }
  body:not(.line-share-mode):not(.table-only-capture-mode) #today{padding-bottom:70px}
  body:not(.line-share-mode):not(.table-only-capture-mode) #today>.today-action-bar{
    bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:1900
  }
}

/* ===== v89: Cleaner person rows in LINE preview and table capture ===== */
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tbody tr.summary-person-row,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tbody tr.summary-person-row{
  background:#fff!important
}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tbody tr.summary-person-row:nth-of-type(even),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tbody tr.summary-person-row:nth-of-type(even){
  background:#f8fbfe!important
}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tbody tr.summary-person-row>td,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tbody tr.summary-person-row>td{
  background:transparent!important
}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards thead th:nth-child(7),
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards thead th:nth-child(7){
  background:#eaf3fb!important
}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tfoot tr,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tfoot tr{
  background:#eaf3fb!important
}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tfoot th,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tfoot th,
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tfoot #sumTotal,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tfoot #sumTotal{
  background:transparent!important
}
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tbody td[data-label="ชื่อ"],
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tbody td[data-label="ชื่อ"],
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tbody td[data-label="ชื่อ"] .summary-person-title,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tbody td[data-label="ชื่อ"] .summary-person-title,
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tbody td[data-label="ชื่อ"] .person-name,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tbody td[data-label="ชื่อ"] .person-name,
body.line-share-mode #summaryPersonCard table.summary-mobile-cards tbody td[data-label="ชื่อ"] .person-time,
body.table-only-capture-mode #summaryPersonCard table.summary-mobile-cards tbody td[data-label="ชื่อ"] .person-time{
  width:100%;text-align:left!important
}

/* ===== v90: Server users and per-user menu permissions ===== */
.permission-hidden{display:none!important}
.password-change-notice{min-height:34px;padding:6px 10px;border-color:#f2ce7b;color:#8a5600;background:#fff6dc;font-size:calc(10px * var(--app-font-scale,1));box-shadow:none}.password-change-notice:hover{border-color:#e9b846;background:#ffefbd}
.mobile-current-user{display:flex;flex-direction:column;padding:7px 9px;border-radius:8px;background:#edf6ff;color:#153d66}
.mobile-current-user b{font-size:calc(12px * var(--app-font-scale,1))}.mobile-current-user small{margin-top:2px;color:#64809b;font-size:calc(9px * var(--app-font-scale,1))}
#settingsUsersCard{grid-column:1/-1}
.system-users-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.system-users-toolbar button{display:flex;align-items:center;justify-content:center;gap:6px;min-width:150px}.system-users-toolbar .app-icon{width:16px;height:16px}
#systemUsersStatus{padding:5px 9px;border-radius:999px;color:#087052;background:#e7f9f1}.system-users-toolbar #systemUsersStatus.is-error{color:#b42318;background:#fff0f1}
.system-user-editor{margin-bottom:12px;padding:13px;border:1px solid #bdd8f5;border-radius:12px;background:#f5faff}
.system-user-editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}
.system-user-editor-head>div{display:flex;flex-direction:column}.system-user-editor-head b{color:#123d67;font-size:calc(15px * var(--app-font-scale,1))}.system-user-editor-head small{margin-top:2px;color:#6a8097;font-size:calc(9px * var(--app-font-scale,1))}
.system-user-editor-head>button{width:32px;min-height:32px;padding:0;border:0;background:transparent;color:#5d748b;font-size:calc(22px * var(--app-font-scale,1));box-shadow:none}
.system-user-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.system-user-fields .field{min-width:0}.system-user-fields label{font-size:calc(10px * var(--app-font-scale,1));font-weight:800}.system-user-fields input,.system-user-fields select{width:100%;min-height:40px}
.system-menu-permissions{margin:11px 0 0;padding:10px;border:1px solid #d6e5f4;border-radius:10px;background:#fff}.system-menu-permissions legend{padding:0 6px;color:#315777;font-size:calc(10px * var(--app-font-scale,1));font-weight:900}
.system-menu-permissions{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.system-menu-permissions>legend{grid-column:1/-1}
.system-menu-permissions label{position:relative;min-width:0;cursor:pointer}.system-menu-permissions input{position:absolute;width:1px;height:1px;opacity:0}.system-menu-permissions label>span{display:flex;align-items:center;justify-content:center;gap:5px;min-height:40px;padding:6px;border:1px solid #d5e1ed;border-radius:9px;color:#4c647c;background:#f9fbfd;font-size:calc(9px * var(--app-font-scale,1));font-weight:800;text-align:center}.system-menu-permissions .app-icon{width:14px;height:14px;flex:0 0 14px}.system-menu-permissions input:checked+span{border-color:#2f83ee;color:#075fc9;background:#eaf4ff;box-shadow:inset 0 0 0 1px rgba(8,119,249,.12)}.system-menu-permissions input:focus-visible+span{outline:3px solid rgba(8,119,249,.2)}.system-menu-permissions input:disabled+span{cursor:not-allowed;opacity:.72}
.system-user-options{display:flex;flex-wrap:wrap;gap:15px;margin-top:11px}.system-user-options label{display:flex;align-items:center;gap:6px;color:#31516f;font-size:calc(10px * var(--app-font-scale,1));font-weight:800}.system-user-options input{width:19px;height:19px;accent-color:#0caf7c}
.system-user-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:11px}.system-user-editor-actions button{min-width:130px}.system-user-editor-actions .app-icon{width:15px;height:15px}
.system-user-editor-error{min-height:0;margin-top:7px;color:#c32632;font-size:calc(10px * var(--app-font-scale,1));font-weight:800}.system-user-editor-error:empty{display:none}
.system-users-table-wrap{max-height:570px;border:1px solid #dce7f2;border-radius:11px}.system-users-table{width:100%}.system-users-table th{font-size:calc(10px * var(--app-font-scale,1))}.system-users-table td{vertical-align:middle;font-size:calc(11px * var(--app-font-scale,1))}
.system-user-identity{display:flex;flex-direction:column;min-width:130px}.system-user-identity b{color:#163b60}.system-user-identity small{margin-top:2px;color:#71869a;font-size:calc(9px * var(--app-font-scale,1))}
.system-role-badge,.system-user-state{display:inline-flex;align-items:center;justify-content:center;padding:4px 7px;border-radius:999px;font-size:calc(9px * var(--app-font-scale,1));font-weight:900;white-space:nowrap}.system-role-badge{color:#155fb7;background:#e6f1ff}.system-role-badge.role-admin{color:#7141b2;background:#f1eaff}.system-role-badge.role-viewer{color:#446079;background:#edf2f6}.system-role-badge.role-custom{color:#96600b;background:#fff3d9}
.system-menu-badges{display:flex;flex-wrap:wrap;gap:4px;min-width:220px}.system-menu-badges span{padding:3px 6px;border-radius:999px;color:#315b82;background:#edf5fd;font-size:calc(8px * var(--app-font-scale,1));font-weight:800}.system-menu-badges i{color:#a04b51;font-size:calc(9px * var(--app-font-scale,1))}
.system-user-state.active{color:#087052;background:#dcf8eb}.system-user-state.inactive{color:#b42318;background:#ffe7e9}.system-password-warning{display:block;margin-top:4px;color:#9a5b0a;font-size:calc(8px * var(--app-font-scale,1))}.system-last-login{color:#526b83;font-size:calc(9px * var(--app-font-scale,1));white-space:nowrap}
.system-user-edit{display:inline-flex;align-items:center;justify-content:center;gap:5px;color:#1265c5;background:#f2f8ff;border-color:#c9def5}.system-user-edit .app-icon{width:14px;height:14px}

@media(min-width:1251px){
  #settingsUsersCard{grid-row:5}
  #settings>.settings-save-bar{grid-row:6}
}
@media(max-width:1100px){
  .system-user-fields{grid-template-columns:1fr 1fr}.system-menu-permissions{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:900px){
  body:not(.line-share-mode):not(.table-only-capture-mode) .tabs{grid-template-columns:repeat(var(--mobile-nav-count,6),minmax(0,1fr))}
  #settings>.page-header,#settings>.settings-subtabs,#settingsCostCard,#settingsDisplayCard,#settingsMembersCard,#settingsUsersCard,#settings>.settings-save-bar{grid-column:1}
  .settings-subtabs{overflow-x:auto}.settings-subtabs button{flex:1 0 120px}
}
@media(max-width:720px){
  .system-users-toolbar{align-items:stretch;flex-direction:column}.system-users-toolbar button{width:100%}#systemUsersStatus{align-self:flex-start}
  .system-user-editor{padding:9px}.system-user-fields{grid-template-columns:1fr 1fr;gap:7px}.system-user-fields .field:nth-child(1),.system-user-fields .field:nth-child(2){grid-column:1/-1}
  .system-menu-permissions{grid-template-columns:1fr 1fr}.system-user-options{flex-direction:column;gap:8px}.system-user-editor-actions{display:grid;grid-template-columns:1fr 1fr}.system-user-editor-actions button{min-width:0}
  .system-users-table-wrap{max-height:none;overflow:visible}.system-users-table,.system-users-table tbody{display:block;width:100%}.system-users-table thead{display:none}.system-users-table tr{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:9px;padding:10px;border:1px solid #dbe6f1;border-radius:11px;background:#fff}.system-users-table td{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:0;border:0;text-align:left!important}.system-users-table td::before{content:attr(data-label);color:#76899c;font-size:calc(8px * var(--app-font-scale,1));font-weight:800}.system-users-table td:nth-child(1),.system-users-table td:nth-child(3),.system-users-table td:last-child{grid-column:1/-1}.system-users-table td:last-child button{width:100%}.system-menu-badges{min-width:0}.system-last-login{white-space:normal}
}

/* ===== v91: Competition history by date and player results ===== */
.competition-archive-filter-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px}
.competition-archive-filter-copy{display:flex;align-items:center;gap:10px;min-width:0}.competition-archive-filter-copy>span{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;color:#0877f9;background:#eaf4ff}.competition-archive-filter-copy .app-icon{width:19px;height:19px}.competition-archive-filter-copy h3{margin:0;color:#153b60;font-size:calc(16px * var(--app-font-scale,1))}.competition-archive-filter-copy p{margin:2px 0 0;color:#718399;font-size:calc(9px * var(--app-font-scale,1))}
.competition-archive-filters{display:grid;grid-template-columns:minmax(170px,1fr) minmax(210px,1.25fr);gap:9px;min-width:min(470px,48%)}.competition-archive-filters label{color:#587088;font-size:calc(9px * var(--app-font-scale,1));font-weight:800}.competition-archive-filters select{min-height:40px;margin-top:4px;font-weight:800}
.competition-archive-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.competition-archive-kpis article{display:flex;align-items:center;gap:10px;min-height:80px;padding:13px 15px;border:1px solid #dbe6f1;border-radius:13px;background:#fff;box-shadow:0 5px 18px rgba(20,59,96,.05)}.competition-archive-kpis article>span{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:13px}.competition-archive-kpis .app-icon{width:21px;height:21px}.competition-archive-kpis .sessions{color:#0877f9;background:#e5f1ff}.competition-archive-kpis .games{color:#7a45cb;background:#f0e8ff}.competition-archive-kpis .results{color:#07865f;background:#ddf8ec}.competition-archive-kpis .players{color:#d46510;background:#fff0e3}.competition-archive-kpis article>div{display:flex;flex-direction:column;color:#6a7e92;font-size:calc(9px * var(--app-font-scale,1));font-weight:800}.competition-archive-kpis b{margin-top:3px;color:#143b61;font-size:calc(18px * var(--app-font-scale,1));line-height:1.15}
.competition-archive-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(390px,.75fr);gap:14px;align-items:start}.competition-records-card,.competition-player-summary-card{margin:0;min-width:0}.competition-archive-card-head{display:flex;align-items:center;gap:9px;margin-bottom:12px}.competition-archive-card-head>span{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:10px;color:#0877f9;background:#eaf4ff}.competition-archive-card-head .app-icon{width:18px;height:18px}.competition-archive-card-head h3{margin:0;color:#153b60;font-size:calc(16px * var(--app-font-scale,1))}.competition-archive-card-head p{margin:2px 0 0;color:#718399;font-size:calc(9px * var(--app-font-scale,1))}
.competition-archive-records{display:flex;flex-direction:column;gap:12px}.competition-archive-group{overflow:hidden;border:1px solid #d8e5f1;border-radius:12px;background:#fbfdff}.competition-archive-group>header{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:10px 12px;border-bottom:1px solid #dce7f1;background:#eef5fc}.competition-archive-group>header>div{display:flex;align-items:center;gap:9px;min-width:0}.competition-archive-group>header b{color:#123c64;font-size:calc(12px * var(--app-font-scale,1))}.competition-archive-group>header span{color:#55718d;font-size:calc(9px * var(--app-font-scale,1));font-weight:800}.competition-archive-group>header em{padding:4px 8px;border-radius:999px;color:#087052;background:#ddf8ec;font-size:calc(8px * var(--app-font-scale,1));font-style:normal;font-weight:900;white-space:nowrap}
.competition-archive-match-list{display:flex;flex-direction:column;gap:7px;padding:8px}.competition-archive-match{display:grid;grid-template-columns:66px minmax(0,1fr) 30px minmax(0,1fr);gap:7px;align-items:center;padding:7px;border:1px solid #e0e9f2;border-radius:10px;background:#fff}.competition-archive-match-number{display:flex;flex-direction:column}.competition-archive-match-number b{color:#123b62;font-size:calc(11px * var(--app-font-scale,1))}.competition-archive-match-number small{margin-top:2px;color:#7b8da0;font-size:calc(8px * var(--app-font-scale,1))}.competition-archive-vs{color:#587089;font-size:calc(8px * var(--app-font-scale,1));font-weight:900;text-align:center}
.competition-archive-team{display:flex;flex-direction:column;min-width:0;padding:7px 9px;border-radius:8px}.competition-archive-team.team-a{background:#edf6ff}.competition-archive-team.team-b{background:#fff3e9}.competition-archive-team>span{display:flex;align-items:center;justify-content:space-between;gap:6px}.competition-archive-team small{font-size:calc(8px * var(--app-font-scale,1));font-weight:900}.competition-archive-team.team-a small{color:#0877f9}.competition-archive-team.team-b small{color:#d46611}.competition-archive-team em{padding:2px 6px;border-radius:999px;font-size:calc(7px * var(--app-font-scale,1));font-style:normal;font-weight:900}.competition-archive-team b{margin-top:3px;overflow:hidden;color:#173b60;font-size:calc(10px * var(--app-font-scale,1));line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.competition-archive-team.is-winner{box-shadow:inset 0 0 0 2px #12a875;background:#ecfdf5}.competition-archive-team.is-winner em{color:#fff;background:#12a875}.competition-archive-team.is-loser{box-shadow:inset 0 0 0 1px #efb6b6;background:#fff8f8}.competition-archive-team.is-loser em{color:#b42318;background:#ffe5e7}.competition-archive-team.is-pending em{color:#647b91;background:#edf2f7}
.competition-archive-empty{display:flex;align-items:center;justify-content:center;gap:10px;min-height:160px;padding:20px;border:1px dashed #c9d8e6;border-radius:11px;color:#6d8295}.competition-archive-empty>.app-icon{width:30px;height:30px}.competition-archive-empty>span{display:flex;flex-direction:column}.competition-archive-empty b{color:#315777}.competition-archive-empty small{margin-top:3px;font-size:calc(9px * var(--app-font-scale,1))}
.competition-player-summary-wrap{overflow:auto;border:1px solid #dce7f1;border-radius:11px}.competition-player-summary-table{width:100%;min-width:490px}.competition-player-summary-table th,.competition-player-summary-table td{padding:9px 6px;text-align:center;font-size:calc(9px * var(--app-font-scale,1))}.competition-player-summary-table th{font-size:calc(8px * var(--app-font-scale,1))}.competition-player-summary-table td:first-child{text-align:left}.competition-player-rank{display:flex;align-items:center;gap:7px;min-width:125px}.competition-player-rank i{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border-radius:8px;color:#1266c8;background:#e7f2ff;font-size:calc(8px * var(--app-font-scale,1));font-style:normal;font-weight:900}.competition-player-rank b{overflow:hidden;color:#173b60;text-overflow:ellipsis;white-space:nowrap}.competition-player-summary-table strong{color:#075fcf;font-size:calc(13px * var(--app-font-scale,1))}.competition-win-count,.competition-loss-count{display:inline-grid;place-items:center;min-width:28px;padding:4px 6px;border-radius:8px;font-weight:900}.competition-win-count{color:#087052;background:#ddf8ec}.competition-loss-count{color:#b42318;background:#ffe8ea}.competition-win-rate{position:relative;display:block;overflow:hidden;min-width:62px;height:27px;border-radius:8px;background:#edf2f7}.competition-win-rate i{position:absolute;inset:0 auto 0 0;background:#bcebd7}.competition-win-rate b{position:relative;z-index:1;display:grid;place-items:center;height:100%;color:#164f3d;font-size:calc(8px * var(--app-font-scale,1))}

@media(max-width:1150px){.competition-archive-layout{grid-template-columns:1fr}.competition-player-summary-table{min-width:0}}
@media(max-width:720px){
  .competition-archive-filter-card{align-items:stretch;flex-direction:column;gap:11px}.competition-archive-filters{grid-template-columns:1fr 1fr;min-width:0}.competition-archive-kpis{grid-template-columns:1fr 1fr;gap:7px}.competition-archive-kpis article{min-height:68px;padding:9px}.competition-archive-kpis article>span{width:34px;height:34px;flex-basis:34px}.competition-archive-kpis .app-icon{width:17px;height:17px}.competition-archive-kpis b{font-size:calc(14px * var(--app-font-scale,1))}
  .competition-archive-match{grid-template-columns:55px minmax(0,1fr) 23px minmax(0,1fr);gap:4px;padding:6px}.competition-archive-team{padding:6px}.competition-archive-team b{font-size:calc(9px * var(--app-font-scale,1));white-space:normal}.competition-archive-team em{padding:2px 4px}.competition-archive-group>header{align-items:flex-start}.competition-archive-group>header>div{align-items:flex-start;flex-direction:column;gap:2px}
  .competition-player-summary-card{padding:11px}.competition-player-summary-card .competition-archive-card-head{margin-bottom:9px}
  .competition-player-summary-wrap{overflow:hidden;border:1px solid #dce7f1;border-radius:11px}
  .competition-player-summary-table{display:table;width:100%;min-width:0;table-layout:fixed;border-collapse:collapse}
  .competition-player-summary-table thead{display:table-header-group}.competition-player-summary-table tbody{display:table-row-group}.competition-player-summary-table tr{display:table-row;margin:0;padding:0;border:0;background:#fff}
  .competition-player-summary-table th,.competition-player-summary-table td{display:table-cell;padding:7px 2px;border-bottom:1px solid #dce7f1;font-size:calc(7.5px * var(--app-font-scale,1));text-align:center;vertical-align:middle}
  .competition-player-summary-table th{padding:7px 1px;background:#edf4fa;font-size:calc(6.5px * var(--app-font-scale,1));line-height:1.15;white-space:normal}
  .competition-player-summary-table tbody tr:last-child td{border-bottom:0}.competition-player-summary-table td::before{display:none;content:none}
  .competition-player-summary-table th:nth-child(1),.competition-player-summary-table td:nth-child(1){width:38%;text-align:left}.competition-player-summary-table th:nth-child(2),.competition-player-summary-table td:nth-child(2){width:9%}.competition-player-summary-table th:nth-child(3),.competition-player-summary-table td:nth-child(3),.competition-player-summary-table th:nth-child(4),.competition-player-summary-table td:nth-child(4){width:10%}.competition-player-summary-table th:nth-child(5),.competition-player-summary-table td:nth-child(5){width:10%}.competition-player-summary-table th:nth-child(6),.competition-player-summary-table td:nth-child(6){width:23%}
  .competition-player-rank{gap:4px;min-width:0}.competition-player-rank i{width:21px;height:21px;flex-basis:21px;border-radius:7px;font-size:calc(7px * var(--app-font-scale,1))}.competition-player-rank b{min-width:0;font-size:calc(8px * var(--app-font-scale,1))}
  .competition-player-summary-table strong{font-size:calc(11px * var(--app-font-scale,1))}.competition-win-count,.competition-loss-count{min-width:23px;padding:3px 4px;border-radius:7px}
  .competition-win-rate{width:100%;min-width:0;height:25px;border-radius:7px}.competition-win-rate b{font-size:calc(7px * var(--app-font-scale,1))}
}

/* ===== v92: Select members for today's players ===== */
.today-member-picker{position:fixed;inset:0;z-index:2700;display:grid;place-items:center;padding:18px;background:rgba(14,38,63,.6);backdrop-filter:blur(3px)}
.today-member-picker.hidden{display:none!important}
.today-member-picker-dialog{display:flex;flex-direction:column;width:min(650px,100%);max-height:calc(100dvh - 36px);overflow:hidden;border:1px solid #c9dced;border-radius:17px;background:#f8fbff;box-shadow:0 24px 70px rgba(9,31,54,.34);animation:competitionModalIn .18s ease-out}
body.today-member-picker-open{overflow:hidden}
.today-member-picker-head{display:grid;grid-template-columns:40px minmax(0,1fr) 32px;gap:10px;align-items:center;padding:15px 16px;border-bottom:1px solid #dbe7f1;background:#fff}
.today-member-picker-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:#0877f9;background:#e8f3ff}.today-member-picker-icon .app-icon{width:20px;height:20px}
.today-member-picker-head>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.today-member-picker-head b{color:#153b60;font-size:calc(15px * var(--app-font-scale,1))}.today-member-picker-head small{margin-top:2px;color:#6d8296;font-size:calc(9px * var(--app-font-scale,1));line-height:1.35}
.today-member-picker-head>button{width:32px;height:32px;min-height:0;padding:0;border-color:#d4e1ed;background:#fff;color:#5d7187;font-size:calc(20px * var(--app-font-scale,1));line-height:1}
.today-member-picker-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 14px 9px}.today-member-picker-tools button{min-width:0}.today-member-picker-tools>span{grid-column:1/-1;justify-self:start;padding:5px 9px;border-radius:999px;color:#087052;background:#dcf8eb;font-size:calc(9px * var(--app-font-scale,1));font-weight:900}
.today-member-picker-list{display:flex;flex-direction:column;gap:7px;min-height:120px;overflow:auto;margin:0 14px;padding:3px 2px 10px}
.today-member-picker-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid #d9e5f0;border-radius:11px;background:#fff;transition:.16s ease}.today-member-picker-item.is-selected{border-color:#a9dfca;background:#f1fcf7}.today-member-picker-item.is-unselected{background:#fbfcfe}
.today-member-picker-id{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;color:#1266c8;background:#e7f2ff;font-size:calc(9px * var(--app-font-scale,1));font-weight:900}
.today-member-picker-copy{display:flex;flex-direction:column;min-width:0}.today-member-picker-copy b{overflow:hidden;color:#173b60;font-size:calc(11px * var(--app-font-scale,1));text-overflow:ellipsis;white-space:nowrap}.today-member-picker-copy small{margin-top:2px;color:#73879b;font-size:calc(8px * var(--app-font-scale,1))}
.today-member-picker-item .member-toggle{min-width:128px;justify-content:flex-end}.today-member-picker-item .member-toggle-text{min-width:62px}
.today-member-picker-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:8px;padding:11px 14px 14px;border-top:1px solid #dbe7f1;background:#fff}.today-member-picker-actions button{min-width:0;min-height:41px}.today-member-picker-actions .primary{display:flex;align-items:center;justify-content:center;gap:6px}.today-member-picker-actions .app-icon{width:15px;height:15px}

@media(max-width:720px){
  .today-member-picker{padding:9px}.today-member-picker-dialog{max-height:calc(100dvh - 18px);border-radius:14px}
  .today-member-picker-head{grid-template-columns:34px minmax(0,1fr) 30px;padding:11px 10px;gap:8px}.today-member-picker-icon{width:34px;height:34px}.today-member-picker-head b{font-size:calc(12px * var(--app-font-scale,1))}.today-member-picker-head small{font-size:calc(8px * var(--app-font-scale,1))}
  .today-member-picker-tools{padding:9px 9px 7px;gap:6px}.today-member-picker-tools button{padding:7px 5px;font-size:calc(9px * var(--app-font-scale,1))}
  .today-member-picker-list{gap:6px;margin:0 8px;padding-bottom:8px}.today-member-picker-item{grid-template-columns:32px minmax(0,1fr) auto;gap:7px;padding:8px 7px}.today-member-picker-id{width:28px;height:28px}.today-member-picker-copy b{font-size:calc(10px * var(--app-font-scale,1))}.today-member-picker-copy small{font-size:calc(7px * var(--app-font-scale,1))}
  .today-member-picker-item .member-toggle{min-width:104px;gap:5px}.today-member-picker-item .member-toggle-text{min-width:48px;font-size:calc(8px * var(--app-font-scale,1))}
  .today-member-picker-actions{padding:9px;grid-template-columns:1fr 1.45fr}.today-member-picker-actions button{padding:7px 5px;font-size:calc(9px * var(--app-font-scale,1))}
}

/* ===== v93: Competition results dashboard ===== */
.competition-history-page-head{margin-bottom:14px}.competition-history-page-head .page-icon{color:#0877f9;background:#e8f3ff}
.competition-archive-filter-card{margin-bottom:14px;background:linear-gradient(135deg,#fff 0%,#f7fbff 100%)}
.competition-archive-filters{grid-template-columns:minmax(150px,1fr) minmax(190px,1.2fr) minmax(150px,.9fr);min-width:min(650px,60%)}
.competition-dashboard-layout{display:grid;grid-template-columns:minmax(330px,.92fr) minmax(520px,1.52fr) minmax(310px,.86fr);gap:14px;align-items:start}
.competition-dashboard-layout>.card,.competition-dashboard-center>.card{margin:0;min-width:0}
.competition-dashboard-center{display:flex;min-width:0;flex-direction:column;gap:14px}
.competition-dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0}
.competition-dashboard-kpis article{min-height:88px;padding:12px}
.competition-dashboard-kpis article>div{min-width:0}.competition-dashboard-kpis article>div>small{display:block;overflow:hidden;margin-top:3px;color:#8393a4;font-size:calc(7.5px * var(--app-font-scale,1));font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.competition-dashboard-kpis .average{color:#0b70da;background:#e8f3ff}.competition-dashboard-kpis .balance{color:#0b8763;background:#dff8ed}.competition-dashboard-kpis .mvp{color:#c88708;background:#fff2c9}
.competition-dashboard-kpis .competition-team-balance-card,.competition-dashboard-kpis .competition-mvp-card{align-items:flex-start}
.competition-team-balance-card>div{width:100%}.competition-team-balance{margin-top:7px}.competition-team-balance-labels{display:flex;align-items:center;justify-content:space-between;gap:8px}.competition-team-balance-labels b{margin:0!important;color:#34546f!important;font-size:calc(8px * var(--app-font-scale,1))!important}.competition-team-balance-track{position:relative;overflow:hidden;height:9px;margin-top:5px;border-radius:999px;background:#ffb48f}.competition-team-balance-track i{display:block;height:100%;border-right:2px solid #fff;background:#14af7a}
.competition-mvp-card{background:linear-gradient(135deg,#fff 0%,#fffaf0 100%)!important}.competition-mvp-card b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.competition-archive-card-head h3 small{color:#52718d;font-size:.65em;font-weight:800}
.competition-dashboard-leaderboard .competition-player-summary-wrap{max-height:750px}.competition-dashboard-leaderboard .competition-player-summary-table{min-width:0}.competition-dashboard-leaderboard .competition-player-summary-table tbody tr.is-mvp{background:linear-gradient(90deg,#fff8dd 0%,#fff 78%)}.competition-dashboard-leaderboard .competition-player-summary-table tbody tr.is-mvp .competition-player-rank i{color:#8a5a00;background:#ffe7a0}.competition-dashboard-leaderboard .competition-player-summary-table tbody tr.is-mvp .competition-player-rank b::after{content:' MVP';margin-left:5px;color:#a96c00;font-size:calc(6px * var(--app-font-scale,1));font-weight:900}
.competition-chemistry-card{padding:14px}.competition-chemistry-table-wrap{overflow:auto;border:1px solid #d8e5f0;border-radius:11px}.competition-chemistry-table{width:100%;min-width:620px;border-collapse:separate;border-spacing:2px;background:#edf3f8}.competition-chemistry-table th,.competition-chemistry-table td{height:54px;padding:5px;text-align:center}.competition-chemistry-table th{max-width:88px;color:#315570;background:#fff;font-size:calc(7.5px * var(--app-font-scale,1));font-weight:900;line-height:1.2}.competition-chemistry-table thead th:first-child{position:sticky;left:0;z-index:2;min-width:86px}.competition-chemistry-table tbody th{position:sticky;left:0;z-index:1;min-width:86px;text-align:left}.competition-chemistry-table td{min-width:64px;color:#143b60}.competition-chemistry-table td b{display:block;font-size:calc(10px * var(--app-font-scale,1))}.competition-chemistry-table td small{display:block;margin-top:2px;font-size:calc(6.5px * var(--app-font-scale,1));font-weight:800}.competition-chemistry-table .chemistry-high{background:#98dfbe}.competition-chemistry-table .chemistry-medium{background:#e9d99d}.competition-chemistry-table .chemistry-low{background:#f3ada2}.competition-chemistry-table .chemistry-empty{color:#8b9aaa;background:#f6f8fa}.competition-chemistry-table .chemistry-self{color:#fff;background:#159468}
.competition-chemistry-legend{display:flex;align-items:center;gap:11px;margin-top:9px;color:#60768b;font-size:calc(7px * var(--app-font-scale,1));font-weight:800}.competition-chemistry-legend span{display:flex;align-items:center;gap:4px}.competition-chemistry-legend i{width:9px;height:9px;border-radius:3px}.competition-chemistry-legend i.high{background:#98dfbe}.competition-chemistry-legend i.medium{background:#e9d99d}.competition-chemistry-legend i.low{background:#f3ada2}.competition-chemistry-legend small{margin-left:auto;font-size:inherit}
.competition-chemistry-mobile-list{display:none}
.competition-dashboard-feed{padding:14px}.competition-dashboard-feed .competition-archive-records{max-height:none;overflow:visible;padding-right:0}.competition-dashboard-feed .competition-archive-group{border:0;border-radius:0;background:transparent}.competition-dashboard-feed .competition-archive-group+ .competition-archive-group{padding-top:10px;border-top:1px solid #d9e5ef}.competition-dashboard-feed .competition-archive-group>header{position:static;inset:auto;width:100%;height:auto;margin:0;padding:7px 8px;border:0;border-radius:8px;background:#eef5fc;box-shadow:none;backdrop-filter:none}.competition-dashboard-feed .competition-archive-group>header>div{align-items:flex-start;flex-direction:column;gap:1px}.competition-dashboard-feed .competition-archive-match-list{gap:4px;padding:6px 0}.competition-dashboard-feed .competition-archive-match{grid-template-columns:47px minmax(0,1fr) 18px minmax(0,1fr);gap:4px;padding:6px 2px;border-width:0 0 1px;border-radius:0}.competition-dashboard-feed .competition-archive-match:last-child{border-bottom:0}.competition-dashboard-feed .competition-archive-match-number b{font-size:calc(9px * var(--app-font-scale,1))}.competition-dashboard-feed .competition-archive-team{padding:6px}.competition-dashboard-feed .competition-archive-team b{font-size:calc(8px * var(--app-font-scale,1));white-space:normal}.competition-dashboard-feed .competition-archive-team em{font-size:calc(6px * var(--app-font-scale,1))}.competition-dashboard-feed .competition-archive-empty{min-height:300px}

@media(min-width:901px){
  body:not(.line-share-mode):not(.table-only-capture-mode) .competition-dashboard-feed .competition-archive-group>header{position:static;top:auto;z-index:auto;width:100%;height:auto;margin:0;padding:7px 8px}
}

@media(max-width:1400px){
  .competition-dashboard-layout{grid-template-columns:minmax(330px,.85fr) minmax(500px,1.15fr)}
  .competition-dashboard-feed{grid-column:1/-1}.competition-dashboard-feed .competition-archive-records{max-height:none}.competition-dashboard-feed .competition-archive-match{grid-template-columns:64px minmax(0,1fr) 28px minmax(0,1fr)}
}
@media(max-width:980px){
  .competition-archive-filters{min-width:0}.competition-dashboard-layout{grid-template-columns:1fr}.competition-dashboard-feed{grid-column:auto}.competition-dashboard-leaderboard .competition-player-summary-wrap,.competition-dashboard-feed .competition-archive-records{max-height:none}
}
@media(max-width:720px){
  .competition-history-page-head{margin-bottom:10px}.competition-archive-filters{grid-template-columns:1fr 1fr}.competition-archive-filters label:last-child{grid-column:1/-1}.competition-dashboard-layout{gap:9px}.competition-dashboard-center{gap:9px}.competition-dashboard-kpis{grid-template-columns:1fr 1fr;gap:7px}.competition-dashboard-kpis article{min-height:76px}.competition-dashboard-kpis article>div>small{white-space:normal}.competition-chemistry-card,.competition-dashboard-feed{padding:11px}.competition-chemistry-table-wrap{display:none}.competition-chemistry-mobile-list{display:flex;flex-direction:column;gap:7px}.competition-chemistry-pair{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;overflow:hidden;padding:10px;border:1px solid #dce7f1;border-radius:10px;background:#fff}.competition-chemistry-pair-names{display:flex;align-items:center;gap:6px;min-width:0;color:#173b60;font-size:calc(9px * var(--app-font-scale,1));font-weight:900}.competition-chemistry-pair-names span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competition-chemistry-pair-names i{color:#8192a3;font-style:normal}.competition-chemistry-pair-result{display:flex;align-items:center;gap:7px}.competition-chemistry-pair-result small{color:#75889b;font-size:calc(7px * var(--app-font-scale,1));font-weight:800;white-space:nowrap}.competition-chemistry-pair-result b{min-width:42px;text-align:right;font-size:calc(11px * var(--app-font-scale,1))}.competition-chemistry-pair.chemistry-high .competition-chemistry-pair-result b{color:#087052}.competition-chemistry-pair.chemistry-medium .competition-chemistry-pair-result b{color:#9b6c00}.competition-chemistry-pair.chemistry-low .competition-chemistry-pair-result b{color:#b42318}.competition-chemistry-pair-track{grid-column:1/-1;overflow:hidden;height:5px;border-radius:999px;background:#edf2f7}.competition-chemistry-pair-track i{display:block;height:100%;border-radius:inherit}.competition-chemistry-pair.chemistry-high .competition-chemistry-pair-track i{background:#22ad7c}.competition-chemistry-pair.chemistry-medium .competition-chemistry-pair-track i{background:#d9af34}.competition-chemistry-pair.chemistry-low .competition-chemistry-pair-track i{background:#eb756c}.competition-chemistry-legend{align-items:flex-start;flex-wrap:wrap}.competition-chemistry-legend small{width:100%;margin:0}.competition-dashboard-feed .competition-archive-match{grid-template-columns:49px minmax(0,1fr) 20px minmax(0,1fr)}
}

/* ===== v95: Competition data separated by actual sessions ===== */
.competition-round-selector-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;padding:13px 15px;background:linear-gradient(135deg,#fff,#f5faff)}.competition-round-selector-copy{display:flex;align-items:center;gap:9px;min-width:210px}.competition-round-selector-copy>span{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;color:#0877f9;background:#e8f3ff}.competition-round-selector-copy .app-icon{width:19px;height:19px}.competition-round-selector-copy h3{margin:0;color:#153b60;font-size:calc(13px * var(--app-font-scale,1))}.competition-round-selector-copy p{margin:2px 0 0;color:#71859a;font-size:calc(8px * var(--app-font-scale,1))}
.competition-round-tabs{display:flex;flex:1;flex-wrap:wrap;justify-content:flex-end;gap:7px}.competition-round-tabs button{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:180px;min-height:48px;padding:8px 10px;border-color:#cfe0ef;border-radius:10px;color:#365a78;background:#f8fbfe;box-shadow:none;text-align:left}.competition-round-tabs button>span{display:flex;flex-direction:column}.competition-round-tabs button b{color:#173b60;font-size:calc(10px * var(--app-font-scale,1))}.competition-round-tabs button small{margin-top:2px;color:#6f8498;font-size:calc(7px * var(--app-font-scale,1));font-weight:800}.competition-round-tabs button em{padding:4px 7px;border-radius:999px;color:#52708b;background:#eaf1f7;font-size:calc(7px * var(--app-font-scale,1));font-style:normal;font-weight:900;white-space:nowrap}.competition-round-tabs button.active{border-color:#0877f9;color:#fff;background:linear-gradient(135deg,#187ef1,#0869db);box-shadow:0 7px 18px rgba(8,105,219,.2)}.competition-round-tabs button.active b,.competition-round-tabs button.active small{color:#fff}.competition-round-tabs button.active em{color:#075fc5;background:#fff}
.competition-archive-round-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:-4px 0 14px;padding:10px;border:1px solid #d9e5f0;border-radius:12px;background:#fff}.competition-archive-round-tabs button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:150px;min-height:40px;padding:7px 10px;border-color:#d4e2ef;border-radius:9px;color:#345a79;background:#f8fbfe;font-weight:900;box-shadow:none}.competition-archive-round-tabs button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competition-archive-round-tabs button small{padding:3px 6px;border-radius:999px;color:#60778d;background:#eaf1f7;font-size:calc(7px * var(--app-font-scale,1));white-space:nowrap}.competition-archive-round-tabs button.active{border-color:#0877f9;color:#fff;background:#0877f9}.competition-archive-round-tabs button.active small{color:#0761c9;background:#fff}

@media(max-width:900px){
  .competition-round-selector-card{align-items:stretch;flex-direction:column}.competition-round-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch}.competition-round-tabs button{min-width:0}.competition-archive-round-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.competition-archive-round-tabs button{min-width:0}
}
@media(max-width:560px){
  .competition-round-selector-card{gap:10px;padding:10px}.competition-round-tabs{grid-template-columns:1fr}.competition-round-tabs button{width:100%;min-height:45px}.competition-archive-round-tabs{grid-template-columns:1fr 1fr;gap:6px;padding:8px}.competition-archive-round-tabs button{min-height:38px;padding:6px 7px;font-size:calc(8px * var(--app-font-scale,1))}.competition-archive-round-tabs button:first-child:last-child{grid-column:1/-1}
}

/* ===== v96: Confirm competition round before publishing results ===== */
.competition-round-tabs button em{display:flex;align-items:flex-end;flex-direction:column;gap:2px}.competition-round-tabs button em strong{color:#8b6400;font-size:calc(6.5px * var(--app-font-scale,1));font-weight:900}.competition-round-tabs button.is-confirmed:not(.active){border-color:#83d5b6;background:#effbf6}.competition-round-tabs button.is-confirmed:not(.active) em strong{color:#087052}.competition-round-tabs button.needs-confirmation:not(.active) em strong{color:#b66b00}.competition-round-tabs button.active em strong{color:#087052}
.competition-history-actions{display:flex!important;flex:0 0 auto!important;gap:7px}.competition-history-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:39px;padding:8px 11px}.competition-history-actions .app-icon{width:16px;height:16px}.competition-confirm-round{border-color:#7fd1b2;color:#087052;background:#effbf6;font-weight:900}.competition-confirm-round:hover:not(:disabled){border-color:#0aa574;color:#fff;background:#0aa574}.competition-confirm-round.is-confirmed,.competition-confirm-round:disabled.is-confirmed{border-color:#b7e5d2;color:#087052;background:#dcf7eb}.competition-confirm-round:disabled:not(.is-confirmed){border-color:#dbe5ef;color:#899bad;background:#f3f6f9;cursor:not-allowed}
@media(max-width:720px){
  .competition-history-actions{display:grid!important;grid-template-columns:1fr 1fr;width:100%}.competition-history-actions button{width:100%;min-width:0}.competition-round-tabs button em{align-items:flex-end}
}
@media(max-width:430px){
  .competition-history-actions{grid-template-columns:1fr}
}
