:root{color-scheme:light;--bg: light-dark(#f4f6f1, #131711);--ink: light-dark(#17211b, #e7ece4);--muted: light-dark(#6d756e, #98a294);--line: light-dark(#dfe5d8, #2e372b);--surface: light-dark(#ffffff, #1c231b);--surface-strong: light-dark(#eef3e7, #26301f);--green: light-dark(#286345, #2f7a53);--green-deep: light-dark(#173f2b, #a5d2b6);--lime: light-dark(#cce15f, #cce15f);--danger: light-dark(#a13232, #e5867b);--shadow: 0 24px 70px light-dark(rgba(23, 33, 27, .13), rgba(0, 0, 0, .55));--font-sans: "Avenir Next", Avenir, "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;--font-size-2xs: .75rem;--font-size-xs: .8125rem;--font-size-sm: .875rem;--font-size-md: .9375rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.625rem;--font-size-4xl: 1.75rem;--font-size-5xl: 2rem;--font-size-page-title: 2.375rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.15;--line-height-snug: 1.3;--line-height-normal: 1.5;--line-height-relaxed: 1.55;--letter-spacing-tight: 0;font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal)}:root[data-theme=dark]{color-scheme:dark}:root[data-theme=system]{color-scheme:light dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal)}html:has(.mobile-app),body:has(.mobile-app){overscroll-behavior-y:none}html,body,#root{min-height:100%}button,input,select,textarea{font:inherit}button{color:inherit;touch-action:manipulation}form{display:grid;gap:18px}label{display:grid;gap:8px;color:light-dark(#39433b,#b6c1b8);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:14px 15px;background:light-dark(#fbfcf8,#242520);color:var(--ink);outline:none;font-weight:var(--font-weight-medium)}textarea{resize:vertical}input::placeholder{color:light-dark(#7d867e,#778078);font-weight:var(--font-weight-medium)}input:read-only{color:light-dark(#5a635b,#97a098);background:light-dark(#eef3e8,#2a3220)}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 4px light-dark(rgba(40,99,69,.12),rgba(148,212,179,.12))}.check-row{display:flex;align-items:center;gap:10px;font-weight:var(--font-weight-medium)}.check-row input{width:18px;height:18px}.primary-button,.logout-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:12px;cursor:pointer;font-weight:var(--font-weight-semibold)}.primary-button{min-height:50px;background:var(--green);color:#fff}.primary-button:disabled{cursor:wait;opacity:.72}.status-line{margin:0;border-radius:12px;padding:12px 14px;background:var(--surface-strong);color:var(--green-deep);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}.status-line.error{background:light-dark(#fae8e6,#371b18);color:var(--danger)}.status-line.warning{background:light-dark(#fff4d5,#4e3c08);color:light-dark(#805513,#ebbc75)}.sidebar-brand{display:flex;align-items:center;gap:12px;font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight)}.brand-mark{display:grid;width:46px;height:46px;place-items:center;border:2px solid currentColor;border-radius:12px;background:light-dark(rgba(255,255,255,.12),rgba(33,33,33,.12))}.brand-mark{width:38px;height:38px;border-radius:10px;color:var(--green)}.nav-group p,.handoff-grid span{margin:0 0 10px;font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight);text-transform:uppercase}.panel-shell{display:grid;grid-template-columns:240px 1fr;height:100vh;overflow:hidden}.sidebar{display:flex;flex-direction:column;padding:20px 16px;border-right:1px solid var(--line);background:light-dark(#fbfcf8,#242520)}.sidebar-brand{margin-bottom:28px}.sidebar-brand div{display:grid}.sidebar-brand span{color:var(--muted);font-size:var(--font-size-2xs);font-weight:var(--font-weight-regular)}.nav-group{display:grid;gap:7px;margin-bottom:18px}.nav-group p{color:light-dark(#99a093,#666d60)}.nav-group button{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:10px;padding:10px 12px;background:transparent;color:light-dark(#4d584f,#a1ada3);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-align:left}.nav-group button.active,.nav-group button:hover{background:var(--surface-strong);color:var(--green)}.nav-group button.active{font-weight:var(--font-weight-semibold)}.sidebar nav{min-height:0;overflow-y:auto}.sidebar-build{display:grid;gap:2px;margin-top:auto;padding:16px 2px 2px;color:light-dark(#9aa395,#626b5d);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);line-height:1.35}.content{height:100vh;overflow-y:auto;padding:22px 26px 26px;min-width:0}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}.topbar h1{margin:0;font-size:var(--font-size-page-title);letter-spacing:var(--letter-spacing-tight)}.logout-button{min-height:42px;padding:0 16px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}.handoff-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.handoff-grid article{min-height:190px;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.handoff-grid span{color:var(--green)}.handoff-grid strong{display:block;font-size:var(--font-size-2xl);letter-spacing:var(--letter-spacing-tight)}.login-page{display:grid;place-items:center;min-height:100vh;padding:32px;background:radial-gradient(circle at 50% 0%,light-dark(rgba(204,225,95,.22),rgba(141,163,31,.22)),transparent 34%),linear-gradient(180deg,light-dark(#f8faf4,#252820),var(--bg))}.login-panel{display:grid;grid-template-columns:minmax(280px,1fr) minmax(360px,430px);gap:54px;align-items:center;width:min(100%,1040px);min-width:0}.login-brand{display:grid;gap:24px;max-width:460px}.login-brand-lockup{display:flex;align-items:center;gap:18px}.login-brand-lockup>div{min-width:0}.login-brand-icon{width:68px;height:68px;border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 38px light-dark(rgba(23,33,27,.12),rgba(0,0,0,.38))}.login-eyebrow{margin:0 0 6px;color:var(--green-deep);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);text-transform:uppercase}.login-brand h1{margin:0;color:var(--ink);font-size:var(--font-size-page-title);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-tight);overflow-wrap:break-word}.login-brand-copy{max-width:410px;margin:0;color:var(--muted);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-relaxed)}.login-scope-grid{display:flex;flex-wrap:wrap;gap:10px;max-width:430px}.login-scope-grid span{display:inline-flex;align-items:center;gap:8px;min-height:38px;border:1px solid light-dark(rgba(40,99,69,.16),rgba(165,210,182,.16));border-radius:999px;padding:0 13px;background:light-dark(rgba(255,255,255,.62),rgba(28,35,27,.62));color:var(--green-deep);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.login-card{width:100%;min-width:0;max-width:430px;padding:34px;border:1px solid var(--line);border-radius:24px;background:var(--surface);box-shadow:var(--shadow);justify-self:end}.form-heading{display:flex;gap:16px;align-items:center;margin-bottom:28px}.icon-bubble{display:grid;width:52px;height:52px;place-items:center;border-radius:16px;background:var(--surface-strong);color:var(--green)}.form-heading h2{margin:0;font-size:var(--font-size-5xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight)}.form-heading p,.topbar p,.handoff-grid p{margin:6px 0 0;color:var(--muted);line-height:var(--line-height-relaxed)}.form-field{display:grid;gap:8px}.password-field{position:relative}.password-field input{padding-right:50px}.password-toggle{position:absolute;top:50%;right:8px;display:grid;width:36px;height:36px;place-items:center;border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer}.password-toggle:hover,.password-toggle:focus-visible{background:var(--surface-strong);color:var(--green-deep)}.password-toggle:focus-visible{outline:2px solid var(--green);outline-offset:2px}@media(max-width:840px){.login-panel{grid-template-columns:1fr;gap:26px;width:min(100%,430px)}.login-card{justify-self:stretch}.login-brand{gap:16px}.login-brand-icon{width:58px;height:58px;border-radius:16px}.login-brand h1{font-size:var(--font-size-5xl)}.login-brand-copy{font-size:var(--font-size-md)}}@media(max-width:560px){.login-brand,.login-brand-lockup{gap:14px}.login-brand h1{font-size:var(--font-size-4xl)}.login-brand-copy,.login-scope-grid{display:none}}.settings-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:16px;align-items:start}.settings-panel{min-width:0;border:1px solid var(--line);border-radius:18px;padding:20px;background:var(--surface)}.settings-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.settings-panel h2{margin:4px 0 0;font-size:var(--font-size-3xl);letter-spacing:var(--letter-spacing-tight)}.compact-button{min-height:40px;padding:0 14px}.virtual-user-list{display:grid;gap:10px}.virtual-session-section{display:grid;gap:10px;margin-top:24px}.compact-heading{margin-bottom:0}.virtual-user-card{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(180px,1fr) auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:14px;background:light-dark(#fbfcf8,#242520)}.virtual-user-card strong,.virtual-user-card span{display:block}.virtual-user-card strong{font-size:var(--font-size-md)}.virtual-user-card>div:first-child span{margin-top:4px;color:var(--muted);font-size:var(--font-size-xs)}.upstream-note{margin:0;color:var(--muted);font-size:var(--font-size-xs);line-height:1.5}.upstream-account-list{display:grid;gap:10px}.upstream-account-card{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:light-dark(#fbfcf8,#242520)}.upstream-account-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:14px}.upstream-account-card>header div:first-child{min-width:0}.upstream-account-card>header strong{display:block;overflow-wrap:anywhere;font-size:var(--font-size-md)}.upstream-account-card>header div:first-child span{display:block;margin-top:4px;color:var(--muted);font-size:var(--font-size-xs)}.upstream-session-list{margin:0;padding:0;border-top:1px solid var(--line);list-style:none}.upstream-session-list li{display:grid;grid-template-columns:minmax(160px,1fr) minmax(130px,max-content) max-content;gap:12px;align-items:center;padding:11px 14px}.upstream-session-list li+li{border-top:1px solid var(--line)}.upstream-session-list li strong,.upstream-session-list li span{display:block}.upstream-session-list li>div:first-child strong{overflow-wrap:anywhere;font-size:var(--font-size-base)}.upstream-session-list li>div:first-child{min-width:0}.upstream-session-list li>div span{margin-top:3px;color:var(--muted);font-size:var(--font-size-xs);overflow-wrap:anywhere}.upstream-session-list li .upstream-session-device{color:var(--text);font-weight:var(--font-weight-medium)}.upstream-session-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.upstream-session-actions .state-pill{margin-top:0}.upstream-session-actions button{display:inline-flex;align-items:center;gap:6px;min-height:32px;border:1px solid light-dark(#f0c6c0,#571d15);border-radius:9px;padding:0 10px;background:var(--surface);color:var(--danger);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.upstream-session-actions button:disabled{opacity:.5;cursor:not-allowed}.upstream-session-empty{margin:0;border-top:1px solid var(--line);padding:12px 14px;color:var(--muted);font-size:var(--font-size-xs)}.virtual-user-permissions{display:flex;gap:6px;flex-wrap:wrap}.virtual-user-permissions span,.state-pill{border-radius:999px;padding:5px 9px;background:var(--surface-strong);color:light-dark(#526052,#99a899);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold)}.state-pill.active{background:light-dark(#e4f2d7,#2d4517);color:var(--green-deep)}.state-pill.inactive{background:light-dark(#f4e4df,#3d2219);color:var(--danger)}.state-pill.fresh{background:light-dark(#e4f2d7,#2d4517);color:var(--green-deep)}.state-pill.expiring{background:light-dark(#fff0ce,#583e02);color:light-dark(#765b11,#edcf7f)}.state-pill.expired,.state-pill.missing{background:light-dark(#f4e4df,#3d2219);color:var(--danger)}.state-pill.remember{background:light-dark(#e3edf6,#1d3245);color:light-dark(#31597d,#a3c6e4)}.virtual-user-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.virtual-user-actions button{display:inline-flex;align-items:center;gap:7px;min-height:34px;border:1px solid var(--line);border-radius:9px;padding:0 10px;background:var(--surface);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.virtual-user-actions .danger-action{border-color:light-dark(#f0c6c0,#571d15);color:var(--danger)}.settings-side{display:grid;gap:16px;min-width:0}.version-panel{margin-top:16px}.refresh-app-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid var(--line);border-radius:11px;padding:0 13px;background:light-dark(#fbfcf8,#242520);color:var(--green);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap}.refresh-app-button:disabled{cursor:wait;opacity:.72}.version-refresh-status{margin-top:12px}.version-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:light-dark(#fbfcf8,#242520)}.version-card{display:grid;gap:14px;min-width:0;padding:16px}.version-card+.version-card{border-left:1px solid var(--line)}.version-card>div:first-child{display:grid;gap:3px}.version-card>div:first-child span{color:var(--muted);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold)}.version-card>div:first-child strong{font-size:var(--font-size-base)}.version-card dl{display:grid;gap:10px;margin:0}.version-card dl div{display:flex;align-items:center;justify-content:space-between;gap:14px}.version-card dt{flex:0 0 auto;color:var(--muted);font-size:var(--font-size-xs)}.version-card dd{display:flex;min-width:0;align-items:center;justify-content:flex-end;gap:8px;margin:0;color:light-dark(#39433b,#c1cbbf);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-align:right}.version-card dd span{overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}.version-card .monospace-value span{font-family:var(--font-mono);font-size:var(--font-size-2xs);letter-spacing:var(--letter-spacing-tight)}.version-copy-button{display:inline-grid;flex:0 0 auto;width:28px;min-height:28px;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--green);cursor:pointer}.theme-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:14px}.theme-picker button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;border:1px solid var(--line);border-radius:11px;background:light-dark(#fbfcf8,#242520);color:light-dark(#526052,#99a899);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.theme-picker button.selected{border-color:light-dark(rgba(40,99,69,.28),rgba(148,212,179,.28));background:light-dark(#edf4e5,#2a361d);color:var(--green)}.theme-picker-note{margin:12px 0 0;color:var(--muted);font-size:var(--font-size-2xs);line-height:1.45}.settings-info dl{display:grid;gap:10px;margin:16px 0}.settings-info dl div{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding-bottom:10px}.settings-info dt{color:var(--muted);font-size:var(--font-size-xs)}.settings-info dd{margin:0;font-weight:var(--font-weight-bold);text-align:right}.settings-info p,.empty-state{margin:0;color:var(--muted);line-height:1.55}.empty-state{border:1px dashed var(--line);border-radius:14px;padding:18px;background:light-dark(#fbfcf8,#242520)}.virtual-user-editor{width:min(100%,680px)}.permission-picker{display:grid;gap:10px}.permission-section{display:grid;gap:8px}.permission-section>span{color:light-dark(#39433b,#b6c1b8);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.permission-section>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:1px solid var(--line);border-radius:14px;padding:12px;background:light-dark(#fbfcf8,#242520)}@media(max-width:520px){.version-panel .settings-panel-heading{align-items:stretch;flex-direction:column}.refresh-app-button{width:100%}}.calendar-page{display:grid;gap:12px;height:100%;min-height:0;grid-template-rows:auto auto minmax(0,1fr)}.calendar-page.has-feedback{grid-template-rows:auto auto auto minmax(0,1fr)}.calendar-topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.calendar-topbar h1{margin:0;font-size:var(--font-size-page-title);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight)}.calendar-topbar p{max-width:520px;margin:5px 0 0;color:var(--muted);line-height:1.5}.topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.user-chip{border:1px solid var(--line);border-radius:999px;padding:10px 14px;background:var(--surface);color:light-dark(#516052,#99a99a);font-size:var(--font-size-xs)}.desktop-view-toggle-button{min-height:34px;border:1px solid var(--line);border-radius:999px;padding:0 12px;background:var(--surface);color:var(--green);cursor:pointer;font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold)}.calendar-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:16px;background:light-dark(rgba(255,255,255,.74),rgba(33,33,33,.74))}.toolbar-nav,.toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.toolbar-actions{margin-left:auto}.segmented-control,.date-controls{display:inline-flex;align-items:center;gap:6px}.segmented-control{padding:4px;border:1px solid var(--line);border-radius:12px;background:light-dark(#f7f9f3,#262920)}.segmented-control button,.date-controls button{min-height:36px;border:0;border-radius:9px;padding:0 12px;background:transparent;color:light-dark(#526052,#99a899);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer}.segmented-control button.selected{background:var(--green);color:#fff}.date-controls{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:4px}.date-controls input{width:150px;min-height:36px;border:0;border-radius:8px;padding:0 10px;background:transparent}.today-button{display:inline-flex;min-height:38px;align-items:center;gap:6px;border:1px solid var(--line);border-radius:11px;padding:0 14px;background:var(--surface);color:var(--green);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer}.today-button:hover{background:light-dark(#f1f6ec,#272f1f);border-color:light-dark(rgba(40,99,69,.28),rgba(148,212,179,.28))}.toolbar-icon-button{display:inline-grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:light-dark(#526052,#99a899);cursor:pointer}.toolbar-icon-button:hover{background:light-dark(#f1f6ec,#272f1f);color:var(--green)}.open-hours{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:7px 13px;background:var(--surface);color:var(--muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.open-hours svg{color:var(--green)}.placeholder-create-button,.real-booking-create-button,.summary-toggle-button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);border-radius:11px;padding:0 14px;background:var(--surface);color:light-dark(#526052,#99a899);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.real-booking-create-button{border-color:transparent;background:var(--green);color:#fff}.real-booking-create-button:hover{background:light-dark(#173f2b,#245c41)}.placeholder-create-button{border-color:light-dark(rgba(40,99,69,.28),rgba(148,212,179,.28));color:var(--green)}.placeholder-create-button:hover{background:light-dark(#f1f6ec,#272f1f)}.summary-toggle-button.selected{border-color:light-dark(rgba(40,99,69,.2),rgba(148,212,179,.2));background:light-dark(#edf4e5,#2a361d);color:var(--green)}.calendar-layout{grid-row:3;display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:14px;align-items:stretch;height:100%;min-height:0}.calendar-page.has-feedback .calendar-layout{grid-row:4}.calendar-layout.summary-collapsed{grid-template-columns:minmax(0,1fr)}.calendar-main-panel,.calendar-detail,.calendar-error,.calendar-loading{border:1px solid var(--line);border-radius:18px;background:var(--surface)}.calendar-main-panel{position:relative;height:100%;max-height:none;min-width:0;overflow:hidden}.calendar-scroll-area{height:100%;min-width:0;overflow:auto}.calendar-main-panel:after{position:absolute;right:0;bottom:0;left:0;z-index:4;display:block;height:42px;pointer-events:none;content:"";background:linear-gradient(180deg,light-dark(rgba(255,255,255,0),rgba(33,33,33,0)),light-dark(rgba(244,246,241,.92),rgba(38,41,34,.92)))}.calendar-loading,.calendar-error{padding:24px;color:var(--muted)}.calendar-error{background:light-dark(#fff4f2,#2c1d1a);color:var(--danger)}.calendar-feedback{display:grid;gap:8px}.calendar-status-message{display:flex;min-height:46px;align-items:center;justify-content:space-between;gap:14px;margin:0;border:1px solid light-dark(rgba(40,99,69,.12),rgba(148,212,179,.12));border-radius:14px;padding:9px 10px 9px 14px;background:light-dark(#edf4e5,#2a361d);color:var(--green);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}.calendar-status-message span{min-width:0;line-height:1.35}.calendar-status-message button{display:inline-grid;flex:0 0 auto;width:30px;height:30px;place-items:center;border:1px solid light-dark(rgba(40,99,69,.14),rgba(148,212,179,.14));border-radius:999px;background:light-dark(rgba(255,255,255,.62),rgba(33,33,33,.62));color:currentColor;cursor:pointer}.calendar-status-message button:hover,.calendar-status-message button:focus-visible{background:light-dark(rgba(255,255,255,.92),rgba(33,33,33,.92))}.calendar-status-message.error{border-color:light-dark(rgba(161,50,50,.2),rgba(203,87,87,.2));background:light-dark(#fae8e6,#371b18);color:var(--danger)}.calendar-status-message.warning{border-color:light-dark(rgba(183,119,22,.24),rgba(232,165,64,.24));background:light-dark(#fff4d5,#4e3c08);color:light-dark(#805513,#ebbc75)}.scroll-more-indicator{position:absolute;right:18px;z-index:5;display:flex;width:max-content;align-items:center;gap:8px;margin:0;border:1px solid light-dark(rgba(40,99,69,.22),rgba(148,212,179,.22));border-radius:999px;padding:9px 12px;background:light-dark(rgba(255,255,255,.96),rgba(33,33,33,.96));box-shadow:0 8px 20px #17211b14;color:var(--green);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);pointer-events:none}.scroll-more-indicator.below{bottom:14px}.scroll-more-indicator.above{top:78px}.scroll-more-indicator.below svg{transform:rotate(90deg)}.scroll-more-indicator.above svg{transform:rotate(-90deg)}.day-calendar{min-width:850px}.day-calendar-header{display:grid;grid-template-columns:132px repeat(var(--court-count, 2),minmax(220px,1fr));border-bottom:1px solid var(--line);position:sticky;top:0;z-index:3;background:var(--surface)}.day-calendar-header>div{padding:16px;border-right:1px solid var(--line);color:light-dark(#435044,#a9b7aa);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.day-calendar-header>div:first-child{display:grid;gap:4px;align-content:center;color:var(--muted);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium)}.day-calendar-header strong{color:var(--ink);font-size:var(--font-size-base);line-height:1.15}.day-calendar-summary strong{font-size:var(--font-size-xs);white-space:nowrap}.day-hold-metric{color:light-dark(#8d6b32,#bca36d);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold)}.day-hold-metric.empty{visibility:hidden}.day-calendar-grid{display:grid;grid-template-columns:132px repeat(var(--court-count, 2),minmax(220px,1fr));min-height:1180px;overflow:hidden}.time-axis{position:relative;border-right:1px solid var(--line);background:light-dark(#f8faf5,#252720)}.time-axis span{position:absolute;left:0;width:100%;padding:0 12px;transform:translateY(-50%);color:light-dark(#899187,#6f776d);font-size:var(--font-size-2xs);line-height:1}.time-axis span:first-child{transform:translateY(6px)}.time-axis span:last-child{transform:translateY(-100%)}.court-lane{position:relative;border-right:1px solid var(--line);background:linear-gradient(90deg,transparent 0,transparent 97%,light-dark(rgba(223,229,216,.5),rgba(51,60,40,.5)) 100%),light-dark(#fff,#212121)}.day-slot-button{position:absolute;left:8px;right:8px;z-index:0;display:grid;place-items:center;border:1px dashed transparent;border-radius:10px;background:transparent;color:transparent;cursor:pointer}.day-slot-button:hover{border-color:light-dark(rgba(183,119,22,.32),rgba(232,165,64,.32));background:light-dark(rgba(255,247,223,.55),rgba(65,53,15,.55));color:light-dark(#b77716,#e8a540)}.day-slot-button span{display:grid;width:22px;height:22px;place-items:center;border-radius:999px;background:transparent;font-size:var(--font-size-md);font-weight:var(--font-weight-bold)}.day-slot-button:hover span,.day-slot-button:focus-visible span{background:light-dark(rgba(183,119,22,.12),rgba(232,165,64,.12))}.hour-line{display:block;height:calc(100% / var(--time-slot-count, 37));border-bottom:1px solid light-dark(rgba(223,229,216,.78),rgba(51,60,40,.78))}.booking-block{position:absolute;left:10px;right:10px;display:grid;align-content:start;gap:2px;min-height:64px;border:1px solid var(--booking-border, light-dark(rgba(40, 99, 69, .18), rgba(148, 212, 179, .18)));border-left:4px solid var(--booking-accent, var(--green));border-radius:12px;padding:8px 10px;background:var(--booking-bg, light-dark(#eef6e9, #25321e));box-shadow:0 12px 24px #173f2b14;cursor:pointer;text-align:left;z-index:1;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.booking-block:hover,.booking-block:focus-visible{box-shadow:0 16px 32px #173f2b24;transform:translateY(-1px)}.booking-block:focus-visible{outline:3px solid light-dark(rgba(204,225,95,.58),rgba(141,163,31,.58))}.booking-block.selected{outline:3px solid light-dark(rgba(204,225,95,.58),rgba(141,163,31,.58))}.booking-block strong{display:-webkit-box;overflow:hidden;color:var(--booking-ink, light-dark(#1f3e2d, #b9dcc9));font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:2}.booking-block span,.booking-block small{color:var(--booking-muted, light-dark(#526052, #99a899));font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium)}.booking-block em{justify-self:start;border-radius:999px;padding:3px 7px;background:var(--booking-pill, light-dark(rgba(204, 225, 95, .55), rgba(141, 163, 31, .55)));color:var(--booking-ink, var(--green-deep));font-size:var(--font-size-2xs);font-style:normal;font-weight:var(--font-weight-semibold)}.week-calendar{display:grid;grid-template-columns:repeat(7,minmax(96px,1fr));gap:1px;height:100%;min-height:100%;background:var(--line);overflow-x:auto}.week-day{position:relative;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:12px;height:100%;min-height:0;overflow:hidden;padding:14px;background:light-dark(#fff,#212121)}.week-day.selected{background:linear-gradient(180deg,light-dark(rgba(40,99,69,.035),rgba(148,212,179,.04)),light-dark(#fff,#212121) 80px)}.week-day.selected:before{position:absolute;top:0;right:0;left:0;height:3px;content:"";background:var(--green)}.week-day-header{display:grid;gap:8px;width:100%;border:0;border-radius:18px;padding:18px 18px 14px;background:light-dark(#f8faf5,#252720);cursor:pointer;font:inherit;text-align:left;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.week-day-header:hover{background:light-dark(#f1f6eb,#28301f);box-shadow:inset 0 0 0 1px light-dark(rgba(40,99,69,.14),rgba(148,212,179,.14))}.week-day-header:focus-visible{outline:3px solid light-dark(rgba(40,99,69,.18),rgba(148,212,179,.18));outline-offset:3px;box-shadow:inset 0 0 0 1px light-dark(rgba(40,99,69,.2),rgba(148,212,179,.2))}.week-day-header:active{transform:translateY(1px)}.week-day-weekday{color:var(--green);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase}.week-day-header strong{color:var(--ink);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight)}.week-day-header small{color:light-dark(#526052,#99a899);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.week-day-counts{display:grid;gap:5px;font-size:var(--font-size-xs)}.week-day-counts span{color:inherit}.week-day-counts>span:first-child{white-space:nowrap}.occupancy-bar{position:relative;display:block;overflow:hidden;height:6px;border-radius:999px;background:light-dark(#e5ebdd,#303a22)}.occupancy-bar>span{position:absolute;left:0;display:block;border-radius:inherit}.occupancy-bar-real{top:0;height:100%;background:var(--green)}.week-day-metrics{display:grid;gap:4px;color:light-dark(#6d756e,#868e87);line-height:1.25}.week-day-metrics span,.week-day-metrics em{margin:0;font-size:var(--font-size-2xs);font-style:normal;font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-tight)}.week-day-counts .week-hold-metric{color:light-dark(#8d6b32,#bca36d);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold)}.week-hold-metric.empty{visibility:hidden}.week-timeline{display:flex;flex-direction:column;flex:1 1 auto;gap:7px;min-height:0;overflow:auto;padding:12px 2px 52px 0;scrollbar-gutter:stable}.week-day-body{position:relative;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;border-top:1px solid light-dark(rgba(223,229,216,.86),rgba(51,60,40,.86));border-bottom:1px solid light-dark(rgba(223,229,216,.92),rgba(51,60,40,.92))}.week-time-group{display:grid;gap:6px}.week-timeline>*+.week-time-group{margin-top:5px}.week-time-heading{margin:0;color:light-dark(#778176,#7c867b);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold)}.week-timeline .week-booking-card{display:grid;gap:3px;width:100%;border:1px solid var(--booking-border, light-dark(rgba(40, 99, 69, .14), rgba(148, 212, 179, .14)));border-radius:10px;padding:9px;background:var(--booking-bg, light-dark(#eff6ea, #26311e));cursor:pointer;text-align:left;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.week-scroll-more-indicator{position:absolute;left:50%;z-index:3;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid light-dark(rgba(40,99,69,.2),rgba(148,212,179,.2));border-radius:999px;padding:6px 9px;background:light-dark(rgba(255,255,255,.96),rgba(33,33,33,.96));box-shadow:0 8px 18px #17211b14;color:var(--green);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);pointer-events:none;transform:translate(-50%);white-space:nowrap}.week-scroll-more-indicator.above{top:8px}.week-scroll-more-indicator.below{bottom:12px}.week-scroll-more-indicator.above svg{transform:rotate(-90deg)}.week-scroll-more-indicator.below svg{transform:rotate(90deg)}.week-timeline .week-booking-card:hover,.week-timeline .week-booking-card:focus-visible{box-shadow:0 10px 22px #173f2b1c;transform:translateY(-1px)}.week-timeline .week-booking-card:focus-visible{outline:3px solid light-dark(rgba(204,225,95,.42),rgba(141,163,31,.42))}.week-timeline .week-card-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;color:var(--booking-muted, light-dark(#687169, #8a938b))}.week-timeline .week-card-court{min-width:0;overflow:hidden;color:var(--booking-muted, inherit);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap}.week-timeline .week-booking-card strong{overflow:hidden;color:var(--booking-ink, light-dark(#304433, #b4cab8));font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap}.week-timeline .availability-gap{display:grid;gap:3px;width:100%;border:1px dashed light-dark(rgba(119,129,118,.16),rgba(124,134,123,.16));border-radius:10px;padding:9px;background:light-dark(rgba(248,250,245,.56),rgba(37,39,32,.56));color:light-dark(#8a9388,#6d766b);cursor:pointer;text-align:left;transition:outline-color .14s ease}.week-timeline .availability-gap strong{color:light-dark(#8a9388,#6d766b);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium)}.week-timeline .availability-gap:focus-visible{outline:3px solid light-dark(rgba(204,225,95,.42),rgba(141,163,31,.42))}.tone-green{--booking-bg: light-dark(#eef6e9, #25321e);--booking-border: light-dark(rgba(40, 99, 69, .18), rgba(148, 212, 179, .18));--booking-accent: light-dark(#286345, #94d4b3);--booking-ink: light-dark(#1f3e2d, #b9dcc9);--booking-muted: light-dark(#526052, #99a899);--booking-pill: light-dark(rgba(204, 225, 95, .55), rgba(141, 163, 31, .55))}.tone-blue{--booking-bg: light-dark(#edf5ff, #182331);--booking-border: light-dark(rgba(39, 104, 174, .22), rgba(74, 142, 214, .22));--booking-accent: light-dark(#2768ae, #4a8ed6);--booking-ink: light-dark(#163b66, #90b8e7);--booking-muted: light-dark(#506a85, #7590ac);--booking-pill: light-dark(rgba(138, 191, 255, .44), rgba(0, 61, 136, .44))}.tone-amber{--booking-bg: light-dark(#fff7df, #41350f);--booking-border: light-dark(rgba(172, 116, 25, .24), rgba(229, 170, 75, .24));--booking-accent: light-dark(#b77716, #e8a540);--booking-ink: light-dark(#65470f, #efce90);--booking-muted: light-dark(#7c6b44, #b8a67d);--booking-pill: light-dark(rgba(255, 216, 111, .66), rgba(156, 114, 0, .66))}.tone-sky{--booking-bg: light-dark(#ecfbff, #172d32);--booking-border: light-dark(rgba(29, 131, 158, .22), rgba(88, 196, 224, .22));--booking-accent: light-dark(#1d839e, #58c4e0);--booking-ink: light-dark(#145469, #8cd2e9);--booking-muted: light-dark(#517583, #779cab);--booking-pill: light-dark(rgba(126, 219, 235, .5), rgba(21, 121, 139, .5))}.tone-mint{--booking-bg: light-dark(#eaf8f1, #1c3227);--booking-border: light-dark(rgba(28, 132, 91, .22), rgba(114, 225, 181, .22));--booking-accent: light-dark(#1c845b, #72e1b5);--booking-ink: light-dark(#15533c, #a3e8ce);--booking-muted: light-dark(#4e7163, #88ad9e);--booking-pill: light-dark(rgba(142, 224, 184, .48), rgba(34, 123, 79, .48))}.tone-slate{--booking-bg: light-dark(#f3f5f2, #252823);--booking-border: light-dark(rgba(102, 116, 102, .2), rgba(135, 149, 135, .2));--booking-accent: light-dark(#667466, #879587);--booking-ink: light-dark(#3b453d, #b4bfb6);--booking-muted: light-dark(#687169, #8a938b);--booking-pill: light-dark(rgba(211, 218, 208, .66), rgba(53, 63, 49, .66))}.tone-placeholder{--booking-bg: repeating-linear-gradient( 135deg, light-dark(rgba(183, 119, 22, .1), rgba(232, 165, 64, .1)) 0, light-dark(rgba(183, 119, 22, .1), rgba(232, 165, 64, .1)) 7px, transparent 7px, transparent 14px ), light-dark(#fff4c8, #5d4b00);--booking-border: light-dark(rgba(154, 79, 0, .62), rgba(255, 175, 90, .62));--booking-accent: light-dark(#9a4f00, #ffaf5a);--booking-ink: light-dark(#4f3108, #f6d4a6);--booking-muted: light-dark(#6f520d, #f1d186);--booking-pill: light-dark(rgba(154, 79, 0, .18), rgba(255, 175, 90, .18));border-style:dashed}.tone-placeholder-conflict{--booking-bg: repeating-linear-gradient( 135deg, light-dark(rgba(183, 119, 22, .12), rgba(232, 165, 64, .12)) 0, light-dark(rgba(183, 119, 22, .12), rgba(232, 165, 64, .12)) 7px, transparent 7px, transparent 14px ), light-dark(#fff4c8, #5d4b00);--booking-border: light-dark(rgba(184, 55, 48, .72), rgba(205, 72, 65, .72));--booking-accent: light-dark(#b83730, #cd4841);--booking-ink: light-dark(#55201d, #dfa5a1);--booking-muted: light-dark(#76514d, #ae8783);--booking-pill: light-dark(rgba(184, 55, 48, .15), rgba(205, 72, 65, .15));border-style:dashed}.tone-placeholder-waitlist{--booking-bg: repeating-linear-gradient( 135deg, light-dark(rgba(184, 55, 48, .1), rgba(205, 72, 65, .1)) 0, light-dark(rgba(184, 55, 48, .1), rgba(205, 72, 65, .1)) 7px, transparent 7px, transparent 14px ), light-dark(#fff1d6, #4d3508);--booking-border: light-dark(rgba(184, 55, 48, .58), rgba(205, 72, 65, .58));--booking-accent: light-dark(#b83730, #cd4841);--booking-ink: light-dark(#55201d, #dfa5a1);--booking-muted: light-dark(#76514d, #ae8783);--booking-pill: light-dark(rgba(184, 55, 48, .15), rgba(205, 72, 65, .15));border-style:dashed}.tone-booking-conflict{--booking-bg: light-dark(#fff2ef, #2f1d19);--booking-border: light-dark(rgba(184, 55, 48, .34), rgba(205, 72, 65, .34));--booking-accent: light-dark(#b83730, #cd4841);--booking-ink: light-dark(#56211d, #dfa5a0);--booking-muted: light-dark(#805853, #a97f7a);--booking-pill: light-dark(rgba(184, 55, 48, .13), rgba(205, 72, 65, .13))}.booking-block.tone-placeholder{border-width:2px;box-shadow:inset 0 0 0 1px light-dark(rgba(255,255,255,.74),rgba(33,33,33,.74)),0 14px 28px light-dark(rgba(154,79,0,.13),rgba(255,175,90,.13))}.booking-block.tone-placeholder-conflict{border-width:2px;box-shadow:inset 0 0 0 1px light-dark(rgba(255,255,255,.74),rgba(33,33,33,.74)),0 14px 28px light-dark(rgba(184,55,48,.14),rgba(205,72,65,.14))}.booking-block.tone-placeholder-waitlist{border-width:2px;box-shadow:inset 0 0 0 1px light-dark(rgba(255,255,255,.74),rgba(33,33,33,.74)),0 14px 28px light-dark(rgba(184,55,48,.12),rgba(205,72,65,.12))}.conflict-pill,.waitlist-pill{background:light-dark(rgba(184,55,48,.14),rgba(205,72,65,.14))!important;color:light-dark(#b83730,#cd4841)!important}.week-timeline .week-booking-card small{justify-self:start;border-radius:999px;padding:2px 7px;background:var(--booking-pill, transparent);color:var(--booking-accent, var(--green));font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight)}.card-tooltip{position:fixed;z-index:1000;display:grid;gap:8px;width:max-content;max-width:260px;border:1px solid light-dark(rgba(40,99,69,.16),rgba(148,212,179,.16));border-radius:12px;padding:12px 13px;background:light-dark(#ffffff,#212121);box-shadow:0 16px 38px #17211b29;pointer-events:none}.card-tooltip-title{color:light-dark(#1f2d24,#ccdcd1);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);line-height:1.3}.card-tooltip-meta{color:var(--green);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold)}.card-tooltip-rows{display:grid;gap:6px;margin:0;padding-top:8px;border-top:1px solid light-dark(rgba(223,229,216,.9),rgba(51,60,40,.9))}.card-tooltip-rows>div{display:grid;grid-template-columns:52px 1fr;gap:8px;align-items:baseline}.card-tooltip-rows dt{margin:0;color:light-dark(#8a9388,#6d766b);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--letter-spacing-tight)}.card-tooltip-rows dd{margin:0;color:light-dark(#304433,#b4cab8);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);line-height:1.35;overflow-wrap:anywhere}.empty-slot{border:1px dashed var(--line);border-radius:10px;padding:9px;color:light-dark(#9ba397,#61695d);font-size:var(--font-size-2xs)}.open-day-link{align-self:end;margin-top:auto;border:0;border-radius:10px;padding:14px 10px 10px;background:light-dark(#f2f6ec,#282f1f);color:var(--green);cursor:pointer;font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold)}.calendar-detail{position:sticky;top:24px;display:grid;align-content:start;gap:16px;padding:18px;height:100%;max-height:100%;overflow:auto}.panel-label{color:var(--green);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight);text-transform:uppercase}.calendar-detail h2{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight)}.detail-conflict-alert{display:grid;gap:5px;border:1px solid light-dark(rgba(184,55,48,.22),rgba(205,72,65,.22));border-radius:12px;padding:11px 12px;background:light-dark(#fff7f4,#2a201b);color:light-dark(#6a2a25,#d7928d)}.detail-conflict-alert strong{color:light-dark(#b83730,#cd4841);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold)}.detail-conflict-alert span{font-size:var(--font-size-2xs);line-height:1.35}.detail-conflict-alert.waitlist{border-color:light-dark(rgba(183,119,22,.22),rgba(232,165,64,.22));background:light-dark(#fff8e5,#3a2f13);color:light-dark(#73520d,#f1cd82)}.detail-conflict-alert.waitlist strong{color:light-dark(#9a4f00,#ffaf5a)}.detail-conflict-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.detail-conflict-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-conflict-row button{display:inline-flex;align-items:center;gap:5px;min-height:28px;border:1px solid light-dark(rgba(184,55,48,.18),rgba(205,72,65,.18));border-radius:9px;padding:0 8px;background:light-dark(rgba(255,255,255,.78),rgba(33,33,33,.78));color:var(--danger);cursor:pointer;font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold)}.detail-stack-list{display:grid;gap:8px;border:1px solid light-dark(rgba(154,79,0,.2),rgba(255,175,90,.2));border-radius:12px;padding:11px;background:light-dark(#fffaf0,#2e2719)}.detail-stack-list>strong{color:light-dark(#805513,#ebbc75);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold)}.detail-stack-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;border-top:1px solid light-dark(rgba(154,79,0,.12),rgba(255,175,90,.12));padding-top:8px}.detail-stack-list span{display:grid;min-width:0;gap:2px}.detail-stack-list b{overflow:hidden;color:light-dark(#4f3108,#f6d4a6);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);text-overflow:ellipsis;white-space:nowrap}.detail-stack-list small{overflow:hidden;color:light-dark(#765d24,#d8be80);font-size:var(--font-size-2xs);text-overflow:ellipsis;white-space:nowrap}.detail-stack-list button{display:inline-flex;align-items:center;gap:5px;min-height:30px;border:1px solid light-dark(rgba(154,79,0,.18),rgba(255,175,90,.18));border-radius:9px;padding:0 8px;background:light-dark(rgba(255,255,255,.78),rgba(33,33,33,.78));color:light-dark(#805513,#ebbc75);cursor:pointer;font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold)}.detail-stack-list button.danger-action{border-color:light-dark(rgba(184,55,48,.18),rgba(205,72,65,.18));color:var(--danger)}.calendar-detail dl{display:grid;gap:10px;margin:0}.calendar-detail dl div{display:grid;gap:3px;border-bottom:1px solid var(--line);padding-bottom:9px}.calendar-detail dt{color:light-dark(#8a9387,#6e776b);font-size:var(--font-size-2xs)}.calendar-detail dd{margin:0;color:light-dark(#344238,#b7c6bb);font-size:var(--font-size-xs);line-height:1.4;overflow-wrap:anywhere}.detail-actions{display:grid;gap:8px}.detail-actions button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid var(--line);border-radius:11px;background:light-dark(#f8faf5,#252720);color:var(--green);cursor:pointer;font-weight:var(--font-weight-semibold)}.detail-actions button:disabled{cursor:not-allowed;opacity:.55}.detail-actions .danger-action{background:light-dark(#fff7f5,#2a1f1c);color:var(--danger)}.detail-actions .primary-detail-action{border-color:light-dark(rgba(40,99,69,.24),rgba(148,212,179,.24));background:var(--green);color:#fff}.detail-action-note{margin:0;color:light-dark(#6d756e,#868e87);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);line-height:1.35}.detail-action-note.danger{color:var(--danger)}.week-timeline .week-booking-card.multi-selected{border-color:var(--green);box-shadow:0 0 0 2px var(--green),0 10px 22px #173f2b24}.placeholder-multiselect-bar{position:absolute;bottom:16px;left:50%;z-index:5;display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:999px;padding:8px 8px 8px 16px;background:var(--surface);box-shadow:0 12px 28px #17211b29;transform:translate(-50%)}.placeholder-multiselect-count{color:var(--ink, light-dark(#1f3e2d, #b9dcc9));font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);white-space:nowrap}.placeholder-multiselect-delete{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:999px;padding:7px 14px;background:light-dark(#a13232,#b23c35);color:#fff;cursor:pointer;font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);transition:filter .14s ease}.placeholder-multiselect-delete:hover:not(:disabled),.placeholder-multiselect-delete:focus-visible{filter:brightness(.94)}.placeholder-multiselect-delete:disabled{cursor:progress;opacity:.6}.placeholder-multiselect-clear{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:999px;padding:7px;background:transparent;color:var(--muted);cursor:pointer;transition:background .14s ease}.placeholder-multiselect-clear:hover,.placeholder-multiselect-clear:focus-visible{background:light-dark(rgba(40,99,69,.1),rgba(148,212,179,.1))}.placeholder-editor-backdrop{position:fixed;inset:0;z-index:60;display:flex;justify-content:flex-end;background:#17211b38}.placeholder-editor{display:grid;grid-template-rows:auto auto minmax(0,1fr);align-content:stretch;gap:18px;width:min(100%,470px);height:100%;overflow:hidden;padding:24px 24px 0;border-left:1px solid var(--line);background:var(--surface);box-shadow:-24px 0 70px #17211b21}.placeholder-editor.virtual-user-editor{width:min(100%,680px)}.placeholder-editor h2{margin:0;font-size:var(--font-size-4xl);letter-spacing:var(--letter-spacing-tight)}.conversion-editor{width:min(100%,520px)}.compact-action-editor{width:min(100%,440px)}.slot-choice-backdrop{position:fixed;inset:0;z-index:65;display:flex;align-items:center;justify-content:center;padding:24px;background:#17211b47}.slot-choice-dialog{display:grid;gap:14px;width:min(100%,440px);padding:22px 22px 24px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 30px 80px #17211b38}.slot-choice-dialog h2{margin:0;font-size:var(--font-size-xl);letter-spacing:var(--letter-spacing-tight)}.slot-choice-context{margin:-6px 0 2px;color:var(--muted);font-size:var(--font-size-sm)}.slot-choice-options{display:grid;gap:12px}.slot-choice-option{display:flex;align-items:flex-start;gap:13px;width:100%;padding:15px 16px;border:1px solid var(--line);border-radius:15px;background:var(--surface);text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .05s ease}.slot-choice-option:hover{border-color:var(--green);background:light-dark(#f4f8ef,#262c1f)}.slot-choice-option:active{transform:translateY(1px)}.slot-choice-option svg{flex-shrink:0;margin-top:2px;color:var(--green)}.slot-choice-option span{display:grid;gap:3px}.slot-choice-option strong{font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-tight)}.slot-choice-option small{color:var(--muted);font-size:var(--font-size-xs);line-height:1.35}.slot-choice-option.primary{border-color:light-dark(rgba(40,99,69,.45),rgba(148,212,179,.45));background:light-dark(#f4f8ef,#262c1f)}.slot-choice-option.primary:hover{background:light-dark(#ebf3e2,#2b391c)}.placeholder-editor form{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:0;min-height:0;overflow:hidden;padding-bottom:0}.placeholder-editor-fields{display:grid;align-content:start;gap:15px;min-height:0;overflow:auto;padding-bottom:16px}.conversion-summary{display:grid;gap:5px;border:1px solid light-dark(rgba(40,99,69,.14),rgba(148,212,179,.14));border-radius:14px;padding:13px 14px;background:light-dark(#f4f8ef,#262c1f)}.conversion-summary span{color:var(--green);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);text-transform:uppercase}.conversion-summary strong{color:var(--ink);font-size:var(--font-size-md);line-height:1.25}.conversion-summary small{color:var(--muted);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold)}.conversion-warning{display:flex;align-items:center;gap:8px;border:1px solid light-dark(rgba(183,119,22,.26),rgba(232,165,64,.26));border-radius:12px;padding:11px 12px;background:light-dark(#fff7df,#41350f);color:light-dark(#805513,#ebbc75);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold)}.conversion-warning.danger{border-color:light-dark(rgba(161,50,50,.22),rgba(203,87,87,.22));background:light-dark(#fff4f2,#2c1d1a);color:var(--danger)}.price-check-card,.reschedule-slot-list{display:grid;gap:8px;border:1px solid var(--line);border-radius:14px;padding:13px 14px;background:light-dark(#fbfcf8,#242520)}.price-check-card>span,.reschedule-slot-list>span{color:light-dark(#39433b,#b6c1b8);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);text-transform:uppercase}.price-check-card strong{color:var(--ink);font-size:var(--font-size-md)}.price-check-card small,.reschedule-slot-list p{margin:0;color:var(--muted);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);line-height:1.4}.price-check-card .danger,.reschedule-slot-list .danger{color:var(--danger)}.reschedule-slot-list>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.reschedule-slot-list button{min-height:38px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:light-dark(#526052,#99a899);cursor:pointer;font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold)}.reschedule-slot-list button.selected{border-color:light-dark(rgba(40,99,69,.28),rgba(148,212,179,.28));background:var(--green);color:#fff}.danger-button{background:light-dark(#a13232,#b23c35)}.conversion-mode-control{display:grid;gap:8px}.conversion-mode-control>span{color:light-dark(#39433b,#b6c1b8);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.conversion-mode-control>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.conversion-mode-control button{min-height:42px;border:1px solid var(--line);border-radius:11px;background:light-dark(#fbfcf8,#242520);color:light-dark(#526052,#99a899);cursor:pointer;font-weight:var(--font-weight-bold)}.conversion-mode-control button.selected{border-color:light-dark(rgba(40,99,69,.28),rgba(148,212,179,.28));background:var(--green);color:#fff}.registered-player-field{display:grid;gap:9px}.search-input-wrap{position:relative;display:block}.search-input-wrap svg{position:absolute;top:50%;left:13px;color:light-dark(#7b847a,#798278);transform:translateY(-50%)}.search-input-wrap input{padding-left:38px}.selected-player,.player-results button,.player-results>span{border:1px solid var(--line);border-radius:12px;background:light-dark(#fbfcf8,#242520)}.selected-player{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 11px}.selected-player svg{color:var(--green)}.selected-player span,.player-results button{min-width:0}.selected-player strong,.player-results strong{display:block;overflow:hidden;color:var(--ink);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap}.selected-player small,.player-results small{display:block;overflow:hidden;color:var(--muted);font-size:var(--font-size-2xs);text-overflow:ellipsis;white-space:nowrap}.selected-player button{border:0;border-radius:999px;padding:7px 10px;background:light-dark(#edf4e5,#2a361d);color:var(--green);cursor:pointer;font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold)}.player-results{display:grid;gap:6px}.player-results button{display:grid;gap:2px;width:100%;padding:10px 11px;cursor:pointer;text-align:left}.player-results button:hover,.player-results button:focus-visible{border-color:light-dark(rgba(40,99,69,.24),rgba(148,212,179,.24));background:light-dark(#f4f8ef,#262c1f)}.player-results>span{padding:10px 11px;color:var(--muted);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold)}.player-results>span.error{border-color:light-dark(rgba(161,50,50,.2),rgba(203,87,87,.2));background:light-dark(#fff4f2,#2c1d1a);color:var(--danger)}.receipt-upload-control{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;border:1px dashed light-dark(rgba(40,99,69,.22),rgba(148,212,179,.22));border-radius:12px;padding:10px 12px;background:light-dark(#fbfcf8,#242520);color:var(--green)}.receipt-upload-control input{grid-column:1 / -1;border:0;padding:0;background:transparent;color:light-dark(#526052,#99a899)}.receipt-upload-control>span{overflow:hidden;color:light-dark(#526052,#99a899);font-size:var(--font-size-2xs);text-overflow:ellipsis;white-space:nowrap}.court-picker{display:grid;gap:8px;color:light-dark(#39433b,#b6c1b8);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.court-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.court-choice{display:flex;min-height:42px;align-items:center;gap:9px;border:1px solid var(--line);border-radius:11px;padding:9px 11px;background:light-dark(#fbfcf8,#242520);color:light-dark(#526052,#99a899);cursor:pointer;font-weight:var(--font-weight-semibold)}.court-choice.selected{border-color:light-dark(rgba(40,99,69,.28),rgba(148,212,179,.28));background:light-dark(#edf4e5,#2a361d);color:var(--green)}.court-choice input{width:17px;height:17px}.booking-calendar{display:grid;gap:10px;border:1px solid var(--line);border-radius:14px;padding:14px;background:light-dark(#fbfcf8,#242520);color:light-dark(#39433b,#b6c1b8);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.booking-calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.booking-calendar-heading strong{border-radius:999px;padding:3px 10px;background:light-dark(#edf4e5,#2a361d);color:var(--green);font-size:var(--font-size-2xs)}.booking-calendar-hint{margin:-4px 0 0;color:light-dark(#6b776c,#849085);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium)}.booking-calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.booking-calendar-nav strong{color:var(--green);font-size:var(--font-size-sm)}.booking-calendar-nav button{display:grid;width:32px;height:32px;place-items:center;border:1px solid var(--line);border-radius:9px;padding:0;background:light-dark(#fff,#212121);color:var(--green);cursor:pointer}.booking-calendar-nav button:hover{border-color:light-dark(rgba(40,99,69,.3),rgba(148,212,179,.3));background:light-dark(#edf4e5,#2a361d)}.booking-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.booking-calendar-dow{padding-bottom:2px;color:light-dark(#97a298,#5e695f);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);text-align:center;text-transform:uppercase}.booking-calendar-day{display:grid;aspect-ratio:1;min-height:34px;place-items:center;border:1px solid transparent;border-radius:9px;padding:0;background:light-dark(#fff,#212121);color:light-dark(#39433b,#b6c1b8);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.booking-calendar-day:hover{border-color:light-dark(rgba(40,99,69,.3),rgba(148,212,179,.3));background:light-dark(#edf4e5,#2a361d)}.booking-calendar-day.muted{color:light-dark(#b8c0b8,#464f46);background:transparent}.booking-calendar-day.today{border-color:light-dark(rgba(40,99,69,.35),rgba(148,212,179,.35))}.booking-calendar-day.selected{border-color:var(--green);background:var(--green);color:#fff}.booking-calendar-day.selected:hover{background:light-dark(#1f5440,#389162)}.booking-calendar-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.booking-calendar-chips span{display:inline-flex;align-items:center;gap:7px;min-height:32px;border:1px solid light-dark(rgba(40,99,69,.22),rgba(148,212,179,.22));border-radius:999px;padding:4px 6px 4px 11px;background:light-dark(#edf4e5,#2a361d);color:var(--green);font-size:var(--font-size-2xs)}.booking-calendar-chips button{display:grid;width:20px;height:20px;place-items:center;border:0;border-radius:999px;padding:0;background:light-dark(rgba(40,99,69,.14),rgba(148,212,179,.14));color:var(--green);cursor:pointer}.booking-date-single{display:grid;gap:8px}.booking-date-advanced-toggle{display:inline-flex;align-items:center;justify-self:start;gap:7px;border:0;border-radius:9px;padding:4px 2px;background:transparent;color:var(--green);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}.booking-date-advanced-toggle:hover{text-decoration:underline}.booking-calendar-collapse{justify-self:start;margin-top:2px;border:0;padding:4px 2px;background:transparent;color:light-dark(#6b776c,#849085);cursor:pointer;font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold)}.booking-calendar-collapse:hover{color:var(--green);text-decoration:underline}.form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.time-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.time-grid .duration-control{grid-column:1 / -1}.duration-control{display:grid;gap:8px;color:light-dark(#39433b,#b6c1b8);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.duration-options{display:grid;grid-template-columns:repeat(4,minmax(58px,1fr));gap:6px}.duration-options button{min-height:48px;min-width:0;border:1px solid var(--line);border-radius:11px;padding:0 10px;background:light-dark(#fbfcf8,#242520);color:light-dark(#526052,#99a899);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);white-space:nowrap}.duration-options button.selected{border-color:light-dark(rgba(40,99,69,.28),rgba(148,212,179,.28));background:var(--green);color:#fff}.editor-footer{z-index:2;display:grid;gap:10px;margin:0 -24px;padding:14px 24px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}.editor-actions{display:grid;grid-template-columns:.8fr 1.2fr;gap:10px}.panel-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-label-row button{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:999px;background:light-dark(#f8faf5,#252720);color:var(--green);cursor:pointer}@supports (font: -apple-system-body){:root:has(.mobile-app){font:-apple-system-body;font-family:var(--font-sans)}}.mobile-app.panel-shell{display:block;min-height:100dvh;height:auto;overflow:visible;padding-bottom:calc(84px + env(safe-area-inset-bottom));background:var(--bg)}.mobile-app button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.mobile-app-content{padding:14px 14px 0}.mobile-app-content:has(.mobile-calendar-page){padding:0}.mobile-app .version-panel{margin-bottom:calc(90px + env(safe-area-inset-bottom))}@media(prefers-reduced-motion:no-preference){.mobile-app-content{animation:mobile-content-in .26s cubic-bezier(.2,0,0,1)}}@keyframes mobile-content-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.mobile-bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:35;display:flex;justify-content:center;gap:4px;padding:7px 10px calc(7px + env(safe-area-inset-bottom));border-top:1px solid light-dark(rgba(223,229,216,.55),rgba(51,60,40,.55));background:light-dark(rgba(251,252,248,.88),rgba(36,37,32,.88));box-shadow:0 -16px 40px #17211b0f;-webkit-backdrop-filter:blur(24px) saturate(1.8);backdrop-filter:blur(24px) saturate(1.8)}.mobile-bottom-nav button{display:grid;flex:1 1 72px;min-width:0;max-width:96px;min-height:54px;place-items:center;align-content:center;gap:4px;border:0;border-radius:14px;background:transparent;color:light-dark(#75806f,#828d7b);cursor:pointer;font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight);transition:color .18s ease}.mobile-bottom-nav button svg{box-sizing:content-box;padding:4px 15px;border-radius:999px;background:transparent;transition:background .2s ease,transform .16s ease}.mobile-bottom-nav button:active svg{transform:scale(.88)}.mobile-bottom-nav button.active{color:var(--green-deep)}.mobile-bottom-nav button.active svg{background:var(--surface-strong);color:var(--green)}.mobile-tabs-2 .mobile-bottom-nav{justify-content:space-around;gap:0}.mobile-placeholder-fab{position:fixed;right:16px;bottom:calc(90px + env(safe-area-inset-bottom));z-index:36;display:grid;width:56px;height:56px;place-items:center;border:0;border-radius:18px;background:var(--green);box-shadow:0 16px 34px #173f2b47;color:#fff;cursor:pointer;transition:transform .18s cubic-bezier(.2,0,0,1),box-shadow .18s ease}.mobile-placeholder-fab:active{transform:scale(.9);box-shadow:0 8px 18px #173f2b4d}.mobile-tabs-2 .mobile-placeholder-fab{right:auto;bottom:calc(16px + env(safe-area-inset-bottom));left:50%;width:54px;height:54px;border-radius:50%;box-shadow:0 10px 24px #173f2b57,0 0 0 5px light-dark(rgba(244,246,241,.9),rgba(19,23,17,.9));transform:translate(-50%)}.mobile-tabs-2 .mobile-placeholder-fab:active{transform:translate(-50%) scale(.9)}.mobile-calendar-page{display:block;height:auto}.mobile-cal-header{position:sticky;top:0;z-index:30;display:grid;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 14px 10px;border-bottom:1px solid light-dark(rgba(223,229,216,.5),rgba(51,60,40,.5));background:light-dark(rgba(244,246,241,.86),rgba(19,23,17,.86));-webkit-backdrop-filter:blur(20px) saturate(1.8);backdrop-filter:blur(20px) saturate(1.8)}.mobile-cal-titlebar{display:flex;align-items:center;justify-content:space-between;gap:10px}.mobile-month-button{display:inline-flex;align-items:center;gap:5px;min-width:0;border:0;padding:0;background:transparent;color:var(--ink);cursor:pointer;font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);white-space:nowrap}.mobile-month-button svg{flex:0 0 auto;margin-top:3px;color:light-dark(#8a9387,#6e776b);transition:transform .16s ease}.mobile-month-button:active svg{transform:translateY(2px)}.mobile-cal-titlebar-actions{display:flex;flex:0 0 auto;align-items:center;gap:8px}.mobile-today-pill{min-height:34px;border:0;border-radius:999px;padding:0 13px;background:var(--surface);box-shadow:0 0 0 .5px light-dark(rgba(23,33,27,.1),rgba(231,236,228,.14)),0 1px 3px #17211b0f;color:var(--green-deep);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);transition:transform .16s ease}.mobile-today-pill:active{transform:scale(.94)}.mobile-avatar-button{display:grid;width:36px;height:36px;place-items:center;border:0;border-radius:50%;background:light-dark(#286345,#2f7a53);color:#fff;cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-bold);transition:transform .16s ease}.mobile-avatar-button:active{transform:scale(.92)}.mobile-avatar-button.large{width:44px;height:44px;font-size:1.0625rem}.mobile-day-strip{display:flex;margin:-2px 0;padding:8px 0;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x;-webkit-overflow-scrolling:touch}.mobile-day-strip::-webkit-scrollbar{display:none}.mobile-day-strip-page{display:grid;flex:0 0 100%;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;scroll-snap-align:center;scroll-snap-stop:always}.mobile-day-strip button{display:grid;gap:3px;align-content:center;justify-items:center;min-height:56px;border:0;border-radius:15px;padding:7px 0;background:transparent;cursor:pointer;transition:background .16s ease,transform .16s ease,box-shadow .16s ease}.mobile-day-strip button:active{transform:scale(.92)}.mobile-day-strip span{color:light-dark(#8a9387,#6e776b);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);text-transform:uppercase}.mobile-day-strip strong{color:var(--ink);font-size:1.0625rem;font-weight:var(--font-weight-bold);line-height:1}.mobile-day-strip button.today:not(.selected) span,.mobile-day-strip button.today:not(.selected) strong{color:var(--green-deep)}.mobile-day-strip button.selected{background:light-dark(#286345,#2f7a53);box-shadow:0 8px 18px #173f2b42}.mobile-day-strip button.selected span{color:#ffffffbf}.mobile-day-strip button.selected strong{color:#fff}.mobile-court-chips{display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none}.mobile-court-chips::-webkit-scrollbar{display:none}.mobile-court-chips button{flex:0 0 auto;min-height:34px;border:0;border-radius:999px;padding:0 13px;background:var(--surface);box-shadow:0 0 0 .5px light-dark(rgba(23,33,27,.09),rgba(231,236,228,.12));color:light-dark(#4c584c,#aab5ab);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);transition:background .16s ease,color .16s ease,transform .16s ease}.mobile-court-chips button:active{transform:scale(.95)}.mobile-court-chips button.selected{background:light-dark(#173f2b,#2f7a53);box-shadow:none;color:#fff}.mobile-chip-count{flex:0 0 auto;margin-left:auto;padding-left:8px;color:light-dark(#8a9387,#6e776b);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap}.mobile-pull-indicator{display:grid;place-items:center;overflow:hidden;color:var(--green-deep)}.mobile-pull-indicator.refreshing svg{animation:mobile-spin .8s linear infinite}@keyframes mobile-spin{to{transform:rotate(360deg)}}.mobile-calendar-page .calendar-feedback{padding:10px 14px 0}.mobile-calendar-page .calendar-layout{display:grid;grid-template-columns:1fr;gap:12px;height:auto}.mobile-calendar-page .calendar-main-panel{min-height:60dvh;height:auto;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}.mobile-calendar-page .calendar-main-panel:after,.mobile-calendar-page .scroll-more-indicator{display:none}.mobile-calendar-page .calendar-scroll-area{height:auto;max-height:none;overflow:visible}.mobile-calendar-page .calendar-loading{border:0;background:transparent;padding:48px 14px;text-align:center}.mobile-agenda{display:grid;gap:4px;padding:2px 0 12px}.mobile-court-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 16px 6px}.mobile-court-heading strong{color:var(--muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);text-transform:uppercase}.mobile-court-heading span{color:light-dark(#8a9387,#6e776b);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.mobile-agenda-list{border-top:1px solid light-dark(rgba(223,229,216,.7),rgba(51,60,40,.7));border-bottom:1px solid light-dark(rgba(223,229,216,.7),rgba(51,60,40,.7));background:var(--surface)}.mobile-booking-row,.mobile-availability-row{display:grid;grid-template-columns:3.2rem 3px minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;border:0;border-bottom:1px solid light-dark(rgba(223,229,216,.6),rgba(51,60,40,.6));background:var(--surface);color:var(--ink);text-align:left}.mobile-booking-row:last-child,.mobile-availability-row:last-child{border-bottom:0}.mobile-booking-row{min-height:62px;padding:9px 14px;cursor:pointer;transition:background .14s ease}.mobile-booking-row:active{background:light-dark(#f1f4ec,#262e24)}.mobile-booking-row.selected{background:light-dark(#f3f7ee,#252d23)}.mobile-booking-time{display:grid;gap:2px}.mobile-booking-time b{color:var(--ink);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);line-height:1.1;white-space:nowrap}.mobile-booking-time small{color:light-dark(#98a094,#6e776b);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1.1;white-space:nowrap}.mobile-booking-accent{align-self:stretch;border-radius:2px;margin:3px 0;background:var(--booking-accent, var(--green))}.mobile-booking-accent.free{background:transparent}.mobile-booking-main{display:grid;min-width:0;gap:2px}.mobile-booking-main strong{overflow:hidden;color:var(--ink);font-size:1rem;font-weight:var(--font-weight-bold);line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.mobile-booking-main small{overflow:hidden;color:var(--muted);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap}.mobile-booking-tag{justify-self:end;border-radius:999px;padding:5px 10px;background:var(--booking-pill, rgba(204, 225, 95, .45));color:var(--booking-ink, var(--green-deep));font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);white-space:nowrap}.mobile-booking-tag.unpaid{background:light-dark(#fff1d2,#3d321a);color:light-dark(#805513,#e3b866)}.mobile-availability-row{min-height:46px;padding:6px 14px;background:light-dark(#f9fbf5,#191f18);cursor:pointer;transition:background .14s ease}.mobile-availability-row:active{background:light-dark(#eef4e5,#22291f)}.mobile-availability-row .mobile-booking-time b{color:light-dark(#98a094,#6e776b);font-weight:var(--font-weight-bold)}.mobile-availability-main{display:flex;align-items:baseline;gap:7px;min-width:0}.mobile-availability-main strong{color:light-dark(#788176,#8a948a);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.mobile-availability-main small{overflow:hidden;color:light-dark(#a3ac9e,#626b5d);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap}.mobile-availability-add{display:grid;width:28px;height:28px;place-items:center;border:1px dashed light-dark(#c3ccba,#3a4436);border-radius:50%;color:light-dark(#8a9387,#6e776b)}.mobile-now-line{position:relative;z-index:2;display:flex;align-items:center;gap:7px;height:18px;margin:-9px 0;padding:0 10px 0 6px;pointer-events:none}.mobile-now-line span{border-radius:6px;padding:2px 5px;background:light-dark(#d85a30,#e97a52);color:light-dark(#fff,#2a1209);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight)}.mobile-now-line:after{content:"";flex:1;height:2px;border-radius:1px;background:light-dark(#d85a30,#e97a52)}.mobile-week-list{display:grid;gap:10px;padding:12px 14px}.mobile-week-row{overflow:hidden;border:0;border-radius:16px;background:light-dark(#fbfcf8,#242520);box-shadow:0 0 0 .5px light-dark(rgba(23,33,27,.07),rgba(231,236,228,.09));transition:box-shadow .18s ease,background .18s ease}.mobile-week-row.selected{background:light-dark(#fff,#2b332a);box-shadow:0 0 0 1.5px #28634557,0 10px 24px #173f2b14}.mobile-week-summary{display:grid;grid-template-columns:3.9rem minmax(0,1fr);gap:10px;width:100%;border:0;padding:14px;background:transparent;cursor:pointer;text-align:left;transition:filter .14s ease}.mobile-week-summary:active{filter:brightness(.96)}.mobile-week-summary>span:first-child{display:grid;gap:2px}.mobile-week-summary>span:first-child strong{color:var(--green-deep);font-size:var(--font-size-2xs);text-transform:uppercase}.mobile-week-summary>span:first-child small{color:var(--ink);font-size:1.0625rem;font-weight:var(--font-weight-bold)}.mobile-week-stats{display:grid;gap:2px}.mobile-week-stats strong{font-size:var(--font-size-md)}.mobile-week-stats small{color:var(--muted);font-size:var(--font-size-xs)}.mobile-week-summary .occupancy-bar{grid-column:1 / -1}.mobile-week-detail{display:grid;gap:10px;padding:0 14px 14px}.mobile-week-court{display:grid;gap:7px}.mobile-week-court>span{color:light-dark(#778176,#8a948a);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.mobile-week-court button,.mobile-week-court small{display:grid;grid-template-columns:3.4rem minmax(0,1fr);gap:8px;align-items:center;min-height:42px;border:1px solid var(--booking-border, rgba(40, 99, 69, .14));border-radius:12px;padding:8px 10px;background:var(--booking-bg, light-dark(#eff6ea, #22291f));color:var(--booking-ink, light-dark(#304433, #b6c1b8));cursor:pointer;text-align:left;transition:filter .14s ease,transform .14s ease}.mobile-week-court button:active{transform:scale(.98);filter:brightness(.96)}.mobile-week-court .mobile-week-availability{border-style:dashed;background:light-dark(rgba(248,250,245,.7),rgba(25,31,24,.7));color:light-dark(#8a9388,#6e776b)}.mobile-week-court .mobile-week-availability span{overflow:hidden;color:light-dark(#8a9388,#6e776b);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap}.mobile-week-court button strong{color:var(--booking-accent, var(--green));font-size:var(--font-size-2xs)}.mobile-week-court button span{overflow:hidden;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap}.mobile-week-court small{display:block;border-style:dashed;color:light-dark(#8a9388,#6e776b);cursor:default;font-size:var(--font-size-2xs)}.mobile-sheet-backdrop,.mobile-detail-backdrop{position:fixed;inset:0;z-index:45;display:grid;align-items:end;box-sizing:border-box;padding-top:56px;background:light-dark(rgba(23,33,27,.32),rgba(0,0,0,.55))}.mobile-sheet,.mobile-detail-sheet{position:relative;box-sizing:border-box;width:100%;border-radius:26px 26px 0 0;background:light-dark(#fbfcf8,#20261f);box-shadow:0 -24px 60px light-dark(rgba(23,33,27,.22),rgba(0,0,0,.5));touch-action:pan-y}.mobile-sheet{padding:30px 18px calc(20px + env(safe-area-inset-bottom))}.mobile-sheet:before,.mobile-detail-sheet:before{position:absolute;top:10px;left:50%;z-index:3;width:42px;height:4px;border-radius:999px;background:light-dark(rgba(138,147,135,.36),rgba(152,162,148,.4));content:"";transform:translate(-50%)}@media(prefers-reduced-motion:no-preference){.mobile-sheet-backdrop,.mobile-detail-backdrop{animation:mobile-dialog-backdrop-in .22s ease}.mobile-sheet,.mobile-detail-sheet{animation:mobile-sheet-in .36s cubic-bezier(.32,.72,0,1)}}@keyframes mobile-dialog-backdrop-in{0%{opacity:0}}@keyframes mobile-sheet-in{0%{transform:translateY(100%)}to{transform:none}}.mobile-detail-sheet .calendar-detail{position:static;width:100%;height:auto;max-height:min(calc(100dvh - 56px),720px);overflow:auto;border:0;border-radius:26px 26px 0 0;padding:28px 18px calc(22px + env(safe-area-inset-bottom));background:transparent;box-shadow:none;overscroll-behavior:contain}.mobile-detail-sheet .calendar-detail h2{font-size:var(--font-size-xl);letter-spacing:var(--letter-spacing-tight)}.mobile-detail-sheet .calendar-detail dl{display:grid;margin:0;border-radius:16px;padding:2px 14px;background:var(--surface);box-shadow:0 0 0 .5px light-dark(rgba(23,33,27,.08),rgba(231,236,228,.1))}.mobile-detail-sheet .calendar-detail dl div{display:flex;align-items:baseline;justify-content:space-between;gap:14px;border-bottom:1px solid light-dark(rgba(223,229,216,.55),rgba(51,60,40,.55));padding:10px 0}.mobile-detail-sheet .calendar-detail dl div:last-child{border-bottom:0}.mobile-detail-sheet .calendar-detail dt{flex:0 0 auto;color:light-dark(#7c877c,#8a948a);font-size:var(--font-size-sm)}.mobile-detail-sheet .calendar-detail dd{min-width:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:right}.mobile-detail-sheet .detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mobile-detail-sheet .detail-actions button{min-height:48px;border:0;border-radius:14px;padding:0 10px;background:var(--surface);box-shadow:0 0 0 .5px light-dark(rgba(23,33,27,.1),rgba(231,236,228,.12));font-size:var(--font-size-sm);transition:transform .14s ease,filter .14s ease}.mobile-detail-sheet .detail-actions button:active{transform:scale(.97);filter:brightness(.95)}.mobile-detail-sheet .detail-actions .primary-detail-action{grid-column:1 / -1;min-height:52px;background:light-dark(#286345,#2f7a53);box-shadow:none;color:#fff;font-size:var(--font-size-md)}.mobile-detail-sheet .detail-actions .danger-action{grid-column:1 / -1;background:light-dark(#fbeeeb,#392420);box-shadow:none;color:var(--danger)}.mobile-detail-sheet .detail-actions .detail-action-note{grid-column:1 / -1}.mobile-view-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:16px;border-radius:13px;padding:3px;background:light-dark(rgba(23,33,27,.06),rgba(231,236,228,.08))}.mobile-view-toggle button{min-height:42px;border:0;border-radius:10px;background:transparent;color:light-dark(#59645a,#96a197);cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.mobile-view-toggle button.selected{background:light-dark(#fff,#3c443c);color:var(--ink);box-shadow:0 2px 7px #17211b24,0 0 0 .5px #17211b0a}.mobile-month-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.mobile-month-nav strong{font-size:1.0625rem;font-weight:var(--font-weight-bold)}.mobile-month-nav button{display:grid;width:38px;height:38px;place-items:center;border:0;border-radius:12px;background:var(--surface);box-shadow:0 0 0 .5px light-dark(rgba(23,33,27,.09),rgba(231,236,228,.12));color:var(--green-deep);cursor:pointer;transition:transform .14s ease}.mobile-month-nav button:active{transform:scale(.92)}.mobile-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.mobile-month-grid>span{padding:6px 0;color:light-dark(#8a9387,#6e776b);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);text-align:center}.mobile-month-grid button{position:relative;display:grid;aspect-ratio:1;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);transition:background .14s ease,transform .14s ease}.mobile-month-grid button:active{transform:scale(.9)}.mobile-month-grid button.outside{color:light-dark(#b3bab0,#4f584c)}.mobile-month-grid button.today{color:var(--green-deep);font-weight:var(--font-weight-bold)}.mobile-month-grid button.has-bookings:after{position:absolute;bottom:4px;left:50%;width:4px;height:4px;border-radius:50%;background:currentColor;content:"";opacity:.55;transform:translate(-50%)}.mobile-month-grid button.selected{background:light-dark(#286345,#2f7a53);color:#fff}.mobile-account-identity{display:flex;align-items:center;gap:12px;margin-bottom:16px}.mobile-account-identity div{display:grid;gap:1px;min-width:0}.mobile-account-identity strong{overflow:hidden;font-size:1.0625rem;text-overflow:ellipsis;white-space:nowrap}.mobile-account-identity span:not(.mobile-avatar-button){color:var(--muted);font-size:var(--font-size-sm)}.mobile-account-actions{display:grid;gap:8px}.mobile-account-actions button{display:flex;align-items:center;gap:12px;min-height:52px;border:0;border-radius:14px;padding:0 14px;background:var(--surface);box-shadow:0 0 0 .5px light-dark(rgba(23,33,27,.09),rgba(231,236,228,.12));color:var(--ink);cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);text-align:left;transition:transform .14s ease,filter .14s ease}.mobile-account-actions button:active{transform:scale(.98);filter:brightness(.95)}.mobile-account-actions button svg{color:var(--green-deep)}.mobile-account-actions button.danger{background:light-dark(#fbeeeb,#392420);box-shadow:none;color:var(--danger)}.mobile-account-actions button.danger svg{color:var(--danger)}.mobile-account-build{margin:14px 0 0;color:light-dark(#9aa395,#626b5d);font-size:var(--font-size-2xs);text-align:center}@media(max-width:360px){.mobile-booking-row,.mobile-availability-row{grid-template-columns:2.9rem 3px minmax(0,1fr) auto;gap:9px}.mobile-month-button{font-size:var(--font-size-2xl)}}@media(max-width:1280px){.settings-layout{grid-template-columns:1fr}}@media(max-width:900px){.panel-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.handoff-grid,.virtual-user-card,.upstream-session-list li{grid-template-columns:1fr}.upstream-session-actions{justify-content:flex-start}.version-grid{grid-template-columns:1fr}.version-card+.version-card{border-top:1px solid var(--line);border-left:0}.virtual-user-actions{justify-content:flex-start}.calendar-layout{grid-template-columns:1fr}.calendar-detail{position:static}}@media(max-width:1200px){.week-mode .calendar-layout{grid-template-columns:1fr}.week-mode .calendar-detail{position:static}.week-mode .week-calendar{grid-template-columns:repeat(7,minmax(84px,1fr));overflow-x:visible}.week-mode .week-day{min-height:520px;padding:10px}.week-mode .week-day-header,.week-mode .week-timeline .week-booking-card,.week-mode .week-timeline .availability-gap,.week-mode .empty-slot{padding:8px}.week-mode .week-day-header strong{font-size:var(--font-size-base)}.week-mode .week-day-metrics,.week-mode .week-timeline .week-booking-card strong,.week-mode .empty-slot{font-size:var(--font-size-2xs)}}@media(max-width:560px){.login-page,.content{padding:22px}.login-card{padding:24px;border-radius:18px}.topbar{flex-direction:column}.calendar-topbar,.topbar-actions{flex-direction:column;align-items:stretch}.placeholder-editor-backdrop{align-items:flex-end;justify-content:stretch}.placeholder-editor{position:relative;width:100%;height:min(88dvh,780px);border-top-left-radius:26px;border-top-right-radius:26px;border-left:0}.placeholder-editor:before{position:absolute;top:10px;left:50%;z-index:3;width:42px;height:4px;border-radius:999px;background:light-dark(rgba(138,147,135,.36),rgba(110,119,107,.36));content:"";transform:translate(-50%)}.slot-choice-backdrop{align-items:flex-end;padding:0}.slot-choice-dialog{position:relative;width:100%;border:0;border-radius:26px 26px 0 0;padding:26px 18px calc(20px + env(safe-area-inset-bottom))}.slot-choice-dialog:before{position:absolute;top:10px;left:50%;width:42px;height:4px;border-radius:999px;background:light-dark(rgba(138,147,135,.36),rgba(110,119,107,.36));content:"";transform:translate(-50%)}@media(prefers-reduced-motion:no-preference){.placeholder-editor,.slot-choice-dialog{animation:mobile-sheet-in .36s cubic-bezier(.32,.72,0,1)}.placeholder-editor-backdrop,.slot-choice-backdrop{animation:mobile-dialog-backdrop-in .22s ease}}.placeholder-editor,.placeholder-editor form,.placeholder-editor-fields{max-width:100vw;max-width:100dvw;overflow-x:hidden}.placeholder-editor input,.placeholder-editor select,.placeholder-editor textarea{font-size:var(--font-size-base)}.form-grid.two,.time-grid,.editor-actions,.court-choice-grid,.permission-section>div{grid-template-columns:1fr}.detail-stack-list>div{grid-template-columns:1fr}.detail-stack-list button{justify-content:center}}
