/* Loaded last, scoped to client pages. Existing actions and data stay intact. */
body.portal-refresh {
  --void: #0a0d12; --base: #111822; --surface: #17212e; --border: #2b394c;
  --muted: #a8b4c5; --text: #eef3fa; --accent: #8bb9ff; --blue: #0066ff;
  --body: Arial, Helvetica, sans-serif; --mono: Consolas, monospace;
  --portal-display: Arial, Helvetica, sans-serif;
  --color-void: #0a0d12; --color-base: #111822; --color-surface: #17212e;
  --color-accent: #8bb9ff; --color-accent-bright: #bed7ff; --color-accent-deep: #0066ff;
  --color-text: #eef3fa; --color-white: #fff; --color-secondary: #a8b4c5;
  --color-muted: #a8b4c5; --color-border: #2b394c; --color-border-light: #526a88;
  --font-body: Arial, Helvetica, sans-serif; --font-display: Arial, Helvetica, sans-serif;
  --font-brand: Arial, Helvetica, sans-serif; --font-mono: Consolas, monospace;
  color-scheme: dark; font: 16px/1.6 var(--body); margin: 0;
  background: radial-gradient(ellipse at 90% 0%, #0066ff12, transparent 38rem), var(--void);
  color: var(--text);
}
.portal-refresh *, .portal-refresh *::before, .portal-refresh *::after { box-sizing: border-box; }
.portal-refresh :is(a, button, summary, input, textarea, select):focus-visible { outline: 2px solid #8bb9ff; outline-offset: 4px; }
.portal-refresh .portal-wrap { max-width: 1180px; width: calc(100% - 48px); margin: 0 auto; padding: 42px 0 64px; }
.portal-refresh.portal-contact .portal-wrap { max-width: 760px; }
.portal-refresh.portal-invoice .portal-wrap { max-width: 960px; }
.portal-refresh #portal-content { scroll-margin-top: 24px; }
.portal-refresh h1 { font: 700 clamp(28px, 3vw, 42px)/1.15 var(--body); letter-spacing: -.035em; overflow-wrap: anywhere; }
.portal-refresh :is(.portal-greeting, .page-head) { margin-bottom: 30px; }
.portal-refresh .portal-greeting h1 { margin: 10px 0 14px; }
.portal-refresh :is(.portal-meta, .eyebrow) { color: #8bb9ff; font: 600 12px/1.6 var(--body); letter-spacing: .08em; }
.portal-refresh :is(.portal-greeting > p:last-child, .page-head p, .documents-hero__copy p) { font-size: 16px; color: #a8b4c5; }
.portal-refresh :is(.overview-work, .website-hero, .card, .stat-box, .quick-card, .work-stat, .work-panel, .summary-progress, .summary-stat, .document-card, .upload-shell, .documents-hero) { border-color: var(--border); border-radius: 14px; background: #141e2b; }
.portal-refresh :is(.work-panel, .upload-shell, .website-hero) { overflow: hidden; }
.portal-refresh .overview-work { padding: 24px; background: linear-gradient(145deg, #19273b, #111a26); }
.portal-refresh .overview-work__head h2 { font: 700 24px/1.3 var(--body); letter-spacing: -.025em; }
.portal-refresh .overview-work__head p { font-size: 15px; }
.portal-refresh :is(.overview-work__head a, .work-panel__head a) { font-size: 14px; text-transform: none; letter-spacing: 0; }
.portal-refresh .work-grid { gap: 18px; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.portal-refresh .work-stats, .portal-refresh .stats-grid { gap: 16px; }
.portal-refresh .work-stat { padding: 18px; }
.portal-refresh :is(.work-stat span, .stat-box__label, .summary-stat span, .summary-progress__top span) { font: 500 14px/1.5 var(--body); text-transform: none; letter-spacing: 0; }
.portal-refresh :is(.work-stat strong, .stat-box__value, .summary-stat strong) { font-size: 28px; margin-top: 8px; }
.portal-refresh .work-panel__head { padding: 16px; border-color: var(--border); gap: 12px; }
.portal-refresh .work-panel__head strong { font: 600 15px/1.4 var(--body); letter-spacing: 0; text-transform: none; }
.portal-refresh :is(.overview-task, .overview-document) { padding: 16px; border-color: var(--border); gap: 12px; }
.portal-refresh :is(.overview-task:hover, .overview-document:hover) { background: #1b2a3e; }
.portal-refresh :is(.overview-task__body strong, .overview-document__body strong) { font: 600 15px/1.4 var(--body); }
.portal-refresh :is(.overview-task__body span, .overview-document__body span) { font-size: 12px; margin-top: 5px; }
.portal-refresh .overview-task__status { font-size: 12px; line-height: 1.4; text-transform: none; border-radius: 5px; white-space: nowrap; }
.portal-refresh .overview-task__status.busy { color: #a8caff; border-color: #5276a8; }
.portal-refresh .overview-document__type { font-size: 12px; border-radius: 6px; width: 40px; flex-basis: 40px; height: 44px; }
.portal-refresh :is(.work-empty, .empty) { font-size: 16px; color: #a8b4c5; }
.portal-refresh :is(.quick-card, .stat-box) { padding: 22px; }
.portal-refresh .quick-card__icon { color: #8bb9ff; background: #0066ff18; border-radius: 10px; }
.portal-refresh .quick-card__title { font-size: 17px; }
.portal-refresh .quick-card__sub { font-size: 14px; }
.portal-refresh .section-title { font: 600 20px/1.4 var(--body); letter-spacing: -.02em; text-transform: none; }
.portal-refresh #facturen { scroll-margin-top: 24px; }
.portal-refresh :is(.filter-tabs, .filters) { flex-wrap: wrap; gap: 8px; }
.portal-refresh :is(.filter-tab, .filter) { font-size: 14px; min-height: 44px; border-radius: 7px; padding: 10px 16px; text-transform: none; letter-spacing: 0; }
.portal-refresh :is(.filter-tab.active, .filter.active) { background: #0066ff20; color: #a8caff; border-color: #5276a8; }
.portal-refresh .card { padding: 22px; }
.portal-refresh .card__title { font-size: 17px; }
.portal-refresh .card__sub { font-size: 14px; }
.portal-refresh .card__amount { font-size: 22px; }
.portal-refresh .card__date { font-size: 13px; }
.portal-refresh .status-pill { font-size: 13px; padding: 5px 10px; border-radius: 99px; }
.portal-refresh :is(input, textarea, select) { font-size: 16px; border-radius: 7px; border-color: var(--border); background: #0e1622; color: #eef3fa; }
.portal-refresh :is(label, .label) { font-size: 14px; color: #b3bfd0; letter-spacing: 0; }
.portal-refresh :is(.btn, .btn-submit, .btn-download, .submit-btn) { min-height: 44px; border-radius: 7px; font-size: 14px; letter-spacing: 0; }
.portal-refresh :is(.btn--accent, .btn-submit, .submit-btn, .invoice-pay-link) { background: #0066ff; color: white; border-color: #0066ff; }
.portal-refresh :is(.btn--accent:hover, .btn-submit:hover, .submit-btn:hover, .invoice-pay-link:hover) { background: #0057dc; color: white; }
.portal-refresh .documents-hero { background: linear-gradient(135deg, #1b2e49, #111a26); min-height: auto; padding: 32px; grid-template-columns: minmax(0,1.15fr) minmax(300px,.85fr); }
.portal-refresh .documents-hero::before, .portal-refresh .upload-intro::after { border-color: #0066ff40; }
.portal-refresh .documents-hero__copy h1 { font-family: var(--body); font-weight: 700; }
.portal-refresh .documents-summary { border-color: var(--border); border-radius: 10px; background: #0e1622; }
.portal-refresh .documents-summary dt { font: 500 13px/1.5 var(--body); color: #a8b4c5; letter-spacing: 0; text-transform: none; }
.portal-refresh .documents-summary dd { color: #eef3fa; }
.portal-refresh .documents-summary__progress dd { color: #8bb9ff; }
.portal-refresh .documents-summary__progress > span i { background: #0066ff; }
.portal-refresh :is(.documents-summary > div, .documents-summary__progress) { border-color: var(--border); }
.portal-refresh .upload-intro { background: #18263b; border-color: var(--border); }
.portal-refresh .upload-form { background: #111a26; }
.portal-refresh :is(.upload-intro__icon, .upload-form__step) { color: #8bb9ff; background: #0066ff12; border-color: #385e93; border-radius: 8px; }
.portal-refresh :is(.upload-intro p, .document-info p, .progress-meta, .document-origin, .upload-intro li) { font-size: 14px; color: #a8b4c5; }
.portal-refresh .document-info h2 { font-size: 18px; }
.portal-refresh .document-card__action { font-size: 14px; color: #8bb9ff; text-transform: none; }
.portal-refresh .mode-tabs { border-radius: 8px; background: #0a111c; border-color: var(--border); }
.portal-refresh .mode-tabs button { min-height: 44px; font-size: 14px; }
.portal-refresh .mode-tabs button.active { background: #0066ff20; color: #a8caff; }
.portal-refresh .upload-form .input { font-size: 16px; border-radius: 7px; background: #0e1622; border-color: var(--border); }
.portal-refresh .upload-form .input:focus { border-color: #8bb9ff; box-shadow: 0 0 0 3px #0066ff18; }
.portal-refresh .upload-form .input::placeholder { color: #a8b4c5; }
.portal-refresh .upload-form .label { font: 500 14px/1.5 var(--body); color: #b3bfd0; text-transform: none; letter-spacing: 0; }
.portal-refresh .upload-form .label span { color: #a8b4c5; }
.portal-refresh .document-file-picker { background: #111a26; border-color: #526a88; border-radius: 9px; }
.portal-refresh .document-file-picker:hover, .portal-refresh .document-file-picker.has-file { background: #0066ff0d; border-color: #8bb9ff; }
.portal-refresh .document-file-input:focus-visible + .document-file-picker { outline-color: #8bb9ff; }
.portal-refresh .document-file-picker__icon { color: #8bb9ff; background: #0066ff14; border-color: #385e93; border-radius: 8px; }
.portal-refresh .document-file-picker strong { font-size: 15px; }
.portal-refresh .document-file-picker small { font-size: 13px; color: #a8b4c5; }
.portal-refresh :is(.document-file-picker__browse, .documents-library__count) { font-size: 12px; color: #b3bfd0; border-color: var(--border); border-radius: 5px; }
.portal-refresh .upload-submit { font-size: 15px; background: #0066ff; border-color: #0066ff; color: white; }
.portal-refresh .upload-submit:hover { background: #0057dc; border-color: #0057dc; color: white; }
.portal-refresh .document-card--progress::before { background: #0066ff; }
.portal-refresh .document-status { font-size: 12px; border-radius: 5px; }
.portal-refresh .document-status--progress { color: #8bb9ff; background: #0066ff12; border-color: #385e93; }
.portal-refresh .document-progress .progress-track i { background: #0066ff; }
.portal-refresh .document-card--done .progress-track i { background: #67a46f; }
.portal-refresh .document-progress__details { font-size: 12px; color: #a8b4c5; flex-wrap: wrap; }
.portal-refresh .documents-empty { border-color: var(--border); border-radius: 14px; background: #111a26; }
.portal-refresh .documents-empty p { color: #a8b4c5; font-size: 16px; }
.portal-refresh .documents-empty a { color: #8bb9ff; font-size: 14px; }
.portal-refresh .task { border-radius: 12px; padding: 22px; }
.portal-refresh .task h3 { font-size: 18px; }
.portal-refresh .task p { font-size: 16px; color: #a8b4c5; }
.portal-refresh :is(.chip, .badge, .pill, .page, .task__document strong, .task__document span, .task__document a) { font-size: 12px; line-height: 1.5; }
.portal-refresh .chip { color: #a8b4c5; border-radius: 5px; }
.portal-refresh :is(.chip.status-busy, .pill--role) { border-color: #385e93; color: #8bb9ff; }
.portal-refresh :is(.toolbar h2, .viewer-bar span, .doc-head p, .progress-number span) { font-size: 14px; }
.portal-refresh .doc-head { flex-wrap: wrap; }
.portal-refresh .workspace { border-radius: 14px; overflow: hidden; }
.portal-refresh :is(.feedback-card, .compose) { border-radius: 10px; }
.portal-refresh :is(.feedback-card__top strong, .compose h2) { font-size: 16px; }
.portal-refresh :is(.feedback-card p, .compose > p) { font-size: 14px; color: #a8b4c5; }
.portal-refresh :is(.feedback-card__origin, .progress-stats span) { color: #a8b4c5; font-size: 12px; }
.portal-refresh .u-table th { font-size: 12px; }
.portal-refresh .u-table td { font-size: 15px; }
.portal-refresh .document-type { color: #8bb9ff; border-color: #385e93; background: #111a26; border-radius: 7px; }
.portal-refresh .btn-download { background: #0066ff; color: white; }
.portal-refresh .btn-download:hover { background: #0057dc; color: white; }
.portal-refresh :is(.viewport-preset, .url-bar__open) { min-height: 44px; font-size: 14px; }
.portal-refresh :is(.viewport-preset.active, .url-bar__open:hover) { background: #0066ff18; }
.portal-refresh .invoice-pay { border-color: #344d71; background: #111a26; color: #eef3fa; }
.portal-refresh .invoice-pay h2 { color: #eef3fa; }
.portal-refresh .invoice-pay :is(.invoice-pay__eyebrow, .invoice-pay__intro) { color: #a8b4c5; }
.portal-refresh .invoice-pay .invoice-pay__button { background: #0066ff; color: white; }
.portal-refresh :is(.website-hero__label, .website-hero__sub, .website-hero__btn) { font-size: 15px; }
@media (prefers-reduced-motion: no-preference) {
  .portal-refresh .portal-wrap { animation: portal-arrive .5s cubic-bezier(.16,1,.3,1) both; }
  .portal-refresh :is(.quick-card, .card, .document-card) { transition: border-color .2s, background .2s, transform .2s; }
  .portal-refresh :is(.quick-card:hover, .document-card:hover) { border-color: #5276a8; transform: translateY(-3px); }
  @keyframes portal-arrive { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
}
@media (max-width: 900px) {
  .portal-refresh .work-grid { grid-template-columns: 1fr; }
  .portal-refresh .documents-hero { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .portal-refresh .overview-work { padding: 16px; }
  .portal-refresh .work-stats { gap: 8px; }
  .portal-refresh .work-stat { padding: 12px; }
  .portal-refresh .work-stat span { font-size: 12px; }
  .portal-refresh .overview-task { grid-template-columns: 7px minmax(0,1fr); }
  .portal-refresh .overview-task__status { grid-column: 2; justify-self: start; }
  .portal-refresh .work-panel__head { align-items: start; flex-wrap: wrap; }
  .portal-refresh .documents-hero { padding: 24px; }
  .portal-refresh .summary { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .portal-refresh .summary-progress { grid-column: 1 / -1; }
  .portal-refresh .page-head { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-refresh *, .portal-refresh *::before, .portal-refresh *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
