/* Shared visual controls only: native behaviour, IDs and tool engines stay intact.
   Screen-scoped so existing report/print layouts keep their original rules. */
@media screen {
  html:has(body[data-suite-tool]) {color-scheme:dark}
  body[data-suite-tool] {
    --suite-control-bg:#101d23;
    --suite-control-hover:#1b2d35;
    --suite-control-line:#40545e;
    --suite-control-ink:#d5dfe2;
    --suite-control-muted:#94a6af;
    --suite-control-accent:#d58972;
    --suite-control-selected:#293336;
    --suite-control-radius:6px;
    color-scheme:dark;
  }
  body[data-suite-tool] :is(button,.file,a.button,[role="button"]) {
    box-sizing:border-box;
    min-height:40px;
    height:auto;
    max-width:100%;
    padding:9px 14px;
    border:1px solid var(--suite-control-line);
    border-radius:var(--suite-control-radius);
    background:var(--suite-control-bg);
    color:var(--suite-control-ink);
    font:400 13px/1.5 Inter,"Segoe UI",Arial,sans-serif;
    letter-spacing:normal;
    text-transform:none;
    text-decoration:none;
    white-space:normal;
    overflow-wrap:break-word;
    box-shadow:none;
    cursor:pointer;
    filter:none;
    transition:background-color .15s,border-color .15s,color .15s;
  }
  body[data-suite-tool] :is(button,.file,a.button,[role="button"]):hover:not(:disabled):not([aria-disabled="true"]) {
    background:var(--suite-control-hover);
    border-color:#83949b;
    filter:none;
  }
  /* Text/number/date fields share dimensions. Range, file and check controls
     are handled separately; hidden upload inputs keep their display behaviour. */
  body[data-suite-tool] :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),select,textarea,[role="combobox"]) {
    box-sizing:border-box;
    min-height:40px;
    height:auto;
    max-width:100%;
    min-width:0;
    padding:9px 12px;
    border:1px solid var(--suite-control-line);
    border-radius:var(--suite-control-radius);
    background:var(--suite-control-bg);
    color:var(--suite-control-ink);
    font:400 13px/1.5 Inter,"Segoe UI",Arial,sans-serif;
    letter-spacing:normal;
    box-shadow:none;
    accent-color:var(--suite-control-accent);
  }
  body[data-suite-tool] textarea { min-height:100px;resize:vertical; }
  body[data-suite-tool] input::placeholder,
  body[data-suite-tool] textarea::placeholder {color:var(--suite-control-muted);opacity:1}
  body[data-suite-tool] option {background:var(--suite-control-bg);color:var(--suite-control-ink)}
  body[data-suite-tool] :is(label,legend,.dual-label .primary) {
    font-family:Inter,"Segoe UI",Arial,sans-serif;
    font-size:13px;
    line-height:1.5;
    font-weight:500;
    color:var(--suite-control-ink);
  }
  body[data-suite-tool] input[type="file"] {
    max-width:100%;min-height:44px;padding:5px;
    border:1px solid var(--suite-control-line);border-radius:6px;
    color:var(--suite-control-muted);background:var(--suite-control-bg);
    font:400 13px/1.5 Inter,"Segoe UI",Arial,sans-serif;
  }
  body[data-suite-tool] input::file-selector-button {
    border:1px solid var(--suite-control-line);border-radius:4px;
    padding:7px 12px;margin-right:12px;
    font:inherit;background:var(--suite-control-hover);color:var(--suite-control-ink);cursor:pointer;
  }
  body[data-suite-tool] input::file-selector-button:hover {border-color:var(--suite-control-accent)}
  body[data-suite-tool] :is(input[type="checkbox"],input[type="radio"],[role="checkbox"]) {
    box-sizing:border-box;flex:none;width:18px;height:18px;min-height:18px;
    padding:0;accent-color:var(--suite-control-accent);border-radius:4px;
  }
  body[data-suite-tool] input[type="radio"] {border-radius:50%}
  body[data-suite-tool] input[type="range"] {accent-color:var(--suite-control-accent);cursor:pointer;min-height:24px}
  body[data-suite-tool] [role="checkbox"][data-state="checked"] {
    background:var(--suite-control-accent);border-color:var(--suite-control-accent);color:#0b1418;
  }
  /* Navigation / choice groups: quiet unselected controls, copper selected state. */
  body[data-suite-tool] :is(.segmented,[role="tablist"]) {
    display:flex;flex-wrap:wrap;gap:4px;
    height:auto;max-width:100%;padding:4px;
    border:1px solid #2a3a42;border-radius:8px;background:#0b1418;
  }
  body[data-suite-tool] :is(.segmented button,[role="tab"],.tabs button,#steps button) {
    border:1px solid transparent;background:transparent;color:var(--suite-control-muted);
  }
  body[data-suite-tool] [role="tab"] {flex:0 0 auto;white-space:nowrap}
  body[data-suite-tool] :is(button[aria-pressed="true"],button[aria-selected="true"],.tabs button.active,#steps button.active) {
    color:#edb39e;background:var(--suite-control-selected);
    border:1px solid var(--suite-control-accent);font-weight:500;
    box-shadow:none;
  }
  body[data-suite-tool] :is(button[aria-pressed="true"],button[aria-selected="true"],.tabs button.active,#steps button.active):hover:not(:disabled) {
    color:#f5c8b7;background:#344043;border-color:#e8ac95;
  }
  body[data-suite-tool] :is(.gens,.chips,.tabs) {gap:8px}
  body[data-suite-tool] #steps {gap:6px}
  /* Primary commands keep the same accent across all six applications. */
  body[data-suite-tool] :is(button.dl,button.button,a.button),
  body[data-suite-tool="aalto"] :is(.drop button,.result-head>button),
  body[data-suite-tool="ma-layers"] .actions button:not(.secondary),
  body[data-suite-tool="boole"] button.bg-primary {
    background:var(--suite-control-accent);border-color:var(--suite-control-accent);
    color:#0b1418;font-weight:500;
  }
  body[data-suite-tool] :is(button.dl,button.button,a.button):hover:not(:disabled),
  body[data-suite-tool="aalto"] :is(.drop button,.result-head>button):hover:not(:disabled),
  body[data-suite-tool="ma-layers"] .actions button:not(.secondary):hover:not(:disabled),
  body[data-suite-tool="boole"] button.bg-primary:hover:not(:disabled) {
    background:#e6a48b;border-color:#e6a48b;color:#0b1418;
  }
  body[data-suite-tool] :is([role="listbox"],[role="menu"],[data-slot="select-content"],[data-slot="dropdown-menu-content"]) {
    background:#101d23;color:var(--suite-control-ink);
    border:1px solid var(--suite-control-line);border-radius:8px;
    padding:5px;box-shadow:0 12px 32px #0005;font-size:13px;
  }
  body[data-suite-tool] :is([role="option"],[role="menuitem"],[role="menuitemcheckbox"]) {
    min-height:36px;padding:8px 30px 8px 12px;border-radius:4px;
    font:400 13px/1.5 Inter,"Segoe UI",Arial,sans-serif;
  }
  body[data-suite-tool] :is([role="option"],[role="menuitem"],[role="menuitemcheckbox"])[data-highlighted] {
    background:var(--suite-control-selected);color:#edb39e;outline:none;
  }
  body[data-suite-tool] [role="option"][aria-selected="true"] {color:#edb39e}
  body[data-suite-tool] summary {font:400 13px/1.6 Inter,"Segoe UI",Arial,sans-serif;color:#d6af9b;cursor:pointer}
  body[data-suite-tool] summary:hover {color:#f5c8b7}
  body[data-suite-tool] :is(button,input,select,textarea,a,summary,[role="button"]):focus-visible {
    outline:2px solid var(--suite-control-accent);outline-offset:3px;box-shadow:none;
  }
  body[data-suite-tool] :is(input,textarea,select,[role="combobox"])[aria-invalid="true"],
  body[data-suite-tool] :is(input,textarea,select):user-invalid {border-color:#ed8e80;outline-color:#ed8e80}
  body[data-suite-tool] :is(button,input,textarea,select):disabled,
  body[data-suite-tool] [aria-disabled="true"],
  body[data-suite-tool] [role="option"][data-disabled] {
    opacity:.45;cursor:not-allowed;filter:none;
  }
  /* Compact controls in dense tables and disclosure rows keep their affordance. */
  body[data-suite-tool="aalto"] .toggle {min-height:28px;width:28px;padding:2px;border-color:transparent;background:transparent}
  body[data-suite-tool] :is(.trace-cell,.trace-next) {min-height:32px;padding:5px 9px}
  body[data-suite-tool="ma-layers"] .link {background:transparent;border-color:transparent;color:#d6af9b;text-decoration:underline}
  body[data-suite-tool="ma-layers"] .language-switch a {
    display:inline-flex;align-items:center;justify-content:center;min-height:36px;min-width:36px;
    padding:6px;border:1px solid transparent;border-radius:6px;
  }
  body[data-suite-tool="ma-layers"] .language-switch a[aria-current] {border-color:var(--suite-control-accent);color:#edb39e}
  body[data-suite-tool="mies"] .chips .chip {text-align:left}
  body[data-suite-tool="piano"] :is(#trace-ref,#compare-filter-text,#recalc-fields input:not([type=file]):not([type=checkbox])) {
    min-height:40px;border-color:var(--suite-control-line);border-radius:6px;
    padding:9px 12px;background:var(--suite-control-bg);color:var(--suite-control-ink);font-size:13px;
  }
  @media(max-width:700px) {
    body[data-suite-tool] :is(button,.file,a.button,[role="button"]) {min-height:44px}
    body[data-suite-tool] :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]),select,textarea,[role="combobox"]) {font-size:16px}
    body[data-suite-tool] [role="checkbox"] {min-height:18px}
    body[data-suite-tool] [role="tablist"] {width:100%}
    body[data-suite-tool] [role="tab"] {flex:1 1 auto}
  }
  @media(prefers-reduced-motion:reduce) {
    body[data-suite-tool] :is(button,input,select,textarea,a) {transition:none}
  }
}
