/* EventChecklist 0.1.8: shared accessible administration form design */
:root{--ec-border:#dce3eb;--ec-muted:#64748b}
main.container{max-width:1280px}
.modal-dialog{--bs-modal-width:760px}
.modal-content{border:0;border-radius:1rem;box-shadow:0 16px 50px rgba(15,23,42,.17);overflow:hidden}
.modal-header{background:#f7f9fc;border-bottom:1px solid var(--ec-border);padding:1.25rem 1.5rem}
.modal-title{font-weight:650;letter-spacing:-.02em}
.modal-body{padding:1.5rem}
.modal-body form{margin:0}
.modal-body .row.g-3{--bs-gutter-x:1.25rem;--bs-gutter-y:1.25rem}
.modal-body label.form-label{display:block;width:100%;font-size:.875rem;font-weight:600;color:#334155;margin:0}
.modal-body label.form-label .form-control,.modal-body label.form-label .form-select{display:block;width:100%;margin-top:.4rem;font-weight:400;font-size:1rem}
.modal-body .form-control,.modal-body .form-select{min-height:2.65rem;border-color:#cbd5e1;border-radius:.5rem}
.modal-body .form-control:focus,.modal-body .form-select:focus{border-color:#5681bd;box-shadow:0 0 0 .2rem rgba(40,100,180,.12)}
.modal-body .form-check{padding-top:.35rem;padding-bottom:.35rem}
.modal-body .form-check-label,.modal-body label.form-check{font-weight:400;font-size:.925rem}
.modal-body .ec-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;border-top:1px solid var(--ec-border);margin:1.5rem -1.5rem -1.5rem;padding:1rem 1.5rem;background:#fafbfd}
.modal-body .ec-form-actions .btn{min-width:110px}
.modal-body .ec-form-actions .btn-primary{order:2}
.modal-body .ec-form-actions .btn-outline-secondary{order:1}
.modal-body .ec-form-actions a.btn{white-space:nowrap}
.table-responsive{background:white;border:1px solid var(--ec-border);border-radius:.75rem;padding:.35rem .75rem}
.fixed-table-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;align-items:center}
.fixed-table-toolbar .search input{min-width:220px}
.table thead th{white-space:nowrap;background:#f8fafc;font-size:.875rem}
.table td{font-size:.925rem}
@media(max-width:576px){.modal-body{padding:1rem}.modal-header{padding:1rem}.modal-body .ec-form-actions{margin:1rem -1rem -1rem;padding:1rem;flex-wrap:wrap}.modal-body .ec-form-actions .btn{flex:1}.fixed-table-toolbar .search input{min-width:0;width:100%}}

/* EventChecklist 0.2.0: clear management hierarchy and compact checklist editor */
.ec-event-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}
.ec-check-card{border:1px solid var(--ec-border);border-radius:.8rem;box-shadow:0 2px 8px rgba(15,23,42,.035)}
.ec-check-card .card-body{padding:1.35rem 1.5rem}
.ec-check-heading,.ec-check-title{display:flex;align-items:center;gap:.65rem}
.ec-check-heading{justify-content:space-between;flex-wrap:wrap}
.ec-check-description{color:#64748b;margin:.65rem 0 1.25rem}
.ec-status-label{font-size:.78rem;font-weight:600;padding:.28rem .65rem;border-radius:2rem}
.ec-status-open{background:#fce8e8;color:#a3232b}.ec-status-done{background:#e4f4e8;color:#176b37}.ec-status-na{background:#fff3cd;color:#795900}
.ec-check-form{border-top:1px solid var(--ec-border);padding-top:1.15rem}
.ec-check-form .form-label{font-size:.88rem;font-weight:600;color:#334155;margin-bottom:.4rem}
.ec-check-form .form-select,.ec-check-form .form-control{width:100%;min-height:2.65rem;border-color:#cbd5e1;border-radius:.5rem}
.ec-check-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--ec-border);margin-top:1.25rem;padding-top:1rem}
.ec-check-print{display:none}
@media print{.ec-check-form{display:none!important}.ec-check-print{display:block;margin-top:1rem}.ec-check-card{break-inside:avoid}}
@media(max-width:576px){.ec-check-card .card-body{padding:1rem}.ec-check-footer .btn{width:100%}}

/* Consistent Bootstrap Table toolbar and inline column filter */
.ec-column-filters {clear:both; width:100%; padding-top:.35rem;}
.ec-filter-column {width:auto;min-width:12rem;max-width:18rem;}
.ec-filter-term {width:auto;min-width:14rem;max-width:22rem;}
.fixed-table-toolbar .search input {min-width:15rem;}
.fixed-table-toolbar .columns .btn {border-radius:.375rem;}
@media(max-width:575px){.ec-column-filters>*{width:100%!important;max-width:none!important;}}
/* 0.2.2: filter inputs live directly under the column headings */

/* EventChecklist 0.2.6 – footer, stable minimum heights and unclipped table controls */
html,body{min-height:100%}
body.ec-app-body{min-height:100vh;display:flex;flex-direction:column}
body.ec-app-body>main.container{flex:1 0 auto;width:100%;min-height:360px}
.ec-site-footer{flex-shrink:0;margin-top:auto;border-top:1px solid var(--ec-border);background:#fff;color:#64748b;padding:1rem 0;font-size:.875rem;text-align:center}
/* Keep Bootstrap Table's toolbar dropdowns outside any clipping wrapper.
   Horizontal table scrolling remains the responsibility of Bootstrap Table. */
.table-responsive:has(>table[data-toggle=table]),
.table-responsive:has(>.bootstrap-table){min-height:360px;overflow:visible}
.table-responsive .bootstrap-table,.bootstrap-table .fixed-table-toolbar,.bootstrap-table .fixed-table-toolbar .columns{overflow:visible}
.bootstrap-table .fixed-table-toolbar .dropdown-menu{z-index:1060}
.bootstrap-table .fixed-table-container .fixed-table-body{min-height:215px}
@media(max-width:575px){.table-responsive:has(>.bootstrap-table){min-height:310px}.bootstrap-table .fixed-table-container .fixed-table-body{min-height:170px}}
@media print{body.ec-app-body{display:block;min-height:0}body.ec-app-body>main.container{min-height:0}.ec-site-footer{display:none!important}}

/* 0.2.8: viewport-based application shell; only main content scrolls. */
html {height:100%;}
body.ec-app-body {
  height:100vh;
  height:100dvh;
  min-height:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
body.ec-app-body > .ec-navbar {flex:0 0 auto;position:relative;z-index:1030;}
body.ec-app-body > main.container {
  flex:1 1 0%;
  min-height:0;
  max-height:none;
  width:100%;
  overflow-x:auto;
  overflow-y:auto;
  overscroll-behavior-y:contain;
  padding-top:1.25rem;
  scrollbar-gutter:stable;
}
body.ec-app-body > .ec-site-footer {flex:0 0 auto;margin-top:0;}
/* Do not clip table toolbar menus inside nested table wrappers. */
body.ec-app-body main .bootstrap-table .fixed-table-toolbar {overflow:visible;}
@media print {
  html,body.ec-app-body {height:auto;min-height:0;overflow:visible;display:block;}
  body.ec-app-body > main.container {height:auto;min-height:0;overflow:visible;max-height:none;}
}

/* 0.2.9: The white main surface fills all remaining viewport height.
   Navbar and footer remain outside the scrolling region. */
body.ec-app-body > main.container {
  background: #fff;
  border: 1px solid var(--ec-border);
  border-radius: .75rem;
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
  padding: 1.5rem;
  flex: 1 1 0%;
  min-height: 0;
  overflow-y: auto;
  overflow-x: auto;
}
body.ec-app-body > .ec-site-footer {
  background: transparent;
  border-top: 0;
  padding: .5rem 0 1rem;
}
/* Tables size to their contents; the page surface, not the table, fills the viewport. */
.table-responsive:has(>table[data-toggle=table]),
.table-responsive:has(>.bootstrap-table) { min-height: 0; }
.bootstrap-table .fixed-table-container .fixed-table-body { min-height: 0; }
@media (max-width: 575px) {
  body.ec-app-body > main.container { margin: .75rem .5rem; padding: 1rem; width: auto; }
  .table-responsive:has(>.bootstrap-table),
  .bootstrap-table .fixed-table-container .fixed-table-body { min-height: 0; }
}
@media print {
  body.ec-app-body > main.container { margin: 0; padding: 0; border: 0; border-radius: 0; }
}

/* Bulk actions beside Bootstrap Table search; no additional filter bar. */
.fixed-table-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.fixed-table-toolbar .search { margin-left:auto !important; margin-right:0 !important; order:2; }
.fixed-table-toolbar .ec-table-bulk-actions { margin-left:0; order:3; }
.fixed-table-toolbar .ec-table-bulk-actions form { margin:0; }
@media(max-width:575px){.fixed-table-toolbar .ec-table-bulk-actions { width:100%; justify-content:flex-end; display:flex; }}
