/* Workflow theme tokens and compact table/form proportions, adapted for the manager app.
   Source: Workflow/client docs/css-styling.md and styleManager/{Table,Form,Menu,Topbar}Theme.ts.
   CatchCourt colors/layout: supplied screenshots. No Workflow runtime is required. */
:root{--wfcWhite:#fff;--wfcBorderGray:#d5dfef;--wfcLightGray:#f1f6fc;--wfcDarkBlue:#080f32;--wfcRed:#db1b22;--wfcCustomizeThemePrimaryColor:#ff791b;--wfcCustomizeMenuBackground:#101944;--wfcCustomizeMenuColor:#bac2de;--wfcFontSmall:13px;--wfcBorderRadius:4px;font-family:Arial,Helvetica,sans-serif;color:var(--wfcDarkBlue);font-size:var(--wfcFontSmall);background:var(--wfcLightGray)}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{border:1px solid #b8bfd0;border-radius:var(--wfcBorderRadius);background:#fff;padding:8px 12px;color:#303540;cursor:pointer}button:hover{background:#eef2f9}button:disabled{opacity:.45;cursor:default}a{color:#ed690e;text-decoration:none}a:hover{text-decoration:underline}h1,h2,p{margin-top:0}h1{font-size:19px;margin:0}h2{font-size:17px;margin:0}input,select,textarea{border:1px solid var(--wfcBorderGray);border-radius:4px;background:#fcfdff;color:var(--wfcDarkBlue);padding:9px 11px;min-height:35px;max-width:100%}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px solid #2286dc;outline-offset:2px}input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true]{border-color:var(--wfcRed)}textarea{min-height:95px;resize:vertical}input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:#ff791b}label{font-weight:600;display:block;margin-bottom:8px}.primary{background:#ff791b;border-color:#ff791b;color:#fff;font-weight:600}.primary:hover{background:#e46709}.danger{color:#fff;background:#d91922;border-color:#d91922}.danger:hover{background:#b7161d}.success{color:#fff;background:#168d57;border-color:#168d57}.success:hover{background:#107545}[hidden]{display:none!important}.muted{color:#73809a}.topbar{height:61px;background:var(--wfcCustomizeMenuBackground);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px 0 10px;position:fixed;inset:0 0 auto;z-index:10}.brand{color:#fff;font-size:26px;font-weight:700;letter-spacing:1.3px;white-space:nowrap}.brand:hover{text-decoration:none}.brand span{color:#ff791b}.account{display:flex;align-items:center;gap:16px;font-size:12px}.topbar-button{color:#dce2f4;background:transparent;border-color:#354168}.sidebar{position:fixed;inset:61px auto 0 0;width:198px;background:var(--wfcCustomizeMenuBackground);overflow-y:auto;color:var(--wfcCustomizeMenuColor);padding:8px 8px 50px 0}.menu-caption{font-size:10px;font-weight:bold;letter-spacing:2px;padding:1px 20px 10px;color:#59658f}.sidebar nav>a,.sidebar summary{display:flex;align-items:center;gap:9px;padding:9px 10px;color:var(--wfcCustomizeMenuColor);font-weight:600;border-radius:0 4px 4px 0;cursor:pointer}.sidebar a:hover,.sidebar summary:hover{background:#192653;text-decoration:none}.sidebar a.active{background:#080f32;color:#fff}.menu-icon{width:17px;text-align:center;font-size:17px;color:#8f9cca}.sidebar details>a{display:block;color:#bac2de;padding:7px 8px 7px 30px}.sidebar-foot{padding:35px 10px 5px;font-size:11px;color:#7180ad}main#content{margin-left:198px;padding:76px 14px 30px;min-height:100vh}.panel{background:#fff;border:1px solid var(--wfcBorderGray)}.panel-heading{min-height:61px;background:#080f32;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:12px;gap:12px}.panel-heading button{margin-left:6px}.toolbar{display:flex;gap:8px;align-items:center;padding:9px 10px;border-bottom:1px solid var(--wfcBorderGray)}.toolbar label{margin:0}.toolbar input{width:330px}.toolbar #refresh{margin-left:auto}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;white-space:nowrap}th,td{text-align:left;border-bottom:1px solid var(--wfcBorderGray);padding:8px 9px;max-width:360px;overflow:hidden;text-overflow:ellipsis}th{background:#fcfdff;font-weight:600;padding-top:5px;padding-bottom:5px}th button{display:flex;justify-content:space-between;width:100%;padding:4px 0;background:transparent;border:none;font-weight:600;color:inherit}tbody tr:nth-child(even){background:#f3f7fc}tbody tr:hover{background:#eaf0fa}.row-actions{width:100px;text-align:right}.row-actions button{padding:4px 8px;margin-left:3px;font-size:14px;min-height:28px}.row-link{color:#f66e10;background:none;border:0;padding:0;text-align:left}.pagination{display:flex;align-items:center;justify-content:space-between;padding:7px;gap:12px}.pagination>div{display:flex;align-items:center;gap:8px}#page-count{background:#ff791b;color:#fff;padding:9px 12px;border-radius:4px}.empty-state{text-align:center;padding:50px 20px;color:#737e99}.context-note{font-size:12px;color:#78839b;margin:14px 2px}.notice{padding:12px;margin:10px 0;border-radius:4px}.error{color:#931d25;background:#ffedf0;border:1px solid #e9bfc4}.breadcrumb{margin-bottom:12px}.breadcrumb button{padding:0;border:0;background:none;color:#e6680f}.detail-grid{display:grid;grid-template-columns:200px 1fr;padding:14px 18px;gap:10px;margin:0}.detail-grid dt{font-weight:600}.detail-grid dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.tabs{display:flex;flex-wrap:wrap;border-top:1px solid var(--wfcBorderGray);border-bottom:1px solid var(--wfcBorderGray);gap:0}.tabs button{padding:12px;border:0;border-radius:0;background:#fff}.tabs button.active{box-shadow:inset 0 -3px #ff791b;color:#dd640f}.badge{display:inline-block;border-radius:3px;padding:3px 7px;background:#eaf4ed;color:#25734b}.badge.off{background:#f0f2f5;color:#738098}.demo-badge{border:1px solid #6473a2;border-radius:4px;padding:5px 8px;color:#d8dff3}dialog{padding:0;width:min(780px,calc(100% - 28px));max-height:90vh;border:1px solid var(--wfcBorderGray);border-radius:5px;color:var(--wfcDarkBlue);box-shadow:0 10px 45px #03082440}dialog::backdrop{background:#070d2e75}.dialog-heading{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--wfcBorderGray);background:#fff;position:sticky;top:0;z-index:1}.dialog-heading button{font-size:24px;padding:0 8px;background:#ff791b;color:white;border:0}.form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px 12px;padding:22px 18px 26px}.field{grid-column:span 6;min-width:0}.field.wide{grid-column:span 12}.field input:not([type=checkbox]),.field select,.field textarea{width:100%}.field-error{display:block;color:#b3212a;font-size:12px;margin-top:5px}.field small{display:block;color:#76829a;font-size:11px;margin-top:6px}.field .lookup-search{margin-bottom:5px}.dialog-footer{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:8px;background:#f1f6fc;padding:12px 18px;border-top:1px solid var(--wfcBorderGray)}#form-error{margin:12px 18px 0}.toast{position:fixed;bottom:24px;right:24px;max-width:400px;background:#122e28;color:#fff;padding:15px 22px;border-radius:5px;z-index:100}.login-page{min-height:100vh;display:grid;place-items:center;background:#101944}.login-box{width:min(420px,calc(100% - 32px));background:#fff;border-radius:7px;padding:30px}.login-box .brand{color:#101944;font-size:28px;margin-bottom:26px}.login-box h1{margin-bottom:7px;font-size:22px}.login-box form{margin-top:25px}.login-box input{width:100%;margin-bottom:18px}.login-box form button{width:100%;margin-top:8px;padding:11px}.login-hint{margin:22px 0 0;color:#7e899f;font-size:12px}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0)}.skip-link:focus{position:fixed;top:0;left:10px;z-index:200;padding:10px;background:#fff}.required{color:#b3212a}body.busy #table-body{opacity:.5}
@media(max-width:800px){.sidebar{width:155px}.brand{font-size:21px}main#content{margin-left:155px;padding-left:8px;padding-right:8px}.account{gap:8px}.account>span:not(.demo-badge){display:none}.toolbar{flex-wrap:wrap}.toolbar input{width:170px}.detail-grid{grid-template-columns:130px 1fr}}
@media(max-width:520px){.sidebar{position:static;width:auto;margin-top:61px;padding:8px;max-height:180px}.sidebar nav{display:flex;flex-wrap:wrap}.sidebar nav>a{padding:8px}.sidebar details,.menu-caption,.sidebar-foot{display:none}main#content{margin:0;padding:10px}.field{grid-column:span 12}.detail-grid{grid-template-columns:1fr;gap:5px}.detail-grid dd{margin-bottom:10px}.pagination{font-size:11px}.pagination button{padding:6px}.panel-heading{flex-wrap:wrap}}

/* Workflow grid: header actions, a separate per-column filter row, compact square actions.
   References: grid-table-header(-actions), grid-table-header-filters, buttonMixins. */
:root{--wfcCustomizeButtonSecondaryBorderColor:#42464f;--wfcCustomizeThemeInfoColor:#2581c4}
.icon-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:30px;height:30px;min-height:30px;padding:0;border-radius:4px;font-size:13px;line-height:1;border-width:1px}
.icon-button.outline{border:2px solid var(--wfcCustomizeButtonSecondaryBorderColor);background:transparent;color:#42464f}
.icon-button.outline:hover{background:#e6edf6}
.icon-button.info{background:var(--wfcCustomizeThemeInfoColor);border-color:var(--wfcCustomizeThemeInfoColor);color:#fff}
.icon-button.info:hover{background:#17669f}
.icon-button.primary{background:#ff791b;border-color:#ff791b}
.icon-button.danger{background:#dd1720;border-color:#dd1720}
.icon-button.success{background:#15905b;border-color:#15905b}
.panel-heading .icon-button{width:38px;height:38px;margin:0}
#page-actions,#grid-actions{display:flex;align-items:center;gap:7px}
.panel-heading{padding:12px;flex-wrap:nowrap}
.data-table th,.data-table td{padding:3px 5px;height:33px;vertical-align:middle}
.data-table th{font-size:12px;background:#fcfdff}
.data-table td{font-size:13px}
.data-table .sort-button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;height:28px;min-width:70px;padding:0;border:0;border-radius:0;background:transparent;color:inherit;font-weight:600}
.sort-button i{color:#b7b9c4;font-size:12px}
th[aria-sort=ascending] .sort-button i,th[aria-sort=descending] .sort-button i{color:#ff791b}
.data-table tbody tr:nth-child(odd){background:#fcfdff}
.data-table tbody tr:nth-child(even){background:#f3f7fc}
.data-table tbody tr:hover{background:#eaf0fa}
.data-table .row-actions{width:1%;min-width:80px;white-space:nowrap;text-align:right;overflow:visible}
.data-table .row-actions .icon-button{display:inline-flex;width:28px;height:28px;min-height:28px;padding:0;margin:0 0 0 2px;font-size:12px}
.data-table .row-link{font-size:13px;font-weight:600;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.data-table .filter-row th{height:34px;padding:2px 5px}
.filter-cell{position:relative;min-width:100px}
.filter-cell>i{position:absolute;left:7px;top:50%;transform:translateY(-50%);color:#8a8e99;font-size:12px;pointer-events:none}
.filter-cell input,.filter-cell select{display:block;opacity:0;width:100%;min-width:70px;height:28px;min-height:28px;padding:3px 5px;border-radius:3px;font-size:12px;font-weight:normal}
.filter-cell:hover input,.filter-cell:hover select,.filter-cell:focus-within input,.filter-cell:focus-within select,.filter-cell.filter-set input,.filter-cell.filter-set select{opacity:1}
.filter-cell:hover>i,.filter-cell:focus-within>i,.filter-cell.filter-set>i{visibility:hidden}
@media(hover:none){.filter-cell input,.filter-cell select{opacity:1}.filter-cell>i{display:none}}
.pagination{padding:6px 2px;gap:8px;border-bottom:1px solid var(--wfcBorderGray)}
.pagination>button,.pagination>div>button{padding:7px 12px;border-color:#42464f}
.pagination>div{gap:0}.pagination #next{margin-right:8px}
.pagination #page-size{width:112px;min-height:35px;border-radius:4px 0 0 4px}
.pagination #total{display:flex;align-items:center;min-height:35px;padding:0 12px;background:#f3f7fc;border:1px solid var(--wfcBorderGray);border-left:0;border-radius:0 4px 4px 0}
#page-count{min-width:32px;text-align:center;padding:8px 10px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;background:#f3f7fc;border-bottom:1px solid var(--wfcBorderGray)}
.section-heading h2{font-size:15px}
.detail-layout{background:#fff}
.detail-layout.with-files{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.detail-grid{grid-template-columns:minmax(140px,35%) minmax(0,1fr);gap:6px 16px;padding:14px 18px;font-size:13px}
.detail-information{min-width:0}.files-panel{padding:14px 18px;border-left:1px solid var(--wfcBorderGray);min-width:0}
.files-panel h2{font-size:16px;margin-bottom:12px}.files-panel .empty-state{margin:0;padding:35px 10px;background:#f8faff;border:1px dashed var(--wfcBorderGray)}
.file-folder{overflow-wrap:anywhere;font-size:11px}.file-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-bottom:12px}
.file-card{display:flex;flex-direction:column;align-items:center;gap:8px;border:1px solid var(--wfcBorderGray);padding:10px;overflow-wrap:anywhere;font-size:11px;text-align:center}
.file-card>i{font-size:28px;color:#8692b0}.file-card img{width:100%;height:110px;object-fit:cover}.file-card:has(img)>i{display:none}
.catalog-icon{display:inline-flex;align-items:center;justify-content:center;min-width:26px;min-height:26px;font-size:21px;color:#25365b;vertical-align:middle}
.color-preview{display:inline-flex;align-items:center;gap:8px;vertical-align:middle;white-space:nowrap}
.color-swatch{display:inline-block;flex:0 0 20px;width:20px;height:20px;border:1px solid #a4adc0;border-radius:2px}
.field-preview{margin-top:8px;min-height:26px}
.facility-tags{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.sport-tag,.equipment-tag{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:8px;font-size:13px;white-space:normal}.sport-tag{border:1px solid currentColor}.equipment-tag{color:#51a2ff;padding:5px 0;margin-right:8px}.facility-tags .catalog-icon{color:inherit;font-size:18px;min-width:20px;min-height:20px}
.tabs{background:#f3f7fc;margin-top:0;gap:4px;padding:10px 12px 0}
.tabs button{padding:11px 15px;font-weight:600;background:transparent;border:1px solid transparent;border-bottom:0;border-radius:4px 4px 0 0;color:#69748b}
.tabs button.active{background:#fff;border-color:var(--wfcBorderGray);box-shadow:none;color:#ff791b;margin-bottom:-1px}
.tabs button:hover{color:#ff791b}
.calendar-toolbar{display:flex;align-items:center;gap:12px;padding:14px 16px}
.calendar-toolbar h2{font-size:16px;margin-right:auto}
#calendar-navigation{display:flex;gap:4px;align-items:center}#calendar-actions{display:flex}
.calendar-note{font-size:12px;color:#73809a;margin:0 16px 16px}
.calendar-group{margin:0 16px 20px}.calendar-group h3{font-size:14px;margin:0;padding:9px 10px;background:#101944;color:#fff}
.availability-table{border-collapse:separate;border-spacing:2px;background:#f3f7fc}
.availability-table th{padding:7px 5px;font-size:11px;text-align:center;min-width:45px;border:0;background:#fff}
.availability-table th:first-child{position:sticky;left:0;z-index:1;text-align:left;min-width:110px;background:#fff}
.availability-table td{height:29px;min-width:45px;padding:0;border:1px solid #d5dfef;border-radius:2px}
.availability-cell.free,.calendar-legend .free{background:#ccf2ec}
.availability-cell.occupied,.calendar-legend .occupied{background:#233884;border-color:#233884}
.availability-cell.unknown,.calendar-legend .unknown{background:repeating-linear-gradient(135deg,#e1e5ed,#e1e5ed 3px,#f1f4f9 3px,#f1f4f9 6px)}
.calendar-legend{display:flex;gap:20px;margin:0 16px 20px;font-size:12px;flex-wrap:wrap}.calendar-legend>span{display:flex;align-items:center;gap:6px}.calendar-legend i{display:inline-block;width:14px;height:14px;border:1px solid #c1cada;border-radius:2px}
.dialog-heading .icon-button{font-size:14px;padding:0}
#facility-import-dialog{width:min(1000px,95vw)}.facility-import-body{padding:18px}.facility-import-body>p{margin:0 0 16px}.facility-import-downloads{display:flex;gap:20px;margin:16px 0}.facility-import-body>label{display:block;font-weight:600;margin-bottom:7px}#facility-import-file{width:100%}#facility-import-preview{margin-top:16px}#facility-import-preview ul{max-height:180px;overflow:auto}#facility-import-references{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-top:20px}#facility-import-references h3{font-size:15px;margin:0 0 10px}.import-guide{max-width:1000px;margin:30px auto;padding:24px;background:white}.import-guide h1,.import-guide h2{margin:20px 0 12px}.import-guide p,.import-guide ul{margin:12px 0}.import-guide table{width:100%}.import-guide td,.import-guide th{padding:8px;text-align:left;border-bottom:1px solid #dde3ee}.import-guide pre{overflow:auto;padding:12px;background:#f3f7fc}@media(max-width:700px){#facility-import-references{grid-template-columns:1fr}}
.badge.voucher-fixed{background:#e6f0ff;color:#245ba8}.badge.voucher-percentage{background:#f1e8ff;color:#7135a5}
.operations-overview{padding:18px}.operations-overview p{margin:14px 0}.operations-overview li{margin:12px 0}.operations-overview input{margin-bottom:16px;width:min(420px,100%)}.badge.http-get{background:#e6f0ff;color:#245ba8}.badge.http-post{background:#eaf4ed;color:#25734b}.badge.http-patch{background:#fff0de;color:#914700}.badge.http-delete{background:#ffedf0;color:#931d25}
@media(max-width:1000px){.detail-layout.with-files{grid-template-columns:1fr}.files-panel{border-left:0;border-top:1px solid var(--wfcBorderGray)}}
@media(max-width:600px){.calendar-toolbar{flex-wrap:wrap}.calendar-toolbar h2{width:100%}.calendar-toolbar input{min-width:130px}.pagination #page-size{width:65px}.pagination>button,.pagination>div>button{padding:6px}.detail-grid{grid-template-columns:minmax(100px,35%) minmax(0,1fr)}}
