/* -------------------------------------------------------
   app.css — Main stylesheet
   MPortier
   ------------------------------------------------------- */

/* -------------------------------------------------------
   Base
   ------------------------------------------------------- */

*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 14px;
    line-height: 1.6;
    color: #1e293b;
    background: #f4f6f9;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

hr {
    border: 0;
    margin: 8px 0;
}

/* -------------------------------------------------------
   Preloader
   ------------------------------------------------------- */
 #preloader {
	 position: fixed;
	 top: 0;
	 left: 0;
	 width: 100%;
	 height: 100%;
	 z-index: 9999999;
	 background: rgb(255 255 255 / 74%);
	display: none; 
}
 #preloader.active {
	display: block; 
}
 .preloader-content {
	 display: block;
	 position: relative;
	 left: 50%;
	 top: 50%;
	 width: 100%;
	 height: 100%;
	 z-index: 1000 
}
 .preloader-spinner {
	 margin-top: -60px;
	 margin-left: -25px;
	 border-top: 0.4em solid #1d2327;
	 border-right: 0.4em solid rgb(29 35 39 / 63%);
	 border-bottom: 0.4em solid rgb(29 35 39 / 63%);
	 border-left: 0.4em solid rgb(29 35 39 / 63%);
	 -webkit-animation: preloadSpinner 0.8s infinite linear;
	 animation: preloadSpinner 0.8s infinite linear;
}
 .preloader-spinner, .preloader-spinner:after {
	 border-radius: 50%;
	 width: 55px;
	 height: 55px;
}
 @-webkit-keyframes preloadSpinner {
	 0% {
		 -webkit-transform: rotate(0deg);
		 transform: rotate(0deg) 
	}
	 100% {
		 -webkit-transform: rotate(360deg);
		 transform: rotate(360deg) 
	}
}
 @keyframes preloadSpinner {
	 0% {
		 -webkit-transform: rotate(0deg);
		 transform: rotate(0deg) 
	}
	 100% {
		 -webkit-transform: rotate(360deg);
		 transform: rotate(360deg) 
	}
}

/* -------------------------------------------------------
   Headings
   ------------------------------------------------------- */

h1, h2, h3 {
    font-weight: 600;
    line-height: 1.3;
    color: inherit;
    margin-bottom: 8px;
}

h1 { font-size: 18px; }
h2 { font-size: 16px; margin-bottom: 15px;}
h3 { font-size: 15px; margin-bottom: 15px;}


/* -------------------------------------------------------
   Text
   ------------------------------------------------------- */

p, ul, ol, blockquote, address, pre, dl {
    margin-bottom: 12px;
    color: #64748b;
}

p:last-child {
    margin-bottom: 0;
}

a {
    color: #3b82f6;
    text-decoration: none;
    transition: color 0.15s;
}

a:hover {
    color: #2563eb;
    text-decoration: none;
}

strong {
    font-weight: 600;
    color: inherit;
}

small {
    font-size: 12px;
    color: #94a3b8;
}

ul {
    list-style: none;
    padding-left: 0;
}
ol {
    padding-left: 20px;
}
li {
    margin-bottom: 4px;
    color: inherit;
}

code {
    font-family: monospace;
    font-size: 12px;
    background: #f1f5f9;
    padding: 2px 5px;
    border-radius: 3px;
}

/* -------------------------------------------------------
   Table
   ------------------------------------------------------- */

table {
    width: 100%;
    border-collapse: collapse;
}

tr {
    border-bottom: 1px solid #e2e8f0;
}

tbody tr:last-child {
    border-bottom: none;
}

th, td {
    text-align: center;
    color: inherit;
    vertical-align: middle;
    padding: 12px;
}

th {
    font-size: 12px;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
}

table .column-name,
table .column-name a {
    font-weight: 500;
    text-align: left !important;
}

table .column-name a {
    display: block;
}

/* -------------------------------------------------------
   Forms
   ------------------------------------------------------- */

.form-fields {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 20px;
}

.form-field label {
    display: inline-block;
    font-size: 13px;
    font-weight: 500;
    color: #475569;
    position: relative;
    margin-bottom: 6px;
}

.form-field label  a {
    font-weight: normal;
    font-size: 12px;
}

.form-field label[data-description],
.badge[data-description] {
    cursor: help;
}

.badge[data-description] {
    position: relative;
}

.form-field label[data-description]::before {
    content: "?";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 12px;
    height: 12px;
    font-size: 10px;
    font-weight: 600;
    text-align: left;
    color: #ffffff;
    background: #8894a5;
    border-radius: 50%;
    position: relative;
    top: -2px;
    vertical-align: middle;
    cursor: help;
}

.form-field label[data-description]::after,
.badge[data-description]::after {
    content: attr(data-description);
    position: absolute;
    top: 100%;
    margin-top: 4px;
    font-weight: normal;
    font-size: 11px;
    line-height: 1.4;
    text-align: left;
    color: #ffffff;
    background: #2c3338;
    border-radius: 4px;
    width: 220px;
    padding: 8px 10px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity 0.12s ease, transform 0.12s ease, visibility 0.12s ease;
    pointer-events: none;
    z-index: 9999;
}

.form-field label[data-description]::after {
    left: 0;
}

.badge[data-description]::after {
    right: 0;
}

.form-field label[data-description]:hover::after,
.badge[data-description]:hover::after  {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.form-field input,
.form-field select,
.form-field textarea {
    display: block;
    width: 100%;
    height: 36px;
    padding: 0 10px;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    font-family: inherit;
    font-size: inherit;
    color: inherit;
    background: #ffffff;
    outline: none;
    transition: border-color 0.15s;
}

.form-field textarea {
    height: auto;
    min-height: 120px;
    padding: 10px;
    resize: vertical;
}

.form-field select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2364748b' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 8px center;
    background-size: 16px;
    padding-right: 28px;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    border-color: #3b82f6;
}

.form-field input:disabled {
    background: #f4f6f9;
    color: #94a3b8;
    cursor: not-allowed;
}

.form-field input[readonly] {
    background: #f8fafc;
    color: #64748b;
    cursor: default;
    border: 1px solid #cbd5e1 !important;
}

.optional {
    font-size: 12px;
    font-weight: normal;
    color: #94a3b8;
}

.checkboxes {
    display: flex;
    flex-direction: column;
    gap: 4px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    padding: 12px;
}

.checkboxes label {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: 13px;
    font-weight: normal;
    color: #475569;
    padding: 4px 0;
}

.checkboxes label input[type="checkbox"] {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    cursor: pointer;
}

.notvalid,
.notvalid .checkboxes {
    border-color: #dc2626 !important;
    outline: none;
}

/* -------------------------------------------------------
   Buttons
   ------------------------------------------------------- */

.btn {
    font-family: inherit;
    font-size: 13px;
    font-weight: 500;
    color: inherit;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 34px;
    line-height: inherit;
    border-radius: 5px;
    border: none;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s, opacity 0.15s;
    padding: 0 16px;
}

.btn:hover {
    text-decoration: none;
    opacity: 0.9;
}

.btn-primary {
    background: #3b82f6;
    color: #ffffff;
}

.btn-primary:hover {
    background: #2563eb;
    color: #ffffff;
}

.btn-secondary {
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
}

.btn-secondary:hover {
    background: #e2e8f0;
}

.btn-danger {
   background: #ef4444;
   color: #ffffff;
}

.btn-danger:hover {
   background: #dc2626;
   color: #ffffff;
}

.btn-small {
    height: 33px;
    font-size: 12px;
    padding: 0 10px;
}
.btn-full-width {
    width: 100%;
}

/* -------------------------------------------------------
   Badges
   ------------------------------------------------------- */

.badge {
    display: inline-flex;
    align-items: center;
    font-size: 12px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 20px;
}

.badge-green {
    background: #dcfce7;
    color: #16a34a;
}

.badge-red {
    background: #fee2e2;
    color: #dc2626;
}


/* -------------------------------------------------------
   Alerts
   ------------------------------------------------------- */

.alert {
    font-size: 13px;
    border-radius: 8px;
    padding: 12px 16px;
    margin-bottom: 16px;
}

.alert a {
    font-weight: 600;
    color: inherit !important;
    text-decoration: underline;
}

.alert-danger {
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
}

.alert-success {
    background: #f0fdf4;
    color: #16a34a;
    border: 1px solid #bbf7d0;
}

.alert-warn {
    background: #fffbeb;
    color: #b45309;
    border: 1px solid #fde68a;
}

.alert-info {
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
}

/* -------------------------------------------------------
   Empty state
   ------------------------------------------------------- */

.empty-state {
    text-align: center;
}

.empty-state p {
    margin-bottom: 16px;
}

.empty-state p:last-child {
    margin-bottom: 0;
}

/* -------------------------------------------------------
   App shell
   ------------------------------------------------------- */

.layout {
    display: flex;
    min-height: 100vh;
}

aside {
    width: 100%;
    height: 100%;
    max-width: 220px;
    background: #ffffff;
    border-right: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
}

main {
    flex: 1;
    width: 100%;
    max-width: 1100px;
    padding: 32px;
    margin-left: 220px;
}


/* -------------------------------------------------------
   Navigation
   ------------------------------------------------------- */

.nav-logo {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 20px 12px;
    border-bottom: 1px solid #e2e8f0;
    color: inherit !important;
    text-decoration: none !important;
}

.nav-logo-icon {
    font-size: 22px;
}

.nav-logo-icon img,
.mobile-topbar-logo img {
    display: flex;
    width: 100%;
    height: 100%;
    max-width: 28px;
}

.nav-logo-text {
    font-size: 19px;
    font-weight: 700;
    color: #3b4651;
    padding-top: 2px;
}

.nav-links {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0;
}

.nav-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    color: #64748b;
    font-weight: 500;
    text-decoration: none !important;
    transition: background 0.15s, color 0.15s;
}

.nav-item.active,
.nav-item:hover {
    background: #eff6ff;
    color: #60a5fa;
}

.nav-footer {
    border-top: 1px solid #e2e8f0;
}

.nav-footer form {
    margin: 0;
}

/* .nav-item was an <a> until logout moved to a POST form (CSRF) — this
   resets the button-element defaults so button.nav-item still looks
   exactly like the anchor version above. */
button.nav-item {
    width: 100%;
    border: none;
    background: none;
    text-align: left;
    cursor: pointer;
    font-weight: 600 !important;
    padding: 13px 12px;
}

/* Shared between panel.php and auth.php via views/partials/footer.php —
   included inside <main> and .auth-wrap respectively, right after
   $content, not as a sibling after them. Both already provide their own
   horizontal padding/centering (main: padding 32px + margin-left 220px
   past the sidebar; .auth-wrap: padding 20px, centered) — a sibling
   placement after either one sits flush against the page's real left
   edge instead, behind where the sidebar visually is, misaligned with
   everything above it. Only vertical spacing needed here. */
.app-footer {
    color: #64748b;
    font-size: 14px;
    padding-top: 20px;
    margin-top: 20px;
    margin-bottom: 20px;
}

.app-footer a {
    color: inherit;
}

.nav-logout {
    color: #ef4444 !important;
}

/* -------------------------------------------------------
   Mobile navigation
   ------------------------------------------------------- */

/* Hidden on desktop (see the Responsive section at the end of this file)
   — the only reason this bar exists is to give a narrow viewport
   somewhere to put the burger once the sidebar itself is off-screen. */
.mobile-topbar {
    display: none;
    align-items: center;
    justify-content: space-between;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 56px;
    padding: 0 16px;
    background: #ffffff;
    border-bottom: 1px solid #e2e8f0;
    z-index: 200;
}

.mobile-topbar-logo {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 19px;
    font-weight: 700;
    color: inherit !important;
    text-decoration: none !important;
}

/* Same construction as the burger on media-saver.ru: 3 lines in a flex
   column, morphing into an X by rotating line1/line3 and scaling line2
   to nothing once body.nav-open is set (by app.js, on click). Lines are
   dark here rather than white — that one sits on a solid teal header,
   this one sits on the white bar above. */
.burger-menu-inner {
    height: 23px;
    width: 23px;
    cursor: pointer;
}

.burger-lines {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    height: inherit;
    width: inherit;
}

.burger-lines .line {
    position: relative;
    display: block;
    height: 2px;
    width: 100%;
    background: #1e293b;
    border-radius: 10px;
    transition: all 0.25s linear;
}

body.nav-open .burger-lines .line {
    position: absolute;
}

body.nav-open .burger-lines .line1 {
    transform: rotate(45deg);
}

body.nav-open .burger-lines .line2 {
    transform: scale(0);
}

body.nav-open .burger-lines .line3 {
    transform: rotate(-45deg);
}

/* Dims and blocks the page behind the open sidebar; tapping it closes
   the menu (see app.js). Sits above main content but below both the
   sliding aside and the topbar — see the z-index values below and in
   the Responsive section. */

body.nav-open {
    display: block;
    overflow: hidden;
}

.nav-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgb(15 23 42 / 40%);
    z-index: 140;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0s linear 0.3s;
}

body.nav-open .nav-overlay {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.3s ease, visibility 0s linear;
}

/* -------------------------------------------------------
   Page structure
   ------------------------------------------------------- */

.page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}

.container {
    margin-bottom: 20px;
}



.content {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 20px;
}

.content-danger {
    border: 1px solid #ef4444;
}

/* -------------------------------------------------------
   Dashboard
   ------------------------------------------------------- */

.stat-item {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.stat-top {
    display: flex;
    align-items: center;
    gap: 16px;
}

.stat-icon {
    font-size: 28px;
}

.stat-value {
    font-size: 26px;
    font-weight: 700;
    line-height: 1;
    color: inherit;
}

.stat-label {
    font-size: 13px;
    color: #64748b;
    margin-top: 4px;
}

/* -------------------------------------------------------
   Billing/Orders
   ------------------------------------------------------- */
   
.billing-container {
    margin-bottom: 40px;
}

.billing-stat,
.orders-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 10px 0;
    border-right: 1px solid #cfd4db;
}

.billing-stat:last-child,
.orders-stat:last-child {
    border-right: none;
}

.billing-stat-label,
.orders-stat-label {
    font-size: 12px;
    color: #64748b;
    text-transform: uppercase;
    font-weight: 600;
}

.billing-stat-value,
.orders-stat-value {
    font-size: 17px;
    font-weight: 600;
}

.plan-item {
    display: flex;
    flex-direction: column;
    gap: 12px;
    position: relative;
}
.plan-item form {
    margin-top: 10px;
}
.plan-current {
    border-color: #3b82f6;
}

.plan-badge {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 11px;
    font-weight: 600;
    color: #ffffff;
    background: #3b82f6;
    padding: 3px 10px;
    border-radius: 20px;
    white-space: nowrap;
}

.plan-price {
    font-size: 24px;
    font-weight: 700;
    color: inherit;
    line-height: 1;
    margin-bottom: 10px;
}

.plan-price small {
    font-size: 14px;
    font-weight: normal;
    color: #94a3b8;
}

.plan-price-old {
    font-size: 16px;
    font-weight: 400;
    color: #94a3b8;
    text-decoration: line-through;
    margin-right: 6px;
}

.plan-price-daily {
    font-size: 12px;
    color: #94a3b8;
    margin-top: -8px;
    display: none;
}

.plan-features {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
    margin-bottom: 0;
}

.plan-features li {
    font-size: 13px;
    color: #475569;
}

.tx-positive {
    font-weight: 600;
    color: #16a34a;
}

.tx-negative {
    font-weight: 600;
    color: #dc2626;
}

/* -------------------------------------------------------
   Pagination
   ------------------------------------------------------- */

.pagination {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 4px;
    padding: 0;
    flex-wrap: wrap;
}

.pagination-page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    padding: 0 6px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    font-size: 13px;
    color: #475569;
    text-decoration: none !important;
    background: #fff;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.pagination-page:hover {
    background: #f1f5f9;
    color: #1e293b;
    border-color: #cbd5e1;
}

.pagination-page.active {
    background: #3b82f6;
    color: #fff;
    border-color: #3b82f6;
    font-weight: 600;
    cursor: default;
    pointer-events: none;
}

.pagination-dots {
    font-size: 13px;
    color: #94a3b8;
    line-height: 32px;
    padding: 0 2px;
    user-select: none;
}


/* -------------------------------------------------------
   Reports — debug
   ------------------------------------------------------- */

.debug-subtitle {
    font-size: 12px;
    font-weight: 600;
    color: #64748b;
    margin-bottom: 8px;
    margin-top: 16px;
}

.debug-pre {
    font-size: 12px;
    font-family: monospace;
    padding: 12px;
    border-radius: 6px;
    white-space: pre-wrap;
    word-break: break-all;
    background: #f8fafc;
    color: #475569;
}

/* -------------------------------------------------------
   Auth layout
   ------------------------------------------------------- */

.auth-body {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background: #f4f6f9;
    overflow: hidden;
}
.auth-body h1 {
    font-size: 16px;
    margin-bottom: 15px;
}
.auth-wrap {
    width: 100%;
    max-width: 400px;
    padding: 0px 20px 20px 20px;
}

.auth-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 24px;
}

.auth-logo-icon {
    font-size: 28px;
}
.auth-logo-icon img {
    display: flex;
    width: 100%;
    height: 100%;
    max-width: 33px;
}

.auth-logo-text {
    font-size: 20px;
    font-weight: 700;
    color: #3b4651;
    padding-top: 2px;
}

/* -------------------------------------------------------
   Grid
   ------------------------------------------------------- */

.cols-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

.cols-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.cols-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.cols-aside {
    display: grid;
    align-items: start;
    grid-template-columns: 1fr 260px;
}

.gap-small {
    gap: 8px;
}

.gap-medium {
    gap: 16px;
}

.gap-large {
    gap: 24px;
}

[class*="cols-"] > .full-width {
    grid-column: 1 / -1;
}

/* -------------------------------------------------------
   Responsive
   ------------------------------------------------------- */

/* Two breakpoints: 860px is where the sidebar becomes a slide-in drawer
   (see .mobile-topbar above) — everything else here just keeps the rest
   of the page usable at that same width. 560px is where the grids that
   still made sense as 2 columns at 860px (tablet-ish widths) collapse
   the rest of the way down to 1, for genuine phone widths. */
@media (max-width: 860px) {
    .mobile-topbar {
        display: flex;
    }

    .nav-logo {
        display: none;
    }

    aside {
        top: 56px;
        height: calc(100% - 56px);
        transform: translateX(-100%);
        transition: transform 0.25s ease;
        z-index: 150;
    }

    body.nav-open aside {
        transform: translateX(0);
    }

    main {
        margin-left: 0;
        padding: 88px 16px 24px;
    }

    /* A long title next to a button (e.g. "Маркетплейсы (12)" +
       "+ Добавить кабинет") no longer has 1100px of main to fit into —
       let the button drop to its own line instead of squeezing both. */
    .page-header {
        flex-wrap: wrap;
        gap: 10px;
    }

    .billing-container .cols-4 {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .orders-container .cols-3 {
        grid-template-columns: repeat(3, 1fr) !important;
    }

    .orders-container .content {
        padding: 10px;
    }

    .cols-3,
    .cols-4 {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Same pattern WordPress's own admin list tables use at ≤782px:
       header row hidden, each <tr> becomes a card, each <td> becomes its
       own line inside it with a label — added via a data-label attribute
       on the <td> in every view (marketplaces/reports/users/orders/
       billing all got this), read here through content: attr(). Cells
       with no data-label (.column-name, and action-only cells like the
       admin Debug button) render unlabeled instead of with an empty
       label — see the attribute selector below, rather than every <td>
       unconditionally getting a ::before that would just be empty for
       those two cases. */
    .content table thead {
        display: none;
    }

    .content table,
    .content table tbody,
    .content table tr,
    .content table td {
        display: block;
        width: 100%;
    }

    .content table tr {
        padding: 14px 0;
        border-bottom: 1px solid #e2e8f0;
    }

    .content table tr:first-child {
        padding-top: 0;
    }

    .content table tr:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }

    .content table td {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 12px;
        padding: 6px 0;
        text-align: left;
        border: none;
    }

    .content table td[data-label] {
        justify-content: space-between;
        text-align: right;
    }

    .content table td[data-label]::before {
        content: attr(data-label);
        flex-shrink: 0;
        font-size: 12px;
        font-weight: 600;
        color: #64748b;
        text-transform: uppercase;
        text-align: left;
    }

    /* The card's own heading — same role .column-name already plays in
       the desktop table (bold, primary identifier), just larger here and
       with room before the labeled rows that follow it. */
    .content table td.column-name {
        padding-bottom: 10px;
        font-size: 15px;
    }
}

@media (max-width: 560px) {
    .content {
        padding: 16px;
    }

    .cols-2,
    .cols-3,
    .cols-4,
    .cols-aside {
        grid-template-columns: 1fr;
    }

    /* border-right only makes sense between side-by-side columns — once
       cols-3/cols-4 above stack to a single column, it would just be a
       stray vertical line down the right edge of every card. */
    .billing-stat:nth-child(2n) {
        border-right: none;
        padding: 12px 0;
    }
    
    .orders-stat-label {
        font-size: 11px;
    }

    .orders-stat-value {
    font-size: 14px;
    }
}