/* Shared object form controls. Low specificity preserves each module's own layout.
   Table cells and native checkbox/radio/range widgets intentionally keep their sizing. */
:where(.sc-app[data-view-kind="object"], .sc-modal-card, .modal, .osf, .object-form-scope)
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]), select, textarea):not(:where(table *)) {
 box-sizing:border-box;max-width:100%;min-width:0;min-height:40px;padding:9px 11px;
 border:1px solid var(--line,#e6e8ec);border-radius:9px;background:var(--bg,#f5f6f8);color:var(--text,#132238);
 font:inherit;font-size:14px;line-height:1.4;transition:border-color .15s,box-shadow .15s,background-color .15s;
}
:where(.sc-app[data-view-kind="object"], .sc-modal-card, .modal, .osf, .object-form-scope)
:where(input,select,textarea):not(:where(table *,[type="checkbox"],[type="radio"],[type="range"],[type="color"],[type="hidden"],[type="button"],[type="submit"],[type="reset"],[type="image"])):focus-visible {
 outline:2px solid var(--accent,#ff6b35);outline-offset:2px;background:var(--surface,#fff);border-color:var(--accent,#ff6b35);
}
:where(.sc-app[data-view-kind="object"], .sc-modal-card, .modal, .osf, .object-form-scope)
:where(input,select,textarea):disabled {cursor:not-allowed;opacity:.65;}
:where(.sc-app[data-view-kind="object"], .sc-modal-card, .modal, .osf, .object-form-scope) textarea:not(:where(table *)) {resize:vertical;min-height:90px;}
:where(.sc-app[data-view-kind="object"], .sc-modal-card, .modal, .osf, .object-form-scope) input::placeholder,
:where(.sc-app[data-view-kind="object"], .sc-modal-card, .modal, .osf, .object-form-scope) textarea::placeholder {color:var(--muted,#77869a);opacity:.85;}
:where(.sc-app[data-view-kind="object"], .sc-modal-card, .modal, .osf, .object-form-scope) input[type="file"]::file-selector-button {
 border:1px solid var(--line,#e6e8ec);border-radius:7px;background:var(--surface,#fff);color:var(--text,#132238);font:inherit;padding:6px 10px;margin-right:10px;cursor:pointer;
}
:where(.sc-app[data-view-kind="object"], .sc-modal-card, .modal, .osf, .object-form-scope) input[type="file"]::file-selector-button:hover {border-color:var(--accent,#ff6b35);background:var(--accent-soft,#fff1eb);}
:where(.sc-app[data-view-kind="object"], .sc-modal-card, .modal, .osf, .object-form-scope) :where(input,select,textarea)[aria-invalid="true"] {border-color:var(--red,#e34646);}
.osf {min-width:0;}
.osf .osf-toolbar {display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0;}
.osf .osf-month {display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted,#77869a);}
.osf .osf-month input {width:auto;min-height:36px;padding:7px 10px;color:var(--text,#132238);}
.osf .osf-search {display:grid;gap:6px;max-width:480px;margin:12px 0;color:var(--muted,#77869a);font-size:12px;}
.osf .osf-search input {width:100%;}
.osf .osf-form {border:1px solid var(--line,#e6e8ec);border-radius:12px;background:var(--surface,#fff);padding:18px;margin:14px 0;min-width:0;}
.osf .osf-form h3 {font-size:17px;line-height:1.3;margin:0 0 16px;}
.osf .osf-fields {display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(150px,1fr) minmax(130px,1fr);gap:14px;}
.osf .osf-form label {display:grid;gap:6px;color:var(--muted,#77869a);font-size:12px;min-width:0;}
.osf .osf-form :is(input,select,textarea) {display:block;width:100%;color:var(--text,#132238);font-size:14px;border-radius:9px;padding:9px 11px;background:var(--bg,#f5f6f8);}
.osf .osf-reason {margin:14px 0;}
.osf .osf-form .osf-note {margin:10px 0 14px;color:var(--muted,#77869a);font-size:12px;line-height:1.5;}
.osf .osf-actions {display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.osf [data-form-error],.osf [data-error] {color:var(--red,#e34646);font-size:13px;line-height:1.5;margin:10px 0 0;}
.osf [data-form-error]:empty,.osf [data-error]:empty {display:none;}
.osf .grid3 {gap:10px;}
.osf .metric {padding:12px 14px;}
@media(max-width:720px) { .osf .osf-fields {grid-template-columns:minmax(0,1fr) minmax(0,1fr);} .osf .osf-fields>label:first-child {grid-column:1/-1;} .osf .osf-form {padding:14px;} }
@media(max-width:430px) { .osf .osf-fields {grid-template-columns:minmax(0,1fr);} .osf .grid3 {grid-template-columns:1fr;} .osf .osf-actions>* {flex:1;} }
@media(prefers-reduced-motion:reduce) { :where(.sc-app[data-view-kind="object"], .sc-modal-card, .modal, .osf, .object-form-scope) :where(input,select,textarea) {transition:none;} }
