:root{color-scheme:light;--bg:#f4f6f8;--surface:#ffffff;--text:#172029;--muted:#5c6773;--border:#c5ccd4;--accent:#b85c38;--accent-text:#ffffff;--ok-bg:#e8f5e9;--ok-border:#81c784;--warn-bg:#fff8e1;--warn-border:#ffb74d;--err-bg:#fdecea;--err-border:#e57373}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,sans-serif}a{color:var(--accent)}button,input,select,textarea{color:var(--text);font:inherit}input,select,textarea{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,white);outline-offset:1px;border-color:var(--accent)}select option{background:var(--surface);color:var(--text)}.fb-app{min-height:100vh;display:flex;background:#fff;color:var(--text)}.fb-app-fill{height:100vh;overflow:hidden}.fb-side{width:232px;flex:none;background:#f6f7f8;border-right:1px solid #e6e8eb;display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;align-self:flex-start}.fb-app-fill .fb-side,.fb-side{height:100vh;overflow:auto}.fb-brand{padding:18px 18px 4px;font-weight:700;letter-spacing:-.03em;font-size:16px;text-decoration:none;color:var(--text)}.fb-nav-label{margin:18px 18px 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#8b919a;font-weight:650}.fb-nav a{display:block;padding:5px 18px;color:#1c1e21;text-decoration:none;font-size:14px}.fb-nav a.active{font-weight:700;text-decoration:underline;text-underline-offset:3px}.fb-main{flex:1 1;min-width:0;background:var(--bg)}.fb-main-fill{background:#fff;display:flex;flex-direction:column;height:100vh;min-height:0}.fb-page{padding:28px 28px 48px;max-width:960px}.fb-page-title{letter-spacing:-.03em;margin:0 0 8px;font-size:28px}.fb-page-sub{color:var(--muted);margin:0 0 24px}.fb-mini{padding:12px 14px 4px}.fb-mini-bar{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:650;margin-bottom:8px}.fb-mini-nav{display:flex;gap:2px}.fb-mini-nav button{border:none;background:transparent;color:var(--text);font-size:18px;line-height:1;padding:0 4px;cursor:pointer}.fb-mini-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px 0;gap:2px 0;text-align:center}.fb-mini-dow{font-size:11px;color:#8b919a;padding:4px 0}.fb-mini-day{width:28px;height:28px;margin:0 auto;display:flex;align-items:center;justify-content:center;border-radius:50%;text-decoration:none;color:var(--text);font-size:13px}.fb-mini-day.is-out{color:#c5c8ce}.fb-mini-day.is-busy{background:#e4e6ea}.fb-mini-day.is-today{box-shadow:inset 0 0 0 1.5px #1c1e21}.fb-mini-day.is-selected{background:#1c1e21;color:#fff}.fb-cal{display:flex;flex-direction:column;min-height:0;flex:1 1}.fb-cal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 28px 0}.fb-cal-top h1{margin:0;font-size:28px;letter-spacing:-.03em;font-weight:650}.fb-cal-top p{margin:4px 0 0;color:#6b7280;font-size:14px}.fb-add{background:#1c1e21;color:#fff;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:8px 16px;border-radius:4px;border:none;cursor:pointer;font-family:inherit}.fb-cal-desk{display:flex;flex:1 1;min-width:0;min-height:0}.fb-book-panel{width:400px;flex:none;display:flex;flex-direction:column;min-height:0;background:#fff;border-right:1px solid #e6e8eb;box-shadow:8px 0 28px rgba(23,32,41,.08)}.fb-book-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 18px 4px}.fb-book-panel-head h2{margin:0;font-size:20px;letter-spacing:-.03em}.fb-book-panel-close{border:none;background:transparent;color:#1c1e21;font-size:26px;line-height:1;padding:0 4px;cursor:pointer}.fb-book-panel-body{overflow:auto;min-height:0;padding:8px 18px 36px}.fb-cal-desk .fb-cal{flex:1 1;min-width:0}button.fb-slot{display:block;width:100%;margin:0;border:none;padding:0;cursor:pointer;background:transparent;font:inherit}button.fb-slot.is-picked{background:rgba(184,92,56,.16);box-shadow:inset 3px 0 0 var(--accent)}.fb-cal-toolbar{display:flex;align-items:center;gap:8px;padding:16px 28px 12px}.fb-tool{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 10px;border:1px solid #d5d8dd;border-radius:6px;background:#fff;color:#1c1e21;text-decoration:none;font-size:14px}.fb-today{padding:0 12px;font-weight:600}.fb-seg{display:inline-flex;margin-left:8px;border:1px solid #d5d8dd;border-radius:6px;overflow:hidden}.fb-seg a{padding:6px 14px;text-decoration:none;color:#1c1e21;font-size:14px;background:#fff}.fb-seg a+a{border-left:1px solid #d5d8dd}.fb-seg a.active{background:#1c1e21;color:#fff}.fb-cal-scroll{flex:1 1;overflow:auto;min-height:0;border-top:1px solid #e6e8eb}.fb-cal-head{display:flex;top:0;z-index:5;border-bottom:1px solid #e6e8eb}.fb-cal-head,.fb-gutter{position:-webkit-sticky;position:sticky;background:#fff}.fb-gutter{width:68px;flex:none;left:0;z-index:4}.fb-cal-head .fb-gutter{z-index:6}.fb-col,.fb-col-head{flex:1 0 168px;min-width:168px}.fb-col-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-left:1px solid #eef0f2;font-size:13px;font-weight:650}.fb-col-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fb-dot{width:8px;height:8px;border-radius:50%;flex:none}.fb-cal-body{display:flex;position:relative}.fb-gutter-body{border-right:1px solid #eef0f2}.fb-hour-label{box-sizing:border-box;text-align:right;padding:4px 8px 0 0;font-size:12px;color:#8b919a}.fb-cols{display:flex;flex:1 1}.fb-col,.fb-cols{position:relative}.fb-col{border-left:1px solid #eef0f2;background-image:repeating-linear-gradient(180deg,transparent 0,transparent 71px,#e6e8eb 0,#e6e8eb 72px)}.fb-slot{position:absolute;left:0;right:0;z-index:1}.fb-slot:hover{background:rgba(23,32,41,.04)}.fb-off{position:absolute;left:0;right:0;z-index:0;background:repeating-linear-gradient(-45deg,#f4f5f6,#f4f5f6 6px,#e7e9ec 0,#e7e9ec 7px)}.fb-block{position:absolute;z-index:2;box-sizing:border-box;overflow:hidden;border-radius:3px;border:1px solid;padding:4px 6px;font-size:12px;line-height:1.3;text-decoration:none;display:flex;flex-direction:column;gap:1px}.fb-block strong{font-size:12.5px}.fb-block strong,.fb-block-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fb-block-meta{opacity:.85}.fb-unpaid{color:#8a5a00;font-weight:700}.fb-block>*{flex-shrink:0}.fb-remote{align-self:flex-start;max-width:100%;overflow:hidden;text-overflow:ellipsis;margin-top:2px;padding:0 5px;border-radius:3px;background:rgba(23,32,41,.1);font-size:11px;font-weight:650;white-space:nowrap}.fb-block.is-elsewhere{border-style:dashed;opacity:.72}.fb-busy{position:absolute;left:0;right:0;z-index:1;box-sizing:border-box;overflow:hidden;padding:3px 6px;border-left:3px solid #9aa1a8;background:repeating-linear-gradient(-45deg,#eceef1,#eceef1 6px,#dfe2e6 0,#dfe2e6 8px);color:#4a5158;font-size:11px;font-weight:600;pointer-events:none}.fb-col-note{display:block;font-size:11px;font-weight:500;color:var(--muted)}.fb-block:hover{filter:brightness(.97)}.fb-now{left:0;right:0;height:2px;z-index:4;pointer-events:none}.fb-now,.fb-now:before{position:absolute;background:#e10600}.fb-now:before{content:"";left:-1px;top:-4px;width:10px;height:10px;border-radius:50%}.fb-side-foot{margin-top:auto;padding:14px 18px 18px;border-top:1px solid #e6e8eb}.fb-side-who{font-size:13px;font-weight:650}.fb-side-role{font-size:12px;color:#8b919a;margin-top:1px}.fb-side-foot button{margin-top:4px;padding:0;border:none;background:transparent;color:var(--accent);cursor:pointer;font-size:13px}.fb-login{min-height:100vh;display:grid;place-items:center;padding:24px}.fb-login-card{width:min(420px,100%);background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px 28px 24px}.fb-login-card h1{margin:0 0 8px;letter-spacing:-.03em;font-size:28px}.fb-login-card p{margin:0 0 18px;color:var(--muted)}.fb-login-error{background:var(--err-bg);border:1px solid var(--err-border);border-radius:8px;padding:10px 12px;color:var(--text)}.fb-login-card button{width:100%;border:none;border-radius:8px;padding:12px 16px;background:var(--accent);color:var(--accent-text);font-weight:650;cursor:pointer}.fb-login-card button:disabled{opacity:.5;cursor:not-allowed}