/* Shared form language. EchoGEST colours remain defined by brand.css. */
.form-workspace{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px;align-items:start}
.form-main,.form-aside,.form-workspace>*{min-width:0}
.form-aside{position:sticky;top:24px}
.erp-v2 form[data-ux-form]{--field-border:#c5c5d2;min-width:0}
.erp-v2 .form-section{padding:0 0 28px;margin:0 0 28px;border-bottom:1px solid var(--line)}
.erp-v2 .panel.form-section{padding:24px;border:1px solid var(--line)}
.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
.section-heading h2,.section-heading h3,.section-heading legend{margin:0 0 5px;font-size:17px}
.section-heading p,.form-intro,.field-help,.help-text{font-size:12px;line-height:1.65;color:var(--muted)}
.section-heading p{margin:0;max-width:72ch}
.form-intro{margin:0 0 24px;max-width:80ch}
fieldset.form-section{min-inline-size:0}.form-section legend{padding:0;float:none;width:auto;max-width:100%;margin-bottom:16px}
.erp-v2 [data-ux-form] label{color:var(--ink);font-size:12px;line-height:1.6}
.erp-v2 [data-ux-form] .form-grid{gap:22px 24px;margin-bottom:22px;align-items:start}
.erp-v2 [data-ux-form] input,.erp-v2 [data-ux-form] select,.erp-v2 [data-ux-form] textarea{border-color:var(--field-border);min-height:44px;font-size:14px;padding:11px 12px;box-shadow:none}
[data-ux-form] input:focus,[data-ux-form] select:focus,[data-ux-form] textarea:focus{border-color:var(--echo-blue);outline:2px solid #1964ab25;outline-offset:1px}
[data-ux-form] input[readonly],[data-ux-form] textarea[readonly],[data-ux-form] select:disabled{background:#f5f4f7;color:var(--muted)}
.erp-v2 [data-ux-form] input[type=checkbox],.erp-v2 [data-ux-form] input[type=radio]{min-height:18px;width:18px;padding:0;accent-color:var(--echo-blue);vertical-align:middle;flex:none}
.required-mark{color:var(--echo-blue);margin-left:4px;font-weight:700}.required-note{font-size:11px;color:var(--muted);margin-bottom:20px}
.field-help{display:block;font-weight:400;margin:6px 0 0}.field-error{display:block;color:#a32f32;font-size:12px;font-weight:500;line-height:1.6;margin:6px 0 0}
[data-ux-form] [aria-invalid=true]{border-color:#b43c43!important;background:#fffafb}
.error-summary{scroll-margin-top:20px}.error-summary strong{font-size:14px}.error-summary ul{padding-left:20px;line-height:1.8}.error-summary a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.erp-v2 .form-actions,.erp-v2 [data-ux-form]>.form-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;position:sticky;bottom:0;z-index:5;background:#fffffff5;backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:16px 0;margin-top:28px;box-shadow:0 -8px 16px #ffffffc0}
.form-actions .muted,.form-actions .field-help{margin:0 auto 0 0;font-size:11px}.form-actions .button,.erp-v2 [data-ux-form] .button.primary{min-height:44px;padding:11px 20px}
.form-actions a{min-height:44px}.form-status{color:var(--muted);font-size:11px;font-weight:400;margin-right:auto}
.form-summary{border:1px solid var(--line);border-radius:10px;background:#faf9fc;padding:20px;font-size:12px;line-height:1.7}
.form-summary h2,.form-summary h3{font-size:14px;margin:0 0 12px}.form-summary dl{margin:0}.form-summary dt{color:var(--muted);margin-top:12px}.form-summary dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}
.form-summary ul{padding-left:18px;margin:12px 0 0}.form-summary output{font-variant-numeric:tabular-nums}.form-total-row{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px solid var(--line)}
.advanced-fields{border:1px solid var(--line);background:#fcfbfd;border-radius:8px;margin:22px 0;padding:0 18px}
.advanced-fields>summary{padding:16px 0;color:var(--ink);font-size:12px;font-weight:600;cursor:pointer;list-style-position:inside}
.advanced-fields[open]>summary{margin-bottom:16px;border-bottom:1px solid var(--line)}.advanced-fields .form-grid:last-child{margin-bottom:20px}
.erp-v2 [data-ux-form] .tabs{margin-bottom:26px;gap:6px}.erp-v2 [data-ux-form] .tabs button{font-size:12px;padding:12px 16px;white-space:nowrap}
.erp-v2 [data-ux-form] .tab-panel{padding-top:3px}.erp-v2 [data-ux-form] .table-wrap{border:1px solid var(--line);border-radius:8px;margin-bottom:16px;max-width:100%}
.erp-v2 [data-ux-form] table th{background:#f6f5f9;color:var(--muted);font-size:11px;text-transform:none;letter-spacing:0;padding:12px;font-weight:600}
.erp-v2 [data-ux-form] table td{vertical-align:top;padding:12px;border-bottom:1px solid var(--line)}
.erp-v2 [data-ux-form] table input,.erp-v2 [data-ux-form] table select{font-size:12px;min-height:40px;padding:9px;margin-top:0;min-width:100px}
.erp-v2 [data-ux-form] table [name$="[designation]"],.erp-v2 [data-ux-form] table [data-field=designation]{min-width:220px}
.erp-v2 [data-ux-form] table [data-line-field=quantity],.erp-v2 [data-ux-form] table [data-line-field=tax-rate]{min-width:80px}
.erp-v2 [data-ux-form] table .button.ghost{padding:8px;min-height:38px;min-width:38px;color:#8d4552;background:#fff}
[data-ux-form] .line-editor{margin:12px 0 22px;min-width:0}.line-editor label{font-weight:400}.line-editor table th:last-child{width:44px}
.line-total{display:block;min-width:95px;text-align:right;white-space:nowrap;line-height:40px;font-variant-numeric:tabular-nums}
.row-card,.repeater-card,.nested-line{border:1px solid var(--line);border-radius:8px;padding:20px;margin-bottom:16px;background:white}
.row-card-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.row-card-heading h3{margin:0;font-size:14px}
.nested-lines{grid-column:1/-1}.nested-line .button{justify-self:start}
.select-search{margin:0 0 7px!important;min-height:36px!important;padding:8px 10px!important;font-size:12px!important;background:#faf9fc!important}
.select-search::placeholder{color:#74707e}.select-empty{font-size:11px;color:var(--muted);font-weight:400;margin:6px 0}
.password-control{position:relative;display:block}.password-control input{padding-right:96px!important}.password-toggle{position:absolute;top:1px;right:5px;height:40px;min-width:80px;background:transparent;border:0;color:var(--echo-blue);cursor:pointer;font-size:11px;font-weight:600}
.upload-form input[type=file]{padding:16px;background:#faf9fc;border-style:dashed;height:auto}.upload-form input[type=file]::file-selector-button{border:1px solid var(--line);padding:8px 12px;margin-right:12px;border-radius:5px;background:#fff;color:var(--echo-blue);cursor:pointer}
.admin-access label{min-width:130px}.admin-access select{margin:4px 0}.admin-access .actions{align-items:end;flex-wrap:wrap}.admin-access .button{margin-bottom:4px}
.login [data-ux-form] input{min-height:46px}.login .password-toggle{height:44px}.login [data-ux-form] .primary{min-height:46px}
.form-technical{font-family:Consolas,monospace!important;font-size:12px!important}.form-section>h2{margin-bottom:8px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tabs .tab-error{color:#a32f32}.tabs .tab-error::after{content:' •';color:#a32f32}.json-field-group{grid-column:1/-1;font-size:12px;font-weight:600}.json-field-group .button{font-weight:600}
.form-actions,.form-grid>h3{grid-column:1/-1}.field.wide{grid-column:1/-1}
.erp-v2 .form-actions:has([data-add-business-line],[data-add-line],[data-accounting-add]){position:static;backdrop-filter:none;box-shadow:none;margin-top:12px;padding:0;border:0;background:transparent}
.section-heading>h2{flex-shrink:0}
[data-ux-form] td[hidden]{display:none!important}.form-error{color:#a32f32;font-weight:500}
.form-section:has([data-business-line],[data-line-row]){container-type:inline-size}
@container(max-width:950px){
 table:has([data-business-line],[data-line-row]),table:has([data-business-line],[data-line-row]) tbody{display:block}
 table:has([data-business-line],[data-line-row]) thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
 [data-business-line],[data-line-row]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:18px;margin:0 0 16px;border:1px solid var(--line);border-radius:8px}
 .erp-v2 [data-ux-form] [data-business-line]>td,.erp-v2 [data-ux-form] [data-line-row]>td{display:block;min-width:0;max-width:none;padding:0;border:0}
 [data-business-line]>td::before,[data-line-row]>td::before{content:attr(data-label);display:block;color:var(--muted);font-size:11px;margin-bottom:5px}
 [data-business-line]>td:has([data-line-field=designation]),[data-line-row]>td:has([data-line-field=designation]){grid-column:span 2}
 [data-business-line]>td:last-child,[data-line-row]>td:last-child{grid-column:1/-1;text-align:right}
 .erp-v2 [data-ux-form] table:has([data-business-line],[data-line-row]) input,.erp-v2 [data-ux-form] table:has([data-business-line],[data-line-row]) select{min-width:0;width:100%}
 .erp-v2 [data-ux-form] .table-wrap:has([data-business-line],[data-line-row]){border:0;overflow:visible}
}
@media(max-width:1200px){.form-workspace{grid-template-columns:minmax(0,1fr) 230px;gap:20px}}
@media(max-width:1000px){.form-workspace{grid-template-columns:minmax(0,1fr)}.form-aside{position:static}.form-summary{max-width:none}.form-summary dl{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px}.form-summary dt{margin:0}}
@media(max-width:760px){.erp-v2 [data-ux-form] .form-grid{grid-template-columns:minmax(0,1fr);gap:20px}.erp-v2 .form-actions,.erp-v2 [data-ux-form]>.form-footer{padding:12px 0;gap:10px}.form-actions .button{flex:1}.form-actions .form-status,.form-actions>.muted{flex-basis:100%}.erp-v2 [data-ux-form] .tabs button{padding:12px}.advanced-fields{padding:0 14px}.row-card,.repeater-card,.nested-line{padding:16px}.erp-v2 [data-ux-form] table td{padding:9px}.erp-v2 [data-ux-form] input,.erp-v2 [data-ux-form] select,.erp-v2 [data-ux-form] textarea{font-size:16px}.section-heading{flex-direction:column;gap:6px}.form-summary dl{display:block}.form-summary dt{margin-top:10px}}
@media(prefers-reduced-motion:reduce){[data-ux-form] *{scroll-behavior:auto!important}}
@media(max-width:760px){
 [data-ux-form] .table-wrap:has([data-business-line],[data-line-row],[data-accounting-row]){border:0;overflow:visible}
 [data-ux-form] table:has([data-business-line],[data-line-row],[data-accounting-row]),[data-ux-form] table:has([data-business-line],[data-line-row],[data-accounting-row]) tbody{display:block}
 [data-ux-form] table:has([data-business-line],[data-line-row],[data-accounting-row]) thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
 [data-ux-form] [data-business-line],[data-ux-form] [data-line-row],[data-ux-form] [data-accounting-row]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border:1px solid var(--line);border-radius:8px;padding:16px;margin:0 0 16px}
 .erp-v2 [data-ux-form] [data-business-line]>td,.erp-v2 [data-ux-form] [data-line-row]>td,.erp-v2 [data-ux-form] [data-accounting-row]>td{display:block;max-width:none;padding:0;border:0;min-width:0}
 [data-ux-form] [data-business-line]>td:first-child,[data-ux-form] [data-line-row]>td:first-child{grid-column:1/-1}
 [data-ux-form] [data-business-line]>td:has([data-line-field=designation]),[data-ux-form] [data-line-row]>td:has([data-line-field=designation]){grid-column:1/-1}
 [data-ux-form] [data-business-line]>td::before,[data-ux-form] [data-line-row]>td::before,[data-ux-form] [data-accounting-row]>td::before{content:attr(data-label);display:block;color:var(--muted);font-size:11px;margin-bottom:5px}
 .erp-v2 [data-ux-form] table:has([data-business-line],[data-line-row],[data-accounting-row]) input,.erp-v2 [data-ux-form] table:has([data-business-line],[data-line-row],[data-accounting-row]) select{min-width:0;width:100%;font-size:16px}
}
