/* ==========================================================================
   Altitude Portal: client styles
   Uses the Altitude theme tokens (--aw-*) with fallbacks, so it matches the
   theme when present and still looks right without it.

   Every rule starts with ".ap:not(#_)". The :not(#_) adds ID-level weight
   without !important, which keeps these components intact under the Hello
   Elementor reset (pink buttons, 100%-wide inputs, striped tables), Elementor
   Site Settings (.elementor-kit-N form/button styles) and the theme's
   .page-content typography. Inside the theme's "Portal Panel" widget the
   theme's own table styles (which use !important) still take over, by design.
   ========================================================================== */

.ap:not(#_) {
	--ap-ink: var(--aw-ink, #0E1116);
	--ap-blue: var(--aw-blue, #1781C6);
	--ap-blue2: var(--aw-blue2, #2E62B6);
	--ap-green: #067A3F;
	--ap-paper: var(--aw-paper, #F7F6F3);
	--ap-sand: var(--aw-sand, #EFEEEA);
	--ap-muted: var(--aw-muted, #5B606B);
	--ap-faint: var(--aw-faint, #8A8F99);
	--ap-line: rgba(14, 17, 22, .09);
	--ap-radius: 20px;
	font-family: var(--aw-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);
	color: var(--ap-ink);
	font-size: 15px;
	line-height: 1.55;
	text-align: left;
	-webkit-font-smoothing: antialiased;
}
.ap:not(#_) *, .ap:not(#_) *::before, .ap:not(#_) *::after { box-sizing: border-box; }

/* Layout ------------------------------------------------------------------ */
.ap:not(#_).aw-dashboard-wrapper, .ap:not(#_).ap-requests, .ap:not(#_).ap-request, .ap:not(#_).ap-account { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.ap:not(#_) .ap-back, .ap:not(#_) .aw-back-link { display: inline-block; margin: 0 0 18px; font-size: 15px; font-weight: 500; }
.ap:not(#_) .ap-back a, .ap:not(#_) a.aw-back-link { color: var(--ap-muted); text-decoration: none; }
.ap:not(#_) .ap-back a:hover, .ap:not(#_) a.aw-back-link:hover { color: var(--ap-ink); }

.ap:not(#_) .ap-card,
.ap:not(#_) .aw-site-header-card,
.ap:not(#_) .aw-section-card { background: #fff; border: 1px solid var(--ap-line); border-radius: var(--ap-radius); padding: 32px; margin: 0 0 20px; box-shadow: none; }
.ap:not(#_) .ap-card-head { margin-bottom: 20px; }

/* Type */
.ap:not(#_) h1, .ap:not(#_) h2, .ap:not(#_) h3, .ap:not(#_) h4 { font-family: inherit; color: var(--ap-ink); text-transform: none; }
.ap:not(#_) .ap-h1, .ap:not(#_) .aw-site-title { font-size: clamp(26px, 3vw, 34px); font-weight: 500; line-height: 1.12; letter-spacing: -.03em; margin: 0 0 20px; }
.ap:not(#_) .aw-site-title-tight { margin-bottom: 6px; }
.ap:not(#_) .ap-request .ap-h1 { margin: 4px 0 0; }
.ap:not(#_) .ap-h2, .ap:not(#_) .aw-section-title { font-size: 22px; font-weight: 500; line-height: 1.2; letter-spacing: -.02em; margin: 0 0 16px; }
.ap:not(#_) .ap-card-head .ap-h2 { margin-bottom: 4px; }
.ap:not(#_) .ap-h3 { font-size: 16px; font-weight: 600; margin: 26px 0 12px; letter-spacing: -.01em; }
.ap:not(#_) .ap-eyebrow, .ap:not(#_) .aw-meta-label, .ap:not(#_) .aw-hours-title { font-size: 12px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--ap-faint); }
.ap:not(#_) .ap-sub, .ap:not(#_) .aw-subtitle { color: var(--ap-muted); font-size: 14px; margin: 0; }
.ap:not(#_) .ap-muted, .ap:not(#_) .aw-muted { color: var(--ap-faint); font-weight: 400; }
.ap:not(#_) .aw-muted-center { color: var(--ap-muted); padding: 20px 0; text-align: center; margin: 0; }
.ap:not(#_) p { margin: 0 0 12px; font-size: inherit; line-height: inherit; }
.ap:not(#_) a { color: var(--ap-blue); }
.ap:not(#_) a:hover { color: var(--ap-blue2); }

.ap:not(#_) .aw-title-row { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 16px; margin-bottom: 24px; }
.ap:not(#_) .aw-title-row-sm { align-items: center; gap: 8px; margin-bottom: 12px; }

/* Meta grids */
.ap:not(#_) .aw-site-meta-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 22px; margin: 0 0 8px; }
.ap:not(#_) .aw-meta-item { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ap:not(#_) .aw-meta-value { font-size: 15px; font-weight: 500; overflow-wrap: anywhere; }
.ap:not(#_) .aw-site-description { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--ap-line); }
.ap:not(#_) .aw-site-description p { margin: 8px 0 0; color: var(--ap-muted); }

.ap:not(#_) dl.ap-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 18px 24px; margin: 22px 0 0; padding: 22px 0 0; border-top: 1px solid var(--ap-line); }
.ap:not(#_) dl.ap-meta dt { font-size: 12px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--ap-faint); margin: 0 0 4px; }
.ap:not(#_) dl.ap-meta dd { margin: 0; font-weight: 500; }

/* Badges ------------------------------------------------------------------ */
.ap:not(#_) .aw-expired-badge { display: inline-block; margin-left: 8px; padding: 2px 8px; background: #fee2e2; color: #991b1b; font-size: 11px; font-weight: 600; letter-spacing: .04em; border-radius: 6px; }
.ap:not(#_) .aw-plan-badge { display: inline-block; padding: 4px 11px; border-radius: 100px; font-size: 12px; font-weight: 500; background: #E4F1FB; color: #135F93; white-space: nowrap; }
.ap:not(#_) .aw-all-sites-badge { display: inline-block; background: #EEF0FF; color: #4338ca; font-size: 10px; font-weight: 600; letter-spacing: .04em; padding: 2px 8px; border-radius: 100px; margin-left: 6px; vertical-align: middle; }
.ap:not(#_) .aw-pill { display: inline-block; font-weight: 500; border-radius: 100px; white-space: nowrap; flex-shrink: 0; }
.ap:not(#_) .aw-pill-md { font-size: 13px; padding: 5px 14px; }
.ap:not(#_) .aw-pill-sm { font-size: 12px; padding: 3px 10px; }

.ap:not(#_) .aw-status-badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 11px; border-radius: 100px; font-size: 11.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; }
.ap:not(#_) .aw-status-icon { width: 15px; height: 15px; }
.ap:not(#_) .aw-status-new { background: #E4F1FB; color: #135F93; }
.ap:not(#_) .aw-status-active { background: #FEF3C7; color: #92400E; }
.ap:not(#_) .aw-status-approval { background: #FCE7F3; color: #9F1239; }
.ap:not(#_) .aw-status-complete { background: #E6F9EF; color: #067A3F; }
.ap:not(#_) .aw-status-canceled { background: #F0EFEB; color: var(--ap-muted); }
.ap:not(#_) .aw-priority-badge { display: inline-block; padding: 4px 11px; border-radius: 100px; font-size: 12px; font-weight: 500; white-space: nowrap; }
.ap:not(#_) .aw-priority-low { background: #F0EFEB; color: var(--ap-muted); }
.ap:not(#_) .aw-priority-standard { background: #E6F9EF; color: #166534; }
.ap:not(#_) .aw-priority-medium { background: #FEF3C7; color: #92400E; }
.ap:not(#_) .aw-priority-high { background: #FED7AA; color: #9A3412; }
.ap:not(#_) .aw-priority-urgent { background: #FECACA; color: #991B1B; }

/* Monthly plan hours ------------------------------------------------------ */
.ap:not(#_) .aw-hours-tracker { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--ap-line); }
.ap:not(#_) .aw-hours-header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; flex-wrap: wrap; gap: 8px; }
.ap:not(#_) .aw-hours-stats { font-size: 15px; color: var(--ap-muted); }
.ap:not(#_) .aw-hours-stats strong { color: var(--ap-ink); font-size: 18px; font-weight: 600; }
.ap:not(#_) .aw-hours-remaining { color: var(--ap-green); font-weight: 500; margin-left: 6px; }
.ap:not(#_) .aw-progress-bar { width: 100%; height: 10px; background: var(--ap-sand); border-radius: 100px; overflow: hidden; }
.ap:not(#_) .aw-progress-fill { height: 100%; border-radius: 100px; transition: width .5s ease; }
.ap:not(#_) .aw-hours-low { background: #0BCF6B; }
.ap:not(#_) .aw-hours-medium { background: var(--ap-blue); }
.ap:not(#_) .aw-hours-high { background: #F59E0B; }
.ap:not(#_) .aw-hours-full { background: #DC2626; }

/* Time block usage -------------------------------------------------------- */
.ap:not(#_) .aw-usage-lg { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--ap-line); }
.ap:not(#_) .aw-usage-head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.ap:not(#_) .aw-usage-used { font-size: 15px; color: var(--ap-muted); font-weight: 500; }
.ap:not(#_) .aw-usage-remaining { font-size: 24px; font-weight: 600; letter-spacing: -.02em; }
.ap:not(#_) .aw-usage-track { border-radius: 100px; height: 12px; overflow: hidden; }
.ap:not(#_) .aw-usage-fill { height: 100%; border-radius: 100px; transition: width .3s ease; }
.ap:not(#_) .aw-usage-pct { text-align: center; margin-top: 6px; font-size: 13px; color: var(--ap-faint); }
.ap:not(#_) .aw-usage-sm .aw-usage-used { font-size: 14px; }
.ap:not(#_) .aw-usage-sm .aw-usage-remaining { font-size: 19px; }
.ap:not(#_) .aw-usage-sm .aw-usage-track { height: 10px; margin-bottom: 12px; }

.ap:not(#_) .aw-tb-card { background: var(--ap-paper); border: 1px solid var(--ap-line); border-radius: 16px; padding: 20px; margin-bottom: 14px; }
.ap:not(#_) a.aw-tb-card-title { font-weight: 600; font-size: 16px; color: var(--ap-ink); text-decoration: none; }
.ap:not(#_) a.aw-tb-card-title:hover { color: var(--ap-blue); }
.ap:not(#_) .aw-tb-dates { display: flex; gap: 20px; font-size: 13px; color: var(--ap-faint); flex-wrap: wrap; }
.ap:not(#_) details.aw-tb-requests { margin-top: 12px; }
.ap:not(#_) details > summary { cursor: pointer; user-select: none; }
.ap:not(#_) .aw-tb-requests > summary { font-size: 13px; font-weight: 600; color: var(--ap-blue); }
.ap:not(#_) .aw-tb-past > summary { font-size: 14px; font-weight: 600; color: var(--ap-faint); margin-bottom: 12px; }
.ap:not(#_) .aw-tb-card-past { padding: 16px; opacity: .8; }
.ap:not(#_) .aw-tb-card-past a.aw-tb-card-title { font-size: 14px; color: var(--ap-muted); }
.ap:not(#_) .aw-tb-card-past .aw-pill { text-transform: uppercase; font-size: 11px; padding: 2px 8px; }

/* Tables ------------------------------------------------------------------ */
.ap:not(#_) .aw-table-wrapper, .ap:not(#_) .aw-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ap:not(#_) table { width: 100%; margin: 0; border-collapse: collapse; border-spacing: 0; background: transparent; font-size: 14px; }
.ap:not(#_) th, .ap:not(#_) td { border: 0; background: transparent; box-shadow: none; text-align: left; vertical-align: middle; line-height: 1.45; }
.ap:not(#_) table thead th { padding: 12px 14px; border-bottom: 1px solid var(--ap-line); font-size: 12px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--ap-faint); white-space: nowrap; }
.ap:not(#_) table tbody td { padding: 14px; border-bottom: 1px solid #F0EFEB; color: var(--ap-ink); }
.ap:not(#_) table tbody tr:last-child td { border-bottom: 0; }
.ap:not(#_) table tbody tr:hover td { background: #FAFAF8; }
.ap:not(#_) table.aw-mini-table { font-size: 13px; }
.ap:not(#_) .aw-mini-table th, .ap:not(#_) .aw-mini-table td { padding: 8px 10px; }
.ap:not(#_) .aw-mini-table .num { text-align: right; font-weight: 600; }
.ap:not(#_) .aw-row-muted td { opacity: .6; }
.ap:not(#_) td.dataTables_empty { text-align: center; color: var(--ap-faint); padding: 36px 14px; }
.ap:not(#_) a.aw-site-name-link, .ap:not(#_) a.ap-strong-link { color: var(--ap-ink); font-weight: 600; text-decoration: none; }
.ap:not(#_) a.aw-site-name-link:hover, .ap:not(#_) a.ap-strong-link:hover { color: var(--ap-blue); }
.ap:not(#_) a.aw-url-link { color: var(--ap-muted); font-size: 13px; text-decoration: none; }
.ap:not(#_) a.aw-url-link:hover { color: var(--ap-blue); }
.ap:not(#_) .aw-actions-col, .ap:not(#_) .aw-actions-cell { text-align: right; }
.ap:not(#_) .ap-sub { line-height: 1.4; }

/* DataTables controls (outside the theme Portal Panel) */
.ap:not(#_) .dataTables_wrapper .dataTables_length, .ap:not(#_) .dataTables_wrapper .dataTables_filter { margin-bottom: 16px; font-size: 14px; color: var(--ap-muted); }
.ap:not(#_) .dataTables_wrapper label { display: inline-flex; align-items: center; gap: 8px; margin: 0; line-height: 1.2; font-weight: 400; }
.ap:not(#_) .dataTables_wrapper .dataTables_length select,
.ap:not(#_) .dataTables_wrapper .dataTables_filter input { width: auto; min-height: 38px; padding: 6px 12px; margin: 0; border: 1px solid rgba(14,17,22,.14); border-radius: 10px; background-color: #fff; font: inherit; font-size: 14px; color: var(--ap-ink); box-shadow: none; }
.ap:not(#_) .dataTables_wrapper .dataTables_filter input { width: 220px; max-width: 100%; }
.ap:not(#_) .dataTables_wrapper .dataTables_filter input:focus { outline: 0; border-color: var(--ap-blue); box-shadow: 0 0 0 4px rgba(23,129,198,.14); }
.ap:not(#_) .dataTables_wrapper .dataTables_info { padding-top: 16px; font-size: 13px; color: var(--ap-faint); }
.ap:not(#_) .dataTables_wrapper .dataTables_paginate { padding-top: 12px; }
/* DataTables' own stylesheet uses !important on these, so we have to as well. */
.ap:not(#_) .dataTables_wrapper .dataTables_paginate .paginate_button { min-width: 34px; margin: 0 2px; padding: 6px 11px; border: 0 !important; border-radius: 100px; background: none !important; color: var(--ap-muted) !important; font-size: 14px; box-shadow: none; }
.ap:not(#_) .dataTables_wrapper .dataTables_paginate .paginate_button:hover { background: var(--ap-sand) !important; color: var(--ap-ink) !important; }
.ap:not(#_) .dataTables_wrapper .dataTables_paginate .paginate_button.current, .ap:not(#_) .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { background: var(--ap-ink) !important; color: #fff !important; }
.ap:not(#_) .dataTables_wrapper .dataTables_paginate .paginate_button.disabled { opacity: .4; pointer-events: none; }

/* Expandable request rows */
.ap:not(#_) th.aw-expand-col, .ap:not(#_) td.aw-expand-cell { width: 44px; padding-left: 8px; padding-right: 4px; text-align: center; }
.ap:not(#_) td button.aw-expand-btn,
.ap:not(#_) td button.aw-expand-btn:hover,
.ap:not(#_) td button.aw-expand-btn:focus { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; margin: 0; border: 0; border-radius: 8px; background: transparent; color: var(--ap-muted); box-shadow: none; font: inherit; line-height: 1; cursor: pointer; transition: background .15s; min-height: 0; }
.ap:not(#_) td button.aw-expand-btn:hover { background: var(--ap-sand); color: var(--ap-ink); }
.ap:not(#_) td button.aw-expand-btn:focus-visible { outline: 2px solid var(--ap-blue); outline-offset: 1px; }
.ap:not(#_) .aw-expand-icon { display: inline-block; font-size: 22px; line-height: 1; font-weight: 600; transition: transform .2s ease; }
.ap:not(#_) .aw-expand-btn.aw-expanded .aw-expand-icon { transform: rotate(90deg); }
.ap:not(#_) tr.aw-details-row > td, .ap:not(#_) tr.aw-details-row:hover > td { background: var(--ap-paper); padding: 0; }
.ap:not(#_) .aw-details-content { padding: 20px 24px; }
.ap:not(#_) .aw-details-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 18px; }
.ap:not(#_) .aw-details-item { display: flex; flex-direction: column; gap: 4px; }
.ap:not(#_) .aw-details-item strong, .ap:not(#_) .aw-details-description > strong { font-size: 12px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--ap-faint); }
.ap:not(#_) .aw-details-item span { font-size: 14px; font-weight: 500; }
.ap:not(#_) .aw-details-description { padding-top: 16px; border-top: 1px solid var(--ap-line); }
.ap:not(#_) .aw-details-description > strong { display: block; margin-bottom: 8px; }
.ap:not(#_) .aw-details-text { color: #2A2F38; line-height: 1.65; }
.ap:not(#_) .aw-details-open { display: inline-block; margin-top: 14px; font-weight: 600; font-size: 14px; }

/* Buttons ----------------------------------------------------------------- */
.ap:not(#_) .ap-btn,
.ap:not(#_) .ap-btn:hover,
.ap:not(#_) .ap-btn:focus,
.ap:not(#_) .aw-view-details-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: auto; min-height: 0; padding: 12px 22px; border: 1px solid transparent; border-radius: 100px; font: inherit; font-size: 15px; font-weight: 500; line-height: 1.2; text-align: center; text-decoration: none; text-transform: none; letter-spacing: normal; white-space: nowrap; box-shadow: none; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.ap:not(#_) .ap-btn.ap-btn-primary, .ap:not(#_) a.aw-view-details-btn { background: var(--ap-ink); color: #fff; }
.ap:not(#_) .ap-btn.ap-btn-primary:hover, .ap:not(#_) .ap-btn.ap-btn-primary:focus-visible, .ap:not(#_) a.aw-view-details-btn:hover { background: var(--ap-blue); color: #fff; }
.ap:not(#_) a.aw-view-details-btn { padding: 9px 16px; font-size: 14px; }
.ap:not(#_) .ap-btn.ap-btn-light { background: #fff; color: var(--ap-ink); border-color: rgba(14,17,22,.14); }
.ap:not(#_) .ap-btn.ap-btn-light:hover { border-color: var(--ap-ink); color: var(--ap-ink); background: #fff; }
.ap:not(#_) .ap-btn.ap-btn-success { background: #0BCF6B; color: var(--ap-ink); }
.ap:not(#_) .ap-btn.ap-btn-success:hover { background: #09B35C; color: var(--ap-ink); }
.ap:not(#_) .ap-btn.ap-btn-block { display: flex; width: 100%; }
.ap:not(#_) .ap-btn:focus-visible { outline: 2px solid var(--ap-blue); outline-offset: 2px; }

/* Forms ------------------------------------------------------------------- */
.ap:not(#_) .ap-form { margin: 0; }
.ap:not(#_) .ap-field { display: flex; flex-direction: column; gap: 6px; margin: 0 0 16px; }
.ap:not(#_) .ap-field label, .ap:not(#_) .ap-field-row label { display: block; font-size: 14px; font-weight: 500; line-height: 1.3; color: var(--ap-ink); margin: 0; }
.ap:not(#_) .ap-field-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.ap:not(#_) .ap-field-row a { font-size: 13px; }
.ap:not(#_) .ap-req { color: #DC2626; }
.ap:not(#_) .ap-field input[type=text], .ap:not(#_) .ap-field input[type=email], .ap:not(#_) .ap-field input[type=password], .ap:not(#_) .ap-field input[type=url], .ap:not(#_) .ap-field select, .ap:not(#_) .ap-field textarea { display: block; width: 100%; min-height: 46px; margin: 0; padding: 11px 14px; border: 1px solid rgba(14,17,22,.14); border-radius: 12px; background: #fff; box-shadow: none; font: inherit; font-size: 15px; line-height: 1.4; color: var(--ap-ink); transition: border-color .15s, box-shadow .15s; }
.ap:not(#_) .ap-field textarea { min-height: 120px; resize: vertical; }
.ap:not(#_) .ap-field select { appearance: auto; padding-right: 10px; }
.ap:not(#_) .ap-field input:focus, .ap:not(#_) .ap-field select:focus, .ap:not(#_) .ap-field textarea:focus { outline: 0; border-color: var(--ap-blue); box-shadow: 0 0 0 4px rgba(23,129,198,.14); }
.ap:not(#_) .ap-field input.ap-file { display: block; width: 100%; min-height: 0; margin: 0; padding: 10px; border: 1px dashed rgba(14,17,22,.22); border-radius: 12px; outline: 0; background: var(--ap-paper); box-shadow: none; font: inherit; font-size: 14px; color: var(--ap-muted); cursor: pointer; }
.ap:not(#_) .ap-field input.ap-file:focus-visible { border-color: var(--ap-blue); box-shadow: 0 0 0 4px rgba(23,129,198,.14); }
.ap:not(#_) .ap-file-list { font-size: 13px; color: var(--ap-muted); }
.ap:not(#_) .ap-file-list:empty { display: none; }
.ap:not(#_) .ap-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.ap:not(#_) .ap-check { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; font-size: 14px; font-weight: 400; line-height: 1.3; cursor: pointer; }
.ap:not(#_) .ap-check input { width: 16px; height: 16px; margin: 0; accent-color: var(--ap-ink); }
.ap:not(#_) .ap-form-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 12px 16px; margin-top: 6px; }
.ap:not(#_) .ap-form-actions .ap-check { margin: 0 auto 0 0; }
.ap:not(#_) .ap-inline-select { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; margin: 0; }
.ap:not(#_) .ap-inline-select select { width: auto; min-height: 38px; padding: 6px 10px; border: 1px solid rgba(14,17,22,.14); border-radius: 10px; background: #fff; font: inherit; font-size: 14px; color: var(--ap-ink); }

/* Alerts */
.ap:not(#_) .ap-alert { padding: 12px 16px; border-radius: 12px; margin: 0 0 18px; font-size: 14px; line-height: 1.45; }
.ap:not(#_) .ap-alert-ok { background: #E6F9EF; color: #065F33; border: 1px solid #B7EBCF; }
.ap:not(#_) .ap-alert-error { background: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; }

/* Requests list ----------------------------------------------------------- */
.ap:not(#_) .ap-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin: 0 0 18px; }
.ap:not(#_) .ap-tabs { display: inline-flex; gap: 4px; padding: 4px; background: var(--ap-sand); border-radius: 100px; }
.ap:not(#_) a.ap-tab { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 100px; font-size: 14px; font-weight: 500; color: var(--ap-muted); text-decoration: none; }
.ap:not(#_) a.ap-tab span { font-size: 12px; color: var(--ap-faint); }
.ap:not(#_) a.ap-tab:hover { color: var(--ap-ink); }
.ap:not(#_) a.ap-tab.is-active { background: #fff; color: var(--ap-ink); box-shadow: 0 1px 2px rgba(14,17,22,.08); }
.ap:not(#_) .ap-req-table .ap-sub { font-size: 13px; margin-top: 2px; }

/* Request detail ---------------------------------------------------------- */
.ap:not(#_) .ap-req-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.ap:not(#_) .ap-req-badges { display: flex; gap: 8px; flex-wrap: wrap; padding-top: 4px; }
.ap:not(#_) .ap-details-body { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--ap-line); color: #2A2F38; line-height: 1.7; }
.ap:not(#_) .ap-details-body p:last-child { margin-bottom: 0; }
.ap:not(#_) ul.ap-files { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 14px 0 0; padding: 0; }
.ap:not(#_) ul.ap-files li { margin: 0; }
.ap:not(#_) ul.ap-files a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border: 1px solid var(--ap-line); border-radius: 100px; background: var(--ap-paper); color: var(--ap-ink); font-size: 13px; font-weight: 500; text-decoration: none; }
.ap:not(#_) ul.ap-files a:hover { border-color: var(--ap-ink); }
.ap:not(#_) .ap-approve { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin: 24px 0 0; padding: 18px 20px; border-radius: 16px; background: #FDF2F8; border: 1px solid #FBCFE8; }
.ap:not(#_) .ap-approve p { margin: 2px 0 0; color: var(--ap-muted); font-size: 14px; }

.ap:not(#_) ol.ap-thread { list-style: none; margin: 0 0 8px; padding: 0; }
.ap:not(#_) .ap-msg { display: flex; gap: 12px; margin: 0 0 18px; padding: 0; }
.ap:not(#_) .ap-avatar { flex: none; width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; background: var(--ap-sand); color: var(--ap-ink); }
.ap:not(#_) .ap-msg-team .ap-avatar { background: var(--ap-ink); color: #fff; }
.ap:not(#_) .ap-msg-body { flex: 1; min-width: 0; padding: 14px 16px; border-radius: 4px 16px 16px 16px; background: var(--ap-paper); border: 1px solid var(--ap-line); }
.ap:not(#_) .ap-msg-team .ap-msg-body { background: #F2F8FD; border-color: #D6E9F7; }
.ap:not(#_) .ap-msg-internal .ap-msg-body { background: #FFFBEB; border-color: #FDE68A; }
.ap:not(#_) .ap-msg-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-bottom: 6px; font-size: 14px; }
.ap:not(#_) .ap-msg-head time { margin-left: auto; font-size: 12px; color: var(--ap-faint); }
.ap:not(#_) .ap-tag { font-size: 11px; font-weight: 600; letter-spacing: .03em; padding: 2px 8px; border-radius: 100px; background: var(--ap-ink); color: #fff; }
.ap:not(#_) .ap-tag-muted { background: var(--ap-sand); color: var(--ap-muted); }
.ap:not(#_) .ap-tag-warn { background: #FDE68A; color: #78350F; }
.ap:not(#_) .ap-msg-text { color: #2A2F38; overflow-wrap: anywhere; }
.ap:not(#_) .ap-msg-text p:last-child { margin-bottom: 0; }
.ap:not(#_) .ap-msg-event { flex-wrap: wrap; justify-content: center; gap: 2px 8px; font-size: 13px; color: var(--ap-faint); text-align: center; margin: 0 0 18px; }
.ap:not(#_) .ap-msg-event time { font-size: 12px; }
.ap:not(#_) .ap-empty-thread { margin: 0 0 18px; }
.ap:not(#_) .ap-reply { margin-top: 8px; padding-top: 22px; border-top: 1px solid var(--ap-line); }

/* Auth (login / reset) ---------------------------------------------------- */
.ap:not(#_).ap-auth { display: flex; justify-content: center; padding: 48px 20px 72px; }
.ap:not(#_) .ap-auth-card { width: 100%; max-width: 440px; padding: 40px; background: #fff; border: 1px solid var(--ap-line); border-radius: 24px; }
.ap:not(#_) .ap-auth-title { font-size: 28px; font-weight: 500; line-height: 1.15; letter-spacing: -.03em; margin: 0 0 8px; }
.ap:not(#_) .ap-auth-sub { color: var(--ap-muted); margin: 0 0 24px; }
.ap:not(#_) .ap-auth-foot { margin: 18px 0 0; font-size: 14px; text-align: center; }
.ap:not(#_) .ap-auth-foot a { color: var(--ap-muted); text-decoration: none; }
.ap:not(#_) .ap-auth-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* Warning box ------------------------------------------------------------- */
.ap:not(#_) .aw-site-warning { background: #FFFBEB; border: 1px solid #FDE68A; padding: 20px 22px; border-radius: 16px; color: #78350F; max-width: 600px; margin: 32px auto; }
.ap:not(#_) .aw-site-warning p { margin: 0 0 6px; }
.ap:not(#_) .aw-site-warning strong { display: block; font-size: 16px; }

/* Inside the theme "Portal Panel" widget: the panel is the card, so flatten ours. */
.aw-pp__body .ap:not(#_).aw-dashboard-wrapper, .aw-pp__body .ap:not(#_).ap-requests { max-width: none; padding: 0; }
.aw-pp__body .ap:not(#_) .aw-section-card { background: none; border: 0; border-radius: 0; padding: 0; margin: 0; }
.aw-pp__body .ap:not(#_) .aw-section-card + .aw-section-card { margin-top: 28px; }

/* Responsive -------------------------------------------------------------- */
@media (max-width: 768px) {
	.ap:not(#_) .ap-card, .ap:not(#_) .aw-site-header-card, .ap:not(#_) .aw-section-card { padding: 22px 18px; border-radius: 16px; }
	.ap:not(#_).aw-dashboard-wrapper, .ap:not(#_).ap-requests, .ap:not(#_).ap-request, .ap:not(#_).ap-account { padding: 0 16px; }
	.ap:not(#_) .aw-site-meta-grid { grid-template-columns: 1fr; }
	.ap:not(#_) .aw-details-grid { grid-template-columns: repeat(2, 1fr); }
	.ap:not(#_) .aw-details-content { padding: 16px; }
	.ap:not(#_) .ap-grid-2 { grid-template-columns: minmax(0, 1fr); }
	.ap:not(#_) .ap-auth-card { padding: 28px 22px; }
	.ap:not(#_) .ap-toolbar .ap-btn { width: 100%; }
	.ap:not(#_) .ap-tabs { width: 100%; justify-content: space-between; }
	.ap:not(#_) .ap-msg-head time { margin-left: 0; width: 100%; }
	.ap:not(#_) .ap-form-actions { justify-content: stretch; }
	.ap:not(#_) .ap-form-actions .ap-btn { width: 100%; }
}
@media (max-width: 480px) {
	.ap:not(#_) .aw-details-grid { grid-template-columns: 1fr; }
	.ap:not(#_) .ap-avatar { display: none; }
}


/* ==========================================================================
   Portal app ([aw_portal]) — sidebar shell, KPIs, panels, tables.
   Same weighting trick as above: every rule starts with ".apx:not(#_)".
   ========================================================================== */

/* Breaks out of narrow theme containers (e.g. the 760px non-Elementor page column) and centres itself. */
.apx:not(#_) { --apx-line: rgba(14, 17, 22, .08); --apx-soft: #F4F3EF; --apx-hover: #FAFAF8; --apx-w: min(1320px, calc(100vw - 48px)); display: grid; grid-template-columns: 252px minmax(0, 1fr); gap: 28px; align-items: start; width: var(--apx-w); max-width: none; margin: 28px 0 72px calc(50% - var(--apx-w) / 2); padding: 0; font-size: 14px; }
.apx:not(#_) .apx-i { flex: none; display: block; }

/* Sidebar ----------------------------------------------------------------- */
.apx:not(#_) .apx-side { position: sticky; top: 96px; max-height: calc(100vh - 120px); overflow-y: auto; display: flex; flex-direction: column; gap: 12px; padding: 14px; background: #fff; border: 1px solid var(--apx-line); border-radius: 16px; }
.apx:not(#_) .apx-org { display: flex; align-items: center; gap: 10px; padding: 4px 4px 2px; min-width: 0; }
.apx:not(#_) .apx-org-mark { flex: none; width: 38px; height: 38px; border-radius: 10px; background: var(--ap-ink); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; letter-spacing: .02em; }
.apx:not(#_) .apx-org-text { min-width: 0; }
.apx:not(#_) .apx-org-name { font-size: 14px; font-weight: 600; line-height: 1.25; color: var(--ap-ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.apx:not(#_) .apx-org-sub { font-size: 12px; color: var(--ap-faint); }
.apx:not(#_) .apx-switch { margin: 0; }
.apx:not(#_) .apx-switch select { display: block; width: 100%; min-height: 36px; margin: 0; padding: 6px 10px; border: 1px solid rgba(14,17,22,.14); border-radius: 10px; background: #fff; font: inherit; font-size: 13px; color: var(--ap-ink); box-shadow: none; }
.apx:not(#_) .ap-btn.apx-new { width: 100%; padding: 10px 14px; font-size: 14px; }
.apx:not(#_) .apx-nav { display: flex; flex-direction: column; gap: 2px; }
.apx:not(#_) a.apx-nav-item { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 10px; color: var(--ap-muted); font-size: 14px; font-weight: 500; line-height: 1.2; text-decoration: none; transition: background .15s, color .15s; }
.apx:not(#_) a.apx-nav-item:hover { background: var(--apx-soft); color: var(--ap-ink); }
.apx:not(#_) a.apx-nav-item.is-active { background: var(--apx-soft); color: var(--ap-ink); font-weight: 600; }
.apx:not(#_) a.apx-nav-item.is-active .apx-i { color: var(--ap-blue); }
.apx:not(#_) .apx-badge { margin-left: auto; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 100px; background: var(--ap-sand); color: var(--ap-muted); font-size: 11.5px; font-weight: 600; font-style: normal; line-height: 20px; text-align: center; }
.apx:not(#_) .apx-badge.is-alert { background: #FCE7F3; color: #9F1239; }
.apx:not(#_) .apx-side-foot { display: flex; flex-direction: column; gap: 2px; margin-top: 4px; padding-top: 10px; border-top: 1px solid var(--apx-line); }
.apx:not(#_) .apx-user { display: flex; align-items: center; gap: 10px; padding: 10px 10px 4px; }
.apx:not(#_) .apx-avatar { flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--ap-sand); color: var(--ap-ink); display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; }
.apx:not(#_) .apx-avatar-sm { width: 26px; height: 26px; font-size: 11px; }
.apx:not(#_) .apx-user-text { min-width: 0; line-height: 1.3; }
.apx:not(#_) .apx-user-name { font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apx:not(#_) a.apx-user-out { font-size: 12.5px; color: var(--ap-faint); text-decoration: none; }
.apx:not(#_) a.apx-user-out:hover { color: var(--ap-ink); }

/* Main header --------------------------------------------------------------- */
.apx:not(#_) .apx-main { min-width: 0; }
.apx:not(#_) a.apx-crumb { display: inline-flex; align-items: center; gap: 4px; margin: 0 0 10px; font-size: 13px; font-weight: 500; color: var(--ap-muted); text-decoration: none; }
.apx:not(#_) a.apx-crumb:hover { color: var(--ap-ink); }
.apx:not(#_) a.apx-crumb .apx-i { width: 16px; height: 16px; }
.apx:not(#_) .apx-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 24px; flex-wrap: wrap; margin: 0 0 22px; }
.apx:not(#_) .apx-head-text { min-width: 0; }
.apx:not(#_) .apx-eyebrow { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 13px; font-weight: 500; color: var(--ap-muted); }
.apx:not(#_) h1.apx-title { margin: 4px 0 0; font-size: clamp(24px, 2.6vw, 30px); font-weight: 500; line-height: 1.15; letter-spacing: -.03em; color: var(--ap-ink); }
.apx:not(#_) .apx-sub { margin: 6px 0 0; font-size: 15px; color: var(--ap-muted); }
.apx:not(#_) .apx-head-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.apx:not(#_) .apx-head-actions .ap-btn { padding: 10px 18px; font-size: 14px; }
.apx:not(#_) .apx-head-actions .apx-i, .apx:not(#_) .apx-new .apx-i { width: 16px; height: 16px; }
.apx:not(#_) .apx-dot { color: var(--ap-faint); }

/* KPIs --------------------------------------------------------------------- */
.apx:not(#_) .apx-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0 0 18px; }
.apx:not(#_) .apx-kpis-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.apx:not(#_) .apx-kpi { display: flex; flex-direction: column; gap: 6px; min-width: 0; padding: 16px 18px; background: #fff; border: 1px solid var(--apx-line); border-radius: 14px; color: var(--ap-ink); text-decoration: none; transition: border-color .15s, transform .15s; }
.apx:not(#_) a.apx-kpi:hover { border-color: rgba(14,17,22,.22); color: var(--ap-ink); transform: translateY(-1px); }
.apx:not(#_) .apx-kpi-label { font-size: 12.5px; font-weight: 500; color: var(--ap-muted); }
.apx:not(#_) .apx-kpi-value { font-size: 28px; font-weight: 600; line-height: 1.1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--ap-ink); }
.apx:not(#_) .apx-kpi-value small { font-size: 15px; font-weight: 500; color: var(--ap-faint); letter-spacing: 0; }
.apx:not(#_) .apx-kpi-value.apx-kpi-text { font-size: 20px; padding: 4px 0 2px; }
.apx:not(#_) .apx-kpi-value.is-alert { color: #BE123C; }
.apx:not(#_) .apx-kpi-sub { font-size: 13px; color: var(--ap-faint); }
.apx:not(#_) .apx-kpi-sub.is-alert { color: #BE123C; font-weight: 500; }

.apx:not(#_) .apx-meter { display: block; width: 100%; height: 6px; margin-top: 4px; border-radius: 100px; background: var(--ap-sand); overflow: hidden; }
.apx:not(#_) .apx-meter > span { display: block; height: 100%; border-radius: 100px; background: #0BCF6B; }
.apx:not(#_) .apx-meter.is-mid > span { background: #F59E0B; }
.apx:not(#_) .apx-meter.is-high > span { background: #DC2626; }
.apx:not(#_) .apx-meter.is-off > span { background: #C9CBD0; }

/* Panels ------------------------------------------------------------------ */
.apx:not(#_) .apx-panel { margin: 0 0 18px; background: #fff; border: 1px solid var(--apx-line); border-radius: 14px; overflow: hidden; }
.apx:not(#_) .apx-panel-pad { padding: 20px; }
.apx:not(#_) .apx-panel-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 18px 12px; }
.apx:not(#_) .apx-panel-head-pad { border-bottom: 1px solid var(--apx-line); padding-bottom: 14px; }
.apx:not(#_) .apx-panel-head h2 { margin: 0; font-size: 15px; font-weight: 600; letter-spacing: -.01em; color: var(--ap-ink); }
.apx:not(#_) .apx-panel-head a { display: inline-flex; align-items: center; gap: 2px; font-size: 13px; font-weight: 500; color: var(--ap-muted); text-decoration: none; }
.apx:not(#_) .apx-panel-head a:hover { color: var(--ap-ink); }
.apx:not(#_) .apx-panel-head a .apx-i { width: 15px; height: 15px; }
.apx:not(#_) .apx-cols { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.apx:not(#_) .apx-empty-line { margin: 0; padding: 4px 18px 18px; font-size: 14px; color: var(--ap-muted); }
.apx:not(#_) .apx-panel-flush .apx-empty-line, .apx:not(#_) .apx-tabpanel .apx-empty-line { padding: 22px 18px; }
.apx:not(#_) .apx-footnote { margin: 4px 2px 0; font-size: 13px; color: var(--ap-muted); }

/* Row lists */
.apx:not(#_) ul.apx-list, .apx:not(#_) ol.apx-feed { list-style: none; margin: 0; padding: 0; }
.apx:not(#_) ul.apx-list > li, .apx:not(#_) ol.apx-feed > li { margin: 0; border-top: 1px solid var(--apx-line); }
.apx:not(#_) a.apx-row { display: flex; align-items: center; gap: 14px; padding: 12px 18px; color: var(--ap-ink); text-decoration: none; transition: background .12s; }
.apx:not(#_) a.apx-row:hover { background: var(--apx-hover); color: var(--ap-ink); }
.apx:not(#_) .apx-row-main { display: flex; flex-direction: column; flex: 1; min-width: 0; gap: 1px; }
.apx:not(#_) .apx-row-main strong { font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apx:not(#_) .apx-row-main span { font-size: 13px; color: var(--ap-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apx:not(#_) .apx-row-meter { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; width: 112px; flex: none; }
.apx:not(#_) .apx-row-meter small { font-size: 12px; color: var(--ap-faint); }
.apx:not(#_) .apx-row-num { font-size: 13px; font-weight: 600; color: var(--ap-muted); white-space: nowrap; }
.apx:not(#_) .apx-chev { width: 16px; height: 16px; color: #B7BAC1; }
.apx:not(#_) a.apx-row:hover .apx-chev { color: var(--ap-ink); }
.apx:not(#_) .apx-date { flex: none; width: 42px; height: 42px; border-radius: 10px; background: var(--ap-paper); display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 10.5px; font-weight: 500; text-transform: uppercase; letter-spacing: .04em; color: var(--ap-faint); line-height: 1.1; }
.apx:not(#_) .apx-date b { font-size: 15px; font-weight: 600; color: var(--ap-ink); letter-spacing: 0; }

/* Attention */
.apx:not(#_) .apx-attn-item { display: flex; align-items: center; gap: 12px; padding: 12px 18px; }
.apx:not(#_) .apx-attn-icon { flex: none; width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.apx:not(#_) .apx-attn-icon.is-pink { background: #FDF2F8; color: #BE185D; }
.apx:not(#_) .apx-attn-icon.is-red { background: #FEF2F2; color: #DC2626; }
.apx:not(#_) .apx-attn-icon.is-amber { background: #FFFBEB; color: #B45309; }
.apx:not(#_) .apx-attn-text { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.apx:not(#_) .apx-attn-text strong { font-size: 14px; font-weight: 600; }
.apx:not(#_) .apx-attn-text span { font-size: 13px; color: var(--ap-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apx:not(#_) .ap-btn.apx-btn-sm { padding: 7px 14px; font-size: 13px; }
.apx:not(#_) .apx-allclear { display: flex; align-items: center; gap: 10px; padding: 2px 18px 18px; font-size: 14px; font-weight: 500; color: #067A3F; }

/* Activity feed */
.apx:not(#_) ol.apx-feed > li { display: flex; align-items: center; gap: 12px; padding: 11px 18px; }
.apx:not(#_) .apx-feed-icon { flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--ap-paper); color: var(--ap-muted); display: flex; align-items: center; justify-content: center; }
.apx:not(#_) .apx-feed-icon .apx-i { width: 15px; height: 15px; }
.apx:not(#_) a.apx-feed-body { display: flex; flex-direction: column; flex: 1; min-width: 0; color: var(--ap-ink); text-decoration: none; }
.apx:not(#_) a.apx-feed-body:hover .apx-feed-ref { color: var(--ap-blue); }
.apx:not(#_) .apx-feed-text { font-size: 14px; }
.apx:not(#_) .apx-feed-text strong { font-weight: 600; }
.apx:not(#_) .apx-feed-ref { font-size: 13px; color: var(--ap-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apx:not(#_) ol.apx-feed time { flex: none; font-size: 12px; color: var(--ap-faint); white-space: nowrap; }

/* Tables -------------------------------------------------------------------- */
.apx:not(#_) .apx-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.apx:not(#_) table.apx-table { width: 100%; margin: 0; border-collapse: collapse; font-size: 14px; }
.apx:not(#_) table.apx-table thead th { padding: 10px 18px; background: var(--apx-hover); border-bottom: 1px solid var(--apx-line); font-size: 11.5px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--ap-faint); white-space: nowrap; text-align: left; }
.apx:not(#_) table.apx-table tbody td { padding: 13px 18px; border-bottom: 1px solid #F0EFEB; color: var(--ap-ink); vertical-align: middle; background: transparent; }
.apx:not(#_) table.apx-table tbody tr:last-child td { border-bottom: 0; }
.apx:not(#_) table.apx-table tbody tr:hover td { background: transparent; }
.apx:not(#_) table.apx-table tbody tr[data-href] { cursor: pointer; }
.apx:not(#_) table.apx-table tbody tr[data-href]:hover td { background: var(--apx-hover); }
.apx:not(#_) table.apx-table tr.is-muted td { opacity: .62; }
.apx:not(#_) table.apx-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.apx:not(#_) table.apx-table .apx-col-chev { width: 40px; padding-left: 0; padding-right: 14px; }
.apx:not(#_) table.apx-table .apx-nowrap { white-space: nowrap; }
.apx:not(#_) table.apx-table .apx-wrap { min-width: 240px; max-width: 460px; color: #2A2F38; }
.apx:not(#_) table.apx-table .apx-usage { min-width: 150px; }
.apx:not(#_) table.apx-table td.is-alert { color: #BE123C; font-weight: 500; }
.apx:not(#_) table.apx-table .apx-actions { text-align: right; white-space: nowrap; }
.apx:not(#_) a.apx-strong { color: var(--ap-ink); font-weight: 600; text-decoration: none; }
.apx:not(#_) a.apx-strong:hover { color: var(--ap-blue); }
.apx:not(#_) .apx-cell-sub { display: block; margin-top: 2px; font-size: 12.5px; color: var(--ap-faint); }
.apx:not(#_) .apx-person { display: inline-flex; align-items: center; gap: 8px; }
.apx:not(#_) .aw-plan-badge.is-ended { background: #F0EFEB; color: var(--ap-muted); }

.apx:not(#_) .apx-search { display: flex; align-items: center; gap: 8px; padding: 12px 18px; border-bottom: 1px solid var(--apx-line); color: var(--ap-faint); }
.apx:not(#_) .apx-search input { flex: 1; width: 100%; min-height: 0; margin: 0; padding: 6px 0; border: 0; background: transparent; box-shadow: none; outline: 0; font: inherit; font-size: 14px; color: var(--ap-ink); }

/* Tabs */
.apx:not(#_) .apx-tablist { display: flex; gap: 4px; padding: 0 12px; border-bottom: 1px solid var(--apx-line); overflow-x: auto; }
.apx:not(#_) a.apx-tab { flex: none; padding: 13px 10px 12px; margin-bottom: -1px; border-bottom: 2px solid transparent; font-size: 14px; font-weight: 500; color: var(--ap-muted); text-decoration: none; white-space: nowrap; }
.apx:not(#_) a.apx-tab:hover { color: var(--ap-ink); }
.apx:not(#_) a.apx-tab.is-active { color: var(--ap-ink); border-bottom-color: var(--ap-ink); }
.apx:not(#_) .apx-tabpanel[hidden] { display: none; }
.apx:not(#_) dl.apx-dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px 24px; margin: 0; padding: 20px 18px; }
.apx:not(#_) dl.apx-dl dt { margin: 0 0 3px; font-size: 12.5px; color: var(--ap-faint); }
.apx:not(#_) dl.apx-dl dd { margin: 0; font-size: 14px; font-weight: 500; overflow-wrap: anywhere; }
.apx:not(#_) .apx-prose { padding: 0 18px 18px; color: #2A2F38; line-height: 1.65; }
.apx:not(#_) .apx-panel-pad.apx-prose { padding: 18px 20px; }
.apx:not(#_) .apx-prose p:last-child { margin-bottom: 0; }

.apx:not(#_) .apx-emptystate { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 56px 24px; background: #fff; border: 1px solid var(--apx-line); border-radius: 14px; text-align: center; color: var(--ap-muted); }
.apx:not(#_) .apx-emptystate .apx-i { width: 28px; height: 28px; color: var(--ap-faint); }
.apx:not(#_) .apx-emptystate h2 { margin: 4px 0 0; font-size: 18px; font-weight: 600; color: var(--ap-ink); }
.apx:not(#_) .apx-emptystate p { max-width: 420px; margin: 0 0 8px; }

/* Ticket, form and account components inside the app */
.apx:not(#_) .ap-card { border-radius: 14px; padding: 24px; border-color: var(--apx-line); margin-bottom: 18px; }
.apx:not(#_) .ap-requests, .apx:not(#_) .ap-request, .apx:not(#_) .ap-account { max-width: none; padding: 0; }
.apx:not(#_) .ap-request .ap-back { display: none; }
.apx:not(#_) .apx-panel-pad .ap-toolbar { margin-bottom: 14px; }
.apx:not(#_) .apx-panel-pad .dataTables_wrapper .dataTables_filter { margin-bottom: 12px; }

/* Responsive -------------------------------------------------------------- */
@media (max-width: 1100px) {
	.apx:not(#_) .apx-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.apx:not(#_) .apx-cols { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 960px) {
	.apx:not(#_) { --apx-w: calc(100vw - 32px); grid-template-columns: minmax(0, 1fr); gap: 16px; margin: 16px 0 48px calc(50% - var(--apx-w) / 2); }
	.apx:not(#_) .apx-side { position: static; max-height: none; overflow: visible; padding: 10px; gap: 10px; }
	.apx:not(#_) .apx-nav { flex-direction: row; flex-wrap: wrap; gap: 4px; }
	.apx:not(#_) a.apx-nav-item { flex: none; padding: 8px 12px; }
	.apx:not(#_) .apx-side-foot { flex-direction: row; flex-wrap: wrap; align-items: center; margin-top: 0; padding-top: 8px; }
	.apx:not(#_) .apx-user { margin-left: auto; padding: 0 4px; }
	.apx:not(#_) .apx-user .apx-avatar { display: none; }
	.apx:not(#_) .apx-panel-pad .dataTables_wrapper .dataTables_filter { float: none; margin-top: 0; text-align: left; }
}
@media (max-width: 560px) {
	.apx:not(#_) .apx-kpis, .apx:not(#_) .apx-kpis-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.apx:not(#_) .apx-kpi { padding: 12px 14px; }
	.apx:not(#_) .apx-kpi-value { font-size: 22px; }
	.apx:not(#_) .apx-head-actions, .apx:not(#_) .apx-head-actions .ap-btn { width: 100%; }
	.apx:not(#_) .apx-row-meter { display: none; }
	.apx:not(#_) a.apx-row { flex-wrap: wrap; row-gap: 6px; }
	.apx:not(#_) a.apx-row .apx-row-main { flex-basis: calc(100% - 30px); order: 1; }
	.apx:not(#_) a.apx-row .apx-chev { order: 2; }
	.apx:not(#_) a.apx-row .aw-status-badge { order: 3; }
	.apx:not(#_) .apx-attn-item { flex-wrap: wrap; }
	.apx:not(#_) .apx-attn-item .ap-btn { margin-left: 46px; }
	.apx:not(#_) .ap-card { padding: 18px 16px; }
}

/* Portal band: full-bleed bar marking the portal as separate from the website.
   Full bleed via box-shadow + clip-path, so no 100vw overflow or horizontal scroll.
   Styled after the theme's CTA box and footer: glow, watermark, marker accent, pill buttons. */
.apx:not(#_) .apx-band { --apx-band-bg: var(--ap-blue); --apx-band-bg2: var(--ap-blue2); --apx-band-glow: rgba(111,184,234,.55); --apx-band-accent: #fff; --apx-band-muted: rgba(255,255,255,.78); grid-column: 1 / -1; position: relative; isolation: isolate; display: flex; align-items: center; justify-content: space-between; gap: 20px 40px; margin: -28px 0 0; padding: 30px 0 32px; color: #fff; background: var(--apx-band-bg); box-shadow: 0 0 0 100vmax var(--apx-band-bg); clip-path: inset(0 -100vmax); }
.apx:not(#_) .apx-band.is-blue { background: linear-gradient(100deg, var(--apx-band-bg2), var(--apx-band-bg) 60%); box-shadow: -50vmax 0 0 50vmax var(--apx-band-bg2), 50vmax 0 0 50vmax var(--apx-band-bg); }
.apx:not(#_) .apx-band.is-dark { --apx-band-bg: var(--ap-ink); --apx-band-glow: rgba(23,129,198,.55); --apx-band-accent: var(--aw-sky, #6FB8EA); --apx-band-muted: #9BA1AC; }
.apx:not(#_) .apx-band::before { content: ""; position: absolute; z-index: -1; right: -120px; top: 50%; width: 760px; height: 520px; transform: translateY(-50%); border-radius: 50%; background: radial-gradient(closest-side, var(--apx-band-glow), transparent); pointer-events: none; }
.apx:not(#_) .apx-band-wm { position: absolute; z-index: -1; left: 38%; bottom: -0.36em; font-size: 168px; font-weight: 600; letter-spacing: -.065em; line-height: 1; color: #fff; opacity: .07; white-space: nowrap; pointer-events: none; user-select: none; }
.apx:not(#_) .apx-band-copy { min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.apx:not(#_) .apx-band-eyebrow { display: flex; align-items: center; gap: 10px; min-width: 0; font-size: 13px; }
.apx:not(#_) .apx-band-icon { flex: none; display: inline-flex; width: 26px; height: 26px; border-radius: 8px; background: rgba(255,255,255,.16); align-items: center; justify-content: center; }
.apx:not(#_) .apx-band-icon .apx-i { width: 15px; height: 15px; }
.apx:not(#_) .apx-band-title { font-weight: 600; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.apx:not(#_) .apx-band-dot { flex: none; width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: .5; }
.apx:not(#_) .apx-band-org { color: var(--apx-band-muted); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apx:not(#_) .apx-band-head { font-size: clamp(28px, 2.9vw, 40px); font-weight: 400; line-height: 1.05; letter-spacing: -.035em; color: #fff; text-wrap: balance; }
.apx:not(#_) .apx-band-marker { font-family: var(--aw-marker, 'Permanent Marker', cursive); font-size: .95em; letter-spacing: 0; color: var(--apx-band-accent); }
.apx:not(#_) .apx-band-side { flex: none; display: flex; align-items: center; gap: 20px; max-width: 560px; }
.apx:not(#_) .apx-band-promo { margin: 0; max-width: 260px; font-size: 14.5px; line-height: 1.45; color: var(--apx-band-muted); text-wrap: pretty; }
.apx:not(#_) .apx-band-btns { flex: none; display: flex; align-items: center; gap: 8px; }
.apx:not(#_) a.apx-band-cta { display: inline-flex; align-items: center; padding: 12px 20px; border-radius: 100px; background: #fff; color: var(--ap-ink); font-size: 15px; font-weight: 500; line-height: 1.2; text-decoration: none; white-space: nowrap; transition: background .2s, color .2s; }
.apx:not(#_) a.apx-band-cta:hover, .apx:not(#_) a.apx-band-cta:focus-visible { background: var(--aw-sky, #6FB8EA); color: var(--ap-ink); }
.apx:not(#_) a.apx-band-link { display: inline-flex; align-items: center; gap: 6px; padding: 11px 16px; border-radius: 100px; border: 1px solid rgba(255,255,255,.35); color: #fff; font-size: 15px; font-weight: 500; line-height: 1.2; text-decoration: none; white-space: nowrap; transition: border-color .2s, background .2s; }
.apx:not(#_) a.apx-band-link:hover, .apx:not(#_) a.apx-band-link:focus-visible { border-color: #fff; background: rgba(255,255,255,.08); color: #fff; }
.apx:not(#_) a.apx-band-link .apx-i { width: 15px; height: 15px; }
@media (max-width: 1100px) {
	.apx:not(#_) .apx-band-promo { display: none; }
}
@media (max-width: 960px) {
	.apx:not(#_) .apx-band { margin-top: -16px; padding: 22px 0 24px; flex-wrap: wrap; }
	.apx:not(#_) .apx-band-wm { font-size: 120px; left: auto; right: 4%; }
}
@media (max-width: 560px) {
	.apx:not(#_) .apx-band { gap: 16px; }
	.apx:not(#_) .apx-band-org, .apx:not(#_) .apx-band-dot, .apx:not(#_) .apx-band-wm { display: none; }
	.apx:not(#_) .apx-band-head { font-size: 26px; }
	.apx:not(#_) .apx-band-side, .apx:not(#_) .apx-band-btns { width: 100%; }
	.apx:not(#_) a.apx-band-cta { flex: 1; justify-content: center; }
}

/* Gap fix: zero the top padding/margin the page wrappers add above the portal (Hello .site-main,
   Elementor containers, columns and widget wrappers), so the band sits flush under the site header. */
:where(.site-main, .page-content, .elementor, .e-con, .e-con-inner, .elementor-section, .elementor-container, .elementor-column, .elementor-widget-wrap, .elementor-element, .elementor-widget-container, .elementor-shortcode):has(.apx-band) { padding-top: 0 !important; margin-top: 0 !important; }
.site-main:has(.apx-band) > .page-header { display: none; }
