:root{--blue:#1e88e5;--ink:#193247;--muted:#586c7c;--frame:#fff;--line:#e4eaf0;--control:#b5c3cf;--pale:#e3f2fd;--negative:#9e392d;font:14px/1.45 Roboto,Arial,sans-serif;color:var(--ink);background:var(--frame);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--control);border-radius:5px;background:#fff;padding:7px 12px;min-height:36px}button:hover:not(:disabled){background:#f2f6f9}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--blue);color:#fff;border-color:var(--blue)}button.primary:hover:not(:disabled){background:#1976d2}a{color:#1267ad}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1{font-size:24px;line-height:1.2;margin-bottom:7px}h2{font-size:18px;margin-bottom:12px}h3{font-size:15px}small,.muted{color:var(--muted)}:focus-visible{outline:3px solid var(--blue);outline-offset:3px}[hidden]{display:none!important}.error{color:var(--negative)}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:20px;text-decoration:none}.brand svg{width:32px;height:32px;color:var(--blue)}.signin{min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--frame)}.signin-content{max-width:460px;background:#fff;padding:40px;border:1px solid var(--line);border-radius:12px}.signin .brand{margin-bottom:44px}.signin h2{font-size:30px}.signin p{color:var(--muted)}.signin .primary{margin:18px 0;min-height:44px}.signin #signin-status{min-height:21px}.workspace{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100dvh}aside{padding:20px 12px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100dvh}aside .brand{padding:0 10px}.workspace-name{font-size:12px;color:var(--muted);padding:0 10px;margin:8px 0 28px}nav{display:grid;gap:3px}nav a{padding:9px 12px;min-height:38px;color:var(--muted);text-decoration:none;border-radius:5px}nav a:hover{background:#e7eef3;text-decoration:none}nav a[aria-current=page]{background:#e1e9ee;color:var(--ink);font-weight:600}nav .nav-group{font-size:12px;color:var(--muted);padding:18px 12px 5px}.account{margin-top:auto;display:grid;gap:5px;padding:18px 10px 0;font-size:12px}.account strong{font-size:14px}.account span{color:var(--muted)}.account button{justify-self:start;margin-top:8px}.work-area{min-width:0}.topbar{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 25px;font-size:12px;color:var(--muted)}#menu{display:none}.sheet{min-height:calc(100dvh - 56px);margin:0 8px 8px 0;border:1px solid var(--line);border-radius:16px;background:#fff;padding:26px 24px;min-width:0}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.page-head p{margin-bottom:0;color:var(--muted)}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:20px 0 18px}.toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar input[type=search]{width:280px}.toolbar label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:13px}input,select,textarea{border:1px solid var(--control);background:#fff;border-radius:5px;padding:8px 10px;min-height:36px;max-width:100%}textarea{min-height:100px;resize:vertical}.notice{background:#f4f8fb;padding:12px 14px;border:1px solid var(--line);border-radius:5px;margin:0 0 18px;color:var(--muted);font-size:13px}.tabs{display:flex;gap:20px;overflow:auto;border-bottom:1px solid var(--line)}.tabs button{border:0;border-bottom:2px solid transparent;background:none;border-radius:0;white-space:nowrap;padding:12px 0;color:var(--muted)}.tabs button[aria-selected=true]{border-bottom-color:var(--blue);color:var(--ink);font-weight:500}.days{display:grid;grid-template-columns:repeat(6,minmax(76px,1fr));border-bottom:1px solid var(--line);overflow:auto}.days button{border:0;border-bottom:2px solid transparent;border-radius:0;text-align:left;background:none;padding:12px 8px}.days button[aria-selected=true]{border-color:var(--blue)}.days strong,.days small{display:block}.days small{margin-top:3px;font-size:12px}.days .date-today strong{color:#1267ad}.table-wrap{overflow:auto;width:100%}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th{text-align:left;font-weight:400;color:var(--muted);font-size:12px;padding:10px 12px}td{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:top;font-size:13px}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}.row-title{display:block;font-weight:500;font-size:14px;color:var(--ink);margin-bottom:3px}.row-meta{display:block;color:var(--muted);font-size:12px}.row-action{border:0;color:#1267ad;background:none;padding:0;min-height:28px}.numeric{text-align:right}.state{display:inline-block;font-size:12px;border:1px solid var(--line);padding:2px 6px;border-radius:4px;white-space:nowrap}.state.confirmed{background:#e3f2fd;color:#105b98;border-color:#bbdefb}.empty{padding:36px 0;color:var(--muted)}.pagination{display:flex;justify-content:space-between;align-items:center;padding:20px 0;font-size:13px;color:var(--muted)}.grid-table{border-collapse:separate;border-spacing:3px;min-width:1120px;table-layout:fixed}.grid-table th:first-child{width:170px;position:sticky;left:0;background:#fff;z-index:1}.grid-table td{border:0;padding:0;height:46px}.grid-table th{padding:6px 4px;font-size:12px}.grid-table tbody th{font-size:13px;font-weight:500}.grid-table .clinic-row th{padding-top:18px;color:#1267ad;font-size:12px}.slot{width:100%;height:46px;display:block;border-radius:4px;padding:5px 6px;line-height:1.25;text-align:left;font-size:12px;overflow:hidden;border:1px solid #d7e2eb;background:#fff}.slot.booked{background:#d0e8fb;border-color:#d0e8fb}.slot.confirmed{background:var(--blue);color:#fff;border-color:var(--blue)}.slot.prebooked{background:#f1f8fe;border:1px dashed var(--blue)}.slot.blocked{background:#e6ebee;color:#526373}.slot.off-grid{border:2px solid #a5631c}.slot:hover:not(:disabled){filter:brightness(.97)}.slot-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.legend{display:flex;gap:16px;flex-wrap:wrap;margin:18px 0;font-size:12px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:20px;height:12px;border:1px solid #d7e2eb;border-radius:2px}.legend .booked{background:#d0e8fb}.legend .confirmed{background:var(--blue);border-color:var(--blue)}.legend .prebooked{border:1px dashed var(--blue);background:#f1f8fe}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px}.detail-grid dt{color:var(--muted);font-size:12px;margin-bottom:5px}.detail-grid dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.detail-grid .long{grid-column:1/-1}.detail-grid dd:empty::after{content:'—';color:var(--muted)}.inline-link{overflow-wrap:anywhere}.stat-strip{display:flex;gap:28px;padding:15px 0 24px}.stat-strip strong{display:block;font-size:26px;font-weight:500}.stat-strip span{font-size:12px;color:var(--muted)}.section-title{margin-top:28px}.settings-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.settings-list button{text-align:left;padding:16px;border-color:var(--line)}.settings-list small{display:block;margin-top:5px}
dialog{border:1px solid var(--line);border-radius:12px;width:min(720px,calc(100vw - 32px));padding:0;max-height:90dvh;box-shadow:0 12px 48px #19324720}dialog::backdrop{background:#182d4055}dialog form{padding:24px}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:14px;margin-bottom:20px}.dialog-head h2{font-size:22px}.dialog-head p{font-size:12px;margin-bottom:4px}#editor-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}#editor-fields label{display:grid;gap:6px;font-size:13px}#editor-fields .wide{grid-column:1/-1}#editor-fields .field-hint{font-size:12px;color:var(--muted)}#editor-fields input,#editor-fields select,#editor-fields textarea{width:100%}dialog footer{display:flex;justify-content:end;gap:8px;padding-top:24px}#editor-error{margin:16px 0 0}#toast{position:fixed;bottom:24px;right:24px;max-width:480px;background:var(--ink);color:#fff;border-radius:6px;padding:14px 20px;z-index:10}.skeleton{padding:24px 0;color:var(--muted)}.text-panel{max-width:850px;white-space:pre-wrap}.conversation{display:grid;gap:12px}.message-row{padding:12px 0;border-bottom:1px solid var(--line)}.message-row p{white-space:pre-wrap;margin-bottom:6px}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr)}aside{display:none;position:fixed;inset:48px 0 0;z-index:5;background:var(--frame);height:calc(100dvh - 48px)}aside.open{display:flex}.sheet{margin:0 8px 8px;border-radius:12px}.topbar{padding:0 18px}#menu{display:block;min-height:32px;padding:3px 9px}.topbar #scope{margin-right:auto;margin-left:12px}}
@media(max-width:640px){.sheet{border:0;border-radius:0;margin:0;padding:22px 16px;min-height:calc(100dvh - 48px)}.page-head{align-items:start;margin-bottom:18px}.page-head .actions{justify-content:end}h1{font-size:22px}.page-head p{font-size:13px}.toolbar input[type=search]{width:100%}.toolbar-left{width:100%}.toolbar-left label{flex:1}.toolbar input[type=date]{width:140px}.days{margin:0 -8px}.days button{padding:10px 6px;min-height:54px}.days strong{font-size:12px}.table-wrap.record-table table,.table-wrap.record-table tbody{display:block}.record-table thead{display:none}.record-table tr{display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:13px 0;border-bottom:1px solid var(--line)}.record-table td{border:0;padding:0!important}.record-table td:first-child{grid-column:1}.record-table td:not(:first-child):not(:last-child){grid-column:1;color:var(--muted)}.record-table td:last-child{grid-column:2;grid-row:1/4;align-self:center}.detail-grid,#editor-fields,.settings-list{grid-template-columns:minmax(0,1fr)}.detail-grid .long,#editor-fields .wide{grid-column:1}.signin-content{padding:28px 22px}.signin h2{font-size:26px}.stat-strip{gap:20px}.stat-strip strong{font-size:23px}button{min-height:44px}#toast{left:16px;right:16px;bottom:16px}.grid-table button{min-height:46px}}

@media(max-width:640px){.days{margin:0}.days button{padding-left:4px}}

/* AppSheet look: one #1E88E5 app bar over a plain white page. */
.workspace{display:block}
.appbar{position:sticky;top:0;z-index:4;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:8px 20px;background:var(--blue);color:#fff}
.appbar .brand{flex:none;padding:3px 8px;border-radius:6px;background:#fff}
.brand-logo{display:block;width:auto;height:34px}
.signin .brand{justify-content:flex-start;margin-bottom:28px}.signin .brand-logo{width:240px;height:auto}.signin-content{border:0}.signin h2{font-size:24px;line-height:1.25}
.appnav{flex:1;min-width:0}
nav{display:flex;flex-wrap:wrap;gap:2px}
nav a{min-height:0;padding:7px 10px;border-radius:5px;color:#fff;white-space:nowrap}
nav a:hover{background:#ffffff29}
nav a[aria-current=page]{background:#fff;color:#1565c0;font-weight:600}
.account{display:flex;align-items:center;gap:10px;margin:0;padding:0;font-size:12px}
.account strong{font-size:13px;font-weight:500}.account span{color:#ffffffe0}
.appbar button{min-height:32px;padding:4px 10px;border-color:#ffffffa6;background:transparent;color:#fff}
.appbar button:hover:not(:disabled){background:#ffffff29}
.appbar :focus-visible{outline-color:#fff}
.account button{margin:0}
#menu{display:none}
.sheet{min-height:0;margin:0;padding:16px 20px;border:0;border-radius:0}
.page-head{margin-bottom:12px}.page-head h1{font-size:20px;margin-bottom:2px}.page-head p{font-size:13px}
.days{margin:0 -20px;padding:0}
.days button{padding:9px 14px;border-right:1px solid var(--line)}
.days button:last-child{border-right:0}
.days button:hover:not(:disabled){background:var(--pale)}
.days button[aria-selected=true]{background:var(--pale);border-bottom-color:var(--blue)}
.days small{color:#1267ad;font-weight:500}
.grid-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;margin:12px 0}
.grid-controls label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}
.legend{margin:0}.legend i{width:26px;height:16px;border-radius:3px}
.legend .prebooked,.slot.prebooked{background:repeating-linear-gradient(135deg,#fff 0 5px,var(--pale) 5px 10px);border:1.5px dashed var(--blue)}
.legend .booked,.slot.booked{background:#90caf9;border-color:#90caf9}
.legend .confirmed,.slot.confirmed{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:700}
.legend .blocked,.slot.blocked{background:repeating-linear-gradient(135deg,#eef2f5 0 5px,#dde5eb 5px 10px);border-color:#dde5eb;color:var(--muted)}
.legend .off-grid{border:2px solid #b45309}
.slot.off-grid{box-shadow:inset 0 0 0 2px #b45309;border-color:#b45309}
.slot-note{display:block;font-size:11px;color:#b45309}
.client-history{margin-top:24px}
.recurring-preview{grid-column:1/-1;padding:12px 14px;border:1px solid var(--line);border-radius:5px;background:#f4f8fb;font-size:13px}
.recurring-preview h3{margin:0 0 6px;font-size:14px}
.recurring-preview ul{margin:0;padding-left:18px;columns:2}
.recurring-preview .warn{color:#b45309}
.row-action+.row-action{margin-left:14px}
@media(max-width:1180px){#menu{display:block}.appnav{display:none;order:5;flex:0 0 100%}.appnav.open{display:block}nav{flex-direction:column}.account{margin-left:auto}#account-role,#connection{display:none}}
@media(max-width:640px){.appbar{padding:8px 16px}.sheet{padding:14px 16px}.days{margin:0 -16px}.brand-logo{height:28px}.account strong{display:none}.appbar button{min-height:44px}}
