/* Shared portal controls. Domain-specific editors, maps and canvases keep their layout. */
body.acv-portal { --portal-green:#17694f; --portal-line:#cfdbd5; --portal-focus:#2279aa; background:#f4f7f6; color:#202e29; font-family:Arial,Helvetica,sans-serif; letter-spacing:0; }
body.acv-portal :is(button,input,select,textarea) { font-family:inherit; letter-spacing:0; box-sizing:border-box; }
body.acv-portal main :is(button,a.button,a.btn,input[type=submit],input[type=button]) {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  flex:0 1 auto; align-self:flex-start; width:auto; min-width:0; max-width:100%;
  min-height:36px; height:auto; margin:4px 4px 4px 0; padding:7px 12px;
  border-radius:4px; font-size:14px; line-height:1.35; white-space:normal;
  background:#17694f; border:1px solid #17694f; color:#fff;
  overflow-wrap:anywhere; vertical-align:middle; text-decoration:none;
}
body.acv-portal main :is(button,a.button,a.btn).secondary { background:#f0f5f2; border-color:#a6bdb0; color:#174c39; }
body.acv-portal main :is(button,a.button,a.btn).danger { background:#a92c3c; border-color:#a92c3c; color:white; }
body.acv-portal main :is(button,a.button,a.btn):focus-visible { outline:3px solid var(--portal-focus); outline-offset:2px; }
body.acv-portal main :is(button,a.button,a.btn):disabled { cursor:not-allowed; opacity:.55; }
body.acv-portal main :is(.row-form,.actions-row,.toolbar,.form-actions) { gap:10px; }
body.acv-portal main label { line-height:1.4; }
body.acv-portal main label> :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { margin-top:5px; }
body.acv-portal main :is(input,select,textarea) { max-width:100%; }
body.acv-portal main :is(h1,h2,h3) { letter-spacing:0; color:#174c39; }
body.acv-portal main h1 { font-size:24px; line-height:1.25; }
body.acv-portal .workspace-grid { display:grid; grid-template-columns:minmax(0,1fr)!important; gap:16px; }
body.acv-portal .workspace-grid>.workspace-widget { grid-column:1/-1!important; width:100%!important; max-width:none!important; box-sizing:border-box; border-radius:6px; }
body.acv-portal .workspace-grid .widget-handle { min-height:52px; padding:10px 14px!important; }
body.acv-portal .workspace-grid .widget-handle>button { width:32px; height:32px; min-height:32px; margin:0; padding:0!important; align-self:center; background:#f0f5f2; border:1px solid #c5d3cb; color:#174c39; }
body.acv-portal .workspace-grid .widget-body { padding:14px; }
body.acv-portal .widget-editor :is(button,input,select) { max-width:100%; }
@media(max-width:600px) {
 body.acv-portal main h1 { font-size:22px; }
 body.acv-portal .workspace-grid .widget-handle { grid-template-columns:minmax(0,1fr) repeat(4,30px); gap:3px; }
 body.acv-portal .workspace-grid .widget-handle>button { width:30px; min-width:30px; }
 body.acv-portal .workspace-grid .widget-body { padding:12px; }
}
@media print { #portal-unified-header,.portal-section-tools,.workspace-customize,.widget-handle>button { display:none!important; } body.acv-portal { background:white; } }

/* Shared form alignment: preserve specialized editors, tables and file tools. */
body.acv-portal { --portal-control-height:38px; }
body.acv-portal main :is(.form-grid,.row-form):not(.workspace-widget) { align-items:end; gap:14px 12px; }
body.acv-portal main :is(.form-grid,.row-form)>label:not(:has(input[type=checkbox],input[type=radio])) {
 display:flex; flex-direction:column; align-items:stretch; justify-content:flex-end; gap:5px; min-width:0; margin:0;
}
body.acv-portal main :is(.form-grid,.row-form)>label:not(:has(input[type=checkbox],input[type=radio]))>:is(input,select,textarea) {
 margin:0; width:100%; min-width:0;
}
body.acv-portal main :is(.form-grid,.row-form)>label>:is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=color]):not([type=file]):not([type=image]):not([type=submit]):not([type=button]):not([type=reset]),select) {
 height:var(--portal-control-height); min-height:var(--portal-control-height); padding:7px 10px; font-size:14px; line-height:20px;
}
body.acv-portal main :is(.form-grid,.row-form)>label>textarea { min-height:88px; resize:vertical; }
body.acv-portal main :is(.form-grid,.row-form,.actions-row,.form-actions,.toolbar)>:is(button,a.button,a.btn,input[type=submit],input[type=button],input[type=reset]) {
 align-self:end; justify-self:start; width:auto; min-height:var(--portal-control-height); margin:0;
}
body.acv-portal main :is(.actions-row,.form-actions,.toolbar) { align-items:end; gap:10px; }
body.acv-portal main :is(.form-actions,.toolbar) { display:flex; flex-wrap:wrap; }
body.acv-portal main :is(.actions-row,.form-actions,.toolbar)>form { margin:0; align-self:end; }
body.acv-portal main :is(.actions-row,.form-actions,.toolbar)>form>:is(button,input[type=submit],input[type=button]) { min-height:var(--portal-control-height); margin:0; }
body.acv-portal main .login form { display:grid; gap:14px; }
body.acv-portal main .login form>label { display:flex; flex-direction:column; gap:5px; min-width:0; margin:0; }
body.acv-portal main .login form>label>input:not([type=checkbox]):not([type=hidden]) { height:var(--portal-control-height); min-height:var(--portal-control-height); width:100%; margin:0; padding:7px 10px; font-size:14px; line-height:20px; }
body.acv-portal main .login form>button { min-height:var(--portal-control-height); margin:0; justify-self:start; }
body.acv-portal main :is(.form-grid,.row-form)>label:has(input[type=checkbox],input[type=radio]) { align-self:end; min-height:var(--portal-control-height); margin:0; padding-block:0; }
@media(max-width:600px) {
 body.acv-portal main :is(.form-grid,.row-form):not(.workspace-widget):not(.mini) { grid-template-columns:minmax(0,1fr); }
 body.acv-portal main :is(.form-grid,.row-form)>:is(button,a.button,a.btn,input[type=submit],input[type=button],input[type=reset]) { max-width:100%; }
}
