/* Shared product polish — intentionally loaded last across V3 product flows. */
:root{--halo-focus:rgba(56,39,199,.28);--halo-ease:cubic-bezier(.2,0,0,1);--halo-press:.96}
::selection{color:#fff;background:#3827c7}
:where(button,a,input,textarea,select,summary,[contenteditable="true"]):focus-visible{outline:3px solid var(--halo-focus)!important;outline-offset:3px}
:where(button,.action,.choice,.pill,.rank-card,.scope-preset,.project-card,.folder-card,.project-file):not(:disabled):active{transform:scale(var(--halo-press))!important;transition-duration:80ms!important}
:where(button,a){-webkit-tap-highlight-color:transparent}
:where(input,textarea,select){caret-color:#3827c7}

/* Workshop presentation flow: controls recede; prompts and decisions remain readable on a shared screen. */
.workshop-page{font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.workshop-page .app-header{min-height:82px;padding-inline:clamp(20px,3vw,48px);gap:12px;background:rgba(250,250,248,.94);border-bottom:1px solid rgba(23,23,22,.09);box-shadow:none;backdrop-filter:blur(18px)}
.workshop-page .app-header__title{max-width:min(32vw,420px);font-size:15px;font-weight:650;letter-spacing:-.02em}
.workshop-page .speaker-launch,.workshop-page .highlight-launch,.workshop-page .owner-save,.workshop-page .owner-stop{min-height:42px;padding-inline:15px;border-radius:12px;font-size:13px;transition-property:color,background-color,border-color,box-shadow,transform;transition-duration:150ms;transition-timing-function:var(--halo-ease)}
.workshop-page .highlight-launch i{transition-property:opacity,transform,filter,background-color;transition-duration:180ms;transition-timing-function:var(--halo-ease)}
.workshop-page .highlight-launch.is-active i{animation:none;box-shadow:0 0 0 4px rgba(255,255,255,.18)}
.workshop-page .slide{scroll-margin-top:82px}
.workshop-page .slide-content{width:min(100%,1560px);padding-inline:clamp(28px,5vw,88px)}
.workshop-page .title{text-wrap:balance}
.workshop-page .section-intro,.workshop-page .section-purpose,.workshop-page .section-guidance{max-width:68ch;font-size:clamp(18px,1.45vw,23px);line-height:1.5;text-wrap:pretty}
.workshop-page :where(.choice,.comparison-cell,.verdict-button,.tag-button,.recipe-option,.duel-option,.anti-card,.confidence-option){min-height:48px;transition-property:color,background-color,border-color,box-shadow,transform;transition-duration:150ms;transition-timing-function:var(--halo-ease)}
.workshop-page :where(.choice,.comparison-cell,.verdict-button,.tag-button,.recipe-option,.duel-option,.anti-card,.confidence-option):hover{border-color:rgba(56,39,199,.3)}
.workshop-page :where(.choice,.comparison-cell,.verdict-button,.tag-button,.recipe-option,.duel-option,.anti-card,.confidence-option).selected{box-shadow:inset 0 0 0 2px #3827c7,0 8px 24px rgba(56,39,199,.08)}
.workshop-page :where(input,textarea,select){font-size:16px}

/* Owner HUD: one compact instrument surface with concentric controls. */
.workshop-page .session-hud{bottom:18px;padding:7px;background:rgba(255,255,255,.94);border:1px solid rgba(23,23,22,.1);border-radius:18px;box-shadow:0 18px 52px rgba(23,23,22,.14),0 2px 5px rgba(23,23,22,.05);backdrop-filter:blur(20px)}
.workshop-page .session-hud__toggle{width:40px;height:40px;border-radius:11px}
.workshop-page .session-hud__progress{overflow:hidden;border-radius:999px}
.workshop-page .session-hud__progress i{transition-property:width;transition-duration:220ms;transition-timing-function:var(--halo-ease)}
.workshop-page .session-hud__actions{gap:5px}.workshop-page .session-hud__actions :where(button,a){min-height:40px;padding-inline:12px;border-radius:11px;font-size:12px;transition-property:color,background-color,border-color,transform;transition-duration:140ms}

/* Join, share and preparation overlays. */
.workshop-page :where(.name-gate,.share-overlay){background:rgba(23,23,22,.32);backdrop-filter:blur(10px)}
.workshop-page .name-gate__card{width:min(620px,calc(100% - 32px));padding:clamp(30px,5vw,56px);background:#fff;border:1px solid rgba(255,255,255,.7);border-radius:24px;box-shadow:0 30px 90px rgba(23,23,22,.18)}
.workshop-page .name-gate h1{font-size:clamp(46px,6vw,72px);text-wrap:balance}.workshop-page .name-gate__card>p:not(.kicker){max-width:46ch;font-size:16px;line-height:1.55;text-wrap:pretty}
.workshop-page .name-gate input{background:#f1f1ee;border-color:transparent;border-radius:12px;box-shadow:inset 0 1px 2px rgba(23,23,22,.04)}
.workshop-page .share-dialog{border:1px solid rgba(23,23,22,.09);border-radius:24px;box-shadow:0 30px 90px rgba(23,23,22,.18);overscroll-behavior:contain}
.workshop-page .share-dialog__header>button{width:44px;height:44px;border-radius:50%;transition-property:color,background-color,transform;transition-duration:150ms}
.workshop-page .share-link-field input{min-height:52px;background:#f1f1ee;border-color:transparent;border-radius:12px;font-size:15px}
.workshop-page .share-status-row{font-variant-numeric:tabular-nums}

/* Moodboard: images feel like reviewable artifacts; lock state remains explicit. */
.moodboard-page .moodboard-frame{border-radius:18px;box-shadow:0 16px 42px rgba(23,23,22,.07);transition-property:box-shadow,transform;transition-duration:180ms;transition-timing-function:var(--halo-ease)}
.moodboard-page .moodboard-frame:hover{box-shadow:0 22px 54px rgba(23,23,22,.11);transform:translateY(-2px)}
.moodboard-page .moodboard-frame img{outline:1px solid oklch(0 0 0/.1);outline-offset:-1px}
.moodboard-page .moodboard-lock,.moodboard-page .moodboard-replace{min-height:42px;border-radius:11px}
.moodboard-page .comparison-matrix{border-radius:18px}.moodboard-page .comparison-cell{min-height:124px;padding:19px}

/* Visual calibration Studio: uploaded evidence reads as a CMS, not a form dump. */
.visual-calibration-page .vc-studio-section{border-radius:20px;box-shadow:0 1px 2px rgba(23,23,22,.04)}
.visual-calibration-page .vc-studio-section>header h2{text-wrap:balance}.visual-calibration-page .vc-studio-section>header>p{max-width:58ch;font-size:14px;line-height:1.55;text-wrap:pretty}
.visual-calibration-page .vc-reference-item{border-radius:16px;transition-property:box-shadow,border-color,transform;transition-duration:160ms;transition-timing-function:var(--halo-ease)}.visual-calibration-page .vc-reference-item:focus-within{border-color:rgba(56,39,199,.3);box-shadow:0 12px 32px rgba(23,23,22,.07)}
.visual-calibration-page :where(.vc-reference-preview,.sort-card__visual img,.sort-card__visual video,.heatmap-card img,.heatmap-card video,.duel-option img,.duel-option video,.anti-card img,.anti-card video){outline:1px solid oklch(0 0 0/.1);outline-offset:-1px}
.visual-calibration-page .vc-studio-footer{border-radius:18px 18px 0 0;box-shadow:0 -10px 32px rgba(23,23,22,.06)}

/* Brand strategy workshop: keep the live synthesis legible while decisions change. */
.workshop-page.strategy-page .live-spine{min-height:48px;padding-inline:clamp(18px,4vw,62px);gap:18px;background:#171716;font-variant-numeric:tabular-nums}.workshop-page.strategy-page .live-spine span{font-size:12px}.workshop-page.strategy-page .live-spine strong{font-weight:650}
.workshop-page.strategy-page :where(.strategy-option,.evidence-option,.priority-card){border-radius:14px;transition-property:color,background-color,border-color,box-shadow,transform;transition-duration:150ms;transition-timing-function:var(--halo-ease)}

/* Halo Call: stable video stage, tactile dock, and clear consent hierarchy. */
body:not([class]) .call-header{height:76px;padding-inline:22px;background:rgba(15,15,18,.94);border-bottom:1px solid rgba(255,255,255,.09);backdrop-filter:blur(18px)}
body:not([class]) .participant-tile,body:not([class]) .preview{outline:1px solid oklch(1 0 0/.1);outline-offset:-1px}
body:not([class]) .control-dock{padding:8px;background:rgba(35,35,40,.92);border:1px solid rgba(255,255,255,.1);border-radius:18px;box-shadow:0 18px 56px rgba(0,0,0,.34);backdrop-filter:blur(18px)}
body:not([class]) .control{min-width:58px;height:58px;border-radius:12px;transition-property:color,background-color,transform;transition-duration:140ms;transition-timing-function:var(--halo-ease)}
body:not([class]) .control:active{transform:scale(.96)}
body:not([class]) .prejoin-card{border-radius:24px;box-shadow:0 28px 90px rgba(0,0,0,.18)}
body:not([class]) .prejoin-card h1{text-wrap:balance}body:not([class]) .prejoin-copy{max-width:50ch;font-size:14px;line-height:1.55;text-wrap:pretty}
body:not([class]) .prejoin-card input{font-size:16px}body:not([class]) .join-button{border-radius:12px;transition-property:background-color,transform;transition-duration:140ms}body:not([class]) .consent-modal section{border-radius:22px;box-shadow:0 28px 90px rgba(0,0,0,.22)}

/* Workspace V3: strengthen keyboard and object-state feedback without adding noise. */
.app-shell .new-button,.app-shell .new-file-button,.app-shell .dialog-primary{transition-property:color,background-color,box-shadow,transform;transition-duration:150ms;transition-timing-function:var(--halo-ease)}
.app-shell .create-menu button i{transition-property:color,transform;transition-duration:150ms}.app-shell .source-row,.app-shell .folder-card,.app-shell .project-file{scroll-margin:24px}.app-shell .source-row__open{transition-property:color,background-color,transform;transition-duration:160ms;transition-timing-function:var(--halo-ease)}
.app-shell .workspace-dialog{overscroll-behavior:contain}.app-shell .workspace-dialog :where(input,textarea,select){font-size:16px}.app-shell .toast,.strategy-page .toast{font-size:13px;line-height:1.4}

/* Main dashboard: retain its hierarchy while making the board feel like one coherent workspace. */
.dashboard-page[data-design-system="workshop-os"]{font-optical-sizing:auto;-webkit-font-smoothing:antialiased}
.dashboard-page[data-design-system="workshop-os"] :where(.topbar a,.topbar button,.new-button,.rail-create,.kanban-card__footer a,.kanban-card__footer button,.calendar-connect){transition-property:color,background-color,border-color,box-shadow,transform;transition-duration:150ms;transition-timing-function:var(--halo-ease)}
.dashboard-page[data-design-system="workshop-os"] :where(.dashboard-widget,.kanban-card){scroll-margin-top:96px}
.dashboard-page[data-design-system="workshop-os"] .kanban-card:focus-within{background:#fff;box-shadow:0 2px 3px rgba(24,24,28,.025),0 14px 32px rgba(33,31,43,.08)}
.dashboard-page[data-design-system="workshop-os"] .dialog{overscroll-behavior:contain}
.dashboard-page[data-design-system="workshop-os"] .dialog :where(input,textarea,select){font-size:16px}
.dashboard-page[data-design-system="workshop-os"] :where(.pipeline-stat strong,.assistant-result__metrics b,.kanban-column__count){font-variant-numeric:tabular-nums}

/* Speaker Notes: a dependable facilitator view, readable beside a live call. */
body:has(.speaker-head),body:has(.speaker>.topline){font-optical-sizing:auto;-webkit-font-smoothing:antialiased}
:where(.speaker-head,.speaker>.topline){isolation:isolate}
:where(.speaker-head,.speaker>.topline) strong{font-variant-numeric:tabular-nums}
:where(.speaker-head+main,.speaker .note){overscroll-behavior:contain}
:where(.speaker-head+main,.speaker .note) :where(h1,p){text-wrap:pretty}
:where(.speaker-head+main,.speaker .note) h1{text-wrap:balance}
:where(.speaker-head~footer,.speaker .controls) button{transition-property:color,background-color,border-color,transform;transition-duration:150ms;transition-timing-function:var(--halo-ease)}
:where(.speaker-head~footer,.speaker .controls) button:disabled{cursor:not-allowed}

/* Strategy Studio: editability, status and review actions remain visible at every scale. */
.dashboard-page.strategy-page .studio-topbar :where(button,a),.dashboard-page.strategy-page .document-toolbar button,.dashboard-page.strategy-page .aside-tabs button,.dashboard-page.strategy-page .guidance-item button{transition-property:color,background-color,border-color,box-shadow,transform;transition-duration:150ms;transition-timing-function:var(--halo-ease)}
.dashboard-page.strategy-page .document-canvas [contenteditable="true"]{transition-property:background-color,box-shadow;transition-duration:150ms}.dashboard-page.strategy-page .document-canvas [contenteditable="true"]:focus{box-shadow:0 0 0 5px #f0efff}.dashboard-page.strategy-page .document-status,.dashboard-page.strategy-page [data-evidence-count],.dashboard-page.strategy-page [data-blueprint-count]{font-variant-numeric:tabular-nums}
.dashboard-page.strategy-page :where(input,textarea,select){font-size:16px}.dashboard-page.strategy-page .guidance-item button{justify-content:space-between}.dashboard-page.strategy-page .chat-form textarea{font-size:14px}

@media(max-width:720px){
  .workshop-page .app-header__title{max-width:42vw}.workshop-page .section-intro,.workshop-page .section-purpose,.workshop-page .section-guidance{font-size:18px}.workshop-page .name-gate form{grid-template-columns:1fr}.workshop-page .session-hud{right:10px;bottom:10px;left:10px}.workshop-page .session-hud__actions{overflow-x:auto}.workshop-page .session-hud__actions :where(button,a){flex:0 0 auto}.visual-calibration-page .vc-studio-section{border-radius:16px}
  .dashboard-page[data-design-system="workshop-os"] .modal{padding:10px}.dashboard-page[data-design-system="workshop-os"] .dialog{max-height:calc(100svh - 20px);padding:28px 20px;border-radius:20px}
  .app-shell,.app-shell .main-content,.app-shell .project-grid{width:100%;min-width:0}.app-shell .project-grid{grid-template-columns:minmax(0,1fr)!important}.app-shell .folder-card{width:100%;max-width:100%;min-width:0;margin-inline:0}.app-shell :where(.folder-back,.folder-sheet,.folder-front){max-width:100%}
  .dashboard-page.strategy-page :where(main,.document-view,.document-workspace,.document-canvas){width:100%;min-width:0;max-width:100%}.dashboard-page.strategy-page .document-view{margin-inline:0}.dashboard-page.strategy-page .document-toolbar{width:100%;max-width:100%;overscroll-behavior-x:contain}.dashboard-page.strategy-page .document-workspace{overflow:visible}.dashboard-page.strategy-page .document-canvas{padding:52px 34px}.dashboard-page.strategy-page .document-canvas h1{font-size:clamp(40px,13vw,50px);overflow-wrap:anywhere}.dashboard-page.strategy-page .document-canvas h2{font-size:28px}
}
@media(prefers-reduced-motion:reduce){:where(*,::before,::after){scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(forced-colors:active){:where(button,a,input,textarea,select,summary,[contenteditable="true"]):focus-visible{outline:2px solid CanvasText!important}.workshop-page :where(.choice,.comparison-cell,.verdict-button,.tag-button,.recipe-option,.duel-option,.anti-card,.confidence-option).selected{outline:2px solid Highlight}}
