
/* Standalone tournament budget studio. No global overrides. */
.cs-budget{display:block!important;max-width:1280px;margin:0 auto;padding:24px 16px 60px}
.cs-budget *{box-sizing:border-box}
.cs-budget .csb-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:24px}
.cs-budget .csb-heading h2{font-size:clamp(27px,3vw,42px);margin:8px 0;color:#fff;letter-spacing:-.035em}
.cs-budget .csb-heading p,.cs-budget .csb-card-head p,.cs-budget .csb-hint,.cs-budget .csb-privacy{color:#aeb9c7;line-height:1.65}
.cs-budget .csb-tag{padding:9px 12px;border:1px solid #885832;border-radius:100px;color:#f4cf9c;font-size:11px;font-weight:800;letter-spacing:.09em}
.cs-budget .csb-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(290px,1fr);gap:20px;align-items:start}
.cs-budget .csb-main{display:grid;gap:20px;min-width:0}
.cs-budget .csb-card{background:linear-gradient(155deg,#151c2a,#0e131d)!important;color:#f5f7fb!important;border:1px solid #304054!important;border-radius:18px;padding:clamp(17px,2.3vw,28px);box-shadow:0 12px 38px #0003;min-width:0}
.cs-budget .csb-card-head{margin-bottom:20px}
.cs-budget .csb-card-head h3{color:#f7f8fc;font-size:clamp(18px,2vw,23px);margin:0 0 6px}
.cs-budget .csb-card-head p{margin:0;font-size:13px}
.cs-budget .csb-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cs-budget label{display:grid;gap:7px;color:#d5dce7;font-size:12px;font-weight:700;min-width:0}
.cs-budget input,.cs-budget select{width:100%;min-width:0;border:1px solid #40516b!important;background:#0a111d!important;color:#fff!important;border-radius:9px;padding:12px 11px;font:inherit;font-size:14px;min-height:45px}
.cs-budget input:focus,.cs-budget select:focus{outline:2px solid #d7a36b;outline-offset:2px}
.cs-budget input:invalid{border-color:#ef6666!important}
.cs-budget .csb-hint{font-size:12px;margin:13px 0 0}
.cs-budget .csb-rows{display:grid;gap:12px;margin-bottom:17px}
.cs-budget .csb-row{display:grid;grid-template-columns:minmax(145px,2fr) minmax(115px,1.3fr) 75px 115px minmax(90px,1fr) 36px;align-items:end;gap:9px;padding:13px;border:1px solid #263549;background:#111a29;border-radius:12px}
.cs-budget #csb-income .csb-row{grid-template-columns:minmax(170px,2fr) 75px 115px minmax(90px,1fr) 36px}
.cs-budget .csb-row-total{display:grid;gap:7px;min-width:0;padding-bottom:11px}
.cs-budget .csb-row-total small{font-size:11px;color:#9caec1}
.cs-budget .csb-row-total strong{font-size:12px;color:#ffdbac;overflow-wrap:anywhere}
.cs-budget .csb-button{display:inline-flex;align-items:center;justify-content:center;text-align:center;cursor:pointer;min-height:43px;padding:11px 16px;border-radius:10px;border:1px solid #bd8150;background:#b9753f;color:#fff!important;font-weight:800;font-size:13px}
.cs-budget .csb-button:hover{filter:brightness(1.12)}
.cs-budget .csb-secondary{background:#172336;border-color:#44556b}
.cs-budget .csb-remove{height:43px;cursor:pointer;border-radius:9px;border:1px solid #674047;background:#341e27;color:#ffb7c1;font-size:22px}
.cs-budget .csb-summary{position:sticky;top:24px}
.cs-budget .csb-metric{display:grid;gap:8px;border-bottom:1px solid #304054;padding:15px 0}
.cs-budget .csb-metric span,.cs-budget .csb-insight span{color:#b9c3d0;font-size:13px}
.cs-budget .csb-metric strong{font-size:clamp(24px,2.8vw,37px);line-height:1.15;overflow-wrap:anywhere}
.cs-budget .csb-highlight{padding:18px;background:#1b2a3f;border:1px solid #41556d;border-radius:11px;margin-top:15px}
.cs-budget .csb-negative{color:#ffaaa8!important}
.cs-budget .csb-detail{display:grid;gap:13px;padding:22px 0;border-bottom:1px solid #304054}
.cs-budget .csb-detail>div{display:flex;justify-content:space-between;gap:15px;font-size:12px}
.cs-budget .csb-detail span{color:#b1bdca}
.cs-budget .csb-detail b{overflow-wrap:anywhere;text-align:right}
.cs-budget .csb-insight{display:grid;gap:7px;padding:18px 0}
.cs-budget .csb-insight strong{font-size:24px;color:#ffd49f;overflow-wrap:anywhere}
.cs-budget .csb-insight small{color:#acb8c7;line-height:1.5}
.cs-budget .csb-status{padding:12px;border-radius:10px;background:#1b2a3d;line-height:1.5;font-size:13px;min-height:44px}
.cs-budget .csb-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.cs-budget .csb-actions button:first-child{grid-column:1/-1}
.cs-budget .csb-privacy{display:block;font-size:11px;margin-top:15px}
.cs-budget .csb-report{margin-top:22px}
.cs-budget .csb-report h4{font-size:17px;color:#f4cf9c;margin:20px 0 12px}
.cs-budget .csb-table-wrap{overflow-x:auto}
.cs-budget table{width:100%;border-collapse:collapse;min-width:540px;font-size:13px}
.cs-budget th,.cs-budget td{padding:12px;text-align:left;border-bottom:1px solid #314057}
.cs-budget th{background:#1a2a3f;color:#fff}
.cs-budget .csb-report-total{padding:15px;background:#1c2d41;border-radius:10px;font-weight:700;overflow-wrap:anywhere}
@media(max-width:1050px){
 .cs-budget .csb-layout{grid-template-columns:1fr}
 .cs-budget .csb-summary{position:static}
}
@media(max-width:760px){
 .cs-budget .csb-row,.cs-budget #csb-income .csb-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cs-budget .csb-row .csb-itemname{grid-column:1/-1}
 .cs-budget .csb-row-total{padding:0 0 10px}
 .cs-budget .csb-remove{justify-self:end;width:44px}
}
@media(max-width:480px){
 .cs-budget{padding:18px 10px 40px}
 .cs-budget .csb-grid{grid-template-columns:1fr}
 .cs-budget .csb-card{padding:16px}
 .cs-budget .csb-heading h2{font-size:27px}
}
@media print{
 @page{size:A4 portrait;margin:12mm}
 body *{visibility:hidden!important}
 #csb-report,#csb-report *{visibility:visible!important}
 #csb-report{position:absolute!important;left:0!important;top:0!important;width:100%!important;max-width:none!important;background:#fff!important;color:#111!important;border:0!important;box-shadow:none!important}
 #csb-report *{color:#111!important;background:#fff!important;box-shadow:none!important}
 #csb-report table{min-width:0}
 #csb-report td,#csb-report th{border-color:#ccc!important}
 #csb-report tr{break-inside:avoid}
}


/* CRICSTARS BUDGET RESPONSIVE V2.1 */

/* Prevent text, tables and controls from expanding the viewport */
.cs-budget,
.cs-budget .csb-layout,
.cs-budget .csb-main,
.cs-budget .csb-card,
.cs-budget .csb-grid,
.cs-budget .csb-row,
.cs-budget .csb-summary {
  min-width: 0;
  max-width: 100%;
}

.cs-budget {
  width: 100%;
  margin-inline: auto;
  overflow-wrap: break-word;
}

.cs-budget .csb-layout > *,
.cs-budget .csb-grid > *,
.cs-budget .csb-row > * {
  min-width: 0;
}

.cs-budget input,
.cs-budget select,
.cs-budget button {
  max-width: 100%;
  box-sizing: border-box;
}

.cs-budget input,
.cs-budget select {
  font-size: 16px;
  line-height: 1.3;
}

.cs-budget .csb-button,
.cs-budget .csb-remove {
  min-height: 44px;
  touch-action: manipulation;
}

.cs-budget button:focus-visible,
.cs-budget input:focus-visible,
.cs-budget select:focus-visible {
  outline: 3px solid #ffcb86;
  outline-offset: 3px;
}

.cs-budget .csb-metric strong,
.cs-budget .csb-insight strong,
.cs-budget .csb-detail b {
  overflow-wrap: anywhere;
  word-break: normal;
  font-variant-numeric: tabular-nums;
}

.cs-budget .csb-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}

.cs-budget .csb-table-wrap:focus-visible {
  outline: 3px solid #ffcb86;
}

/* Even on desktop, the editor column cannot fit six wide
   expense-row columns comfortably. Use adaptive two-column rows. */
.cs-budget .csb-row,
.cs-budget #csb-income .csb-row {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: end;
  gap: 12px;
}

.cs-budget .csb-row .csb-itemname {
  grid-column: 1 / -1;
}

.cs-budget .csb-row-total {
  align-self: end;
  padding: 0 0 9px;
}

.cs-budget .csb-remove {
  width: 44px;
  justify-self: end;
  align-self: end;
}

.cs-budget .csb-row-total strong {
  font-size: 14px;
}

.cs-budget .csb-summary {
  top: 18px;
}

/* Tablets and narrower laptops */
@media (max-width: 1100px) {
  .cs-budget .csb-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .cs-budget .csb-summary {
    position: static;
  }

  .cs-budget {
    padding-inline: clamp(12px, 2.5vw, 24px);
  }
}

/* Phones and small tablets */
@media (max-width: 600px) {
  .cs-budget {
    padding: 16px 10px 36px;
  }

  .cs-budget .csb-layout,
  .cs-budget .csb-main {
    gap: 14px;
  }

  .cs-budget .csb-card {
    padding: 16px;
    border-radius: 14px;
  }

  .cs-budget .csb-heading {
    gap: 12px;
    margin-bottom: 16px;
  }

  .cs-budget .csb-heading h2 {
    font-size: clamp(24px, 6.5vw, 32px);
    line-height: 1.12;
    overflow-wrap: anywhere;
  }

  .cs-budget .csb-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 13px;
  }

  .cs-budget .csb-tag {
    font-size: 10px;
    white-space: normal;
  }

  .cs-budget .csb-button {
    width: 100%;
  }

  .cs-budget .csb-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  .cs-budget .csb-actions button:first-child {
    grid-column: auto;
  }

  .cs-budget .csb-metric strong {
    font-size: clamp(24px, 7vw, 34px);
  }

  .cs-budget .csb-detail > div {
    align-items: flex-start;
  }

  .cs-budget .csb-detail b {
    max-width: 58%;
  }

  .cs-budget .csb-table-wrap {
    border: 1px solid #304054;
    border-radius: 9px;
  }
}

/* Small phones, including 320px viewports */
@media (max-width: 390px) {
  .cs-budget {
    padding-inline: 8px;
  }

  .cs-budget .csb-card {
    padding: 12px;
  }

  .cs-budget .csb-row,
  .cs-budget #csb-income .csb-row {
    grid-template-columns: minmax(0, 1fr);
    padding: 12px;
    gap: 10px;
  }

  .cs-budget .csb-row .csb-itemname {
    grid-column: auto;
  }

  .cs-budget .csb-row-total {
    padding: 0;
  }

  .cs-budget .csb-remove {
    justify-self: end;
  }

  .cs-budget .csb-card-head h3 {
    font-size: 18px;
  }
}

/* Respect larger text and reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
  .cs-budget *,
  .cs-budget *::before,
  .cs-budget *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

/* Print: fit financial tables within the A4 printable area */
@media print {
  .cs-budget .csb-report {
    overflow: visible !important;
  }

  .cs-budget .csb-table-wrap {
    overflow: visible !important;
    border: 0 !important;
  }

  .cs-budget .csb-report table {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed;
    font-size: 9pt;
  }

  .cs-budget .csb-report th,
  .cs-budget .csb-report td {
    padding: 5px !important;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .cs-budget .csb-report tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .cs-budget .csb-report h4 {
    break-after: avoid;
    page-break-after: avoid;
  }
}
