/* Shared form geometry. Page styles own placement and widths, not control height.
   Loaded after page styles and before the shared typography stylesheet. */
:root{
  --control-height:36px;
  --control-height-compact:30px;
  --field-label-gap:7px;
  --field-inline-gap:12px;
}
@media(pointer:coarse){
  :root{--control-height:44px;--control-height-compact:44px}
}

#app .el-input,#app .el-select,#app .el-input-number{
  --el-component-size:var(--control-height);
  --el-input-height:var(--control-height);
  min-width:0;vertical-align:middle;
}
#app .el-input,#app .el-input-number{
  height:var(--control-height);min-height:var(--control-height);
}
#app .el-input-number{line-height:var(--control-height)}
#app .el-input-number .el-input{height:100%;min-height:0}
#app .el-input__wrapper{
  height:100%;min-height:0;box-sizing:border-box;align-items:center;
}
#app .el-input__inner{
  height:calc(var(--control-height) - 2px);min-height:0;
  line-height:calc(var(--control-height) - 2px);
}
#app .el-input-number .el-input__inner{text-align:center}
#app .el-select__wrapper{
  height:var(--control-height);min-height:var(--control-height);
  box-sizing:border-box;align-items:center;
}
#app .el-select__input{min-height:0}

#app .el-button.btn,#app .el-button.back-button{
  height:var(--control-height);min-height:var(--control-height);
  box-sizing:border-box;line-height:1.5;padding:0 16px;
}
#app .el-button.back-button{padding:0 11px}
#app .el-button.btn.compact{
  height:var(--control-height-compact);min-height:var(--control-height-compact);
  padding:0 10px;
}

.form-field{
  display:flex;flex-direction:column;gap:var(--field-label-gap);
  min-width:0;line-height:1.5;
}
.form-inline{
  display:flex;align-items:center;gap:var(--field-inline-gap);
  min-width:0;line-height:1.5;
}
.form-inline>span{flex:none;white-space:nowrap}
.form-row{align-items:center;min-width:0;line-height:1.5}
.form-value{display:flex;align-items:center;min-height:var(--control-height)}
.form-fields{border:0;margin:0;padding:0;width:100%;min-width:0;min-inline-size:0}
.form-fields:disabled{filter:grayscale(1)}
#app .preset-load{height:auto;min-height:var(--control-height);padding:6px 14px}
#app .preset-delete{height:auto;min-height:var(--control-height);padding:0 10px}
#app .control-tabs .el-tabs__item{height:var(--control-height);min-height:var(--control-height);padding:0 22px}
#app .original-preview-panel .preview-tabs .el-tabs__item{height:32px;min-height:32px;padding:0 16px}
#app .control-shell .settings-tabs .el-tabs__item{height:calc(var(--control-height) + 14px);min-height:calc(var(--control-height) + 14px);padding:0 20px}
#app .control-shell .preset-load{min-height:var(--control-height-compact);padding:4px 12px}
#app .control-shell .preset-delete{min-height:var(--control-height-compact);padding:0 9px}
#app .control-shell .el-button.ng-reset-button{height:auto;min-height:var(--control-height-compact);padding:0}
.header-history-option{min-height:var(--control-height-compact)}
#app .control-shell .report-stack-modes .el-radio-button__inner{display:flex;align-items:center;justify-content:center;height:var(--control-height);min-height:var(--control-height);line-height:1.5;padding:0 10px}
@media(min-width:1100px){
  #app .control-shell.is-report-pane .report-header-fields .form-field,#app .control-shell.is-report-pane .report-task-fields .form-field{gap:7px}
}
@media(min-width:1100px) and (max-height:780px){
  #app .control-shell.is-report-pane .report-header-fields .form-field,#app .control-shell.is-report-pane .report-task-fields .form-field{gap:6px}
}
@media(min-width:1100px) and (max-height:710px){
  #app .control-shell.is-report-pane .report-header-fields .form-field,#app .control-shell.is-report-pane .report-task-fields .form-field{gap:4px}
}
#app :is(.form-field,.form-inline,.form-row){margin:0}
#app :is(.form-field,.form-inline,.form-row)>:is(.el-input,.el-select,.el-input-number,.el-date-editor,.el-textarea){
  margin:0;vertical-align:middle;
}
#app .form-field>:is(.el-input,.el-select,.el-input-number,.el-date-editor,.el-textarea){
  width:100%;max-width:100%;
}

/* Shared tactile feedback keeps all enabled actions responsive. */
#app button,.el-popper button,.baoze-dialog button{transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform .12s,filter .12s}
#app button:not(:disabled):not(.is-disabled):active,.el-popper button:not(:disabled):not(.is-disabled):active,.baoze-dialog button:not(:disabled):not(.is-disabled):active{transform:translateY(1px);filter:brightness(.95)}
#app button:not(:disabled):not(.is-disabled):focus-visible,.el-popper button:not(:disabled):not(.is-disabled):focus-visible,.baoze-dialog button:not(:disabled):not(.is-disabled):focus-visible{outline:2px solid #2788c1;outline-offset:2px}
@media(max-width:700px){#app .control-tabs .el-tabs__item,#app .control-shell .settings-tabs .el-tabs__item{padding:0 12px}}
@media(prefers-reduced-motion:reduce){
  #app button,.el-popper button,.baoze-dialog button{transition:none}
  #app button:not(:disabled):not(.is-disabled):active,.el-popper button:not(:disabled):not(.is-disabled):active,.baoze-dialog button:not(:disabled):not(.is-disabled):active{transform:none}
}

/* Teleported Element Plus dialogs retain the application's form dimensions. */
.baoze-dialog .el-input,.baoze-dialog .el-select,.baoze-dialog .el-input-number{--el-component-size:var(--control-height);--el-input-height:var(--control-height);min-width:0;vertical-align:middle}
.baoze-dialog .el-input,.baoze-dialog .el-input-number{height:var(--control-height);min-height:var(--control-height)}
.baoze-dialog .el-input__wrapper{height:100%;min-height:0;box-sizing:border-box;align-items:center}
.baoze-dialog .el-input__inner{height:calc(var(--control-height) - 2px);min-height:0;line-height:calc(var(--control-height) - 2px);padding:0!important;margin:0!important}
.baoze-dialog .el-select__wrapper{height:var(--control-height);min-height:var(--control-height);box-sizing:border-box;align-items:center}
.baoze-dialog .el-dialog__footer>.el-button{height:var(--control-height);min-height:var(--control-height);box-sizing:border-box;line-height:1.5;padding:0 16px}

/* Required report fields use native Element Plus validation without adding rows. */
#app .control-shell.is-report-pane .report-header-fields .report-required-field,#app .control-shell.is-report-pane .bundle-entry-fields .task-required-field{gap:0;margin:0}
#app :is(.report-required-field,.task-required-field)>.el-form-item__label{height:auto;line-height:1.5;margin:0 0 var(--field-label-gap);padding:0;text-align:left}
#app :is(.report-required-field,.task-required-field)>.el-form-item__content{display:block;min-width:0;line-height:normal}
#app :is(.report-required-field,.task-required-field).is-error .el-input__wrapper,#app :is(.report-required-field,.task-required-field).is-error .el-input__wrapper:focus-within{box-shadow:0 0 0 1px var(--el-color-danger) inset}
@media(min-width:1100px) and (max-height:780px){#app :is(.report-required-field,.task-required-field){--field-label-gap:6px}}
@media(min-width:1100px) and (max-height:710px){#app :is(.report-required-field,.task-required-field){--field-label-gap:4px}}
