:root{--bg:#f6f7f4;--surface:#ffffff;--surface-strong:#f0f4ef;--ink:#1f2a24;--ink-muted:#607067;--line:#d9e0d9;--line-strong:#c4cdc5;--teal:#0f766e;--teal-strong:#0b5f59;--amber:#b7791f;--danger:#b42318;--success:#0f766e;--shadow:0 18px 48px rgba(35,48,40,0.08);--radius:8px;--font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{background:var(--bg);color:var(--ink);font-family:var(--font)}body{margin:0;min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}svg{display:block;height:18px;width:18px}.public-shell{min-height:100vh;padding:24px}.booking-workspace{margin:0 auto;max-width:1380px}.admin-header,.booking-header,.connection-title,.header-actions,.muted-inline,.privacy-chip,.request-summary,.section-heading,.toolbar-row{align-items:center;display:flex}.booking-header{justify-content:space-between;margin-bottom:18px}.brand-lockup{align-items:center;display:inline-flex;gap:12px}.brand-lockup small,.brand-lockup strong{display:block}.brand-lockup strong{font-size:15px;line-height:1.2}.brand-lockup small{color:var(--ink-muted);font-size:12px;line-height:1.3;margin-top:2px}.brand-mark{align-items:center;background:var(--ink);border-radius:var(--radius);color:#fff;display:inline-flex;font-size:13px;font-weight:800;height:38px;justify-content:center;width:38px}.connect-button,.icon-button,.primary-button,.quiet-link,.secondary-button,.text-button{align-items:center;border-radius:var(--radius);display:inline-flex;font-size:14px;font-weight:700;gap:8px;justify-content:center;min-height:40px;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.quiet-link,.secondary-button{background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:0 14px}.icon-button:hover,.quiet-link:hover,.secondary-button:hover,.text-button:hover{border-color:var(--line-strong);transform:translateY(-1px)}.primary-button{background:var(--teal);border:1px solid var(--teal);color:#fff;padding:0 16px}.primary-button:hover{background:var(--teal-strong)}.booking-layout{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1fr) 360px}.admin-section,.availability-panel,.metric-tile,.request-panel,.rules-panel,.setup-banner{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.availability-panel{min-height:calc(100vh - 90px);padding:28px}.request-panel{align-self:start;min-height:620px;padding:22px;position:-webkit-sticky;position:sticky;top:24px}.availability-heading{align-items:flex-start;display:flex;gap:24px;justify-content:space-between;margin-bottom:22px}h1,h2,h3,p{margin:0}h1{font-size:34px;line-height:1.08;max-width:720px}h2{font-size:19px;line-height:1.2}h3{font-size:16px;line-height:1.25}.admin-header p,.availability-heading p,.section-heading p,.setup-banner span{color:var(--ink-muted);font-size:15px;line-height:1.55;margin-top:8px;max-width:760px}.muted-inline,.privacy-chip{color:var(--ink-muted);flex:0 0 auto;font-size:13px;gap:8px;white-space:nowrap}.privacy-chip{background:var(--surface-strong);border:1px solid var(--line);border-radius:var(--radius);color:var(--teal-strong);min-height:38px;padding:0 12px}.team-strip{border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:22px;padding:14px 0}.team-person{align-items:center;display:flex;gap:10px;min-width:0}.team-person small,.team-person strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-person strong{font-size:14px}.team-person small{color:var(--ink-muted);font-size:12px;margin-top:3px}.avatar-dot{border-radius:999px;display:inline-block;flex:0 0 auto;height:12px;width:12px}.avatar-dot.large{height:42px;width:42px}.toolbar-row{flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:18px}.segmented-control{background:var(--surface-strong);border:1px solid var(--line);border-radius:var(--radius);display:inline-grid;grid-auto-columns:minmax(84px,auto);grid-auto-flow:column;padding:3px}.segmented-control button{background:transparent;border:0;border-radius:6px;color:var(--ink-muted);font-size:13px;font-weight:800;min-height:34px;padding:0 12px}.segmented-control button.active{background:var(--surface);box-shadow:0 1px 8px rgba(35,48,40,.1);color:var(--ink)}.slot-board{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(7,minmax(112px,1fr));min-height:410px;overflow-x:auto;padding-bottom:4px}.day-column{background:#fbfcfa;border:1px solid var(--line);border-radius:var(--radius);min-width:112px;padding:12px}.day-column h2{font-size:13px;margin-bottom:12px}.slot-list{display:grid;grid-gap:8px;gap:8px}.slot-button{background:var(--surface);border:1px solid var(--line);border-radius:7px;color:var(--ink);font-size:13px;font-weight:750;min-height:38px;padding:0 8px;text-align:center}.slot-button.selected,.slot-button:hover{border-color:var(--teal)}.slot-button.selected{background:#e7f5f2;color:var(--teal-strong)}.request-summary{align-items:flex-start;border-bottom:1px solid var(--line);gap:12px;margin-bottom:18px;padding-bottom:18px}.icon-tile{align-items:center;background:#e7f5f2;border-radius:var(--radius);color:var(--teal);display:inline-flex;height:42px;justify-content:center;width:42px}.request-summary small,.request-summary strong,.summary-label{display:block}.request-summary strong{font-size:16px;line-height:1.35;margin:3px 0}.request-summary small,.summary-label{color:var(--ink-muted);font-size:12px}.booking-form,.settings-stack{display:grid;grid-gap:14px;gap:14px}label{color:var(--ink);display:grid;font-size:13px;font-weight:800;grid-gap:7px;gap:7px}input,select,textarea{background:#fbfcfa;border:1px solid var(--line);border-radius:7px;color:var(--ink);min-height:40px;padding:0 11px;width:100%}textarea{line-height:1.45;padding:10px 11px;resize:vertical}a:focus-visible,button:focus-visible,input:focus,select:focus,textarea:focus{outline:3px solid rgba(15,118,110,.18);outline-offset:2px}.notice{align-items:center;border-radius:var(--radius);display:flex;font-size:14px;font-weight:750;gap:10px;line-height:1.4;margin-top:16px;padding:12px}.notice.success{background:#e7f5f2;color:var(--success)}.notice.error{background:#fff1f0;color:var(--danger)}.notice.info{background:#f4f7fb;color:#315376}.empty-state{align-items:center;background:#fbfcfa;border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--ink-muted);display:flex;flex-direction:column;font-size:14px;gap:8px;grid-column:1/-1;justify-content:center;min-height:320px;text-align:center}.empty-state strong{color:var(--ink);font-size:17px}.admin-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.login-shell{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:24px}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:grid;grid-gap:22px;gap:22px;max-width:460px;padding:26px;width:100%}.login-heading{display:grid;grid-gap:10px;gap:10px}.login-heading h1{font-size:27px}.login-heading p{color:var(--ink-muted);font-size:15px;line-height:1.5}.side-nav{background:#f1f4f0;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:28px;padding:24px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.side-nav nav{display:grid;grid-gap:6px;gap:6px}.side-nav nav a{align-items:center;border-radius:var(--radius);color:var(--ink-muted);display:flex;font-size:14px;font-weight:800;gap:10px;min-height:42px;padding:0 10px}.side-nav nav a:hover{background:var(--surface);color:var(--ink)}.privacy-note{align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink-muted);display:flex;font-size:13px;gap:10px;line-height:1.45;margin-top:auto;padding:14px}.privacy-note svg{color:var(--teal);flex:0 0 auto}.admin-content{padding:28px}.admin-header{gap:18px;justify-content:space-between;margin-bottom:18px}.admin-header h1{font-size:30px}.header-actions{flex-wrap:wrap;gap:10px}.admin-email{color:var(--ink-muted);font-size:13px;font-weight:750}.setup-banner{align-items:flex-start;display:flex;gap:12px;margin-bottom:18px;padding:16px}.setup-banner svg{color:var(--amber);flex:0 0 auto}.metric-row{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.metric-tile{box-shadow:none;padding:16px}.metric-tile span,.metric-tile strong{display:block}.metric-tile span{color:var(--ink-muted);font-size:12px;font-weight:800}.metric-tile strong{font-size:26px;line-height:1;margin-top:8px}.admin-section{box-shadow:none;margin-bottom:18px;padding:22px}.section-heading{justify-content:space-between;margin-bottom:16px}.section-heading.compact{margin-bottom:14px}.connection-list,.member-list,.member-row{display:grid;grid-gap:12px;gap:12px}.member-row{border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:280px minmax(0,1fr);padding:14px}.member-summary{align-items:center;display:grid;grid-gap:12px;gap:12px;grid-template-columns:42px minmax(0,1fr) 48px}.member-summary p{color:var(--ink-muted);font-size:13px;line-height:1.35;margin-top:3px}.switch-control{display:inline-flex;justify-self:end}.switch-control input{position:absolute;opacity:0;pointer-events:none}.switch-control span{background:#cbd5cd;border-radius:999px;height:26px;position:relative;width:46px}.switch-control span:after{background:#fff;border-radius:999px;box-shadow:0 1px 4px rgba(0,0,0,.18);content:"";height:20px;left:3px;position:absolute;top:3px;transition:transform .16s ease;width:20px}.switch-control input:checked+span{background:var(--teal)}.switch-control input:checked+span:after{transform:translateX(20px)}.required-chip{background:#e7f5f2;border-radius:999px;color:var(--teal-strong);font-size:11px;font-weight:850;justify-self:end;padding:5px 9px;text-transform:uppercase}.connection-row{align-items:center;background:#fbfcfa;border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(180px,1.2fr) minmax(220px,1fr) auto;padding:12px}.connection-main small{color:var(--ink-muted);display:block;font-size:12px;margin-top:4px;overflow-wrap:anywhere}.connection-title{gap:8px}.connection-title strong{font-size:14px}.status-dot{border-radius:999px;font-size:11px;font-weight:850;padding:4px 8px}.status-dot.connected{background:#e7f5f2;color:var(--teal-strong)}.status-dot.needs_attention{background:#fff1f0;color:var(--danger)}.calendar-checks{display:grid;grid-gap:8px;gap:8px}.calendar-checks label,.checkbox-label{align-items:center;color:var(--ink);display:flex;flex-direction:row;font-size:13px;font-weight:750;gap:8px;min-width:0}.calendar-checks input,.checkbox-label input{height:16px;min-height:16px;width:16px}.calendar-checks span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-actions{align-items:center;display:flex;gap:8px;justify-content:flex-end}.icon-button{background:var(--surface);border:1px solid var(--line);color:var(--ink);height:38px;padding:0;width:38px}.text-button{background:transparent;border:1px solid transparent;color:var(--ink-muted);padding:0 8px}.text-button.danger{color:var(--danger)}.connect-button{background:#e7f5f2;border:1px dashed rgba(15,118,110,.45);color:var(--teal-strong);min-height:42px;width:100%}.connection-empty{background:#fbfcfa;border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--ink-muted);font-size:13px;font-weight:750;padding:14px}.dev-link-box{background:#fbfcfa;border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-gap:8px;gap:8px;overflow-wrap:anywhere;padding:12px}.dev-link-box strong{font-size:13px}.dev-link-box a{color:var(--teal-strong);font-size:12px;line-height:1.45;text-decoration:underline}.two-column{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.rules-panel{box-shadow:none;padding:18px}.settings-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:16px}.weekday-grid{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.weekday-row{align-items:center;border-bottom:1px solid var(--line);display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(120px,1fr) 136px 136px;padding:10px}.weekday-row input[type=time]{min-width:136px}.weekday-row:last-child{border-bottom:0}.request-table{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.request-table-head,.request-table-row{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(180px,1fr) minmax(220px,1fr) 120px}.request-table-head{background:var(--surface-strong);color:var(--ink-muted);font-size:12px;font-weight:850;padding:11px 12px}.request-table-row{align-items:center;border-top:1px solid var(--line);font-size:14px;padding:12px}.request-table-row small,.request-table-row strong{display:block}.request-table-row small{color:var(--ink-muted);font-size:12px;margin-top:3px}.request-empty{color:var(--ink-muted);font-size:14px;padding:22px 12px}@media (max-width:1080px){.admin-shell,.booking-layout,.member-row,.two-column{grid-template-columns:1fr}.side-nav{border-bottom:1px solid var(--line);border-right:0;height:auto;position:static}.side-nav nav{grid-template-columns:repeat(3,minmax(0,1fr))}.privacy-note{margin-top:0}.request-panel{min-height:0;position:static}.metric-row{grid-template-columns:repeat(2,minmax(0,1fr))}.connection-row{grid-template-columns:1fr}.row-actions{justify-content:flex-start}}@media (max-width:760px){.admin-content,.admin-section,.availability-panel,.public-shell,.request-panel,.side-nav{padding:16px}.admin-header,.availability-heading{align-items:flex-start;flex-direction:column}.admin-header h1,h1{font-size:25px}.metric-row,.request-table-head,.request-table-row,.settings-grid,.slot-board,.team-strip{grid-template-columns:1fr}.slot-board{overflow-x:visible}.side-nav nav{grid-template-columns:1fr}.weekday-row{grid-template-columns:1fr 1fr}.weekday-row .checkbox-label{grid-column:1/-1}.segmented-control{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}}