/* Shared hierarchy and companion layout. Legacy companion header overrides are removed. */
:root{--ui-text:14px;--ui-label:13px;--ui-support:12px;--ui-control:40px}
button,input,textarea,select{font-family:inherit}
dialog .dialog-top h2{font-size:20px;line-height:1.35;font-weight:650;margin:0;white-space:normal}
dialog .dialog-top{position:sticky;top:-24px;background:var(--surface,#fff);z-index:2;min-height:52px;padding:8px 0 12px;margin-bottom:12px}
dialog .dialog-top>button{min-height:36px;font-size:var(--ui-label);line-height:1.4;flex:none}
dialog :is(label,p,.subtle){line-height:1.6}
dialog :is(input,select){min-height:var(--ui-control);font-size:var(--ui-text)}
dialog :is(button,a.button){font-size:var(--ui-label)}
.account-card form{gap:16px}
.account-card :is(label,input){font-size:14px}
.account-card label:has(input[type=checkbox]){display:flex;align-items:center;gap:10px;min-height:40px}
.account-card label:has(input[type=checkbox]) input{width:18px;min-height:18px;height:18px;flex:none}
.account-card form>button[type=submit]{margin-top:4px;min-height:44px}
.account-card .account-links{gap:12px;flex-wrap:wrap}
.account-links button{min-height:40px}
.onboarding-card .registration-controls{display:flex;flex-direction:column;align-items:stretch;gap:18px;margin-top:22px}
.onboarding-card .registration-controls #setup-show-password{align-self:flex-start;min-height:40px;margin:0;padding:8px 4px;background:transparent;color:var(--brand,#244c3d)}
.onboarding-card .registration-controls button[type=submit]{min-height:46px;margin:0}
.onboarding-card .onboarding-heading>button{min-height:40px}
.visibility-companion .companion-heading{display:grid;grid-template-columns:24px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:12px 14px;min-height:66px;height:auto;flex:none;background:#f8fbf2;border-bottom:1px solid var(--line)}
.visibility-companion .companion-heading>img{width:24px;height:24px;object-fit:contain}
.visibility-companion .companion-heading>div{min-width:0;display:flex;flex-direction:column;gap:3px}
.visibility-companion .companion-heading strong{font-size:13px;line-height:1.4;white-space:normal}
.visibility-companion .companion-heading small{display:block;font-size:11px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}
.visibility-companion .companion-heading :is(#visibility-expand-chat,#visibility-close-chat){display:inline-flex;align-items:center;justify-content:center;gap:4px;width:auto;min-width:0;height:auto;min-height:36px;max-width:100%;font-size:12px;font-weight:550;line-height:1.4;white-space:nowrap;padding:7px 9px;border:1px solid #cddcc5;border-radius:8px;background:#fff;color:#285440}
.visibility-companion .companion-heading #visibility-close-chat{background:#eff5e8}
.visibility-companion .companion-private-history{flex:none;position:relative;max-height:150px;overflow:auto;margin:0;padding:8px 14px;font-size:12px;line-height:1.5;border-bottom:1px solid var(--line);background:#fff}
.companion-private-history>summary{cursor:pointer;min-height:24px;line-height:1.6}
.visibility-companion #visibility-chat-messages{flex:1;min-height:0;overflow:auto}
.visibility-companion .companion-controls{flex:none;display:flex;gap:8px;flex-wrap:wrap;padding:6px 12px}
.visibility-companion #visibility-chat-notice:empty,.visibility-companion .companion-controls:not(:has(button:not([hidden]))){display:none}
.visibility-companion #visibility-chat-form{flex:none;margin:0 10px 2px;padding:10px 12px}
.visibility-companion #visibility-chat-input{font-size:14px;line-height:20px;min-height:40px}
.visibility-companion #visibility-chat-input::-webkit-scrollbar-button{display:none;height:0}
.visibility-companion #visibility-chat-hint{flex:none;font-size:11px;line-height:1.5;margin:3px 14px 9px}
.visibility-companion .companion-message .markdown{font-size:14px;line-height:1.7}
.saved-file-row{min-width:0;gap:12px}
.saved-file-row>button{min-width:0;overflow-wrap:anywhere;font-size:14px;line-height:1.5}
.saved-file-row small{font-size:12px;line-height:1.55;margin-top:7px}
.saved-file-row>a{flex:none;min-height:40px;display:inline-flex;align-items:center;font-size:12px;white-space:nowrap}
@media(max-width:700px){
 dialog{max-width:calc(100vw - 24px);width:calc(100vw - 24px);padding:16px;max-height:calc(100dvh - 24px)}
 dialog .dialog-top{top:-16px;gap:12px}
 .visibility-companion .companion-heading{grid-template-columns:24px minmax(0,1fr) auto;min-height:74px;gap:7px;padding:10px 12px}
 .visibility-companion .companion-heading>div{grid-column:2/-1;padding-right:0}
 .visibility-companion .companion-heading #visibility-expand-chat{grid-column:2;justify-self:start}
 .visibility-companion .companion-heading #visibility-close-chat{grid-column:3;justify-self:end}
 .visibility-companion .companion-heading :is(#visibility-expand-chat,#visibility-close-chat){min-height:40px;font-size:12px;padding:8px 10px}
 .saved-file-row{flex-wrap:wrap}.saved-file-row>a{align-self:flex-start}
 .account-card{padding:26px 22px;max-width:100%}.account-card h1{font-size:25px}
}
@media(max-width:700px){
 #visibility-page .visibility-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:visible;align-items:stretch}
 #visibility-page .visibility-toolbar label{min-width:0;width:100%}
 #visibility-page .visibility-toolbar select{max-width:100%;width:100%;min-width:0;min-height:40px}
 #visibility-page .visibility-toolbar>button{margin:0;min-width:0;min-height:40px;white-space:normal;font-size:12px!important;line-height:1.45;padding:8px 10px!important;text-align:left}
 #visibility-page .visibility-toolbar>span{grid-column:1/-1;order:3}
}
@media(max-width:700px){
 #visibility-page .visibility-toolbar #visibility-new{font-size:12px!important}
 #visibility-page .visibility-toolbar #visibility-new::before{content:none}
}
@media(max-width:700px){
 #visibility-page .visibility-header #visibility-brand-selector{flex:1 1 180px;max-width:100%;min-height:40px;width:100%;padding:8px 28px 8px 10px;background:#fff;border:1px solid #dce3db;border-radius:9px;font-size:13px}
}
.visibility-companion{container-type:inline-size}
@container (max-width:520px){
 .visibility-companion .companion-heading{grid-template-columns:24px minmax(0,1fr) auto;min-height:74px;gap:7px;padding:10px 12px}
 .visibility-companion .companion-heading>div{grid-column:2/-1;padding-right:0}
 .visibility-companion .companion-heading #visibility-expand-chat{grid-column:2;justify-self:start}
 .visibility-companion .companion-heading #visibility-close-chat{grid-column:3;justify-self:end}
 .visibility-companion .companion-heading :is(#visibility-expand-chat,#visibility-close-chat){min-height:40px;font-size:12px;padding:8px 10px}
}

/* Keep the application frame fixed; only its intended panes scroll. */
html{height:100%;overscroll-behavior-y:none}
body:not(.signed-out){height:100dvh;min-height:0;overflow:hidden;overscroll-behavior:none}
body:not(.signed-out)>main{min-height:0;overflow:hidden}
#visibility-page{min-height:0;overscroll-behavior-y:contain;scrollbar-gutter:stable}
#transcript,#visibility-chat-messages,.visibility-dashboard,.companion-private-history{overscroll-behavior:contain}
.composer-state{display:flex;align-items:center;gap:8px;margin:4px 0 8px;color:#355a46;font-size:12px;line-height:1.5;flex:none}
.composer-state[hidden]{display:none!important}
.composer-state i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.composer-state.is-working i{animation:statusPulse 1.7s infinite}
#visibility-composer-state{margin:5px 14px}
@media(prefers-reduced-motion:reduce){.composer-state.is-working i{animation:none}}

.activity-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.activity-heading h2{font-size:21px;margin:5px 0}.activity-heading label{display:flex;align-items:center;gap:8px;font-size:13px}.activity-heading select{max-width:180px;padding:7px;border:1px solid var(--line,#ddd);border-radius:8px;background:var(--panel,#fff);color:inherit}.activity-counts{font-size:14px;line-height:1.6}.brand-activity>details{margin-top:14px}.brand-activity summary{cursor:pointer;font-size:14px;font-weight:600}.activity-events{list-style:none;padding:0;margin:10px 0}.activity-events li{display:flex;gap:16px;justify-content:space-between;border-top:1px solid var(--line,#e8e5df);padding:13px 0}.activity-events strong,.activity-events small{display:block}.activity-events small{margin-top:5px;color:var(--muted,#64645f);font-size:12px}.activity-kind{font-size:11px;display:block;margin-bottom:4px;color:var(--muted,#64645f)}.activity-links,.activity-pages{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.activity-links a{font-size:12px}.activity-moments{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:18px}.activity-moments article{border:1px solid var(--line,#e8e5df);border-radius:12px;padding:14px}.activity-moments h3{font-size:15px;line-height:1.4}.activity-moments p{font-size:12px}.brand-activity .subtle{font-size:12px;line-height:1.6}@media(max-width:650px){.activity-heading,.activity-events li{align-items:stretch;flex-direction:column}.activity-heading label{justify-content:space-between}.activity-links{gap:14px}}

.competitor-manager{width:min(840px,calc(100vw - 32px))}.competitor-manager label{display:grid;gap:7px;margin:12px 0}.competitor-manager input,.competitor-manager select{width:100%;min-width:0}.competitor-edit-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:10px 0}.competitor-manager button{margin:8px 8px 8px 0}.competitor-manager li{overflow-wrap:anywhere;line-height:1.7}@media(max-width:650px){.competitor-edit-row{grid-template-columns:1fr}.competitor-edit-row label{margin:4px 0}.competitor-edit-row button{justify-self:start}}
