/* Werkfink, Stand 35. Shared light surfaces; behaviour remains in area styles. */
:root {
  color-scheme: light;
  --wf-bg: #f7f8f5;
  --wf-panel: #ffffff;
  --wf-raised: #edf2ec;
  --wf-text: #152d28;
  --wf-muted: #465d54;
  --wf-subtle: #586a62;
  --wf-blue: #365f4e;
  --wf-accent: #285a48;
  --wf-line: #ccd7ce;
  --wf-success: #256040;
  --wf-error: #a62f27;
  --wf-radius: 14px;
}

body {
  --bg: var(--wf-bg);
  --surface: var(--wf-panel);
  --panel: var(--wf-panel);
  --text: var(--wf-text);
  --muted: var(--wf-muted);
  --faint: var(--wf-subtle);
  --cyan: var(--wf-accent);
  --emerald: var(--wf-success);
  --green: var(--wf-success);
  --metal: var(--wf-muted);
  --line: var(--wf-line);
  --workspace-blue: var(--wf-blue);
  color: var(--wf-text);
  background-color: var(--wf-bg);
}

body:is(.service-page, .project-showcase, .contact-page, .offers-page, .workspace-page),
body:has(.legal-main), body:has(.project-shell), body:has(.ops-shell) {
  --bg: var(--wf-bg);
  --surface: var(--wf-panel);
  --panel: var(--wf-panel);
  --text: var(--wf-text);
  --muted: var(--wf-muted);
  --faint: var(--wf-subtle);
  --cyan: var(--wf-accent);
  --emerald: var(--wf-success);
  --green: var(--wf-success);
  --metal: var(--wf-muted);
  --line: var(--wf-line);
  background: linear-gradient(#365f4e05 1px, transparent 1px),
    linear-gradient(90deg, #365f4e05 1px, transparent 1px), var(--wf-bg);
  background-size: 64px 64px;
  color: var(--wf-text);
}

::selection { color: #152d28; background: #c9dfc8; }
body :is(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 2px solid #285a48;
  outline-offset: 4px;
}
body :is(input, textarea, select) { accent-color: #365f4e; }
body :is(input, textarea)::placeholder { color: #627269; opacity: 1; }
body .skip-link { color: #fff; background: #285a48; }
body :is(.primary-nav, .workspace-nav) { color: var(--wf-muted); }
body :is(.primary-nav, .workspace-nav) a:hover { color: #152d28; }
body .brand-symbol { stroke: #365f4e; }

body:is(.service-page, .project-showcase, .contact-page, .offers-page) .site-header,
body:has(.legal-main) .site-header {
  color: var(--wf-text);
  background: #ffffffdc;
  border-color: var(--wf-line);
  box-shadow: 0 7px 28px #25403205;
  backdrop-filter: blur(18px);
}
body .motion-control { background: #ffffffb8; border-color: var(--wf-line); color: var(--wf-text); }
body :is(.site-footer, .workspace-footer, .workshop-footer) { background: transparent; color: var(--wf-subtle); border-color: var(--wf-line); }
body .footer-top > p { color: var(--wf-muted); }
body .footer-bottom { color: var(--wf-subtle); }
body .footer-bottom nav button:hover { color: var(--wf-accent); }

/* Dark ink, white paper and one clear action colour across public pages. */
body:is(.service-page, .project-showcase, .contact-page, .offers-page) :is(
  .service-card, .service-price-band, .service-price-summary, .contact-form-panel,
  .support-portal, .example-card, .showcase-card, .offer-path, .offer-cloud
) {
  color: var(--wf-text);
  background: var(--wf-panel);
  border-color: var(--wf-line);
  box-shadow: 0 10px 30px #203a2c04;
}
body:is(.service-page, .project-showcase, .contact-page, .offers-page) :is(
  .service-boundaries, .showcase-notice, .example-journey, .examples-notice,
  .showcase-rule-map, .no-script-message
) { color: var(--wf-muted); background: #edf2ec; border-color: #bacdbb; }
body:is(.service-page, .project-showcase, .contact-page, .offers-page) :is(
  .service-visual, .example-pane, .example-pane:last-child, .showcase-table-wrap
) { background: #f3f6f1; color: var(--wf-text); border-color: var(--wf-line); }
body:is(.service-page, .project-showcase, .contact-page, .offers-page) :is(
  .service-visual > span, .service-visual strong, .example-code, .example-pane:last-child .example-code
) { color: #264b3b; background: transparent; border-color: #b8ccba; }
body .service-visual { background: none; }
body .service-web b { background: #85a491; }
body .service-visual i { color: #365f4e; }
body .offer-cloud .eyebrow { color: var(--wf-accent); }
body :is(.showcase-table, .service-budget-table) :is(th, td) { color: var(--wf-text); border-color: var(--wf-line); }
body :is(.showcase-table, .service-budget-table) th { background: #edf2ec; }

body .button-primary,
body:is(.service-page, .project-showcase, .contact-page, .workspace-page) .button-primary,
body .example-button-primary,
body .legal-main .button {
  color: #fff;
  background: #365f4e;
  border-color: #365f4e;
  box-shadow: none;
}
body .button-primary:hover:not(:disabled),
body:is(.service-page, .project-showcase, .contact-page, .workspace-page) .button-primary:hover:not(:disabled),
body .example-button-primary:hover, body .legal-main .button:hover {
  color: #fff;
  background: #264c3e;
  border-color: #264c3e;
  box-shadow: none;
}
body :is(.button-ghost, .button-secondary, .button-outline, .example-button) {
  color: #285a48;
  background: #ffffffa6;
  border-color: #afc1b2;
}
body :is(.button-ghost, .button-secondary, .button-outline, .example-button):hover:not(:disabled) {
  color: #152d28;
  background: #e9f0e6;
  border-color: #5b7b63;
}
body .example-button-primary { color: #fff; background: #365f4e; border-color: #365f4e; }
body .example-button-primary:hover:not(:disabled) { color: #fff; background: #264c3e; border-color: #264c3e; }
body .button:disabled { box-shadow: none; }
body .text-link { color: var(--wf-accent); }
body .text-link:hover { color: #152d28; }

/* Inputs retain native validation and existing no-JavaScript form behaviour. */
body .contact-field :is(input, textarea),
body .support-portal :is(input:not([type=checkbox]), textarea),
body.workspace-page :is(input[type=search], input[type=text], textarea, select),
body .project-shell :is(input:not([type=checkbox]), textarea, select),
body .ops-shell :is(input:not([type=checkbox]), textarea, select) {
  color: var(--wf-text);
  background: #fff;
  border-color: #78907c;
  box-shadow: none;
}
body .contact-field :is(input, textarea):hover { border-color: #557b61; }
body .contact-field :is(input, textarea):focus { border-color: #285a48; }
body .contact-field [aria-invalid=true] { border-color: #a62f27; }
body .support-portal :is(button, #support-signin) { color: #fff; background: #365f4e; border-color: #365f4e; }
body .form-status { color: var(--wf-muted); background: #edf2ec; border-color: var(--wf-line); }
body .form-status[data-state=success] { color: #256040; border-color: #80a88c; background: #edf6ed; }
body .form-status[data-state=error] { color: #a62f27; border-color: #cc9b92; background: #fff1ed; }

/* The first-party privacy dialog is a readable, ordinary light surface. */
body :is(.privacy-banner, .privacy-dialog) {
  color: var(--wf-text);
  background: #fffffffa;
  border-color: #a9beac;
  box-shadow: 0 20px 75px #15322324;
}
body :is(.privacy-banner p, .privacy-dialog p, .privacy-dialog dd, .privacy-dialog-top, .privacy-session) { color: var(--wf-muted); }
body .privacy-banner .privacy-session { color: var(--wf-muted); }
body :is(.privacy-mark, .privacy-actions a, .privacy-dialog a) { color: var(--wf-accent); }
body .privacy-actions button { color: #285a48; border-color: #91ad97; background: #fff; }
body .privacy-actions button:hover { color: #152d28; border-color: #365f4e; background: #edf2ec; }
body :is(.privacy-actions button:first-child, .privacy-confirm) { color: #fff; background: #365f4e; border-color: #365f4e; }
body :is(.privacy-actions button:first-child, .privacy-confirm):hover { color: #fff; background: #264c3e; border-color: #264c3e; }
body .privacy-dialog-top button { color: var(--wf-text); }
body .privacy-dialog-top button:hover { color: #152d28; background: #edf2ec; }
body .privacy-dialog::backdrop { background: #152d284d; backdrop-filter: blur(5px); }
body .withdrawal-navigation .withdrawal-entry,
body.workspace-page .withdrawal-navigation .withdrawal-entry {
  color: #285a48;
  background: #edf2ec;
  border-color: #91ad97;
  box-shadow: none;
}
body .withdrawal-navigation .withdrawal-entry:hover,
body.workspace-page .withdrawal-navigation .withdrawal-entry:hover { color: #152d28; background: #e0ebdc; }
body .withdrawal-navigation .withdrawal-entry:focus-visible { outline: 2px solid #285a48; box-shadow: none; }
body:has(.legal-main) .legal-notice { color: var(--wf-muted); background: #edf2ec; border-color: var(--wf-accent); }
body:has(.legal-main) .missing-value { color: #7a5419 !important; }

/* Existing processing tools use the same paper surfaces and explicit states. */
body.workspace-page .workspace-header { background: #ffffff80; border-color: var(--wf-line); }
body.workspace-page .workspace-nav a[aria-current=page],
body.workspace-page .local-badge,
body.workspace-page .category-filter[aria-pressed=true] { color: #285a48; background: #e8f0e4; border-color: #b3c9b2; }
body.workspace-page .workspace-nav a:hover { color: #152d28; background: #edf2ec; }
body.workspace-page .panel { color: var(--wf-text); background: #fff; border-color: var(--wf-line); box-shadow: 0 9px 30px #203a2c04; }
body.workspace-page :is(.panel-heading, .selected-heading, .statistics, .result-stats, .batch-stats, .download-toolbar) { background: #f5f7f2; border-color: var(--wf-line); }
body.workspace-page .panel-heading h2 > span { background: #e8f0e4; color: #365f4e; border-color: #b3c9b2; }
body.workspace-page :is(input, textarea)::placeholder { color: #627269; opacity: 1; }
body.workspace-page :is(.button-outline, .cloud-panel .button-outline) { color: #285a48; background: #fff; border-color: #91ad97; }
body.workspace-page :is(.button-outline, .cloud-panel .button-outline):hover:not(:disabled) { color: #152d28; background: #e9f0e6; border-color: #5b7b63; }
body.workspace-page :is(.drop-zone, .availability-note, .help-panel) { background: #f5f7f2; border-color: #b6cbb4; }
body.workspace-page .drop-zone.is-dragging { background: #e4efdf; border-color: #285a48; box-shadow: inset 0 0 0 2px #b3c9b2; }
body.workspace-page .status-message { color: var(--wf-muted); background: #f0f4ed; border-color: var(--wf-line); }
body.workspace-page .error-message { color: #a62f27; background: #fff1ed; border-color: #cc9b92; }
body.workspace-page :is(.file-result-state.is-error, .file-result-message.is-error) { color: #a62f27; }
body.workspace-page :is(.service-button[aria-pressed=true], .category-filter[aria-pressed=true]) { color: #285a48; background: #e9f1e5; border-left-color: #365f4e; }
body.workspace-page .service-button:hover { background-color: #f3f6f1; }
body.workspace-page :is(.catalogue-scroll, .table-container, textarea) { scrollbar-color: #9db49f #f3f6f1; }
body.workspace-page :is(.table-container, .cloud-result) { background: #fff; }
body.workspace-page :is(th, td) { color: var(--wf-text); border-color: var(--wf-line); }
body.workspace-page thead th { background: #e8f0e4; color: #285a48; }
body.workspace-page tbody tr:hover { background: #f3f6f1; }
body.workspace-page .cell-empty { color: #586a62; }
body.workspace-page .cloud-panel { background: #edf2ec; border-color: #a3bba5; box-shadow: none; }
body.workspace-page .cloud-panel .panel-heading { background: #e5eddf; border-color: #b8cbb6; }
body.workspace-page .cloud-panel .panel-heading h2,
body.workspace-page .cloud-panel .cloud-price { color: #152d28 !important; }
body.workspace-page .cloud-panel :is(.cloud-price > span, .cloud-availability, .cloud-order-note) { color: var(--wf-muted); }
body.workspace-page .cloud-availability { background: #f8faf5; border-color: #b3c9b2; }
body.workspace-page .cloud-panel :is(p a, .cloud-order-note a, .cloud-consent a) { color: #285a48; }
body.workspace-page .optional-tag { color: #285a48; background: #e5eddf; border-color: #b3c9b2; }
body.workspace-page progress, body.workspace-page progress::-webkit-progress-bar { background: #dbe6d6; }

/* Operator screens retain their existing authorization and workflow structure. */
body .project-shell :is(.panel, .project-card), body :is(.ops-card, .ops-shell form, .ops-connection) { color: var(--wf-text); background: #fff; border-color: var(--wf-line); box-shadow: none; }
body .project-shell :is(.panel p, .project-card p, .cost-breakdown dt, .cost-breakdown dd),
body .ops-shell :is(p, .ops-gates dt, .ops-card span, form > label) { color: var(--wf-muted); }
body .project-shell :is(.panel a, .project-card a), body .ops-shell a:not(.button), body .ops-gates dd, body .ops-card strong { color: #285a48; }
body .project-shell :is(.cost-breakdown, .file-quote) { color: var(--wf-muted); background: #f3f6f1; border-color: var(--wf-line); }
body .project-shell .quote-value { color: #285a48 !important; }
body .project-shell .proposal { color: var(--wf-text); background: #f3f6f1 !important; }
body .project-shell :is(input, textarea)::placeholder { color: #627269; }
body .project-shell :is(.upload-form, .stage-form, .execution) { border-color: var(--wf-line); }
body .ops-shell button { color: #fff; background: #365f4e; border-color: #365f4e; }
body .ops-shell button:hover:not(:disabled) { color: #fff; background: #264c3e; }
body .ops-shell a:not(.button):hover { color: #152d28; }

@media (forced-colors: active) {
  body :is(.button, .service-card, .contact-form-panel, .privacy-banner, .privacy-dialog, .panel) { border: 1px solid CanvasText; }
  body :is(a, button, input, textarea, select, summary, [tabindex]):focus-visible { outline-color: Highlight; }
}
