body {
    margin: 0;
    padding: 0;
    background-color: #EAECEE;
    font-family: Verdana, sans-serif;
    font-size: 100%;
}

fieldset {
    margin: 20px 0;
}

.labelLink {
    text-decoration: underline;
}

.registrationConfirmation {
    font-size: 1.3em;
}

#banner {

}

#bannerLayout, #brandingBannerLayout {
    height: 55px;
    border: 0px;
}

#bannerLayoutCentre, #bannerLayoutEast, #bannerLayoutWest {
    border: 0px;
}

#bannerCell {
    float: left;
    height: 55px;
}

.menulabel {
    font-size: .8em;
    margin-top: 7px;
}

#correspondentsDTbl .ui-widget-header {
    color: #03A9F4;
}

#logoCell {
    clear: both;
    float: left;
    width: 55px;
    height: 55px;
}

.classDetails {
    margin-top: 5px;
}

.logoname {
    font-size: 1.5em;
    font-weight: bold;
    margin-top: -5px;
    margin-left: 5px;
}

.topbarButton {
    margin-top: 10px;
}

.bannerText {
    font-size: 1em;
    font-weight: bold;
    margin-top: -20px;
    margin-left: 5px;
}

.rmLogoname {
    font-size: 1.5em;
    font-weight: bold;
    margin-top: 10px;
    margin-left: 20px;
}

.rmBannerText {
    font-size: 1em;
    font-weight: bold;
    margin-top: 10px;
    margin-left: 20px;
}

.proxyModeButtonContent {
    font-weight: bold;
}

.proxyModeTextContent {
    font-size: .9em;
    font-weight: bold;
}

.bannerRightMenu, .bannerLeftMenu {
    text-size: .9em;
    padding-right: 5px;
}

.bannerRightMenu {
    float: right;
    text-align: right;
}

.bannerLeftMenu {
    float: left;
    padding-left: 5px;
    text-align: left;
}

.userBasketContent {
    margin-top: 7px;
    margin-right: 5px;
    text-align: right;
}

#am_menu {
    clear: both;
}

#am_menu h3 {
    text-align: center;
}

#panelBanner {
    border: 0;
    padding: 2px;
}

.ui-widget {
    font-size: inherit;
}

.ui-layout-north {
    z-index: 20 !important;
    overflow: visible;
}

.ui-layout-north .ui-layout-unit-content {
    overflow: visible;
}

#panelBanner_content {
    padding: 0;
}

.logo {
    width: 50px;
    height: 50px;
}

.copyright {
    text-align: center;
    font-size: .9em;
    display: block;
}

.input errors {
    border-color: red;
}

.input {
    float: left;
    text-align: left;
    color: black;
    padding: 0 5px;
}

.error {
    font-weight: bold;
    color: red;
}

.label, .labelWide {
    text-align: right;
    vertical-align: top;
    width: 200px;
    float: left;
    padding: 10px 5px 0;
    clear: left;
}

.labelWide {
    width: 400px;
}

.formDisplay {
    clear: both;
    padding: 3px 0px 2px 0px;
}

.displayAdvice {
    color: black;
    float: left;
    font-weight: bold;
    padding: 0px 0px 0px 2px;
    text-align: left;
}

.displayPaymentData {
    width: 205px;
}

.displayData, .displayPaymentData {
    clear: both;
    color: black;
    padding-bottom: 10px;
    text-align: left;
}

.displayPaymentData {
    width: 500px;
}

.displayLabel, .displayLabelBold, .displayPaymentLabel {
    clear: left;
    float: left;
    padding: 0px;
    margin: 0 5px 0 0;
    text-align: right;
    vertical-align: top;
    width: 160px;
}

.displayPaymentLabel {
    font-weight: bold;
    width: 205px
}

.displayLabelBold {
    font-weight: bold;
}

.basketInfoBtn, .basic, .displayEditLink, .entryBtn, .editLink, .entry,
.entrySummary, .inputAlignedBtn, .inputContainer, .loginField,
.loginButton, .menuButton, .paymentButtons, .piecesListButtons, .viewBtn {
    clear: both;
}

.continueFromLogin {
    margin-bottom: 10px;
}

.entryBtn, .piecesListButtons, .viewSummaryButtons {
    padding-top: 10px;
}

.entryFormReportButtons {
    clear: both;
    padding: 10px 0;
}

.menuButton {
    margin-bottom: 10px;
}

.basketInfoBtn {
    padding-top: 20px;
}

.classSearch {
    padding-top: 10px;
}

.viewBtn {
    padding: 5px 0;
}

.inputAlignedBtn {
    padding: 10px 0 0 155px;
}

.editLink {
    padding: 10px 0;
}

.entry {
    padding: 5px 0;
}

.entrySummary {
    padding: 0px 0px 15px 0px;
}

.inputField, .adminInputField {
    clear: both;
    padding-bottom: 10px;
}

.adminInputField {
    margin-bottom: 10px;
}

.inputLabel {
    clear: both;
    padding-bottom: 5px;
}

.formButton {
    clear: both;
    padding-top: 10px;
}

.loginButton {
    padding: 7px 0 0 5px;
}

.loginField {
    padding: 3px 0 3px 10px;
}

.loginFieldset {
    border: 4px ridge;
    margin-top: 2px;
}

.loginHeader {
    clear: both;
    margin-left: 10px;
    margin-right: 10px;
}

.loginLeftContainer, .loginRightContainer {
    background-color: #CCFFFF;
    margin: 10px 0 0 0;
}

.inputContainer {
    padding: 5px 0 5px 0;
}

#orgsearch, #logoArea, #paysearch {
    float: left;
    margin-right: 20px;
}

.rmflogo {
    margin-top: 10px;
}

.taleft {
    text-align: left;
}

.inputContainerChild, .basicLeft {
    float: left;
}

.inputContainerChildLink {
    float: left;
    padding-top: 4px;
    padding-left: 10px;
}

.inputContainerChild {
    float: left;
    margin-top: 5px;
}

.displayDataPanel {
    padding: 0 0 15px 10px;
}

.displayEditLink {
    padding: 5px 0 3px 168px;
}

.basketClass {
    width: 17px
}

.basketEntrants {
    width: 200px
}

.basketFee, .fee {
    text-align: right !important;
}

.basketTable {
    clear: both;
    padding-top: 5px;
}

.emptyBasketPanel {
    clear: both;
    padding-top: 5px;
}

.captureAgesPanel {
    clear: both;
    margin-top: 30px
}

.basketEmptyDetails, .paymentInfoDetails {
    clear: both;
    padding-top: 5px;
}

.checkoutButtons {
    width: 100%;
    height: 1px;
}

.paymentButtons {
    padding-top: 5px;
}

.fullyPaid {
    background-color: green;
}

.partiallyPaid {
    background-color: orange;
}

.unpaid {
    background-color: red;
}

.orgFormsStatusWidth {
    width: 180px;
}

.important {
    font-weight: bold;
}

.confirmationHeader {
    background-color: #C0F0F6;
}

.paymentMethodHeader {
    font-weight: bold;
    text-align: center;
}

.paymentMethodBackground {
    background-color: #C0D0D6;
}

.confirmationTable, .confirmationEntryFormsTable {
    border: 1px solid #C0F0F6;
    border-spacing: 0pt;
    width: 100%;
}

.confirmationEntryFormTableLabel {
    text-align: left;
    width: 40%;
}

.confirmationEntryFormTableData,
.importantConfirmationEntryFormTableData {
    padding-left: 20px;
    text-align: right;
    width: 60%;
}

.importantConfirmationEntryFormTableData {
    font-weight: bold;
}

.tableTotal, .tableQuantity {
    text-align: right !important;
}

.tableNormal {
    padding: 5px;
}

.savedForLater {
    background-color: orange;
    color: black;
    width: 25px;
}

.selectedForNow {
    background-color: green;
    color: white;
    width: 25px;
}

.ui-wizard-nav-next {
    float: left;
    margin-left: 5px;
}

.sectionName {
    width: 200px;
}

.sectionEntriesQuantity {
    text-align: right;
}

.sectionFeeTotal, .basketTotal {
    text-align: right !important;
}

.viewCppLink, .viewRulesLink {
    clear: both;
    padding-left: 22px;
    padding-top: 10px;
}

.black {
    color: black;
}

.chargesAdvice {
    clear: both;
    margin-top: 10px;
}

.fieldAdvice {
    float: left;
    font-size: .9em;
    padding-bottom: 5px;
}

.acceptanceMark, .confReportPnl, .paymentInfo {
    clear: both;
    padding-top: 10px;
}

.userOptionsMenu {
    border: 0;
    width: 185px;
}

.dataTableButton {
    font-size: .8em;
    font-weight: normal;
}

.infoMessages {
    background-color: #ffffb3;
    margin-top: 15px;
}

.paymentDetailsPanel {
    background-color: #ffffb3;
    clear: both;
    padding: 5px 0 5px 0;
}

.infoMessageText {
    color: black;
}

.CardAdvice {
    padding: 10px 0px 15px 18px;
}

.entryWizardMessagePanel {
    background-color: #ffffbb;
    clear: both;
    margin-bottom: 10px;
    padding: 10px;
}

.resetMessagePanel {
    background-color: #C0F0F6;
    clear: both;
    margin-bottom: 10px;
    padding: 10px;
}

.fieldMessage {
    padding-top: 5px;
}

.rmPrimary {
    margin-right: 10px;
}

.primaryButton {
    margin-right: 5px;
}

.ui-widget-content .secondaryButton, .ui-widget-content .secondaryButtonWide,
.ui-widget-content .firstSecondaryButton {
    background: none repeat scroll 0% 0% #66B3FF;
    border: 1px solid #66B3FF;
    color: #FFF;
    margin-bottom: 10px;
}

.secondaryButton, .findClassBtn, .LeftMar10 {
    margin-left: 10px;
}

.LeftMar15 {
    margin-left: 15px;
}

.secondaryButtonWide, .secondaryWideLink {
    margin-left: 15px;
}

.captureAges {
    clear: both;
    margin-top: 10px;
}

.selectedClasses {
    clear: both;
    padding-top: 1px;
}

.additionalNeeds {
    clear: both;
    padding: 10px 0 10px 0;
}

.confReportClass5, .confReportClass15, .confReportClass20,
.confReportClass30, .confReportClass35, .confReportClass50, .confReportFeeClass5, .adminFeesNormal {
    padding: 5px;
    text-align: left;
}

.columnButtonRight {
    margin-left: 10px;
}

.confReportClass5 {
    width: 5%;
}

.confReportTotalClass5 {
    text-align: right;
}

.confReportClass15 {
    width: 15%;
}

.confReportClass20 {
    width: 20%;
}

.confReportClass30 {
    width: 30%;
}

.confReportClass35 {
    width: 35%;
}

.confReportClass50 {
    width: 50%;
}

.confReportFooter {
    background-color: #F0FFFF;
    font-weight: bold;
}

.organisationSearch {
    font-size: .9em;
}

.timeSeparator {
    padding-left: 1px;
    padding-right: 1px;
}

.colWidth50px {
    wdith: 50px;
}

.colWidth100percent {
    wdith: 100%;
}

.colWidth175px {
    wdith: 175px;
}

.paymentSettingLink {
    padding: 5px 0 5px 21px;
}

.corrScrollPnl {
    height: 200px;
    width: 200px;
}

.uploadEntrants, .uploadEntries {
    padding-top: 10px;
}

.listBtn {
    padding-top: 15px;
}

.demographicsPnl {
    clear: both;
    margin-top: 25px;
}

.membersPicklist {
    padding-bottom: 10px;
}

.userContentPanel {
    border: none !important;
    padding: 0 !important;
}

.radioSelect {
    width: 2%;
}

.usersWidth10 {
    width: 10px;
}

.usersWidth29 {
    width: 29px;
}

.usersWidth30 {
    width: 30px;
}

.width50 {
    width: 50px;
}

.width100 {
    width: 100px;
}

.width100percent {
    width: 100%;
}

.width110 {
    width: 110px;
}

.width125 {
    width: 125px;
}

.width150 {
    width: 150px;
}

.width175 {
    width: 175px;
}

.width275 {
    width: 275px;
}

.width410 {
    width: 410px;
}

.availableClass {
    margin: 5px;
    overflow: hidden;
    padding: 0px;
    text-align: center;
}

.availableClassPanel {
    width: 100%;
}

.availableClassDescription,
.availableClassDiscount,
.availableClassEditLink,
.sectionInfo {
    clear: both;
    float: left;
    text-align: left;
}

.availableClassDiscount {
    font-style: italic;
    font-weight: bold;
    margin-bottom: 10px;
    padding: 10px 5px 10px 5px;
}

.availableClassFee {
    clear: both;
    padding-top: 15px;
    text-align: left;
}

.availableClassEnrolment {
    height: 15px;
    padding-top: 3px;
    text-align: left;
}

.availableClassEditLink {
    padding: 5px 0px 0px 0px;
}

.panelBanner {
    height: 102px;
}

.logout {
    margin-right: 20px;
}

.duplicateConfButtons {
    padding-top: 15px;
}

.confirmationPanel, .cannotEnterReason {
    padding-top: 10px;
}

.cannotEnterReason {
    padding-bottom: 10px;
}

.piecesListButtons {
    padding-bottom: 15px;
}

#entrantsTblPanel {
    margin-top: 5px;
}

.classesButton {
    margin: 10px 0px 5px 0px;
}

.missingInfoAdvice {
    margin-bottom: 10px;
}

.summaryNormal {
    text-align: left !important;
}

.summaryFee {
    text-align: right !important;
}

.menubarInfo {
    padding: 10px 0px 10px 15px;
}

.ui-widget .registerPanel {
    margin-top: 20px;
}

.ui-datatable .ui-row-editor .ui-helper-clearfix .ui-icon .ui-icon-pencil:before {
    font-family: FontAwesome;
    content: "\f040";
}

.ui-datatable .ui-row-editor .ui-helper-clearfix .ui-icon .ui-icon-check {
    font-family: FontAwesome;
    content: "\f00c";
}

.ui-datatable .ui-row-editor .ui-helper-clearfix .ui-icon .ui-icon-close {
    font-family: FontAwesome;
    content: "\f00d";
}

.publicUser {
    padding-right: 10px;
}

.invitationSentIcon,
.LeftPad10 {
    padding-left: 10px;
}

.notesAdvice ul li {
    list-style-type: disc;
}

.notesAdvice ol li {
    list-style-type: decimal;
}

.listWrapper {
	display:list-item;
}

.listWrapperContent {
	display: inline-block;
	vertical-align: middle;
}

.icon2em {
    font-size: 2em;
    margin-right: 10px;
}

.rangeSlider {
    width: 50%;
}

.charityClearButton {
    background: url("https://www.charityclear.co.uk/integration/img/CC_Button_PayNow.png") no-repeat;
    border: none;
    cursor: pointer;
    height: 50px;
    width: 130px;
}

.registrationAdviceHeader {
    color: black;
    font-size: 1.4em;
    font-weight: bold;
}

.paymentDetailsMessage {
    color: black;
    font-weight: bold;
}

.schedList {
	overflow: hidden;
}

.roomsPanel {
	margin-top: 30px;
	overflow: hidden;
}

.roomsHeader {
	font-weight: bold;
	padding-bottom: 5px;
}

.schedClassInfo {
    font-size: .9em;
    margin-top: 5px;
}

.sessionEventsAdvice, .reorderRulesAdvice, reorderClassesAdvice, adjudicatorAllocatedSessions {
    font-weight: bold;
    margin-bottom: 5px;
    margin-top: 5px;
}

.adjudicatorAllocatedSessions {
    padding: 10px 0px 10px 10px;
}

.rowEditor {
    width: 32px;
}

.fc-event:hover.whiteOnRed, .fc-event.whiteOnRed, .whiteOnRed {
    background-color: #720b0b;
    border-color: #720b0b;
    color: #ffffff;
}

.fc-event:hover.whiteOnDarkGreen, .fc-event.whiteOnDarkGreen, .whiteOnDarkGreen {
    background-color: #075e03;
    color: #ffffff;
}

.fc-event:hover.whiteOnPurple, .fc-event.whiteOnPurple, .whiteOnPurple {
    background-color: #41035e;
    color: #ffffff;
}

.fc-event:hover.blackOnWhite, .fc-event.blackOnWhite, .blackOnWhite {
    background-color: #ffffff;
    color: #000000;
}

.fc-event:hover.whiteOnBlack, .fc-event.whiteOnBlack, .whiteOnBlack {
    background-color: #000000;
    color: #ffffff;
}

.fc-event:hover.blackOnYellow, .fc-event.blackOnYellow, .blackOnYellow {
    background-color: #ffff00;
    color: #000000;
}

.fc-event:hover.blackOnOlive, .fc-event.blackOnOlive, .blackOnOlive {
    background-color: #8a8a2b;
    color: #0c2231;
}

.fc-event:hover.greyOnOrange, .fc-event.greyOnOrange, .greyOnOrange {
    background-color: #ff8f00;
    border-color: #ff8f00;
    color: #34385e;
}

.fc-event:hover.purpleOnGrey, .fc-event.purpleOnGrey, .purpleOnGrey {
    background-color: #8d8880;
    color: #3b0053;
}

.fc-event:hover.limeOnBlue, .fc-event.limeOnBlue, .limeOnBlue {
    background-color: #0d129c;
    color: #baf73c;
}

.fc-event:hover.darkGreenOnPink, .fc-event.darkGreenOnPink, .darkGreenOnPink {
    background-color: #b75ee0;
    color: #0c2231;
}

.ui-fileupload-buttonbar .ui-button {
    background-color: #66BB6A;
}

/* INVOICING CSS */
.invoice {
    background-color: white;
    font-size: .8em;
}

.invoice .ui-g {
    padding-left: 10px;
    padding-right: 10px;
    box-sizing: border-box;
}

.ui-fluid.invoice h1 { font-size: 1.4em; }
.ui-fluid.invoice h2 { font-size: 1.15em; }
.ui-fluid.invoice h3 { font-size: 1em; }

/* Header row */
.header-org-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;           /* allows shrinking in flex context */
    font-weight:bold;
    font-size: 1.2rem;
}

/* Row as flex; allow wrap on small screens; vertically center contents */
.invoice-header-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

/* Make each grid column vertically center its content */
.invoice-header-row > [class*="ui-g-"] {
    display: flex;
    align-items: center;
    min-width: 0; /* avoid overflow pushing wrap */
    box-sizing: border-box;
}

/* Mobile-first: stacked and centered */
.header-left,
.header-right {
    justify-content: center;
    text-align: center;
}

/* md+: side-by-side (widths handled by ui-md-1/ui-md-11) and align horizontally as needed */
@media (min-width: 768px) {
    .header-left {
        justify-content: flex-start;
        text-align: left;
    }
    .header-right {
        justify-content: flex-start; /* or flex-end if you want it right-aligned */
        text-align: left;
    }
}

/* Optional safety for long org names */
.header-right {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.header-right,
.header-org-name {
    min-width: 0;
}

/* Mobile-first: constrain and ellipsize */
.header-org-name {
    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: normal;
    text-align: center;
    padding-left: 10px;
    padding-right: 10px;
}

/* md and up: restore regular size if desired */
@media (min-width: 768px) {
    .header-org-name {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        text-align: left;
        padding-left: 0;
        padding-right: 0;
    }
}

/* Title row */
.invoice-title-row {
    display: flex;
    align-items: center;
    justify-content: center;   /* center horizontally */
    text-align: center;
    flex-wrap: nowrap;         /* not needed, but avoids unexpected wrapping */
    min-width: 0;              /* allow shrink in flex context */
}

/* Ensure the H1 itself can shrink and is centered */
.invoice-title-row > h1 {
    margin: 0;                 /* remove default margins that can offset centering */
    min-width: 0;
}

/* Contact and Invoice meta data */
/* Mobile-first: center */
.address {
    font-style: normal;
    text-align: center;
}
.inv-meta, .inv-meta .meta-row { text-align: center; }

/* md and up: address left, meta right */
@media (min-width: 768px) {
    .address { text-align: left; }
    .inv-meta, .inv-meta .meta-row { text-align: right; }
}

/* Ensure long lines can shrink within flex/grid columns */
.inv-meta, .address { min-width: 0; }

/* Invoice Items and Payment Details */
.items, .payment, .checkoutStatements, .summary, .disabledAccess {
    padding: 10px;
    border: 2px solid #cbd5e1;
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(0,0,0,.06);
}

.payment {
    background-color: #e6fcfc;
}

.checkoutStatements, .summary {
    margin: 10px;
}

/* Make each items cell full-width on small screens and allow shrink */
.items > .ui-g-3,
.items > .ui-g-6,
.items > .ui-g-12 {
    width: 100%;
    flex: 0 0 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* If row padding causes misalignment, neutralize cell padding in items */
.items > [class*="ui-g-"] {
    padding-left: 0;
    padding-right: 0;
}

.items-text-right, .items-text-total {
    text-align: right !important;
}

.data-column-title, .items-text-total {
    font-weight: bold;
}

/* Inner layout: simple vertical stack */
.payment-row {
    margin: 0;
    padding: 5px;
}

.items-title, .payment-title, .summary-title {
    font-weight: bold;
    text-align: left;
}

.items-title {
    padding-left: 5px;
}

/* Each label/value pair */
.payment-line {
    display: block;
    margin: 10px 0;            /* slightly more space between pairs */
}

/* Label then value stacked, both left-aligned */
.pay-left {
    display: block;
    text-align: left;
    margin-bottom: 2px;         /* less space between label and value */
    color: #333;                /* optional subtle label tone */
}

.pay-right {
    display: block;
    text-align: left;
    font-weight: bold;          /* value bold */
}

/* Overflow safety */
.pay-left, .pay-right {
    overflow: hidden;
}

/* Base: stacked (mobile-first) with vertical space between panels */
.two-col-row {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    box-sizing: border-box;
    padding: 0;          /* mobile */
    row-gap: 16px;
    column-gap: 0;
}

/* Columns: allow shrinking, prevent overflow */
.two-col-row > [class*="ui-g-"] {
    min-width: 0;           /* critical */
    box-sizing: border-box;
}

/* md+: add horizontal padding + column gap without growing columns */
@media (min-width: 768px) {
    .two-col-row {
        padding: 0 16px;     /* outer left/right whitespace */
        column-gap: 16px;    /* space between columns */
        row-gap: 0;
    }

    /* Allow shrink and avoid PF column padding adding width */
    .two-col-row > [class*="ui-g-"] {
        min-width: 0;
        padding-left: 0;
        padding-right: 0;
        box-sizing: border-box;
    }

    /* 9/12 and 3/12 widths minus half the gap so total stays <= 100% */
    .two-col-row > .ui-md-8 { flex: 0 1 calc(75% - 8px); }
    .two-col-row > .ui-md-4 { flex: 0 1 calc(25% - 8px); }
}

/* Summary of Entries CSS */
.summary .ui-separator,
.summary .ui-separator-horizontal {
    display: block;
    width: 100%;
    margin: 6px 0;
    border-top: 1px solid #cbd5e1;
}

/* If the summary section uses flex/grid rows, ensure full-width */
.summary .ui-separator { flex: 0 0 100%; }

/* Data rows: remove cell padding and fix widths */
.invoice .items > [class*="ui-g-"] { padding-left: 0 !important; padding-right: 0 !important; }

/* Subtotal rows: mirror data row widths (3/6/3 xs, 2/8/2 md) */
.invoice .items2 .line {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: baseline !important;
    gap: 0 !important;
    margin: 2px 0 !important;
    width: 100% !important;
}
.invoice .items2 .line > [class*="ui-g-"] {
    padding-left: 0 !important; padding-right: 0 !important; min-width: 0 !important;
}
.invoice .items2 .line .data-column-title { margin: 0 !important; }
.invoice .items2 .line .items-text-right { text-align: right !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }

/* Small screens: keep 3/6/3 columns; if needed, stack label+amount 50/50 */
@media (max-width: 767px) {
    .invoice .items2 .line { flex-wrap: nowrap !important; } /* keep in one row */
}

/* Make subtotal amount cells match Fee column exactly */
.invoice .items2 .line > .ui-g-3.ui-md-2.data-column-title.items-text-right {
    padding-right: 0 !important;
    margin-right: 0 !important;
    border-right: 0 !important;
    box-sizing: border-box !important;
}

/* Keep subtotal label tight without shifting the column edge */
.invoice .items2 .line > .ui-g-6.ui-md-8.data-column-title.items-text-right {
    padding-right: 0 !important;
    margin-right: 0 !important;
}

/* Ensure no inner cell padding in subtotal line columns */
.invoice .items2 .line > .ui-g-3,
.invoice .items2 .line > .ui-g-6,
.invoice .items2 .line > .ui-md-2,
.invoice .items2 .line > .ui-md-8 {
    padding-left: 0 !important;
    padding-right: 0 !important;
}