/* AI ERP Standard Form Framework v1.0
   Reference profile: Gate Entry. Scoped under .ai-sf to avoid disturbing existing forms. */
:root {
  --ai-sf-font: Arial, Helvetica, sans-serif;
  --ai-sf-font-size: 13px;
  --ai-sf-label-size: 12px;
  --ai-sf-caption-size: 16px;
  --ai-sf-input-height: 30px;
  --ai-sf-grid-head-height: 33px;
  --ai-sf-grid-row-height: 31px;
  --ai-sf-toolbar-height: 44px;
  --ai-sf-radius: 7px;
  --ai-sf-border: #9aa8b8;
  --ai-sf-panel: #eef3f8;
  --ai-sf-head: #dfe6ee;
  --ai-sf-toolbar: #15324c;
  --ai-sf-toolbar-text: #ffffff;
  --ai-sf-action: #f0a21b;
  --ai-sf-action-hover: #d98e0d;
  --ai-sf-required: #c62828;
  --ai-sf-readonly: #edf1f5;
  --ai-sf-focus: #1565c0;
}
.ai-sf, .ai-sf * { box-sizing: border-box; }
.ai-sf { width:100%; font-family:var(--ai-sf-font); font-size:var(--ai-sf-font-size); color:#1c2733; }
.ai-sf__header { border:1px solid var(--ai-sf-border); border-radius:var(--ai-sf-radius); background:#fff; overflow:hidden; margin-bottom:8px; }
.ai-sf__header-top { min-height:36px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:5px 10px; background:var(--ai-sf-panel); border-bottom:1px solid var(--ai-sf-border); }
.ai-sf__title { margin:0; font-size:var(--ai-sf-caption-size); font-weight:700; white-space:nowrap; }
.ai-sf__context { display:flex; align-items:center; gap:7px; margin-left:auto; font-size:12px; font-weight:700; white-space:nowrap; }
.ai-sf__config-btn { width:28px; height:28px; border:1px solid var(--ai-sf-border); border-radius:5px; background:#fff; cursor:pointer; font-size:16px; line-height:26px; padding:0; }
.ai-sf__body { padding:9px 10px 10px; }
.ai-sf__fields { display:grid; grid-template-columns:repeat(4,minmax(160px,1fr)); gap:8px 10px; align-items:end; }
.ai-sf__field { min-width:0; }
.ai-sf__label { display:block; margin:0 0 3px; font-size:var(--ai-sf-label-size); font-weight:700; line-height:16px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ai-sf__required::after { content:' *'; color:var(--ai-sf-required); }
.ai-sf input, .ai-sf select, .ai-sf textarea { width:100%; min-height:var(--ai-sf-input-height); border:1px solid var(--ai-sf-border); border-radius:4px; padding:5px 7px; font:inherit; background:#fff; color:inherit; outline:none; }
.ai-sf textarea { min-height:62px; resize:vertical; }
.ai-sf input:focus, .ai-sf select:focus, .ai-sf textarea:focus { border-color:var(--ai-sf-focus); box-shadow:0 0 0 2px rgba(21,101,192,.12); }
.ai-sf [readonly], .ai-sf [disabled] { background:var(--ai-sf-readonly); color:#4b5967; }
.ai-sf .ai-sf--invalid { border-color:var(--ai-sf-required)!important; box-shadow:0 0 0 2px rgba(198,40,40,.12)!important; }
.ai-sf__toolbar { min-height:var(--ai-sf-toolbar-height); display:flex; align-items:center; gap:7px; padding:6px 8px; margin:8px 0; background:var(--ai-sf-toolbar); color:var(--ai-sf-toolbar-text); border-radius:var(--ai-sf-radius); }
.ai-sf__toolbar-title { font-weight:700; margin-right:auto; padding:0 5px; white-space:nowrap; }
.ai-sf__toolbar-actions { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.ai-sf__btn { min-height:30px; border:1px solid rgba(0,0,0,.18); border-radius:5px; padding:5px 10px; background:var(--ai-sf-action); color:#111; font:700 12px var(--ai-sf-font); cursor:pointer; white-space:nowrap; }
.ai-sf__btn:hover { background:var(--ai-sf-action-hover); }
.ai-sf__btn:disabled { opacity:.55; cursor:not-allowed; }
.ai-sf__section { border:1px solid var(--ai-sf-border); border-radius:var(--ai-sf-radius); background:#fff; overflow:hidden; margin-top:8px; }
.ai-sf__section-title { min-height:34px; display:flex; align-items:center; padding:6px 9px; background:var(--ai-sf-panel); border-bottom:1px solid var(--ai-sf-border); font-weight:700; }
.ai-sf__grid-wrap { width:100%; overflow:auto; }
.ai-sf__grid { width:100%; border-collapse:separate; border-spacing:0; table-layout:fixed; }
.ai-sf__grid th { height:var(--ai-sf-grid-head-height); padding:6px 7px; background:var(--ai-sf-head); border-right:1px solid var(--ai-sf-border); border-bottom:1px solid var(--ai-sf-border); font:700 12px/18px var(--ai-sf-font); text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ai-sf__grid td { height:var(--ai-sf-grid-row-height); padding:4px 6px; border-right:1px solid #c8d1db; border-bottom:1px solid #c8d1db; vertical-align:middle; background:#fff; }
.ai-sf__grid th:last-child, .ai-sf__grid td:last-child { border-right:0; }
.ai-sf__grid tbody tr:last-child td { border-bottom:0; }
.ai-sf__grid input, .ai-sf__grid select { min-height:26px; height:26px; border-radius:3px; padding:3px 5px; }
.ai-sf__num { text-align:right!important; font-variant-numeric:tabular-nums; }
.ai-sf__center { text-align:center!important; }
.ai-sf__remove { border:0; background:transparent; color:#b71c1c; cursor:pointer; font-weight:700; }
.ai-sf__modal-backdrop { position:fixed; inset:0; z-index:2147483000; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(0,0,0,.42); }
.ai-sf__modal { width:min(520px,96vw); max-height:90vh; overflow:auto; background:#fff; border-radius:8px; box-shadow:0 18px 50px rgba(0,0,0,.28); }
.ai-sf__modal-head { display:flex; align-items:center; justify-content:space-between; padding:9px 12px; background:var(--ai-sf-toolbar); color:#fff; font-weight:700; }
.ai-sf__modal-body { padding:12px; }
.ai-sf__modal-actions { display:flex; justify-content:flex-end; gap:7px; padding:9px 12px; border-top:1px solid var(--ai-sf-border); }
.ai-sf__message { margin:7px 0 0; color:var(--ai-sf-required); font-size:12px; font-weight:700; }
@media (max-width:1000px) { .ai-sf__fields { grid-template-columns:repeat(2,minmax(150px,1fr)); } }
@media (max-width:600px) { .ai-sf__fields { grid-template-columns:1fr; } .ai-sf__header-top,.ai-sf__toolbar { align-items:flex-start; flex-direction:column; } .ai-sf__context,.ai-sf__toolbar-actions { width:100%; } }
