/* Partes UI v2. Common controls applied AFTER module layout CSS.
   Domain-specific layouts stay in their modules, input/button/dialog design stays here. */
:root { font-family:var(--ui-font); }
:where(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select,textarea,.ui-control){
 min-width:0;max-width:100%;min-height:var(--ui-control-height);border:1px solid var(--line);
 border-radius:var(--ui-control-radius);background:var(--surface);color:var(--ink);
 font:inherit;line-height:1.3;box-shadow:none;
}
:where(button,.ui-button){font-family:var(--ui-font);line-height:1.3;}
:where(.ui-button,.ui-icon-button,[data-ui-component=button]){border-radius:var(--ui-control-radius)}
:where(.ui-control,.ui-field-control):focus-visible,
:where(input:not([type=checkbox]):not([type=radio]),select,textarea):focus-visible{
 outline:1px solid var(--ui-focus);outline-offset:0;border-color:var(--ui-focus);box-shadow:none;
}
:where(.ui-field-row,.ui-form-grid){display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:8px 12px;align-items:start;min-width:0}
:where(.ui-field-row,.ui-form-grid)>*{min-width:0}
.ui-form-section{border:1px solid var(--line);border-radius:var(--ui-radius-panel);background:var(--surface);padding:var(--ui-space-4);min-width:0}
.ui-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.ui-toolbar>:first-child{margin-inline-end:auto}
.ui-modal{border:1px solid var(--line);border-radius:var(--ui-radius-panel);background:var(--surface);color:var(--ink);
 max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}
.ui-modal :where(input,select,textarea){max-width:100%}
.ui-modal [data-ui-modal-actions]{position:sticky;bottom:0;z-index:2;background:var(--surface);border-top:1px solid var(--line);padding:10px 0 0;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.ui-modal .ui-dialog-close{position:absolute;right:12px;top:12px;z-index:4}
.ui-switch,.pref-option-switch{min-width:0;max-width:100%}
.ui-switch input[type=checkbox]{flex:0 0 auto}
.ui-badge{max-width:100%;overflow-wrap:anywhere}
.ui-empty{padding:24px 16px;text-align:center;color:var(--ui-muted);border:1px dashed var(--line);border-radius:var(--ui-radius-panel);background:var(--surface)}
@media(max-width:650px){
 :where(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){font-size:16px}
 .ui-form-section{padding:10px}
 .ui-modal{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}
}
@media(prefers-reduced-motion:reduce){.ui-modal *, .ui-switch *{transition:none!important}}

/* Shared geometry wins over module defaults; component content stays module-owned. */
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=color]),
select:not([multiple]),.work-choice-trigger{height:var(--ui-control-height);min-height:var(--ui-control-height);border-radius:var(--ui-control-radius)}
input:disabled,select:disabled,textarea:disabled{color:var(--ui-muted);background:var(--ui-bg);opacity:1}
:is(.work-new-grid,.address-grid,.collection-pair,.catalog-type-properties,.catalog-appearance)>.ui-float-field{margin:0}
[data-field-labels="floating"] .work-new-grid>label.ui-float-field{display:block}
[data-field-labels="floating"] .work-new-address>.ui-float-field{grid-column:1/-1}
.work-lookup-inline.ui-float-field{margin:0}
.work-lookup-inline.ui-float-field>input{height:var(--ui-control-height);min-height:var(--ui-control-height)}
[data-field-labels="floating"] :is(#fields,#contact-details)> .ui-float-field{margin:0 0 10px}
/* Label-free search actions and externally labelled filters share the same baseline. */
.dg-remote-toolbar{align-items:center}
.dg-remote-filters label{margin:0}
.dg-remote-filters select{display:block;width:100%;margin-top:4px}
.catalog-type-properties>.ui-switch{display:flex;flex-direction:row;align-items:center;gap:8px;min-height:var(--ui-control-height)}
.catalog-type-properties .ui-switch input[type=checkbox]{width:38px;min-width:38px;max-width:38px;height:22px;min-height:22px;margin:0;padding:2px;flex:none}
.catalog-appearance input[type=color]{height:var(--ui-control-height)}
.collection-row .collection-pair{margin-bottom:8px}
