.adm .dash-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.adm .dash-legend{display:flex;gap:14px;font-size:12px;color:var(--_sub);font-weight:600;padding-top:6px;flex-wrap:wrap}.adm .dash-legend span{display:flex;align-items:center;gap:6px}.adm .dash-legend .dot{width:9px;height:9px;border-radius:50%;display:inline-block}.adm .dash-legend .dot.free{background:var(--_mid)}.adm .dash-legend .dot.full{background:var(--_red)}.adm .dash-legend .dot.blackout{background:var(--_sub)}@keyframes fac-refresh-spin{to{transform:rotate(1turn)}}.adm .refresh-spin{display:inline-block;animation:fac-refresh-spin .8s linear infinite}.adm .courtgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:14px;gap:14px;margin-bottom:20px}.adm .courttile{border:1.5px solid var(--_line);border-radius:18px;padding:18px 16px;text-align:left;cursor:pointer;background:var(--_card);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;font-family:inherit;box-shadow:0 1px 2px rgba(46,58,48,.04);min-height:132px;display:flex;flex-direction:column}.adm .courttile:hover{border-color:var(--_green);transform:translateY(-2px);box-shadow:0 8px 20px rgba(46,58,48,.1)}.adm .courttile:active{transform:translateY(0)}.adm .courttile-top{display:flex;align-items:center;justify-content:space-between}.adm .courttile .num{font-size:26px;font-weight:800;color:var(--_ink);line-height:1}.adm .courttile .label{font-size:12px;color:var(--_sub);margin-top:2px;font-weight:600}.adm .courttile .state{font-size:12px;font-weight:700;margin-top:auto;padding-top:10px}.adm .courttile .nextslot{font-size:11px;color:var(--_sub);margin-top:2px}.adm .statusdot{width:12px;height:12px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 3px rgba(0,0,0,.03)}.adm .statusdot.free{background:#4e9b5e}.adm .statusdot.partial{background:#e0a937}.adm .statusdot.full{background:var(--_red)}.adm .statusdot.blackout{background:var(--_sub)}.adm .courttile.free{background:linear-gradient(165deg,#f4faf3,var(--_card) 60%)}.adm .courttile.free .state{color:#3e8b4e}.adm .courttile.partial{background:linear-gradient(165deg,#fdf7ea,var(--_card) 60%)}.adm .courttile.partial .state{color:#9a6b23}.adm .courttile.full{background:linear-gradient(165deg,#fbe9e5,var(--_card) 62%);border-color:#e7c4bd}.adm .courttile.full .num{color:var(--_red)}.adm .courttile.full .label{color:var(--_sub)}.adm .courttile.full .state{color:var(--_red)}.adm .courttile.blackout{background:repeating-linear-gradient(135deg,var(--_sand),var(--_sand) 8px,#efe6d4 8px,#efe6d4 16px);opacity:.75}.adm .courttile.blackout .label,.adm .courttile.blackout .num,.adm .courttile.blackout .state{color:var(--_sub)}.adm .courttile-top .ci-group{display:flex;align-items:center;gap:6px}.adm .ci-badge{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:900;line-height:1;flex:0 0 auto;box-shadow:0 0 0 2px var(--_card)}.adm .ci-badge.occupied{background:#3e8b4e;color:#fff}.adm .ci-badge.waiting{background:#ffde00;color:#2e3a30}.adm .ci-badge.nocheckin,.adm .ci-badge.noshow{background:var(--_red);color:#fff}.adm .cm-ci{position:absolute;top:3px;z-index:2;width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;line-height:1;box-shadow:0 0 0 1.5px hsla(0,0%,100%,.85)}.adm .cm-ci.left{left:3px}.adm .cm-ci.right{right:3px}.adm .cm-ci.occupied{background:#3e8b4e;color:#fff}.adm .cm-ci.waiting{background:#ffde00;color:#2e3a30}.adm .cm-ci.nocheckin,.adm .cm-ci.noshow{background:#b4453c;color:#fff}.adm .ci-legend .ci-legend-title{font-weight:800;color:var(--_ink)}.adm .ci-legend .ci-key{width:16px;height:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;color:#fff}.adm .ci-legend .ci-key.occupied{background:#3e8b4e}.adm .ci-legend .ci-key.waiting{background:#ffde00;color:#2e3a30}.adm .ci-legend .ci-key.nocheckin{background:#b4453c}.adm .occbar{height:5px;border-radius:4px;background:var(--_soft);margin-top:10px;overflow:hidden}.adm .occbar span{display:block;height:100%;background:#e0a937;border-radius:4px}.adm .layoutimg{border-radius:14px;display:block;margin:0 0 16px}.adm .courtmap-wrap,.adm .layoutimg{max-width:100%;border:1px solid var(--_line)}.adm .courtmap-wrap{position:relative;width:100%;margin:0 0 20px;background:var(--_sand);border-radius:16px;overflow:hidden}.adm .courtmap-area,.adm .courtmap-tile{position:absolute;box-sizing:border-box;border-radius:8px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;font-family:inherit}.adm .courtmap-tile{border:2px solid #46603f;background:#56725a;color:#fbf7ec;cursor:pointer;padding:0;transition:filter .12s ease,box-shadow .12s ease;box-shadow:inset 0 0 0 2px hsla(44,65%,95%,.14)}.adm .courtmap-tile:hover{filter:brightness(1.06);box-shadow:0 4px 14px rgba(46,58,48,.22),inset 0 0 0 2px hsla(44,65%,95%,.2)}.adm .courtmap-tile:active{filter:brightness(.98)}.adm .cm-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;line-height:1.1;padding:2px 4px;max-width:100%}.adm .cm-num{font-size:20px;font-weight:800;line-height:1}.adm .cm-label{font-size:11px;font-weight:600;opacity:.92}.adm .cm-label,.adm .cm-state{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm .cm-state{font-size:10px;font-weight:700;opacity:.9}.adm .cm-unpaid{font-size:11px;font-weight:800;color:#ffe1dc;display:inline-flex;align-items:center;gap:3px}.adm .moneybag{font-size:16px;line-height:1}.adm .courtmap-tile.free{background:#56725a;border-color:#46603f}.adm .courtmap-tile.partial{background:#c68a2a;border-color:#a8741f;color:#fff}.adm .courtmap-tile.full{background:#b4453c;border-color:#963831;color:#fff}.adm .courtmap-tile.blackout{background:repeating-linear-gradient(135deg,#6e6a5e,#6e6a5e 8px,#5c584d 0,#5c584d 16px);border-color:#4d4a41;color:#f0ece1}.adm .courtmap-tile.missing{background:var(--_soft);border:2px dashed var(--_line);color:var(--_sub);cursor:not-allowed;box-shadow:none;opacity:.7}.adm .courtmap-area{border:2px dashed #c9bfa6;background:hsla(41,37%,85%,.45);color:var(--_sub);font-size:11px;font-weight:700;padding:2px 4px}.adm .courtmap-area span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm .daypicker{display:flex;align-items:center;gap:10px;margin:18px 0 16px}.adm .daypicker button{background:var(--_card);border:1px solid var(--_line);border-radius:10px;padding:8px 14px;cursor:pointer;font-family:inherit;font-weight:700;color:var(--_green);font-size:16px;line-height:1}.adm .daypicker .datelabel{font-weight:700;flex:1 1;text-align:center;display:flex;align-items:center;justify-content:center;font-size:14px}.adm .slotgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));grid-gap:8px;gap:8px;margin:6px 0 12px}.adm .slotcell{border:1.5px solid var(--_line);border-radius:12px;padding:10px 8px;text-align:left;cursor:pointer;background:var(--_card);font-family:inherit;display:flex;flex-direction:column;gap:3px;min-height:58px;transition:transform .1s ease,border-color .1s ease,box-shadow .1s ease}.adm .slotcell:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(46,58,48,.1)}.adm .slotcell:not(:disabled):active{transform:translateY(0)}.adm .slotcell .slottime{font-size:13px;font-weight:800;color:var(--_ink);line-height:1.1}.adm .slotcell .slotstate{font-size:11px;font-weight:700;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm .slotcell.open{background:#e5ede3;border-color:#56725a;border-width:2px;padding:9px 7px}.adm .slotcell.open .slottime{color:#2a3d2d}.adm .slotcell.open .slotstate{color:#3a5a3f}.adm .slotcell.booked{background:#f6e7e0;border-color:#dfc9be}.adm .slotcell.booked .slottime{color:#8c4a32;font-weight:700}.adm .slotcell.booked .slotstate{color:#8c4a32}.adm .slotcell.past{background:#efeeea;border-color:#dad8d2;cursor:default}.adm .slotcell.past .slottime{color:#8a8880;font-weight:700}.adm .slotcell.past .slotstate{color:#8a8880;font-weight:400}.adm .slotcell.active{outline:3px solid var(--_ink,#2e3a30);outline-offset:2px;box-shadow:0 6px 16px rgba(46,58,48,.2)}.adm .slotcell.active,.adm .slotcell.active:not(:disabled):hover{transform:translateY(-1px)}.adm .slotcell.blocked{background:repeating-linear-gradient(135deg,var(--_sand),var(--_sand) 7px,#ebe1ce 7px,#ebe1ce 14px);cursor:default}.adm .slotcell.blocked .slotstate,.adm .slotcell.blocked .slottime{color:#6b6355}.adm .slotcell.booked.conflict{background:repeating-linear-gradient(135deg,#fdf6e7,#fdf6e7 7px,#f6e3df 0,#f6e3df 14px);border-color:#b4453c;cursor:pointer}.adm .slotcell.booked.conflict .slotstate{color:#b4453c}.adm .slotlegend{display:flex;gap:14px;font-size:11px;color:var(--_sub);font-weight:600;margin:0 0 4px;flex-wrap:wrap}.adm .slotlegend span{display:flex;align-items:center;gap:6px}.adm .slotlegend .dot{width:9px;height:9px;border-radius:50%;display:inline-block}.adm .slotlegend .dot.free{background:#4e9b5e}.adm .slotlegend .dot.partial{background:#e0a937}.adm .slotlegend .dot.blackout{background:var(--_sub)}.adm .slotlegend .dot.conflict{background:#b4453c}.adm .timeline{display:flex;flex-direction:column}.adm .slotrow{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--_line);font-size:13px;gap:8px}.adm .slotrow:last-child{border-bottom:none}.adm .rolebadge{font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;text-transform:capitalize}.adm .rolebadge.admin{background:var(--_lime-tint);color:var(--_lime-deep)}.adm .rolebadge.manager{background:var(--_soft);color:var(--_mid)}.adm .rolebadge.assistant{background:var(--_sand);color:var(--_sub)}.adm .util-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.adm .util-row:last-of-type{margin-bottom:0}.adm .util-label{width:78px;font-size:12px;color:var(--_sub);font-weight:700;flex-shrink:0}.adm .util-track{flex:1 1;height:9px;border-radius:6px;background:var(--_soft);overflow:hidden}.adm .util-fill{display:block;height:100%;background:var(--_green);border-radius:6px;transition:width .3s ease}.adm .util-fill.amber{background:#e0a937}.adm .util-pct{width:40px;text-align:right;font-size:12px;font-weight:800;color:var(--_ink);flex-shrink:0}.adm .heatstrip{display:flex;align-items:flex-end;gap:3px;height:80px;padding-top:6px}.adm .heatcell{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.adm .heatbar{width:100%;max-width:16px;background:var(--_green);border-radius:3px 3px 0 0;min-height:4px}.adm .heatlabel{font-size:9px;color:var(--_sub);margin-top:4px;white-space:nowrap}.adm .weekbars{display:flex;flex-direction:column;gap:8px}.adm .weekbar-row{display:flex;align-items:center;gap:10px}.adm .weekbar-label{width:36px}.adm .weekbar-count,.adm .weekbar-label{font-size:12px;color:var(--_sub);font-weight:700;flex-shrink:0}.adm .weekbar-count{width:26px;text-align:right}.adm .rank-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--_line)}.adm .rank-row:last-child{border-bottom:none}.adm .rank-pos{width:26px;font-size:12px;font-weight:800;color:var(--_sub);flex-shrink:0}.adm .rank-name{width:150px;font-size:13px;font-weight:600;flex-shrink:0}@media(max-width:600px){.adm .rank-name{width:96px;font-size:12px}}.adm .gridwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.adm .timegrid{display:grid;grid-gap:3px;gap:3px;min-width:max-content;align-items:stretch}.adm .gcorner{position:-webkit-sticky;position:sticky;left:0;z-index:3;background:var(--_bg,#fbf7f0)}.adm .ghead{top:0;z-index:2;font-size:12px;color:var(--_ink);text-align:center;padding:6px 4px;border-bottom:2px solid var(--_line)}.adm .ghead,.adm .gtime{position:-webkit-sticky;position:sticky;background:var(--_bg,#fbf7f0);font-weight:700;white-space:nowrap}.adm .gtime{left:0;z-index:1;font-size:11px;color:var(--_sub);padding:0 8px 0 2px;display:flex;align-items:center;justify-content:flex-end}.adm .gtime.past{color:#a8a69f;font-weight:400}.adm .gcell{border:1.5px solid var(--_line);border-radius:8px;min-height:26px;font-family:inherit;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:2px 6px;overflow:hidden;text-align:center}.adm .gcell .glabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.adm .gcell.open{background:#e5ede3;border-color:#56725a;border-width:2px;color:#2a3d2d;cursor:pointer}.adm .gcell.open:hover{background:#d8e6d6}.adm .gcell.booked{background:#f6e7e0;border-color:#dfc9be;color:#8c4a32;cursor:default}.adm .gcell.past{background:#efeeea;border-color:#dad8d2;color:#8a8880;font-weight:400;cursor:default}.adm .gcell.blocked{background:repeating-linear-gradient(135deg,var(--_sand),var(--_sand) 6px,#ebe1ce 6px,#ebe1ce 12px);border-color:#dfd3bc;color:#6b6355;cursor:default}.adm .gcell.closed{background:transparent;border-color:transparent;cursor:default}.adm .gcell.conflict{outline:2px solid #b4453c;outline-offset:-2px}.adm .gdot{width:9px;height:9px;border-radius:3px;display:inline-block;border:1.5px solid}.adm .gdot.free{background:#e5ede3;border-color:#56725a}.adm .gdot.booked{background:#f6e7e0;border-color:#dfc9be}.adm .gdot.blocked{background:#ebe1ce;border-color:#dfd3bc}.adm .gdot.past{background:#efeeea;border-color:#dad8d2}.adm .gdot.closed{background:transparent;border-color:var(--_line)}.adm .viewtoggle{display:inline-flex;border:1.5px solid var(--_line);border-radius:20px;overflow:hidden}.adm .viewtoggle button{border:0;background:transparent;font-family:inherit;font-size:12px;font-weight:600;padding:6px 14px;cursor:pointer;color:var(--_sub)}.adm .viewtoggle button.on{background:var(--_green,#56725a);color:#fff;font-weight:700}.adm .sportfilter{display:flex;flex-wrap:wrap;gap:6px}.adm .sportfilter button{border:1.5px solid var(--_line);background:var(--_card,#fff);border-radius:20px;font-family:inherit;font-size:12px;font-weight:600;padding:5px 12px;cursor:pointer;color:var(--_sub)}.adm .sportfilter button:hover{border-color:#56725a;color:#2a3d2d}.adm .sportfilter button.on{background:var(--_green,#56725a);border-color:var(--_green,#56725a);color:#fff;font-weight:700}.adm .gcell.youcant{color:#7a5b0b;cursor:not-allowed}.adm .gcell.youcant,.adm .gdot.youcant{background:#fff8e6;border-color:#c9a227}.adm .gcell.open.shortcell{background:#f1f5f0;border-color:#c3d2c1;border-width:1.5px;color:#6e7a6c;cursor:not-allowed}.adm .hourview{margin-top:4px}.adm .hourpick{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:2px 0 6px}.adm .hourchip{flex:0 0 auto;border:1.5px solid var(--_line);background:var(--_card,#fff);border-radius:20px;font-family:inherit;font-size:13px;font-weight:700;padding:7px 13px;cursor:pointer;color:var(--_ink);min-height:38px}.adm .hourchip.on{background:var(--_green,#56725a);border-color:var(--_green,#56725a);color:#fff}.adm .hourchip.gone{color:#a8a69f;font-weight:400}.adm .hourchip.gone.on{color:#fff;font-weight:700}.adm .hourlist{display:flex;flex-direction:column;gap:8px}.adm .hourrow{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;font-family:inherit;padding:11px 13px;border-radius:12px;border:1.5px solid var(--_line);background:var(--_card,#fff);color:var(--_ink);cursor:default;min-height:56px}.adm .hourrow.free{border-color:#56725a;border-width:2px;background:#e5ede3;cursor:pointer}.adm .hourrow.free:hover{background:#d8e6d6}.adm .hourrow-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;min-width:0;flex:1 1 auto}.adm .hourrow-name{font-size:15px;font-weight:800;overflow-wrap:anywhere}.adm .hourrow-sport{font-size:11px;font-weight:700;color:var(--_sub);text-transform:uppercase;letter-spacing:.03em}.adm .hourrow-time{font-size:12px;color:var(--_sub);white-space:nowrap}.adm .hourrow-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:0 0 auto}.adm .hourrow-state{font-size:12px;font-weight:700;white-space:nowrap;color:var(--_sub)}.adm .hourrow-state.open{color:#2a3d2d}.adm .hourrow-state.taken{color:#8c4a32}.adm .hourrow-state.beyond,.adm .hourrow-state.capped{color:#7a5b0b}.adm .hourrow-price{font-size:15px;font-weight:800;color:#56725a;white-space:nowrap}@media(max-width:400px){.adm .hourrow{padding:10px 11px}.adm .hourrow-name,.adm .hourrow-price{font-size:14px}}