/* v0.8.0 mobile and approved Craft Connect identity. Local fonts, no third-party requests. */
@font-face{font-family:Inter;src:url('/brand/Inter.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:'Libre Baskerville';src:url('/brand/LibreBaskerville.ttf') format('truetype');font-style:normal;font-weight:400 700;font-display:swap}
:root{--ink:var(--cc-primary);--navy:var(--cc-primary);--blue:var(--cc-primary);--gold:var(--cc-gold);--bg:var(--cc-ivory);--white:var(--cc-white);--ice:var(--cc-info-surface);--muted:var(--cc-muted);--line:var(--cc-border);--font-body:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;--font-heading:'Libre Baskerville',Georgia,'Times New Roman',serif;--visible-height:100dvh;--visible-top:0px}
body{font-family:var(--font-body);font-size:1rem;line-height:1.55;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font-family:var(--font-body);font-size:1rem;line-height:1.4}
h1,h2,h3,header h1,dialog h2{font-family:var(--font-heading);line-height:1.35;overflow-wrap:anywhere}
header{background:var(--navy);border-bottom:3px solid var(--gold)}
header p,.brand span{color:var(--cc-ivory)}
.mark,.brand-mark{border:0;background:transparent;width:48px;height:48px;flex-shrink:0}
.mark img,.brand-mark img{display:block;width:100%;height:100%}
.brand strong{font-family:var(--font-heading)}
button,.btn,.tab,.linklike,summary{touch-action:manipulation;min-height:44px}
button,.btn{white-space:normal;overflow-wrap:anywhere;max-width:100%}
button:not(.secondary):not(.danger):not(.tab):not(.x):not(.linklike):not(.calday),.btn:not(.secondary):not(.danger):not(.soft){background:var(--navy);color:var(--cc-white);border-color:var(--navy)}
.secondary,.btn.secondary,.x{background:var(--cc-white);color:var(--navy);border-color:var(--navy)}
a,.linklike{color:var(--navy);text-underline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--cc-primary);outline-offset:3px;box-shadow:0 0 0 2px var(--cc-white)}
header button:focus-visible{outline-color:var(--gold)}
.header-signout{background:transparent!important;color:var(--cc-white)!important;border-color:var(--cc-ivory)!important}
.panel,.meeting,.dialogbox,dialog{background:var(--cc-white)}
.portal-info,.note,.banner,.soft-panel,.inset,.booking-notice,.sync-indicator,.notice,.public-lock{background:var(--ice);color:var(--ink);border-color:var(--cc-primary)}
.portal-info .btn{background:var(--navy);color:var(--cc-white)}.portal-info .secondary{background:var(--cc-white);color:var(--navy)}
.independence{border-left-color:var(--cc-primary)}
.chip,.avatar,.datebox,.calday.has-meetings{background:var(--ice);color:var(--ink)}
.calday.selected{outline-color:var(--navy);background:var(--cc-selected-surface)}.calday.has-meetings{border-color:var(--cc-primary)}
.send-message{background:var(--navy)}.chat-message.outgoing{background:var(--cc-info-surface);border-color:var(--cc-border)}.chat-message.incoming{background:var(--cc-ivory)}
#message-status{color:var(--cc-success)}.small,.tiny,.count{color:var(--muted)}
.check,.choice{min-height:44px;cursor:pointer}.check input,.choice input,input[type=checkbox],input[type=radio]{accent-color:var(--cc-primary);width:22px;height:22px;min-height:22px;flex-shrink:0}
label,.field label,.group label,.lab{font-size:.9375rem}
input:not([type=checkbox]):not([type=radio]),select,textarea,.control{min-height:48px;font-size:1rem;border-color:var(--cc-muted);color:var(--ink);background:var(--cc-white)}
textarea{min-height:112px;resize:vertical;max-width:100%;padding:12px;border:1px solid var(--cc-muted);border-radius:9px}
input,select,textarea,button{scroll-margin-block:64px}
.tabs{display:flex;flex-wrap:wrap;gap:6px;overflow:visible}.tab{white-space:normal;color:var(--ink);padding:11px 13px}.tab.active{background:var(--navy);color:var(--cc-white)}
.linklike{padding:8px 4px}.x,.dialog-close{width:44px;height:44px;min-width:44px;flex-shrink:0}
main,.shell,.head,.head-brand,.brand,.panel,.person,.copy,.cols>*{min-width:0}
.person,.panel,.note-row,.conversation-row,.event-copy,.proof,.brand span{overflow-wrap:anywhere}
.dialog{inset:auto 0 auto;top:var(--visible-top);height:var(--visible-height);padding:12px;overflow:auto;overscroll-behavior:contain;align-items:flex-start}
.dialogbox{margin:0 auto;width:min(650px,100%);max-height:calc(var(--visible-height) - 24px);overflow:auto;overscroll-behavior:contain;padding:20px;scroll-padding:24px}
dialog,.arrangements-dialog,#visit-confirmation{top:calc(var(--visible-top) + var(--visible-height)/2);bottom:auto;transform:translateY(-50%);margin:0 auto;width:min(540px,calc(100% - 24px));max-height:calc(var(--visible-height) - 24px);overflow:auto;overscroll-behavior:contain;scroll-padding:24px}
.protected-messages{max-width:100%;overflow-wrap:anywhere}.chat-message{min-width:0}.chat-message p{font-size:1rem}
#app-loading{background:var(--bg);color:var(--ink)}
body.member-app>main{height:var(--visible-height);top:var(--visible-top);bottom:auto}
.prototype-toast{max-height:calc(var(--visible-height) - 24px);overflow:auto}
@supports(padding:max(0px)){.head{padding-top:max(18px,env(safe-area-inset-top));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.shell{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:max(32px,env(safe-area-inset-bottom))}}
@media(max-width:740px){body{font-size:1rem}.head{gap:10px;flex-wrap:wrap}.head-brand{flex:1 1 170px}.head h1{font-size:1.3rem}.head p{font-size:.875rem}.shell{padding-left:12px;padding-right:12px}.mark{width:44px;height:44px}.header-signout{margin-left:auto}.panel{padding:16px}.cols{grid-template-columns:1fr}.actions,.confirmation-actions,.buttonrow{gap:10px}.tabs{gap:5px}.tab{font-size:.9375rem;padding:10px 12px}.btn.small{font-size:.9375rem;min-height:44px}.small{font-size:.9375rem}.tiny{font-size:.875rem}.dialogbox{padding:16px}.dialoghead h2{font-size:1.25rem}.dialoghead{align-items:flex-start}.dialoghead p{font-size:.9375rem}.booking-notice{padding:12px}.calday{min-width:0;min-height:80px}.calday .n{font-size:1rem}.weekdays{gap:2px}.calgrid{gap:3px}.meeting-count-badge{min-width:24px;font-size:.9375rem}.head-brand p{margin-top:6px}}
@media(max-width:390px){header:not(:has(.head)){padding:16px 12px;flex-wrap:wrap}.brand{flex:1 1 175px}.brand strong{font-size:1.05rem}.brand span{font-size:.875rem}header #signout{margin-left:auto}.head-brand{flex-basis:170px}.head h1{font-size:1.2rem}.mark{width:40px;height:40px}.meeting{grid-template-columns:44px minmax(0,1fr);gap:9px;padding:12px}.tab{padding:10px}.calday{padding:6px 1px}.panel,.login-panel{padding:16px}main{padding-left:12px;padding-right:12px}.buttonrow>.btn,.confirmation-actions>.btn{flex:1 1 130px}.between{flex-wrap:wrap}.intro h1{font-size:1.7rem}.datebox strong{font-size:1.3rem}.datebox span{font-size:.7rem}}
@media(display-mode:standalone){body{min-height:100dvh}.footer{padding-bottom:max(25px,env(safe-area-inset-bottom))}header{background:var(--navy)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.operational-banner{border-left:4px solid var(--cc-light-blue);background:var(--ice);color:var(--ink)}.note-row{border-left:3px solid var(--cc-light-blue);padding-left:14px}

/* Approved wordmark lockup: artwork is a logo; surrounding text remains AA readable. */
.brand-wordmark{margin:0;line-height:1;max-width:260px;width:100%;font-size:1rem}
.brand-wordmark img{display:block;width:100%;height:auto;max-width:260px}
.brand-wordmark+span,.head-brand>p{color:var(--cc-white)}
.brand,.head-brand{min-width:0}.mark,.brand-mark{width:52px;height:52px;align-self:center}
.brand strong.brand-wordmark{font-size:1rem}.brand>span{display:block;margin-top:4px}
header .brand-wordmark{padding:0}.head .head-brand{flex:1}.head-brand>h1{font-size:1rem}
.prototype{background:var(--cc-warning-surface);color:var(--cc-warning);border-color:var(--cc-warning-border)}
.tab.active{border-bottom:3px solid var(--cc-light-blue)}.filters button[aria-pressed=true]{background:var(--cc-primary);color:var(--cc-white);border-bottom:3px solid var(--cc-light-blue)}
.calday.selected{background:var(--cc-selected-surface);color:var(--cc-primary);outline:2px solid var(--cc-primary)}
.chip.green{background:var(--cc-success-surface);color:var(--cc-success)}.chip.gold{background:var(--cc-warning-surface);color:var(--cc-warning)}
.status-Approved{background:var(--cc-success-surface);color:var(--cc-success)}.status-Pending,.status-Verified{background:var(--cc-warning-surface);color:var(--cc-warning)}.status-Suspended,.status-Declined{background:var(--cc-error-surface);color:var(--cc-error)}
body .error,[role=alert]:not(:empty){color:var(--cc-error)}
@media(max-width:740px){.brand-wordmark,.brand-wordmark img{max-width:210px}.head .mark{width:44px;height:44px}.head-brand>p{font-size:.875rem}.head-brand>h1{font-size:1rem}}
@media(max-width:390px){.brand-wordmark,.brand-wordmark img{max-width:190px}.head .head-brand{flex:1 1 180px}.head .mark{width:40px;height:40px}.head .header-signout{align-self:flex-start;margin-top:6px}.brand{flex:1 1 180px}}

.head{padding-top:10px;padding-bottom:10px}.brand-wordmark,.brand-wordmark img{max-width:210px}.mark,.brand-mark{width:42px;height:42px;flex:0 0 42px}.mark img,.brand-mark img{width:100%;height:100%;object-fit:contain}.head-brand h1{overflow:visible;margin:0}.head-brand p{margin:3px 0}.suggestion-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}#dismissSuggestions{width:auto;flex:0 0 auto;min-width:90px}.note-row{padding:12px;margin:10px 0}.note-row p{margin:6px 0}[data-go-find]{text-decoration:underline}[data-note-meeting]{display:block;width:100%;margin-top:20px}.dialoghead [data-lodge-details]{margin-top:10px}@media(max-width:430px){.brand-wordmark,.brand-wordmark img{max-width:180px}.head .head-brand{flex:1 1 140px}.head .mark{width:36px;height:36px;flex-basis:36px}.head-brand>p{font-size:.8rem}}
.head{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px}.head .mark{width:64px;height:64px}.head .head-brand{min-width:0}.head .brand-wordmark{max-width:180px}.head .header-signout{margin:0;align-self:start}.head-brand .member-welcome{margin-top:5px}@media(max-width:430px){.head{grid-template-columns:48px minmax(0,1fr) auto;gap:8px}.head .mark{width:48px;height:48px}.head .brand-wordmark{max-width:150px}.head .head-brand>p{font-size:.8rem}}
/* Consolidated navigation: one desktop row; five persistent mobile destinations. */
#tabs{display:flex;flex-wrap:nowrap;align-items:stretch;gap:8px}.mobile-meetings{display:none}#tabs .tab{min-height:44px;min-width:44px;flex:0 1 auto;white-space:normal}#more-nav .more-sections{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}#more-nav>button{display:block;width:100%;margin-top:12px}#more-nav .btn{min-height:44px;overflow-wrap:anywhere}#more-nav{max-width:520px}#install-help{max-width:540px}#install-help h3{margin-bottom:6px}#install-help p{margin-top:6px}.installation-hint{padding:12px}.installation-hint p{margin:0 0 10px}#past-visits-heading{border-top:1px solid var(--cc-gold);padding-top:20px;margin-top:24px}
@media(max-width:740px){.desktop-meetings{display:none}.mobile-meetings{display:inline}#tabs{position:fixed;inset:auto 0 0;z-index:20;margin:0;padding:6px 6px max(6px,env(safe-area-inset-bottom));gap:3px;background:var(--cc-ivory);border-top:1px solid var(--cc-primary);box-shadow:0 -2px 8px #13325e18;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}#tabs .tab{font-size:.85rem;line-height:1.25;min-height:52px;padding:8px 2px;min-width:0;word-break:normal;overflow-wrap:anywhere}main.shell{padding-bottom:calc(var(--nav-height,80px) + 24px)!important}#view{scroll-margin-top:12px}.keyboard-open #tabs{visibility:hidden;pointer-events:none}#more-nav .more-sections{grid-template-columns:1fr}#more-nav{max-height:calc(var(--visible-height,100dvh) - 24px);scroll-padding:16px}.prototype-toast{bottom:calc(var(--nav-height,80px) + 10px)!important}dialog{z-index:30}}

/* v0.8.8: both the outer app and inner visiting document are vertical surfaces.
   Clip inline overflow without creating a second scroll container; stop native
   horizontal rubber-banding/chaining. Keep vertical touch scroll and pinch zoom.
   Apply in each document: styling an iframe element cannot control its document. */
html,body{overflow-x:clip;overscroll-behavior-x:none;touch-action:pan-y pinch-zoom}
@supports not (overflow-x:clip){html,body{overflow-x:hidden}}
