body.ez-layout-page { margin: 0; padding: 0; max-width: none; width: auto; display: block; }

.ez-layout {
  --ez-primary: #206bc4;
  --ez-background: #f5f7fb;
  --ez-sidebar-background: #ffffff;
  --ez-header-background: #ffffff;
  --ez-footer-background: #ffffff;
  --ez-border: #e5e7eb;
  --ez-text: #374151;
  --ez-muted: #6b7280;
  --ez-sidebar-width: 240px;
  --ez-sidebar-collapsed-width: 64px;
  --ez-header-height: 56px;
  --ez-footer-height: 40px;
  --ez-list-footer-height: var(--ez-footer-height);
  --ez-content-padding: 10px;
  min-height: 100vh;
  display: grid;
  grid-template-columns: var(--ez-sidebar-width) minmax(0, 1fr);
  grid-template-rows: var(--ez-header-height) minmax(0, 1fr) var(--ez-footer-height);
  grid-template-areas: "sidebar header" "sidebar main" "sidebar footer";
  color: var(--ez-text);
  background: var(--ez-background);
}

/* Scope the shell's box model so Layui can size its own controls and tables. */
.ez-layout, .ez-layout__main, .ez-layout__content,
.ez-layout__header, .ez-layout__header *,
.ez-layout__sidebar, .ez-layout__sidebar *,
.ez-layout__footer, .ez-layout__overlay { box-sizing: border-box; }
.ez-layout [hidden] { display: none !important; }
.ez-layout__header { grid-area: header; position: sticky; top: 0; z-index: 30; height: var(--ez-header-height); background: var(--ez-header-background); border-bottom: 1px solid var(--ez-border); }
.ez-layout__header-inner { height: 100%; display: flex; align-items: center; gap: 12px; padding: 0 18px; }
.ez-layout__toggler { width: 36px; height: 36px; padding: 0; display: inline-grid; place-items: center; border: 0; border-radius: 6px; background: transparent; color: var(--ez-muted); cursor: pointer; font-size: 20px; line-height: 1; }
.ez-layout__toggler:hover { color: var(--ez-primary); background: color-mix(in srgb, var(--ez-primary) 8%, transparent); }
.ez-layout__sidebar-brand { min-height: var(--ez-header-height); padding: 0 18px; display: flex; align-items: center; border-bottom: 1px solid var(--ez-border); font-size: 18px; font-weight: 700; white-space: nowrap; }
.ez-layout__sidebar-brand a { min-width: 0; color: inherit; text-decoration: none; display: flex; align-items: center; gap: 10px; }
.ez-layout__sidebar-brand img { width: 30px; height: 30px; border-radius: 8px; object-fit: contain; }
.ez-layout__brand-title:empty { display: none; }
.ez-layout__header-content { flex: 1; min-width: 0; color: var(--ez-muted); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ez-layout__header-actions { display: flex; align-items: center; gap: 8px; }
.ez-layout__home { border: 0; background: transparent; color: var(--ez-muted); cursor: pointer; font-size: 13px; text-decoration: none; white-space: nowrap; }
.ez-layout__home:hover { color: var(--ez-primary); }
.ez-layout__sidebar { grid-area: sidebar; min-width: 0; z-index: 235; background: var(--ez-sidebar-background); border-right: 1px solid var(--ez-border); }
.ez-layout__sidebar-inner { height: 100vh; height: 100dvh; position: sticky; top: 0; display: flex; flex-direction: column; overflow-y: auto; overflow-x: hidden; }
.ez-layout__sidebar-header { padding: 16px 16px 8px; color: var(--ez-muted); font-size: 12px; font-weight: 600; letter-spacing: .05em; }
.ez-layout__menu { padding: 4px 10px 16px; }
.ez-layout__menu-list { list-style: none; padding: 0; margin: 0; }
.ez-layout__menu-list .ez-layout__menu-list { display: none; padding: 3px 0 4px 17px; }
.ez-layout__menu-item--expanded > .ez-layout__menu-list { display: block; }
.ez-layout__menu-link { width: 100%; min-height: 38px; border: 0; border-radius: 6px; background: transparent; display: flex; align-items: center; gap: 10px; padding: 8px 10px; color: var(--ez-text); font: inherit; font-size: 14px; text-align: left; text-decoration: none; cursor: pointer; }
.ez-layout__menu-link:hover { color: var(--ez-primary); background: color-mix(in srgb, var(--ez-primary) 7%, transparent); }
.ez-layout__menu-item--active > .ez-layout__menu-link { color: var(--ez-primary); background: color-mix(in srgb, var(--ez-primary) 12%, transparent); font-weight: 600; }
.ez-layout__menu-icon { width: 18px; flex: 0 0 18px; text-align: center; color: var(--ez-muted); font-size: 15px; }
.ez-layout__menu-item--active > .ez-layout__menu-link .ez-layout__menu-icon { color: var(--ez-primary); }
.ez-layout__menu-title { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ez-layout__menu-caret { margin-left: auto; color: var(--ez-muted); transition: transform .15s ease; }
.ez-layout__menu-item--expanded > .ez-layout__menu-link .ez-layout__menu-caret { transform: rotate(90deg); }
.ez-layout__menu-error { margin: 10px; padding: 10px; border-radius: 6px; color: #b42318; background: #fff0ee; font-size: 13px; line-height: 1.45; }
.ez-layout__main { grid-area: main; min-width: 0; }
.ez-layout__content { max-width: var(--ez-content-max-width, none); margin: 0 auto; padding: var(--ez-content-padding); }
.ez-layout__footer { grid-area: footer; min-width: 0; min-height: var(--ez-footer-height); display: flex; align-items: center; padding: 0 20px; color: var(--ez-muted); background: var(--ez-footer-background); border-top: 1px solid var(--ez-border); font-size: 12px; }
.ez-layout__overlay { display: none; }

/* Layui containers normally size themselves against the full viewport. */
.ez-layout__content .layui-container { width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; }
.ez-layout__content .layui-fluid { min-width: 0; }
.ez-layout__content .ez-list-layout { height: calc(100vh - var(--ez-header-height) - var(--ez-list-footer-height) - 2 * var(--ez-content-padding)); height: calc(100dvh - var(--ez-header-height) - var(--ez-list-footer-height) - 2 * var(--ez-content-padding)); }
.ez-layout__content .ez-list-layout__main { padding: 0; }
.ez-layout__content .formtopfixbuttons,
.ez-layout__content .submitButtonContainerClass { left: var(--ez-sidebar-width) !important; right: 0; width: auto !important; box-sizing: border-box; }
.ez-layout--collapsed .formtopfixbuttons,
.ez-layout--collapsed .submitButtonContainerClass { left: var(--ez-sidebar-collapsed-width) !important; }
.ez-layout--top .formtopfixbuttons, .ez-layout--none .formtopfixbuttons,
.ez-layout--top .submitButtonContainerClass, .ez-layout--none .submitButtonContainerClass { left: 0 !important; }

.ez-layout--footer-hidden, .ez-layout--none { --ez-list-footer-height: 0px; }
.ez-layout--footer-hidden { grid-template-rows: var(--ez-header-height) minmax(0, 1fr); grid-template-areas: "sidebar header" "sidebar main"; }
.ez-layout--collapsed { grid-template-columns: var(--ez-sidebar-collapsed-width) minmax(0, 1fr); }
.ez-layout--collapsed .ez-layout__sidebar-header, .ez-layout--collapsed .ez-layout__brand-title, .ez-layout--collapsed .ez-layout__menu-title, .ez-layout--collapsed .ez-layout__menu-caret { display: none; }
.ez-layout--collapsed .ez-layout__sidebar-brand { justify-content: center; padding-left: 0; padding-right: 0; }
.ez-layout--collapsed .ez-layout__menu { padding-left: 8px; padding-right: 8px; }
.ez-layout--collapsed .ez-layout__menu-link { justify-content: center; padding-left: 6px; padding-right: 6px; }
.ez-layout--collapsed .ez-layout__menu-list .ez-layout__menu-list { display: none; }

.ez-layout--top { grid-template-columns: minmax(0, 1fr); grid-template-rows: var(--ez-header-height) minmax(0, 1fr) var(--ez-footer-height); grid-template-areas: "header" "main" "footer"; }
.ez-layout--top .ez-layout__header-inner { gap: 18px; }
.ez-layout--top .ez-layout__toggler { display: none; }
.ez-layout--top .ez-layout__header-content { align-self: stretch; display: flex; overflow: visible; }
.ez-layout--top .ez-layout__top-menu { min-width: 0; }
.ez-layout--top .ez-layout__top-menu .ez-layout__menu { padding: 0; display: flex; align-items: stretch; }
.ez-layout--top .ez-layout__top-menu .ez-layout__menu-list { display: flex; align-items: stretch; }
.ez-layout--top .ez-layout__top-menu .ez-layout__menu-link { min-height: var(--ez-header-height); border-radius: 0; padding: 8px 10px; white-space: nowrap; }
.ez-layout--top .ez-layout__top-menu .ez-layout__menu-list .ez-layout__menu-list { position: absolute; z-index: 35; display: none; min-width: 196px; padding: 6px; background: var(--ez-sidebar-background); border: 1px solid var(--ez-border); border-radius: 7px; box-shadow: 0 10px 25px rgba(15, 23, 42, .12); }
.ez-layout--top .ez-layout__top-menu .ez-layout__menu-item { position: relative; }
.ez-layout--top .ez-layout__top-menu .ez-layout__menu-item--expanded > .ez-layout__menu-list { display: block; }
.ez-layout--top .ez-layout__top-menu .ez-layout__menu-list .ez-layout__menu-list .ez-layout__menu-link { min-height: 38px; border-radius: 6px; }
.ez-layout--none { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); grid-template-areas: "main"; }
.ez-layout--top.ez-layout--footer-hidden { grid-template-rows: var(--ez-header-height) minmax(0, 1fr); grid-template-areas: "header" "main"; }

@media (max-width: 768px) {
  .ez-layout { grid-template-columns: minmax(0, 1fr); grid-template-rows: var(--ez-header-height) minmax(0, 1fr) var(--ez-footer-height); grid-template-areas: "header" "main" "footer"; }
  .ez-layout--footer-hidden { grid-template-rows: var(--ez-header-height) minmax(0, 1fr); grid-template-areas: "header" "main"; }
  .ez-layout__sidebar { width: min(86vw, var(--ez-sidebar-width)); height: 100vh; position: fixed; top: 0; left: 0; transform: translateX(-105%); transition: transform .2s ease; box-shadow: 12px 0 28px rgba(15, 23, 42, .14); }
  .ez-layout__sidebar-inner { min-height: 100vh; height: 100vh; position: relative; top: 0; }
  .ez-layout--mobile-open .ez-layout__sidebar { transform: translateX(0); }
  .ez-layout__overlay { position: fixed; inset: 0; z-index: 225; background: rgba(15, 23, 42, .42); }
  .ez-layout--mobile-open .ez-layout__overlay { display: block; }
  .ez-layout__content { padding: var(--ez-content-padding); }
  .ez-layout__content .formtopfixbuttons, .ez-layout__content .submitButtonContainerClass { left: 0 !important; }
  .ez-layout__header-inner { padding: 0 12px; }
  .ez-layout--top .ez-layout__header-inner { gap: 8px; }
  .ez-layout--top .ez-layout__header-content { overflow-x: auto; }
  .ez-layout--top .ez-layout__top-menu .ez-layout__menu-link { padding: 8px; }
  .ez-layout--top .ez-layout__top-menu .ez-layout__menu-icon, .ez-layout--top .ez-layout__top-menu .ez-layout__menu-caret { display: none; }
}

@media print {
  .ez-layout { display: block; background: #fff; }
  .ez-layout__header, .ez-layout__sidebar, .ez-layout__footer, .ez-layout__overlay { display: none !important; }
  .ez-layout__content { padding: 0; max-width: none; }
  .ez-layout__content .ez-list-layout { display: block; height: auto; overflow: visible; }
  .ez-layout__content .ez-list-layout__main { overflow: visible; }
  .ez-layout__content .formtopfixbuttons, .ez-layout__content .submitButtonContainerClass { display: none !important; }
}
