/* =====================================================================
   GST RECOVERY REDESIGN — Generate Arrear Notice wizard
   ===================================================================== */

/* ---- Tabs — Generate Arrear Notice ----
   Chip-style tabs instead of the shared underline-tab look .tab uses
   elsewhere (Reports etc. keep the old style — this is scoped to
   #page-bulknotice only). Each tab is its own white/bordered pill; the
   active tab (Issue Notice by default) gets a light blue fill, blue
   text/icon and a strong blue bottom edge. The other five keep a plain
   white background but get a single restrained colour on their icon only
   — enough to tell them apart at a glance without turning the whole row
   into a rainbow. */
#page-bulknotice .tabs {
  border-bottom: 1px solid var(--border); padding-bottom: 14px; margin-bottom: 26px; gap: 10px;
}
#page-bulknotice .tabs .tab {
  background: transparent; border: 1px solid transparent; border-radius: 10px;
  padding: 13px 18px; font-size: 14.5px; font-weight: 600; gap: 9px; margin-bottom: 0;
  color: var(--navy-text); box-shadow: none;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
#page-bulknotice .tabs .tab i { font-size: 15px; color: var(--ink3); transition: color 0.15s, filter 0.15s; }
#page-bulknotice .tabs .tab:hover { background: var(--surface-2); }

/* Per-tab icon accents — restrained, icon only, applied before the
   .active override below so an active tab's icon always wins blue
   regardless of which tab it is. Slightly desaturated so the row reads
   as one cohesive nav strip rather than a set of individually-branded
   buttons — the active tab (untouched below) stays the one full-strength
   colour in the row. */
#page-bulknotice .tabs .tab:not(.active) i { filter: saturate(65%); }
#page-bulknotice .tabs .tab[data-tab="all"] i        { color: var(--purple); }
#page-bulknotice .tabs .tab[data-tab="bankatt"] i    { color: var(--gold); }
#page-bulknotice .tabs .tab[data-tab="bankrelease"] i { color: #0891B2; }
#page-bulknotice .tabs .tab[data-tab="thirdparty"] i { color: var(--success); }
#page-bulknotice .tabs .tab[data-tab="property"] i   { color: #E4572E; }

#page-bulknotice .tabs .tab.active {
  background: var(--primary-blue-dim); color: var(--primary-blue); font-weight: 700;
  border-color: var(--primary-blue-border); border-bottom: 3px solid var(--primary-blue);
}
#page-bulknotice .tabs .tab.active:hover { background: var(--primary-blue-dim); }
#page-bulknotice .tabs .tab.active i { color: var(--primary-blue); }

/* ---- Search GSTIN / step cards — more breathing room than the compact
   version .wizard-card uses on the Data Upload page (left untouched
   there; this override is scoped to #page-bulknotice only). ---- */
#page-bulknotice .wizard-card { padding: 26px 28px; border-radius: 14px; margin-bottom: 20px; }
#page-bulknotice .wizard-card-head { gap: 14px; margin-bottom: 18px; }
#page-bulknotice .wizard-num { width: 34px; height: 34px; font-size: 15px; }
#page-bulknotice .wizard-card-title { font-size: 19px; }
#page-bulknotice .wizard-card-sub { font-size: 13.5px; margin-top: 4px; }

#page-bulknotice .wizard-card .fg label { color: var(--navy-text); font-weight: 700; font-size: 12.5px; letter-spacing: 0.2px; }
#page-bulknotice .wizard-card .btn-blue { height: 46px; border-radius: 10px; padding: 0 22px; font-size: 14px; }

/* ---- Upload DCR / Upload Taxpayer Register — clean outlined pill
   buttons instead of the compact .btn-sm treatment. ---- */
.wiz-upload-actions { margin-top: 4px; display: flex; gap: 10px; flex-wrap: wrap; }
.wiz-upload-actions .btn { height: 44px; padding: 0 20px; border-radius: 10px; font-size: 13.5px; font-weight: 600; }


/* ---- Upload cards ---- */
.upload-cards { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); margin-bottom: var(--sp-4); }
.upload-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: 16px 18px; cursor: pointer; transition: border-color 0.15s, box-shadow 0.15s;
}
.upload-card:hover { border-color: var(--primary-blue-border); box-shadow: var(--shadow-sm); }
.upload-card.done { border-color: var(--success-border); }
.upload-card.dragover { border-color: var(--primary-blue); background: var(--primary-blue-dim); }
.uc-head { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; }
.uc-icon { font-size: 19px; flex-shrink: 0; margin-top: 1px; }
.uc-icon-done { color: var(--success); }
.uc-icon-pending { color: var(--border-strong); }
.uc-head-text { flex: 1; min-width: 0; }
.uc-title { font-size: 14px; font-weight: 700; color: var(--navy-text); }
.uc-sub { font-size: 11.5px; color: var(--muted-text); margin-top: 1px; }
.uc-pill { font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 999px; flex-shrink: 0; white-space: nowrap; }
.uc-pill-done { background: var(--success-dim); color: var(--success); }
.uc-pill-pending { background: var(--surface-3); color: var(--ink3); }
.uc-file-row { display: flex; align-items: center; gap: 8px; background: var(--surface-2); border-radius: var(--radius-md); padding: 8px 12px; }
.uc-file-icon { color: var(--success); font-size: 14px; flex-shrink: 0; }
.uc-file-name { flex: 1; min-width: 0; font-size: 12px; color: var(--navy-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uc-file-size { font-size: 11px; color: var(--muted-text); flex-shrink: 0; }
.uc-file-ok { color: var(--success); font-size: 12px; flex-shrink: 0; }
.uc-status { font-size: 12px; font-weight: 600; margin-top: 8px; }
.uc-status.ok { color: var(--success); }
.uc-dropzone {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  padding: 22px 10px; border: 1.5px dashed var(--border-strong); border-radius: var(--radius-md);
  color: var(--muted-text); font-size: 12px; text-align: center;
}
.uc-dropzone i { font-size: 20px; color: var(--primary-blue); }
.upload-cards-single { max-width: 560px; margin-bottom: var(--sp-4); }

.wizard-log-wrap { margin-bottom: var(--sp-4); display: none; }
.wizard-log-wrap.show { display: block; }

/* ---- DCR panel — larger, recurring multi-quarter/year upload + reconciliation ---- */
.dcr-panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 22px 24px; margin-bottom: var(--sp-4); box-shadow: var(--shadow-sm); }
.dcr-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-4); flex-wrap: wrap; padding-bottom: 18px; border-bottom: 1px solid var(--border); margin-bottom: 20px; }
.dcr-head-left { display: flex; gap: 12px; align-items: flex-start; }
.dcr-head-icon { font-size: 26px; flex-shrink: 0; margin-top: 2px; }
.dcr-head-icon.done { color: var(--success); }
.dcr-head-icon.pending { color: var(--border-strong); }
.dcr-title { font-size: 17px; font-weight: 700; color: var(--navy-text); }
.dcr-title-sub { font-size: 13px; font-weight: 500; color: var(--muted-text); margin-left: 4px; }
.dcr-desc { font-size: 12.5px; color: var(--muted-text); margin-top: 4px; max-width: 560px; line-height: 1.45; }
.dcr-head-right { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.dcr-last-uploaded { text-align: right; margin-right: 2px; }
.dlu-label { font-size: 10.5px; color: var(--ink3); text-transform: uppercase; letter-spacing: 0.4px; font-weight: 700; }
.dlu-val { font-size: 13px; font-weight: 700; color: var(--navy-text); margin-top: 2px; }

.btn-danger-outline { background: var(--surface); color: var(--danger); border-color: var(--danger-border); }
.btn-danger-outline:hover { background: var(--danger-dim); }

/* Two columns (dropzone | summary) — the summary column is wider since the
   Reconciliation Summary's 3-per-row tiles need more room than an even
   split gives them; the dropzone itself doesn't need much width to stay
   usable. */
.dcr-upload-row { display: grid; grid-template-columns: 0.85fr 1.3fr; gap: var(--sp-4); margin-bottom: 22px; align-items: stretch; }
.dcr-col-label { font-size: 12.5px; font-weight: 700; color: var(--navy-text); margin-bottom: 10px; display: flex; align-items: center; gap: 6px; }
.dcr-col-label i { color: var(--primary-blue); }

.dcr-dropzone {
  border: 1.5px dashed var(--border-strong); border-radius: var(--radius-md); padding: 26px 16px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  text-align: center; color: var(--muted-text); font-size: 13px; transition: border-color 0.15s, background 0.15s; min-height: 150px;
}
.dcr-dropzone-icon {
  width: 46px; height: 46px; border-radius: 50%; background: var(--primary-blue-dim);
  display: flex; align-items: center; justify-content: center; margin-bottom: 4px;
}
.dcr-dropzone-icon i { font-size: 19px; color: var(--primary-blue); }
.dcr-dropzone-title { font-weight: 600; color: var(--navy-text); font-size: 13px; }
.dcr-dropzone.dragover { border-color: var(--primary-blue); background: var(--primary-blue-dim); }
.dcr-dropzone.dragover .dcr-dropzone-icon { background: #fff; }
.dcr-or { font-size: 11px; color: var(--ink3); }
.dcr-dropzone-format { font-size: 10.5px; color: var(--ink3); margin-top: 6px; }

.dcr-pending-chips { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; }
.dcr-chip { display: flex; align-items: center; gap: 8px; background: var(--surface-2); border-radius: var(--radius-sm); padding: 6px 10px; font-size: 11.5px; color: var(--navy-text); }
.dcr-chip i.fa-file-excel { color: var(--success); }
.dcr-chip span:nth-child(2) { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dcr-chip-count { color: var(--muted-text); flex-shrink: 0; }
.dcr-chip-remove { background: none; border: none; color: var(--ink3); cursor: pointer; padding: 2px 4px; flex-shrink: 0; }
.dcr-chip-remove:hover { color: var(--danger); }

.dcr-upload-summary { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 16px; display: flex; flex-direction: column; }
.dcr-summary-hint { font-size: 11px; color: var(--ink3); margin-top: 10px; line-height: 1.4; }

/* Stat tiles for the summary column — same "colour stripe + label + value"
   language as the app's .scard KPI tiles elsewhere, so this reads as a
   real dashboard snapshot rather than a flat list of numbers. The .hero
   tile (Total Pending / Files Selected) spans the full row and gets a
   visibly bigger number, since that's the one figure worth noticing at a
   glance — same idea as the Arrear Action Register's Balance Arrear tile. */
.dcr-mini-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.dcr-mini-stat {
  background: #fff; border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: 10px 12px; position: relative; overflow: hidden;
  min-width: 0; /* grid items don't shrink below their content's natural width
                   by default — without this, a long number (a real-world
                   pending total can run to 12+ digits) overflows the tile
                   instead of wrapping, since the track refuses to shrink
                   past it. */
}
.dcr-mini-stat::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; }
.dcr-mini-stat.hero { grid-column: 1 / -1; padding: 14px 16px; }
.dms-label { font-size: 10px; font-weight: 700; color: var(--ink3); text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 5px; }
.dms-val { font-family: var(--font-mono); font-size: 14px; font-weight: 500; color: var(--navy-text); line-height: 1.2; overflow-wrap: break-word; }
.dcr-mini-stat.hero .dms-val { font-size: 20px; }
.dms-muted { color: var(--ink3); font-style: italic; font-family: var(--font-ui); font-weight: 500; }

.dcr-mini-stat.red::before { background: var(--danger); }
.dcr-mini-stat.red .dms-val { color: var(--danger); }
.dcr-mini-stat.blue::before { background: var(--primary-blue); }
.dcr-mini-stat.blue .dms-val { color: var(--primary-blue); }
.dcr-mini-stat.purple::before { background: var(--purple); }
.dcr-mini-stat.purple .dms-val { color: var(--purple); }
.dcr-mini-stat.gold::before { background: var(--gold); }
.dcr-mini-stat.gold .dms-val { color: var(--gold); }
.dcr-mini-stat.green::before { background: var(--success); }
.dcr-mini-stat.green .dms-val { color: var(--success); }

@media (max-width: 520px) {
  .dcr-mini-stats { grid-template-columns: 1fr 1fr; }
}
.dcr-reconcile-btn { margin-top: 12px; justify-content: center; width: 100%; }

.dcr-recon-wrap { border-top: 1px solid var(--border); padding-top: 20px; margin-bottom: 22px; }
.dcr-recon-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }

/* Reconciliation tiles — a tinted, bordered card per figure (not the plain
   white-with-top-stripe .scard look) so each one reads as its own colour
   category at a glance, matching the 3-per-row layout the officer asked
   to see here. */
.dcr-recon-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 10px; }
.dcr-recon-tile { border-radius: var(--radius-sm); border: 1px solid; padding: 7px 10px; min-width: 0; }
.drt-head { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.drt-icon { width: 18px; height: 18px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; font-size: 9px; flex-shrink: 0; }
.drt-label { font-size: 9.5px; font-weight: 700; color: var(--ink3); text-transform: uppercase; letter-spacing: 0.2px; }
.drt-val { font-size: 13.5px; font-weight: 500; font-family: var(--font-mono); overflow-wrap: break-word; }

.dcr-recon-tile.blue   { background: var(--primary-blue-dim); border-color: var(--primary-blue-border); }
.dcr-recon-tile.blue .drt-icon, .dcr-recon-tile.blue .drt-val { color: var(--primary-blue); }
.dcr-recon-tile.green  { background: var(--success-dim); border-color: var(--success-border); }
.dcr-recon-tile.green .drt-icon, .dcr-recon-tile.green .drt-val { color: var(--success); }
.dcr-recon-tile.gold   { background: var(--gold-dim); border-color: var(--gold-border); }
.dcr-recon-tile.gold .drt-icon, .dcr-recon-tile.gold .drt-val { color: var(--gold); }
.dcr-recon-tile.red    { background: var(--danger-dim); border-color: var(--danger-border); }
.dcr-recon-tile.red .drt-icon, .dcr-recon-tile.red .drt-val { color: var(--danger); }
.dcr-recon-tile.purple { background: var(--purple-dim); border-color: var(--purple-border); }
.dcr-recon-tile.purple .drt-icon, .dcr-recon-tile.purple .drt-val { color: var(--purple); }

@media (max-width: 900px) {
  .dcr-recon-tiles { grid-template-columns: repeat(2, 1fr); }
}

.dcr-recon-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.dcr-info-note {
  display: flex; align-items: center; gap: 8px; background: var(--primary-blue-dim); border: 1px solid var(--primary-blue-border);
  border-radius: var(--radius-md); padding: 10px 14px; font-size: 12.5px; color: var(--navy-text);
}
.dcr-info-note i { color: var(--primary-blue); }

/* ---- Data Upload page — DCR panel, then Taxpayer Register panel below it ---- */
/* DCR and Taxpayer Register stack (DCR on top) rather than sitting side by
   side — each panel already runs its own internal multi-column layout
   (upload zone + summary, or the three register-status zones), so a side
   by side page layout squeezed both into half-width columns and made the
   Taxpayer Register's file table/stat tiles cramped. */
.dataupload-grid { display: grid; grid-template-columns: 1fr; gap: var(--sp-4); align-items: start; }

/* Taxpayer Register panel reuses the DCR panel's card chrome exactly. */
.tpreg-panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 22px 24px; margin-bottom: var(--sp-4); box-shadow: var(--shadow-sm); }

.tpreg-zones { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 18px; }
.tpreg-zone { border-radius: var(--radius-md); padding: 12px; display: flex; flex-direction: column; }
.tpreg-zone-label { font-size: 11.5px; font-weight: 700; display: flex; align-items: center; gap: 6px; margin-bottom: 8px; }
.tpreg-zone-format { font-size: 10.5px; color: var(--ink3); text-align: center; margin-top: 6px; }
.tpreg-dropzone {
  border: 1.5px dashed var(--border-strong); border-radius: var(--radius-sm); padding: 16px 8px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  text-align: center; font-size: 11.5px; color: var(--muted-text); transition: border-color 0.15s, background 0.15s; min-height: 110px;
}
.tpreg-dropzone i.fa-cloud-arrow-up { font-size: 22px; }
.tpreg-dropzone.dragover { background: rgba(255,255,255,0.6); }
.tpreg-or { font-size: 10px; color: var(--ink3); }
.tpreg-choose-btn { color: #fff; border: none; }

.tpreg-zone-green   { background: var(--success-dim); border: 1px solid var(--success-border); }
.tpreg-zone-green   .tpreg-zone-label, .tpreg-zone-green .tpreg-dropzone i.fa-cloud-arrow-up { color: var(--success); }
.tpreg-zone-green   .tpreg-choose-btn { background: var(--success); }
.tpreg-zone-green.dragover, .tpreg-zone-green .tpreg-dropzone.dragover { border-color: var(--success); }

.tpreg-zone-red     { background: var(--danger-dim); border: 1px solid var(--danger-border); }
.tpreg-zone-red     .tpreg-zone-label, .tpreg-zone-red .tpreg-dropzone i.fa-cloud-arrow-up { color: var(--danger); }
.tpreg-zone-red     .tpreg-choose-btn { background: var(--danger); }
.tpreg-zone-red     .tpreg-dropzone.dragover { border-color: var(--danger); }

.tpreg-zone-orange  { background: var(--warning-dim, #FDF1D6); border: 1px solid var(--warning-border, #F5DFA5); }
.tpreg-zone-orange  .tpreg-zone-label, .tpreg-zone-orange .tpreg-dropzone i.fa-cloud-arrow-up { color: var(--warning, #92640A); }
.tpreg-zone-orange  .tpreg-choose-btn { background: var(--warning, #92640A); }
.tpreg-zone-orange  .tpreg-dropzone.dragover { border-color: var(--warning, #92640A); }

@media (max-width: 720px) {
  .tpreg-zones { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .dcr-upload-row { grid-template-columns: 1fr; }
  .dcr-panel-head { flex-direction: column; }
  .dcr-head-right { align-items: flex-start; }
  .dcr-last-uploaded { text-align: left; }
}

/* ---- Data Upload page density pass — the DCR panel and Taxpayer Register
   panel now stack (DCR on top), which roughly doubles the page's total
   height versus the old side-by-side layout. Getting the whole page to
   fit one screen needs more than padding trims: the dropzones go from a
   tall centered box to a single compact row (icon/text/button inline),
   the Reconciliation Summary's 6 cards collapse into slim label:value
   rows, and the uploaded-files tables get a capped height with their own
   internal scrollbar — so a long file list scrolls itself instead of
   growing the page. Scoped to #page-dataupload only; nothing here touches
   .scard/.empty/.ph on any other page. */
#page-dataupload .ph { margin-bottom: 8px; }
#page-dataupload .ph-title { font-size: 19px; }
#page-dataupload .ph-sub { font-size: 11.5px; margin-top: 2px; }
#page-dataupload #tp-reg-summary .stats { gap: 6px; }
#page-dataupload #tp-reg-summary button { height: 28px; margin-top: 8px !important; font-size: 12px; }
#page-dataupload .dataupload-grid { gap: 10px; }
#page-dataupload .dcr-panel, #page-dataupload .tpreg-panel { padding: 10px 14px; margin-bottom: 0; }
#page-dataupload .dcr-panel-head { padding-bottom: 6px; margin-bottom: 8px; }
#page-dataupload .dcr-head-icon { font-size: 18px; }
#page-dataupload .dcr-title { font-size: 14.5px; }
#page-dataupload .dcr-desc { font-size: 11.5px; margin-top: 1px; max-width: 400px; }
#page-dataupload .dcr-panel-head { flex-wrap: nowrap; gap: 10px; }
#page-dataupload .dcr-head-right { gap: 6px; }
#page-dataupload .dcr-head-right .btn { height: 26px; padding: 0 9px; font-size: 11px; }
#page-dataupload .dcr-last-uploaded { margin-right: 0; }
#page-dataupload .dlu-label { font-size: 9px; }
#page-dataupload .dlu-val { font-size: 11.5px; margin-top: 0; }
#page-dataupload .dcr-upload-row { margin-bottom: 8px; }
#page-dataupload .dcr-col-label { margin-bottom: 4px; font-size: 11.5px; }

/* Dropzones: one compact horizontal row instead of a tall centered box.
   Same markup (icon / title / "or" / button / format text), just laid out
   inline — a drop target doesn't need to be a tall box to be clickable. */
#page-dataupload .dcr-dropzone, #page-dataupload .tpreg-dropzone {
  flex-direction: row; flex-wrap: wrap; justify-content: center; min-height: unset;
}
#page-dataupload .dcr-dropzone { padding: 8px 14px; gap: 6px 12px; }
#page-dataupload .dcr-dropzone-icon { width: 22px; height: 22px; background: none; margin-bottom: 0; }
#page-dataupload .dcr-dropzone-icon i { font-size: 15px; }
#page-dataupload .dcr-dropzone-title { font-size: 12px; }
#page-dataupload .dcr-dropzone-format { margin-top: 0; }
#page-dataupload .dcr-pending-chips { margin-top: 6px; }

#page-dataupload .scard { padding: 6px 10px; }
#page-dataupload .slabel { font-size: 9.5px; margin-bottom: 2px; }
#page-dataupload .sval { font-size: 13px; }
#page-dataupload .ssub { font-size: 10px; margin-top: 1px; }
#page-dataupload .dcr-mini-stat { padding: 6px 10px; }
#page-dataupload .dcr-mini-stat.hero { padding: 8px 10px; }
#page-dataupload .dms-label { font-size: 9.5px; margin-bottom: 2px; }
#page-dataupload .dms-val { font-size: 12.5px; }
#page-dataupload .dcr-mini-stat.hero .dms-val { font-size: 15px; }
#page-dataupload .dcr-reconcile-btn { margin-top: 8px; }

#page-dataupload .dcr-recon-head { margin-bottom: 8px; }
#page-dataupload .dcr-recon-head .dcr-col-label { font-size: 12px; }
#page-dataupload .dcr-recon-head .pill { font-size: 10.5px; padding: 2px 8px; }
#page-dataupload .dcr-recon-actions { margin-top: 2px; gap: 8px; }
#page-dataupload .dcr-recon-actions .btn { height: 30px; padding: 0 12px; font-size: 12px; }

#page-dataupload .dcr-info-note { padding: 5px 10px; font-size: 11px; }

#page-dataupload .tpreg-zones { gap: 8px; margin-bottom: 6px; }
#page-dataupload .tpreg-zone { padding: 5px 7px; }
#page-dataupload .tpreg-zone-label { margin-bottom: 4px; font-size: 11px; }
#page-dataupload .tpreg-dropzone { padding: 6px 8px; gap: 4px 8px; }
#page-dataupload .tpreg-dropzone i.fa-cloud-arrow-up { font-size: 14px; }
#page-dataupload .tpreg-zone-format { margin-top: 0; }
#page-dataupload .tpreg-choose-btn.btn { height: 26px; padding: 0 10px; font-size: 11px; }

#page-dataupload .wizard-ready-banner { padding: 8px 14px; margin-bottom: 10px; }

/* ---- Ready-to-generate banner (shown once both uploads succeed) ---- */
.wizard-ready-banner {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  background: var(--primary-blue-dim); border: 1px solid var(--primary-blue-border); border-radius: var(--radius-lg);
  padding: 16px 20px; margin-bottom: var(--sp-4);
}
.wrb-icon { font-size: 26px; color: var(--primary-blue); flex-shrink: 0; }
.wrb-text { flex: 1; min-width: 220px; }
.wrb-title { font-size: 14px; font-weight: 700; color: var(--navy-text); }
.wrb-sub { font-size: 12.5px; color: var(--muted-text); margin-top: 2px; }
.wrb-btn { flex-shrink: 0; }

/* ---- Section cards ---- */
.wizard-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 22px; margin-bottom: var(--sp-4); box-shadow: var(--shadow-sm); }
.wizard-card-head { display: flex; align-items: flex-start; gap: 11px; margin-bottom: 14px; flex-wrap: wrap; }
.wizard-num { width: 22px; height: 22px; border-radius: 50%; background: var(--primary-blue); color: #fff; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; }
.wizard-card-title { font-size: 17px; font-weight: 700; color: var(--navy-text); line-height: 1.3; }
.wizard-card-sub { font-size: 13px; color: var(--muted-text); margin-top: 2px; }
.wiz-flag-legend {
  display: flex; align-items: center; flex-wrap: wrap; gap: 4px; margin: -6px 0 14px;
  padding: 10px 14px; background: var(--surface-3); border: 1px solid var(--border);
  border-radius: var(--radius-md); font-size: 13px; color: var(--muted-text);
}
.wiz-flag-legend .wiz-excluded-badge { margin: 0; }
.wiz-flag-legend-link {
  border: none; background: none; color: var(--primary-blue); cursor: pointer;
  font-size: 13px; font-weight: 700; padding: 0; margin-left: auto;
}
.wiz-flag-legend-link:hover { text-decoration: underline; }
.wiz-exclusion-guide-body h3 { font-size: 14.5px; font-weight: 700; margin: 20px 0 6px; color: var(--navy-text); padding-top: 14px; border-top: 1px solid var(--border); }
.wiz-exclusion-guide-body h3:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.wiz-exclusion-guide-body .wiz-guide-sub { font-size: 12px; color: var(--muted-text); margin: 0 0 10px; }
.wiz-exclusion-guide-body h4 { font-size: 13px; margin: 14px 0 6px; color: var(--navy-text); }
.wiz-exclusion-guide-body h4:first-child { margin-top: 0; }
.wiz-exclusion-guide-body ul { margin: 0; padding-left: 20px; font-size: 13px; color: var(--muted-text); }
.wiz-exclusion-guide-body li { margin-bottom: 3px; }
.wizard-card-head-right { margin-left: auto; text-align: right; }
.wizard-card-head-right .wchr-total-row { display: flex; align-items: baseline; justify-content: flex-end; gap: 8px; margin-top: 6px; white-space: nowrap; }
.wizard-card-head-right .wchr-label { font-size: 11px; color: var(--ink3); letter-spacing: 0.3px; text-transform: uppercase; font-weight: 700; }
.wizard-card-head-right .wchr-val { font-family: var(--font-mono); font-weight: 700; font-size: 17.5px; color: var(--danger); }

/* scrollIntoView(block:'start') targets land right under the sticky tab
   bar (#bulknotice-tabs-section > .tabs) otherwise, hiding the card's own
   title/number under it. */
#page-bulknotice .wizard-card { scroll-margin-top: 76px; }

/* Sticky taxpayer-name strip — pinned just below the sticky tab bar for as
   long as the demand card (and its table) is in view, so the officer can
   confirm which taxpayer they're reviewing no matter how far down a long
   (multi-page) demand table they've scrolled, not just right after the
   auto-scroll lands. Trade name only (taxpayerDisplayName() already falls
   back to legal name when no trade name is on file) — no GSTIN. */
.wiz-taxpayer-sticky { position: sticky; top: 62px; z-index: 39; margin-bottom: 14px; padding: 7px 16px; border-radius: 8px; background: var(--primary-blue-dim); border: 1px solid var(--primary-blue-border); text-align: center; font-size: 13px; font-weight: 700; color: var(--primary-blue); }

/* ---- Quick filter bar (above the demand table) ---- */
.quick-filter-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 16px 0; }
.qf-chip {
  background: var(--surface); border: 1px solid var(--border); color: var(--navy-text); font-family: var(--font-ui);
  font-size: 12.5px; font-weight: 600; padding: 7px 13px; border-radius: 999px; cursor: pointer; transition: all 0.12s;
  display: inline-flex; align-items: center; gap: 7px;
}
.qf-chip:hover { border-color: var(--primary-blue-border); background: var(--primary-blue-dim); }
.qf-chip.active { background: var(--primary-blue); border-color: var(--primary-blue); color: #fff; }
.qf-chip .qf-count {
  background: rgba(15,23,42,0.06); color: inherit; font-family: var(--font-mono); font-size: 11px; font-weight: 700;
  padding: 1px 7px; border-radius: 999px; min-width: 20px; text-align: center;
}
.qf-chip.active .qf-count { background: rgba(255,255,255,0.25); }
.qf-spacer { flex: 1; }

/* ---- Advanced Filters button badge ---- */
.filters-btn { position: relative; }
.filters-badge {
  display: inline-flex; align-items: center; justify-content: center; background: var(--primary-blue); color: #fff;
  font-size: 10.5px; font-weight: 700; min-width: 17px; height: 17px; border-radius: 999px; padding: 0 5px; margin-left: 2px;
}

/* ---- Active filter summary row (above the demand table) ---- */
.active-filter-tags { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
.filter-summary-count { font-size: 12.5px; font-weight: 700; color: var(--navy-text); margin-right: 4px; }
.filter-tag { background: var(--primary-blue-dim); border: 1px solid var(--primary-blue-border); color: var(--primary-blue-dark); font-size: 12px; font-weight: 600; padding: 4px 11px; border-radius: 999px; }
.filter-tag-clear { background: none; border: none; color: var(--danger); font-size: 12px; font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; gap: 5px; margin-left: 4px; }
.filter-tag-clear:hover { text-decoration: underline; }

/* ---- Right-side "Advanced Filters" drawer ---- */
.filter-drawer-overlay {
  position: fixed; inset: 0; background: rgba(15,23,42,0.45); opacity: 0; pointer-events: none;
  transition: opacity 0.18s ease; z-index: 480;
}
.filter-drawer-overlay.show { opacity: 1; pointer-events: auto; }
.filter-drawer {
  position: fixed; top: 0; right: 0; height: 100%; width: 430px; max-width: 92vw; background: var(--surface);
  box-shadow: var(--shadow-lg); transform: translateX(100%); transition: transform 0.22s ease; z-index: 490;
  display: flex; flex-direction: column;
}
.filter-drawer.show { transform: translateX(0); }
.filter-drawer-head { padding: 18px 22px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; }
.filter-drawer-title { font-size: 16px; font-weight: 700; color: var(--navy-text); display: flex; align-items: center; gap: 9px; }
.filter-drawer-title i { color: var(--primary-blue); }
.filter-drawer-body { flex: 1; overflow-y: auto; padding: 20px 22px; }
.filter-drawer-foot { padding: 16px 22px; border-top: 1px solid var(--border); display: flex; justify-content: space-between; gap: 10px; flex-shrink: 0; }

@media (max-width: 480px) {
  .filter-drawer { width: 100vw; max-width: 100vw; }
}

/* ---- Taxpayer info strip: plain horizontal row, label-over-value, no boxed card ---- */
.taxpayer-details-bar {
  display: flex; flex-wrap: wrap; gap: 0; margin-top: 15px; padding-top: 14px; border-top: 1px solid var(--border);
}
.tdb-item { flex: 1; min-width: 130px; padding: 0 18px 0 0; border-right: 1px solid var(--border); }
.tdb-item:last-child { border-right: none; }
.tdb-item.tdb-action { flex: 0 0 auto; display: flex; align-items: center; padding-left: 4px; }
.tdb-label { font-size: 11px; color: var(--ink3); letter-spacing: 0.4px; text-transform: uppercase; font-family: var(--font-ui); font-weight: 700; margin-bottom: 5px; }
.tdb-val { font-size: 15px; font-weight: 700; color: var(--navy-text); }

.eye-btn {
  width: 34px; height: 34px; border-radius: var(--radius-md); border: 1px solid var(--border);
  background: var(--surface); color: var(--primary-blue); cursor: pointer; display: flex; align-items: center;
  justify-content: center; font-size: 14px; transition: background 0.12s, border-color 0.12s;
}
.eye-btn:hover { background: var(--primary-blue-dim); border-color: var(--primary-blue-border); }

.input-clear-btn {
  position: absolute; right: 8px; top: 29px; width: 20px; height: 20px; border: none; background: var(--surface-3);
  color: var(--ink3); border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 11px;
}
.input-clear-btn:hover { background: var(--border-strong); color: var(--navy-text); }

/* ---- Day badges ---- */
.day-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 56px; height: 22px; padding: 0 6px; border-radius: 5px; font-size: 12px; font-weight: 500; font-family: var(--font-ui); }
.day-badge.d-green { background: var(--success-dim); color: var(--success); }
.day-badge.d-orange { background: var(--warning-dim); color: var(--warning); }
.day-badge.d-red { background: var(--danger-dim); color: var(--danger); }
.day-legend { display: flex; gap: 16px; margin-top: 10px; font-size: 12px; color: var(--muted-text); align-items: center; flex-wrap: wrap; }
.day-legend .dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; margin-right: 5px; }
.dot.green { background: var(--success); } .dot.orange { background: var(--warning); } .dot.red { background: var(--danger); }

/* Demands parked at a higher forum (appeal/settled/waived/refund) — shown,
   not hidden, but visually muted and flagged so the officer knows why
   they're unchecked by default and can still opt to include one. */
.wiz-row-excluded { background: var(--warning-dim); }
.wiz-row-excluded:hover td { background: var(--warning-dim); }
.wiz-row-excluded td { opacity: 0.85; }
.wiz-excluded-badge { margin-left: 6px; font-size: 10px; vertical-align: middle; }

/* ---- Table pagination footer — numbered page buttons + page-size pill ---- */
.table-pagination { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border); flex-wrap: wrap; }
.tp-pages { display: flex; align-items: center; gap: 4px; }
.tp-btn {
  width: 28px; height: 28px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--surface);
  color: var(--navy-text); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 11.5px; transition: all 0.12s;
}
.tp-btn:hover:not(:disabled) { border-color: var(--primary-blue); color: var(--primary-blue); background: var(--primary-blue-dim); }
.tp-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.tp-page {
  min-width: 28px; height: 28px; padding: 0 4px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--surface);
  color: var(--navy-text); cursor: pointer; font-family: var(--font-ui); font-size: 12px; font-weight: 600; transition: all 0.12s;
}
.tp-page:hover:not(.active) { border-color: var(--primary-blue-border); background: var(--primary-blue-dim); }
.tp-page.active { background: var(--primary-blue); border-color: var(--primary-blue); color: #fff; }
.tp-ellipsis { color: var(--ink3); font-size: 12px; padding: 0 3px; user-select: none; }
.tp-size-select {
  background: var(--surface); border: 1px solid var(--border); color: var(--navy-text); font-family: var(--font-ui);
  font-size: 12px; font-weight: 600; padding: 6px 12px; border-radius: 999px; cursor: pointer; outline: none;
}
.tp-size-select:focus { border-color: var(--primary-blue); }

/* ---- Notice type / section filter selection cards ---- */
.wizard-col-label { font-size: 12px; font-weight: 700; color: var(--muted-text); display: block; margin-bottom: 8px; }

.notice-type-cards { display: flex; flex-direction: column; gap: 8px; }
.notice-type-card { border: 1.5px solid var(--border); border-radius: var(--radius-md); padding: 11px 12px; cursor: pointer; transition: border-color 0.12s, background 0.12s; background: var(--surface); display: flex; align-items: center; gap: 10px; text-align: left; }
.notice-type-card:hover { border-color: var(--border-strong); }
.notice-type-card i { font-size: 16.5px; flex-shrink: 0; width: 18px; text-align: center; }
.notice-type-card .ntc-text { min-width: 0; }
.notice-type-card .ntc-title { font-size: 13.5px; font-weight: 700; color: var(--navy-text); }
.notice-type-card .ntc-sub { font-size: 11.5px; color: var(--muted-text); margin-top: 1px; }
.notice-type-card .ntc-sub2 { font-size: 10.5px; color: var(--ink3); margin-top: 2px; }

.notice-type-card.type-intimation i { color: var(--type-intimation); }
.notice-type-card.type-urgent i { color: var(--type-urgent); }
.notice-type-card.type-both i { color: var(--type-both); }

.notice-type-card.type-intimation.selected { border-color: var(--type-intimation); background: var(--type-intimation-dim); box-shadow: inset 0 0 0 1px var(--type-intimation); }
.notice-type-card.type-urgent.selected { border-color: var(--type-urgent); background: var(--type-urgent-dim); box-shadow: inset 0 0 0 1px var(--type-urgent); }
.notice-type-card.type-both.selected { border-color: var(--type-both); background: var(--type-both-dim); box-shadow: inset 0 0 0 1px var(--type-both); }

.filter-cards { display: flex; flex-direction: column; gap: 8px; }
.filter-card { border: 1.5px solid var(--border); border-radius: var(--radius-md); padding: 11px 12px; cursor: pointer; display: flex; gap: 9px; align-items: center; transition: border-color 0.12s, background 0.12s; }
.filter-card:hover { border-color: var(--border-strong); }
.filter-card.selected { border-color: var(--primary-blue); background: var(--primary-blue-dim); box-shadow: inset 0 0 0 1px var(--primary-blue); }
.filter-card .fc-radio { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--border-strong); flex-shrink: 0; }
.filter-card.selected .fc-radio { border-color: var(--primary-blue); background: radial-gradient(circle, var(--primary-blue) 0 40%, transparent 44%); }
.filter-card .fc-title { font-size: 13px; font-weight: 700; color: var(--navy-text); }
.filter-card .fc-sub { font-size: 11px; color: var(--ink3); margin-top: 2px; }

.wizard-three-col { display: grid; grid-template-columns: 1.1fr 1fr 1.2fr; gap: 26px; align-items: start; }
.wizard-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }

.wizard-filters-panel { display: flex; flex-direction: column; gap: 10px; }
.wizard-filters-panel-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.btn-reset-link {
  background: none; border: none; color: var(--muted-text); font-family: var(--font-ui); font-size: 12.5px;
  font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; padding: 4px 0; align-self: flex-start;
}
.btn-reset-link:hover { color: var(--primary-blue); }

/* ---- Bottom action bar — fixed to the browser viewport, not just the scroll container ---- */
#bulk-tab-notice2 { padding-bottom: 88px; }

.wizard-action-bar {
  position: fixed; left: 224px; right: 0; bottom: 0; background: var(--surface); border-top: 1px solid var(--border); border-radius: 0;
  padding: 14px 32px; display: flex; align-items: center; gap: 18px; box-shadow: 0 -4px 14px rgba(15,23,42,0.08); flex-wrap: wrap; z-index: 100;
}
.wab-left { display: flex; flex-direction: column; gap: 3px; }
.wab-left .selection-summary:first-child { font-size: 13px; font-weight: 600; color: var(--navy-text); }
.wizard-action-bar .selection-summary { font-size: 12.5px; color: var(--muted-text); white-space: nowrap; }
.wizard-action-bar .selection-total { font-family: var(--font-mono); font-weight: 700; font-size: 17.5px; color: var(--danger); margin-left: 6px; }
.wizard-action-bar .spacer { flex: 1; }
.wab-center { display: flex; align-items: center; gap: 10px; }
.wab-note {
  margin-left: auto; display: flex; align-items: center; gap: 8px; background: var(--primary-blue-dim);
  border: 1px solid var(--primary-blue-border); color: var(--primary-blue-dark); border-radius: var(--radius-md);
  padding: 9px 13px; font-size: 12px; font-weight: 500; max-width: 300px; line-height: 1.35;
}
.wab-note i { flex-shrink: 0; font-size: 14px; }

@media (max-width: 1280px) {
  .wizard-three-col, .wizard-two-col { grid-template-columns: 1fr; }
  .tdb-item { border-right: none; border-bottom: 1px solid var(--border); padding: 8px 0; }
  .wab-note { margin-left: 0; max-width: none; }
}

@media (max-width: 720px) {
  .upload-cards { grid-template-columns: 1fr; }
}

/* ---- Issue Notice (Copy): two-card "Search GSTIN / Trade Name" + "Taxpayer Details" strip ---- */
.issue-search-grid { display: grid; grid-template-columns: minmax(280px, 5fr) 7fr; gap: 14px; margin-bottom: 16px; align-items: stretch; }
.issue-search-card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; box-shadow: var(--shadow-sm); padding: 14px 18px; min-width: 0; }
.isc-label { display: block; font-size: 13px; font-weight: 700; color: var(--navy-text); margin-bottom: 10px; }
.isc-row { display: flex; gap: 10px; align-items: stretch; }
.isc-input-wrap { flex: 1; position: relative; min-width: 0; }
.isc-input { width: 100%; height: 42px; padding: 0 34px 0 40px; border: 1px solid var(--border); border-radius: 10px; font-size: 14px; color: var(--navy-text); background: var(--surface); text-transform: uppercase; }
.isc-input::placeholder { text-transform: none; color: var(--faint-text); }
.isc-input:focus { outline: none; border-color: var(--primary-blue); box-shadow: 0 0 0 3px var(--primary-blue-dim); }
.isc-input-icon { position: absolute; left: 14px; top: 14px; font-size: 14px; color: var(--primary-blue); pointer-events: none; }
.isc-clear { position: absolute; right: 9px; top: 11px; width: 20px; height: 20px; border: none; border-radius: 50%; background: var(--surface-3); color: var(--ink3); cursor: pointer; font-size: 11px; display: flex; align-items: center; justify-content: center; }
.isc-clear:hover { background: var(--border-strong); color: var(--navy-text); }
.isc-btn { height: 42px; padding: 0 26px; border-radius: 10px; font-weight: 600; }
.isc-hint { margin-top: 8px; font-size: 12px; color: var(--warning); min-height: 0; }
.isc-hint:empty { display: none; }

.isc-suggest { display: none; position: absolute; left: 0; right: 0; top: 46px; z-index: 30; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow-lg); max-height: 280px; overflow-y: auto; }
.isc-suggest.show { display: block; }
.isc-sug-item { padding: 9px 14px; cursor: pointer; display: flex; flex-direction: column; gap: 2px; border-bottom: 1px solid var(--border); }
.isc-sug-item:last-child { border-bottom: none; }
.isc-sug-item:hover { background: var(--primary-blue-dim); }
.isc-sug-item strong { font-size: 13px; color: var(--navy-text); text-transform: none; }
.isc-sug-item span { font-size: 11.5px; color: var(--ink3); font-family: var(--font-mono); }
.isc-sug-more { padding: 8px 14px; font-size: 11.5px; color: var(--ink3); background: var(--surface-2); }

.isc-details { display: flex; align-items: center; gap: 16px; }
.isc-empty { color: var(--ink3); font-size: 13px; display: flex; align-items: center; gap: 10px; }
.isc-empty i { color: var(--primary-blue); opacity: 0.6; font-size: 18px; }
.isc-icon { flex: 0 0 auto; width: 56px; height: 56px; border-radius: 12px; background: var(--primary-blue-dim); color: var(--primary-blue); display: flex; align-items: center; justify-content: center; font-size: 24px; }
.isc-info { flex: 1; min-width: 0; }
.isc-info-title { font-size: 13px; font-weight: 700; color: var(--navy-text); margin-bottom: 2px; }
.isc-gstin { font-size: 15px; font-weight: 800; color: var(--navy-text); font-family: var(--font-mono); letter-spacing: 0.3px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.isc-gstin .pill { font-family: var(--font-ui); letter-spacing: 0; }
.isc-name { font-size: 13px; font-weight: 700; color: var(--navy-text); margin-top: 1px; overflow-wrap: anywhere; }
.isc-addr { font-size: 12px; color: var(--ink3); margin-top: 2px; overflow-wrap: anywhere; }
.isc-meta { display: flex; gap: 16px; margin-top: 6px; font-size: 12px; color: var(--ink3); flex-wrap: wrap; }
.isc-meta strong { color: var(--danger); font-weight: 700; margin-left: 3px; }
.isc-meta span:last-child strong { color: var(--navy-text); }
.isc-actions { flex: 0 0 auto; display: flex; flex-direction: column; gap: 8px; align-items: stretch; }
.isc-view-btn { height: 38px; padding: 0 16px; border-radius: 10px; border: 1px solid var(--primary-blue-border); background: var(--primary-blue-dim); color: var(--primary-blue); font-weight: 600; font-size: 13px; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap; }
.isc-view-btn:hover { background: var(--primary-blue); color: #fff; }
.isc-link-btn { border: none; background: none; color: var(--ink3); font-size: 12px; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 2px; }
.isc-link-btn:hover { color: var(--primary-blue); }

@media (max-width: 1000px) {
  .issue-search-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .isc-details { flex-wrap: wrap; }
  .isc-actions { width: 100%; }
}

/* ===== Notice demand/result tables — one-line rows + column alignment
   (the compact grid look itself is the app-wide table default in base.css) ===== */
:is(#wiz-demand-table-wrap, #wiz2-demand-table-wrap, #bulk-all-results, #bde-table-wrap) td { white-space: nowrap; }
:is(#wiz-demand-table-wrap, #wiz2-demand-table-wrap, #bde-table-wrap) th:nth-child(7) { text-align: center; }
:is(#wiz-demand-table-wrap, #wiz2-demand-table-wrap, #bde-table-wrap) th:last-child { text-align: right; }
:is(#wiz-demand-table-wrap, #wiz2-demand-table-wrap, #bulk-all-results, #bde-table-wrap) th:nth-child(1), :is(#wiz-demand-table-wrap, #wiz2-demand-table-wrap, #bulk-all-results, #bde-table-wrap) td:nth-child(1) { width: 40px; text-align: center; }
#bulk-all-results th:nth-child(8) { text-align: right; }
#bulk-all-results td:nth-child(7), #bulk-all-results th:nth-child(7) { text-align: center; }
#bulk-all-results td:nth-child(-n+3) { white-space: normal; }
:is(#wiz-demand-table-wrap, #wiz2-demand-table-wrap, #bde-table-wrap) .table-scroll { border: 1px solid var(--border); border-radius: 8px; }

/* ---- Top header bar removed app-wide (kept in DOM for the JS that fills it); Generate Arrear Notice: no page title; tab bar pinned to the top of the scroll area ---- */
header { display: none; }
#page-bulknotice { padding-top: 0; }
#bulknotice-tabs-section > .tabs {
  position: sticky; top: 0; z-index: 40; margin: 0 -32px 18px; padding: 10px 32px 0;
  background: var(--surface); box-shadow: 0 2px 6px rgba(15,23,42,0.06);
}

/* ---- Release Attachment tab: multi-field filter bar above the unified
   Bank/Third-Party/Property table, and the inline bulk-selection bar that
   appears above the table once rows are checked ---- */
.rel-filter-bar { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; margin-bottom: 16px; box-shadow: var(--shadow-sm); }
.rel-filter-bar .fg { margin: 0; min-width: 0; flex: 0 1 150px; }
.rel-filter-bar .fg label { font-size: 10px; color: var(--ink3); font-weight: 700; text-transform: uppercase; letter-spacing: 0.3px; margin-bottom: 5px; display: block; white-space: nowrap; }
.rel-filter-bar .fsel, .rel-filter-bar input { width: 100%; box-sizing: border-box; height: 36px; border-radius: 8px; border: 1px solid var(--border); font-size: 12.5px; padding: 0 9px; color: var(--navy-text); background: var(--surface); }
.rel-filter-bar .fsel:focus, .rel-filter-bar input:focus { border-color: var(--primary-blue); outline: none; box-shadow: 0 0 0 3px var(--primary-blue-dim); }
.rel-filter-btn-fg { flex: 0 0 auto; }
.rel-filter-bar .btn { height: 36px; border-radius: 8px; padding: 0 16px; font-size: 12.5px; font-weight: 600; white-space: nowrap; }
@media (max-width: 900px) {
  .rel-filter-bar .fg { flex: 1 1 100%; }
}

.rel-bulk-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; background: var(--primary-blue-dim); border-bottom: 1px solid var(--border); font-size: 13px; font-weight: 600; color: var(--navy-text); }

/* ---- Collectible Demands report — Excel-style "Data > Subtotal" grouped
   view: a shaded subtotal row after each taxpayer's demands, a stronger-
   shaded grand total row at the very end. ---- */
.rpt-dw-subtotal-row td { background: var(--surface-2); font-weight: 700; border-top: 1px solid var(--border-strong); }
.rpt-dw-grandtotal-row td { background: var(--primary-blue-dim); font-weight: 800; border-top: 2px solid var(--primary-blue); color: var(--navy-text); }

/* ---- Third-Party Notice: the "Multiple Third Parties" modal's editable
   row table (name/trade/gstin/address/mobile/email per row) ---- */
.tp-debtor-table input[type="text"] { width: 100%; box-sizing: border-box; height: 32px; border: 1px solid var(--border); border-radius: 6px; font-size: 12.5px; padding: 0 8px; color: var(--navy-text); background: var(--surface); }
.tp-debtor-table input[type="text"]:focus { outline: none; border-color: var(--primary-blue); box-shadow: 0 0 0 2px var(--primary-blue-dim); }
.tp-debtor-table td { padding: 5px 6px; }
#tp-debtor-rows-wrap .table-scroll,
#pa-property-rows-wrap .table-scroll { max-height: 360px; overflow-y: auto; }

/* ---- Premium search card (Issue Notice / Bank Attachment / Third-Party
   Notice — the shared .issue-search-grid's first card): icon, title,
   subtitle, and a larger pill-style search bar. ---- */
/* No overflow:hidden here — the autocomplete suggestion dropdown
   (.isc-suggest) is an absolutely-positioned descendant that needs to
   render outside this card's box, and overflow:hidden would clip it
   invisible (the glow is a background layer instead of a clipped
   pseudo-element, specifically so it doesn't need overflow:hidden). */
.isc-premium { position: relative; padding: 24px 26px; border-radius: 20px; background: radial-gradient(circle at 100% 0%, rgba(0,82,255,0.16), rgba(0,82,255,0) 55%), linear-gradient(135deg, var(--surface) 0%, var(--primary-blue-dim) 140%); box-shadow: var(--shadow-lg); }
.isc-premium-top { position: relative; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.isc-premium-headline { display: flex; align-items: center; gap: 14px; }
.isc-premium-icon { flex: 0 0 auto; width: 56px; height: 56px; border-radius: 14px; background: var(--primary-blue-dim); color: var(--primary-blue); display: flex; align-items: center; justify-content: center; font-size: 24px; }
.isc-premium-title { font-size: 21px; font-weight: 800; color: var(--navy-text); letter-spacing: -0.2px; }
.isc-premium-sub { font-size: 13px; color: var(--ink3); margin-top: 2px; }
/* No overflow:hidden on this row either — same reason as .isc-premium
   above, it's the direct positioning ancestor of .isc-suggest. The
   "seamless" joined look comes from the button's own border-radius
   matching the container instead of clipping. */
.isc-premium-row { position: relative; gap: 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow-sm); }
.isc-premium-row .isc-input-wrap { border-right: 1px solid var(--border); }
.isc-input-premium { height: 56px !important; font-size: 15px !important; border: none !important; border-radius: 16px 0 0 16px !important; background: transparent !important; box-shadow: none !important; }
.isc-input-premium:focus { box-shadow: none !important; }
.isc-premium-row:focus-within { border-color: var(--primary-blue); box-shadow: 0 0 0 4px var(--primary-blue-dim); }
.isc-premium-row .isc-input-icon { top: 50%; transform: translateY(-50%); font-size: 16px; }
.isc-premium-row .isc-clear { top: 50%; transform: translateY(-50%); right: 14px; }
.isc-btn-premium { flex: 0 0 auto; height: 56px; padding: 0 30px; border: none; border-radius: 0 16px 16px 0; background: linear-gradient(135deg, var(--primary-blue), #2B6CFF); color: #fff; font-weight: 700; font-size: 14.5px; cursor: pointer; display: flex; align-items: center; gap: 9px; white-space: nowrap; }
.isc-btn-premium:hover { background: linear-gradient(135deg, #0043D1, var(--primary-blue)); }
@media (max-width: 760px) {
  .isc-premium-row { flex-wrap: wrap; }
  .isc-premium-row .isc-input-wrap { border-right: none; border-bottom: 1px solid var(--border); flex: 1 1 100%; }
  .isc-btn-premium { flex: 1 1 100%; justify-content: center; }
}

/* ---- Reports page: report card (title, rules applied, view toggle,
   Generate/Export) + empty state shown until Generate is clicked ---- */
.rpt-card { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-sm); padding: 22px 26px; margin-bottom: 18px; }
.rpt-card-head { display: flex; align-items: center; gap: 16px; }
.rpt-card-icon { flex: 0 0 auto; width: 52px; height: 52px; border-radius: 13px; background: var(--primary-blue-dim); color: var(--primary-blue); display: flex; align-items: center; justify-content: center; font-size: 22px; }
.rpt-card-kicker { font-size: 10.5px; font-weight: 800; letter-spacing: 0.8px; text-transform: uppercase; color: var(--primary-blue); }
.rpt-card-title { font-size: 20px; font-weight: 800; color: var(--navy-text); letter-spacing: -0.2px; margin-top: 1px; }
.rpt-card-sub { font-size: 13px; color: var(--ink3); margin-top: 2px; }
.rpt-rules { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 20px; padding-top: 16px; border-top: 1px solid var(--border); }
.rpt-rule { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 600; color: var(--navy-text); background: var(--surface-2); border: 1px solid var(--border); border-radius: 999px; padding: 5px 12px; }
.rpt-rule i { color: var(--success); font-size: 12px; }
.rpt-card-actions { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px; }
.rpt-seg-label { font-size: 10px; font-weight: 700; letter-spacing: 0.4px; text-transform: uppercase; color: var(--ink3); margin-bottom: 6px; }
.rpt-seg { display: inline-flex; background: var(--surface-2); border: 1px solid var(--border); border-radius: 10px; padding: 3px; gap: 3px; }
.rpt-seg button { border: none; background: transparent; padding: 8px 16px; border-radius: 8px; font-size: 12.5px; font-weight: 600; color: var(--ink3); cursor: pointer; display: inline-flex; align-items: center; gap: 7px; font-family: inherit; }
.rpt-seg button:hover { color: var(--navy-text); }
.rpt-seg button.active { background: var(--surface); color: var(--primary-blue); box-shadow: 0 1px 3px rgba(15,23,42,0.12); }
.rpt-btn-row { display: flex; gap: 10px; align-items: center; }
.rpt-gen-btn { height: 40px; padding: 0 22px; border-radius: 10px; font-weight: 700; font-size: 13px; display: inline-flex; align-items: center; gap: 8px; }
.rpt-placeholder { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; padding: 56px 20px; background: var(--surface); border: 1.5px dashed var(--border-strong); border-radius: 14px; }
.rpt-ph-icon { width: 60px; height: 60px; border-radius: 16px; background: var(--primary-blue-dim); color: var(--primary-blue); display: flex; align-items: center; justify-content: center; font-size: 26px; margin-bottom: 8px; }
.rpt-ph-icon.warn { background: var(--warning-dim); color: var(--warning); }
.rpt-ph-title { font-size: 16px; font-weight: 700; color: var(--navy-text); }
.rpt-ph-sub { font-size: 13px; color: var(--ink3); margin-bottom: 4px; }
.rpt-ph-meta { font-size: 12px; color: var(--ink3); background: var(--surface-2); border: 1px solid var(--border); border-radius: 999px; padding: 5px 14px; margin-top: 8px; }
.rpt-ph-meta strong { color: var(--navy-text); }

/* ---- Reports page tab bar + the one-line description above Report 2 ---- */
#page-cases > .tabs { margin-bottom: 18px; }
.rpt-panel-note { font-size: 13px; color: var(--ink3); margin-bottom: 16px; line-height: 1.5; max-width: 780px; }
.rpt-name-fallback { font-style: italic; color: var(--ink3); cursor: help; }

/* ---- Under-construction placeholder page (Return Scrutiny) ---- */
.uc-card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 72px 20px; background: var(--surface); border: 1.5px dashed var(--border-strong); border-radius: 14px; }
.uc-icon { width: 72px; height: 72px; border-radius: 18px; background: var(--warning-dim); color: var(--warning); display: flex; align-items: center; justify-content: center; font-size: 32px; margin-bottom: 10px; }
.uc-title { font-size: 20px; font-weight: 800; color: var(--navy-text); }
.uc-sub { font-size: 13.5px; color: var(--ink3); max-width: 420px; line-height: 1.5; }
