/* RetroForward Client Management — presentation only. Scoped to plugin surfaces. */
:is(.rf-admin-app, .rf-account, .rf-client-portal, .rf-planner, .rf-proposal-page) {
  --rf-ink: #202126;
  --rf-muted: #62646c;
  --rf-line: #e2e3e7;
  --rf-surface: #f6f6f8;
  --rf-red: #bc2430;
  --rf-yellow: #f5cf58;
  --rf-radius: 16px;
  --rf-shadow: 0 2px 4px #17192304, 0 14px 36px #17192308;
  color: var(--rf-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
:is(.rf-admin-app, .rf-account, .rf-client-portal, .rf-proposal-page) *,
:is(.rf-admin-app, .rf-account, .rf-client-portal, .rf-proposal-page) *::before,
:is(.rf-admin-app, .rf-account, .rf-client-portal, .rf-proposal-page) *::after { box-sizing: border-box; }
:is(.rf-admin-app, .rf-account, .rf-client-portal, .rf-planner, .rf-proposal-page) :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid #a6212c;
  outline-offset: 3px;
  box-shadow: 0 0 0 5px #fff;
}
:is(.rf-admin-app, .rf-account, .rf-client-portal, .rf-proposal-page) :is(h1, h2, h3) { letter-spacing: -.035em; line-height: 1.25; }
:is(.rf-admin-app, .rf-account, .rf-client-portal, .rf-proposal-page) a { text-underline-offset: 4px; }
:is(.rf-admin-app, .rf-account, .rf-proposal-page) a:not(.button):not(.rf-button):not(.rf-summary-card):not(.rf-account__stat) { color: var(--rf-red); }
:is(.rf-admin-app, .rf-account, .rf-client-portal, .rf-proposal-page) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=color]), select, textarea) {
  max-width: 100%; min-height: 44px; padding: 10px 12px;
  border: 1px solid #aeb1bb; border-radius: 9px; background-color: #fff; color: var(--rf-ink); font: inherit;
}
:is(.rf-account, .rf-client-portal, .rf-proposal-page) :is(input[type=text], input[type=email], input[type=password], input:not([type]), textarea) { width: 100%; }
:is(.rf-admin-app, .rf-account, .rf-client-portal, .rf-proposal-page) textarea { resize: vertical; }
:is(.rf-admin-app, .rf-account, .rf-client-portal, .rf-proposal-page) :is(input[type=checkbox], input[type=radio]) { accent-color: var(--rf-red); }
:is(.rf-admin-app, .rf-account, .rf-client-portal, .rf-proposal-page) :is(.button, .rf-button),
.rf-proposal-page > .rf-actions button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px;
  padding: 9px 17px; border: 1px solid #d5d6dc; border-radius: 9px; background: #fff;
  color: var(--rf-ink); font: 600 14px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-decoration: none; white-space: normal; text-align: center; cursor: pointer; box-shadow: 0 2px 2px #17192306;
}
:is(.rf-admin-app, .rf-account, .rf-client-portal, .rf-proposal-page) :is(.button, .rf-button):hover { background: #f0f0f3; border-color: #999ca7; color: var(--rf-ink); }
.rf-admin-app .button-primary, .rf-account .button, .rf-proposal-page .rf-button {
  background: var(--rf-red); border-color: var(--rf-red); color: #fff; box-shadow: inset 0 1px #ffffff30, 0 3px 6px #9f19231a;
}
.rf-admin-app .button-primary:hover, .rf-account .button:hover, .rf-proposal-page .rf-button:hover { background: #991d28; color: #fff; border-color: #991d28; }
:is(.rf-admin-app, .rf-account, .rf-planner) :is(button, .button):disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }

/* Administration: leave WordPress navigation, notices and media dialogs native. */
.rf-admin-app { max-width: 1480px; padding: 8px 12px 40px 0; }
.rf-admin-app .rf-admin-brand { padding: 28px 30px; gap: 30px; border-top-width: 2px; border-radius: var(--rf-radius); background-image: radial-gradient(ellipse at right top, #ffffff17, transparent 65%); box-shadow: 0 10px 30px #17192312; }
.rf-admin-app .rf-admin-brand__logo { border-right: 1px solid #ffffff30; padding-right: 30px; }
.rf-admin-app .rf-admin-brand__title { font-size: clamp(24px, 2.5vw, 34px); letter-spacing: -.04em; }
.rf-admin-app .rf-admin-brand p { max-width: 70ch; font-size: 14px; }
.rf-admin-app .rf-admin-brand__logo span { color: #f26970; }
.rf-admin-app .rf-summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 14px; margin: 24px 0; }
.rf-admin-app .rf-summary-card, .rf-account .rf-account__stat {
  display: block; position: relative; padding: 24px; border: 1px solid var(--rf-line); border-radius: var(--rf-radius);
  background: linear-gradient(145deg, #fff, #fafafb); color: var(--rf-ink); text-decoration: none; box-shadow: var(--rf-shadow);
}
.rf-admin-app .rf-summary-card::before, .rf-account .rf-account__stat::before { content: ""; display: block; width: 24px; height: 4px; border-radius: 4px; background: var(--rf-yellow); margin-bottom: 18px; box-shadow: 0 2px 3px #ad7c1420; }
.rf-admin-app .rf-summary-card strong, .rf-account .rf-account__stat strong { display: block; font-size: 36px; line-height: 1.1; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.rf-admin-app .rf-summary-card span, .rf-account .rf-account__stat span { display: block; margin-top: 9px; color: var(--rf-muted); font-size: 13px; }
.rf-admin-app .rf-summary-card:hover, .rf-account .rf-account__stat:hover { border-color: #bc243070; box-shadow: 0 8px 24px #17192312; }
.rf-admin-app :is(.rf-settings-card, .rf-proposal-builder-section, .rf-delivery-panel, .rf-v1-card, .rf-proposal-preview),
.rf-admin-app > section, .rf-admin-app > form[style*="background"] {
  border: 1px solid var(--rf-line) !important; border-radius: var(--rf-radius); box-shadow: var(--rf-shadow); background: #fff;
}
.rf-admin-app :is(.rf-settings-card, .rf-proposal-builder-section) { padding: 24px; }
.rf-admin-app .rf-filter-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 18px; margin: 20px 0; border: 1px solid var(--rf-line); border-radius: 12px; background: #fff; }
.rf-admin-app .search-box { margin-left: auto; }
.rf-admin-app .widefat { border: 1px solid var(--rf-line); border-radius: 12px; border-spacing: 0; box-shadow: var(--rf-shadow); }
.rf-admin-app .widefat :is(td, th) { padding: 15px 12px; vertical-align: top; overflow-wrap: anywhere; }
.rf-admin-app .widefat thead :is(td, th) { background: #f6f6f8; color: #555862; font-size: 12px; font-weight: 600; }
.rf-admin-app .striped > tbody > :nth-child(odd) { background: #fafafb; }
.rf-admin-app .widefat tbody tr:hover { background: #f4f4f7; }
.rf-admin-app .rf-v1-card textarea { width: 100%; min-height: 150px; }
.rf-admin-app .rf-v1-card form label { display: inline-block; margin: 4px 8px 8px 0; }
.rf-admin-app .form-table th { font-weight: 600; }
.rf-admin-app :is(.rf-inquiry-status, .rf-connection-status, .rf-installed-version) { border-radius: 99px; padding: 5px 10px; font-size: 12px; }
.rf-admin-app .nav-tab-wrapper { border-bottom: 1px solid var(--rf-line); padding-bottom: 8px; margin: 24px 0; }
.rf-admin-app .nav-tab { background: transparent; border: 0; border-radius: 8px; padding: 10px 16px; margin: 0 6px 0 0; }
.rf-admin-app .nav-tab-active { background: #fff; box-shadow: 0 2px 6px #1719230d; }
.rf-admin-app .rf-proposal-preview__bar { border-radius: 15px 15px 0 0; border-top-width: 2px; }

/* Customer workspace and support conversation. */
.rf-account.rf-account, .rf-client-portal.rf-client-portal { padding: clamp(20px, 3vw, 36px); border: 1px solid var(--rf-line); border-radius: 20px; background: var(--rf-surface); box-shadow: var(--rf-shadow); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.rf-account.rf-account h2 { font-size: clamp(26px, 3vw, 36px); margin: 0 0 12px; color: var(--rf-ink); }
.rf-account .rf-account__intro { color: var(--rf-muted); }
.rf-account .rf-account__intro h2 { color: var(--rf-ink); }
.rf-account .rf-account__grid { gap: 14px; }
.rf-account .rf-account__card, .rf-account .rf-v1-card, .rf-client-portal .rf-portal-project, .rf-client-portal .rf-v1-card { background: #fff; border: 1px solid var(--rf-line); border-radius: var(--rf-radius); padding: clamp(20px, 3vw, 28px); box-shadow: var(--rf-shadow); }
.rf-account .rf-account__card h3 { font-size: 22px; }
.rf-account .rf-account__badge { color: #554516; background: #fff3c8; font-weight: 600; }
:is(.rf-admin-app, .rf-account, .rf-client-portal) .rf-v1-message { padding: 22px 24px; border: 1px solid var(--rf-line); border-left: 3px solid #9ea3b0; border-radius: 12px; background: #fff; }
.rf-admin-app .rf-v1-private { background: #fffae9; border-left-color: #bc9226; }
.rf-account table { border: 1px solid var(--rf-line); border-radius: 12px; background: #fff; border-collapse: separate; border-spacing: 0; }
.rf-account table :is(th, td) { padding: 16px 12px; font-size: 14px; overflow-wrap: anywhere; }
.rf-account table th { color: var(--rf-muted); font-size: 12px; background: #fafafb; }
.rf-account form label { font-size: 14px; font-weight: 600; }
.rf-account input[type=file] { border-style: dashed; background: #fafafb; }
.rf-client-portal.rf-client-portal :is(input, select, textarea, button, .button) { border-radius: 9px; }
/* Account navigation retains WooCommerce's existing links and endpoint behavior. */
.woocommerce-account .woocommerce-MyAccount-navigation { padding: 12px; border: 1px solid #e2e3e7; border-radius: 16px; background: #fafafb; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 4px 0; border: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 12px 14px; border-radius: 9px; color: #43454e; text-decoration: none; font-weight: 500; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: #fff; background: #24252a; box-shadow: 0 3px 8px #17192318; }
.woocommerce-account .woocommerce-MyAccount-navigation li:not(.is-active) a:hover { background: #efeff2; color: #a6212c; }

/* Public proposals retain custom branding and acceptance/payment forms. */
body.rf-proposal-page { margin: 0; background: #f0f1f4; }
.rf-proposal-page .rf-doc { max-width: 1000px; margin: 32px auto 64px; padding: clamp(24px, 6vw, 64px); border-top-width: 3px; border-radius: 18px; box-shadow: 0 20px 65px #1719230d; }
.rf-proposal-page .rf-doc h1 { font-size: clamp(32px, 4vw, 48px); max-width: 22ch; }
.rf-proposal-page .rf-meta { color: var(--rf-muted); font-size: 14px; padding-bottom: 24px; border-bottom: 1px solid var(--rf-line); }
.rf-proposal-page .rf-section { margin-top: 40px; }
.rf-proposal-page .rf-section h2 { font-size: 23px; padding-bottom: 12px; border-bottom-width: 1px; }
.rf-proposal-page .rf-table :is(th, td) { padding: 16px 12px; overflow-wrap: anywhere; }
.rf-proposal-page .rf-table th { background: #f6f6f8; font-size: 13px; color: var(--rf-muted); }
.rf-proposal-page .rf-total { background: #fff8df; font-variant-numeric: tabular-nums; }
.rf-proposal-page .rf-approval { padding: 28px; background: #f6f6f8; border-left-width: 3px; border-radius: 12px; }
.rf-proposal-page > .rf-actions { max-width: 1000px; margin: 24px auto; padding: 0 16px; }
.rf-proposal-page .rf-success { border-radius: 8px; }
@media (max-width: 782px) {
  .rf-admin-app { padding-right: 0; }
  .rf-admin-app .rf-admin-brand { padding: 22px; }
  .rf-admin-app .rf-admin-brand__logo { border-right: 0; padding-right: 0; }
  .rf-admin-app .rf-settings-grid { grid-template-columns: minmax(0, 1fr); }
  .rf-admin-app .rf-settings-card { min-width: 0; }
  .rf-admin-app .search-box { width: 100%; margin: 0; float: none; }
  .rf-admin-app .widefat { display: block; max-width: 100%; overflow-x: auto; }
  .rf-admin-app .widefat :is(th, td) { min-width: 110px; }
  .rf-admin-app .widefat .check-column { min-width: 36px; }
  .rf-admin-app .tablenav { height: auto; min-height: 40px; }
  .woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 24px; }
}
@media (max-width: 720px) {
  .rf-account .rf-account__grid { grid-template-columns: minmax(0, 1fr); }
  /* Keep headers paired with cells; scroll wide tables instead of removing labels. */
  .rf-account.rf-account table { display: block; max-width: 100%; overflow-x: auto; }
  .rf-account.rf-account thead { display: table-header-group; }
  .rf-account.rf-account tbody { display: table-row-group; }
  .rf-account.rf-account tr { display: table-row; }
  .rf-account.rf-account :is(td, th) { display: table-cell; min-width: 110px; }
  .rf-proposal-page .rf-doc { margin: 12px; padding: 24px 20px; border-radius: 12px; }
  .rf-proposal-page .rf-table { table-layout: fixed; }
  .rf-proposal-page .rf-table :is(th, td) { padding: 10px 6px; font-size: 13px; }
  .rf-proposal-page .rf-approval { padding: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.rf-admin-app, .rf-account, .rf-client-portal, .rf-planner, .rf-proposal-page) *,
  :is(.rf-admin-app, .rf-account, .rf-client-portal, .rf-planner, .rf-proposal-page) *::before { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  body.rf-proposal-page { background: #fff; }
  .rf-proposal-page .rf-doc { margin: 0; max-width: none; padding: 0; border: 0; border-radius: 0; box-shadow: none; }
  .rf-proposal-page > .rf-actions, .rf-proposal-page .rf-approval { display: none; }
  .rf-proposal-page .rf-section h2 { break-after: avoid; }
  .rf-proposal-page tr, .rf-proposal-page li { break-inside: avoid; }
}

/* Administrator client assistance; no change to the signed-in user. */
.rf-preview-page { margin: 0; padding: 24px; background: #f0f1f4; color: #202126; font: 16px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.rf-preview-banner { display: flex; align-items: center; justify-content: space-between; gap: 20px; max-width: 1440px; margin: 0 auto 24px; padding: 20px 24px; box-sizing: border-box; background: #fff8dd; border: 1px solid #e9d387; border-radius: 14px; color: #332b17; font: 15px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.rf-preview-banner p { margin: 6px 0 0; max-width: 85ch; }
.rf-preview-banner a { flex-shrink: 0; padding: 10px 16px; border-radius: 8px; background: #24252a; color: #fff; text-decoration: none; }
.rf-preview-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); align-items: start; gap: 24px; max-width: 1440px; margin: auto; }
.rf-preview-nav { padding: 12px; border: 1px solid #e2e3e7; border-radius: 16px; background: #fafafb; }
.rf-preview-nav a { display: block; padding: 12px 14px; border-radius: 9px; color: #43454e; text-decoration: none; }
.rf-preview-nav a[aria-current=page] { background: #24252a; color: #fff; }
.rf-preview-nav p { padding: 0 12px; font-size: 13px; color: #62646c; }
.rf-preview-disabled { border: 0; padding: 0; margin: 0; min-width: 0; opacity: .7; }
.rf-preview-disabled :is(input, textarea, select, button) { cursor: not-allowed; }
.rf-account .rf-preview-disabled label { display: block; margin: 14px 0; font-size: 14px; font-weight: 600; }
.rf-account .rf-preview-disabled :is(input:not([type=checkbox]):not([type=file]), select, textarea) { display: block; width: 100%; margin-top: 6px; }
.rf-assistance-panel { max-width: 850px; }
.rf-admin-app .rf-assistance-panel { margin: 22px 0; padding: 24px; }
.rf-admin-app .rf-assistance-panel form label { display: block; }
.rf-assistance-panel summary { cursor: pointer; font-weight: 600; padding: 12px 0; }
.rf-assistance-panel .large-text { width: 100%; }
.rf-preview-page .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
:is(.rf-preview-banner, .rf-preview-nav) a:focus-visible { outline: 3px solid #a6212c; outline-offset: 3px; }
.rf-proposal-page > .rf-preview-banner { margin: 24px auto; max-width: 1000px; }
@media(max-width:782px) { .rf-preview-page { padding: 12px; } .rf-preview-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; } .rf-preview-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .rf-preview-nav p { grid-column: 1 / -1; } .rf-preview-banner { flex-direction: column; align-items: flex-start; padding: 18px; } }
@media print { .rf-preview-banner { box-shadow: none; border: 1px solid #888; } .rf-preview-banner a { display: none; } }

/* Full account preview lives inside the active WordPress theme. */
.rf-complete-preview { display: grid; grid-template-columns: 230px minmax(0, 1fr); align-items: start; gap: 24px; clear: both; }
/* WooCommerce's float clearfix becomes extra grid items unless suppressed. */
.woocommerce-account .woocommerce.rf-complete-preview::before,
.woocommerce-account .woocommerce.rf-complete-preview::after { content: none; display: none; }
.woocommerce-account .woocommerce.rf-complete-preview > .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce.rf-complete-preview > .woocommerce-MyAccount-content { float: none; clear: none; width: 100%; min-width: 0; max-width: none; box-sizing: border-box; }
.rf-preview-account-data { padding: 28px; border: 1px solid #e2e3e7; border-radius: 16px; background: #fafafb; box-shadow: 0 8px 24px #17192306; }
.rf-preview-account-data h2 { margin-top: 0; }
.rf-preview-account-data address { margin-bottom: 20px; font-style: normal; }
.rf-preview-account-data label { display: block; font-weight: 600; }
.rf-preview-account-data input { display: block; box-sizing: border-box; width: 100%; margin-top: 6px; padding: 12px; border: 1px solid #d6d8df; border-radius: 8px; background: #fff; color: #24252a; }
.rf-preview-account-data button:disabled { padding: 10px 16px; border: 1px solid #d6d8df; border-radius: 8px; background: #ececf0; color: #62646c; cursor: not-allowed; }
.rf-preview-table { overflow-x: auto; }
.rf-preview-table table { width: 100%; border-collapse: collapse; }
.rf-preview-table :is(th,td) { text-align: left; padding: 12px 10px; border-bottom: 1px solid #e2e3e7; }
@media (max-width: 782px) {
 .rf-complete-preview { grid-template-columns: minmax(0, 1fr); gap: 16px; }
 .rf-complete-preview .woocommerce-MyAccount-navigation ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .rf-preview-account-data { padding: 20px; }
}

.rf-finance-panel{padding:24px;margin:24px 0;background:#fff;border:1px solid #e1e1e5;border-radius:12px}.rf-finance-scroll{overflow-x:auto}.rf-finance-form{margin:12px 0}.rf-finance-form input,.rf-finance-form select{max-width:100%}.rf-finance-scroll td input{width:150px}.rf-finance-context{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.rf-finance-context label{display:grid;gap:6px;max-width:100%}.rf-finance-totals{display:flex;gap:24px;flex-wrap:wrap}.rf-finance-confirmation{padding:16px;border-left:3px solid #d4232b}.rf-finance-panel select{padding-right:32px!important}

/* Payments admin only: keep project context separate from request filters. */
.rf-payments .rf-payment-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:16px;margin:12px 0;background:#fff;border:1px solid #e1e1e5;border-radius:8px}
.rf-payments .rf-payment-filters label{display:grid;gap:6px}
.rf-payments .rf-calculated-value:not([hidden]){display:block;min-width:150px;padding:7px 9px;background:#f4f4f6;border:1px solid #ddd;border-radius:4px;font-variant-numeric:tabular-nums}
.rf-payments .rf-finance-panel>details>summary{cursor:pointer;font-weight:600;padding:12px 0}

/* RF admin panel spacing and wrapped actions. */
.rf-admin-app :is(.rf-delivery-panel,.rf-v1-card,.rf-proposal-preview,.rf-billing-panel){padding:24px;box-sizing:border-box;margin-block:18px}
.rf-admin-app :is(.rf-delivery-panel,.rf-billing-panel) input:not([type=checkbox]):not([type=hidden]){max-width:100%;box-sizing:border-box}
.rf-admin-app .rf-delivery-panel .button{margin:4px 4px 4px 0;white-space:normal;height:auto;max-width:100%}
.rf-admin-app .rf-billing-panel form{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.rf-admin-app .rf-billing-panel label{display:grid;gap:5px;flex:1 1 210px}
.rf-admin-app .rf-billing-panel{background:#fff;border:1px solid var(--rf-line);border-radius:12px}
.rf-admin-app .rf-finance-form [hidden]{display:none!important}

.rf-payment-cancellation{margin-top:24px;padding:20px;border-top:1px solid #dcdcde}.rf-billing-panel{scroll-margin-top:48px}
