/* A quiet shelf of live tools, separate from the private client workspace. */
.therapist-tools { min-width: 0; }
.call-view[data-role=therapist] .conversation-controls .tools-launcher { gap: 8px; padding-inline: 12px; }
.call-view[data-role=therapist] .conversation-controls .tools-launcher > .tools-launcher-label { display: inline; }
.call-view[data-role=therapist] .tools-launcher[aria-expanded=true],
.call-view[data-role=therapist] .tools-launcher[data-panel-open=true] { border-color: #d6e1ca; background: #eaf0e1; color: var(--green); }
.tools-launcher .tools-chevron { font-size: 9px; color: #849078; transition: transform 160ms ease; }
.tools-launcher[aria-expanded=true] .tools-chevron { transform: rotate(180deg); }
.call-view[data-role=therapist] .conversation-controls .tools-launcher > .tools-in-use { display: grid; place-items: center; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 7px; background: #dce7cd; color: #536d41; font: 500 10px var(--sans); }
.call-view[data-role=therapist] .conversation-controls .tools-launcher > .tools-timer-glance { display: block; border-left: 1px solid #d9e1d0; padding-left: 8px; color: #708260; font: 500 11px var(--sans); font-variant-numeric: tabular-nums; }
.call-view[data-role=therapist] .conversation-controls .tools-launcher > .tools-timer-glance[data-state=complete] { color: #8e7047; }
.tools-menu { position: fixed; z-index: 42; width: min(408px, calc(100vw - 32px)); padding: 20px; overflow: auto; overscroll-behavior: contain; border: 1px solid var(--room-line); border-radius: var(--room-radius); background: var(--surface); color: var(--ink); box-shadow: 0 18px 56px #263b2624, 0 3px 10px #263b2609; }
.tools-menu > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 2px 2px 18px; }
.tools-eyebrow { color: var(--room-secondary); font: 500 10px/1.5 var(--sans); text-transform: uppercase; letter-spacing: .08em; }
.tools-menu h2 { margin-top: 7px; color: var(--ink); font: 400 30px/1.12 var(--serif); letter-spacing: -.025em; }
.tools-menu-mark { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 15px; background: var(--sage); color: var(--green); font-size: 19px; }
.tools-menu-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.tools-menu-option { display: flex; flex-direction: column; align-items: stretch; gap: 7px; min-width: 0; padding: 14px; border: 1px solid var(--room-line); border-radius: 15px; background: var(--surface); color: var(--ink); text-align: left; transition: background 160ms ease, border-color 160ms ease; }
.tools-menu-option:hover { background: var(--paper); border-color: #b9c8a9; }
.tools-menu-option[aria-current=true] { border-color: var(--green); background: var(--paper); }
.tools-menu-option:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.tools-option-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.tools-option-icon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; background: var(--sage); color: var(--green); font-size: 14px; }
.tools-option-arrow { color: var(--room-secondary); font-size: 10px; }
.tools-menu-option > strong { font: 500 12px/1.5 var(--sans); letter-spacing: -.01em; }
.tools-option-description { display: -webkit-box; min-height: 32px; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; color: var(--room-secondary); font: 11px/1.5 var(--sans); overflow-wrap: anywhere; }
.tools-option-status { display: block; margin-top: auto; padding-top: 9px; border-top: 1px solid var(--room-line); color: var(--room-secondary); font: 11px/1.5 var(--sans); font-variant-numeric: tabular-nums; }
.tools-menu-option[data-in-use=true] .tools-option-status { color: var(--green); }
.tools-menu-option[data-in-use=true] .tools-option-status::before { content: ''; display: inline-block; width: 5px; height: 5px; margin: 0 5px 1px 0; border-radius: 50%; background: var(--green); }
.tools-menu > footer { display: flex; align-items: center; justify-content: center; gap: 7px; padding-top: 16px; color: var(--room-secondary); font: 11px/1.6 var(--sans); }
.tools-menu > footer i { font-size: 9px; }

.session-tool-panel { --tool-panel-inset: 20px; position: fixed; z-index: 12; display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; border: 1px solid var(--room-line); border-radius: var(--room-radius); background: var(--surface); color: var(--ink); font: 400 12px/1.65 var(--sans); box-shadow: 0 2px 8px #34483d05; }
.session-tool-heading { --chat-icon-size: 36px; display: flex; align-items: center; flex-shrink: 0; gap: 12px; min-height: 70px; padding: 16px; border-bottom: 1px solid var(--room-line); }
.session-tool-heading .tools-back { border: 1px solid var(--room-line); background: var(--paper); color: var(--green); }
.session-tool-heading .tools-back:hover { background: var(--sage); }
.session-tool-heading .tools-back .icon { font-size: 12px; }
.session-tool-heading h2 { flex: 1; min-width: 0; margin: 0; color: var(--ink); font: 500 16px/1.4 var(--sans); letter-spacing: -.02em; }
.session-tool-heading h2:focus { outline: none; }
.session-tool-content { flex: 1; min-height: 0; padding: 24px var(--tool-panel-inset); overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #bac6ad transparent; }
.session-tool-library { overflow: hidden; padding: 0; }
.session-tool-library > .session-exercises, .session-tool-library > .session-pictures { height: 100%; min-height: 0; }

/* Embedded controls use the panel's border, spacing and dismissal. */
.session-tool-content .session-timers { display: block; }
.session-tool-content .timer-panel,
.session-tool-content .private-checkin[data-checkin-role=therapist] .checkin-panel { position: static; width: 100%; max-height: none; padding: 0; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; animation: none; }
.session-tool-content .checkin-therapist-content { padding: 0; }
.session-tool-content .checkin-feedback { padding: 0; }
.call-view[data-role=therapist] .tools-result-notice { max-width: min(450px, calc(100vw - 40px)); }

/* All four tools follow the workspace's type hierarchy and shared colour tokens. */
.session-tool-panel :is(.exercise-library-heading h3, .exercise-working-title, .checkin-panel h2, .tool-introduction h3) {
    color: var(--ink); font: 400 30px/1.12 var(--serif); letter-spacing: -.025em;
}
.session-tool-panel .exercise-library-heading h3 { margin: 0; }
.tool-introduction { margin-bottom: 24px; }
.session-tool-panel :is(.exercise-library-heading p, .tool-introduction p, .checkin-introduction) { margin-top: 10px; }
.session-tool-panel :is(.exercise-library-heading p, .tool-introduction p, .checkin-introduction, .picture-workspace-invitation, .picture-workspace-response p, .exercise-preparation p, .exercise-private-guidance p, .checkin-waiting p) {
    color: var(--room-secondary); font: 400 12px/1.7 var(--sans);
}
.session-tool-panel :is(.exercise-eyebrow, .checkin-question-preview > span) {
    color: var(--room-secondary); font: 500 10px/1.5 var(--sans); letter-spacing: .08em;
}
.session-tool-panel :is(.exercise-soft-note, .exercise-navigation-hint, .exercise-library-footer, .checkin-privacy-note, .checkin-passed, .timer-footnote) {
    color: var(--room-secondary); font: 400 11px/1.65 var(--sans);
}
.session-tool-panel :is(.exercise-sharing-status, .exercise-sharing-status strong, .checkin-waiting strong, .timer-name, .timer-caption strong) {
    color: var(--ink); font: 500 12px/1.5 var(--sans);
}
.session-tool-panel :is(.exercise-sharing-status span, .timer-name > span, .timer-duration label > span, .timer-caption > span, .checkin-question-preview > small) {
    color: var(--room-secondary); font: 400 11px/1.5 var(--sans);
}
.session-tool-panel :is(.exercise-library-icon, .exercise-session-library > button > .icon) { color: var(--green); }
.session-tool-panel .exercise-library-icon { background: var(--sage); }
.session-tool-panel .exercise-session-library > button { border-color: var(--room-line); background: var(--surface); }
.session-tool-panel .exercise-session-library > button:hover:not(:disabled) { background: var(--paper); border-color: var(--green); }
.session-tool-panel .exercise-session-library strong { color: var(--ink); font: 500 14px/1.5 var(--sans); }
.session-tool-panel .exercise-session-library small { font-size: 11px; }
.session-tool-panel :is(.exercise-preparation, .checkin-question-preview) { border-color: var(--room-line); background: var(--paper); border-radius: 13px; }
.session-tool-panel .exercise-preparation summary { color: var(--green); font-size: 11px; }
.session-tool-panel .checkin-question-preview > p { color: var(--ink); font: 400 24px/1.2 var(--serif); }
.session-tool-panel .checkin-private-answer { border-color: var(--room-line); }
.session-tool-panel .checkin-private-answer strong { color: var(--ink); }
.session-tool-panel .checkin-private-answer :is(span, small, time, .icon) { color: var(--room-secondary); }

/* Library content scrolls; the invitation controls stay in the same place. */
.session-tool-panel .exercise-workspace:not(.has-exercise),
.session-tool-panel .exercise-working-content { padding: 24px var(--tool-panel-inset); }
.session-tool-panel .exercise-sharing-controls { padding: 16px var(--tool-panel-inset); border-color: var(--room-line); background: var(--paper); }
.session-tool-panel .exercise-sharing-status { margin-bottom: 12px; }
.session-tool-panel .exercise-sharing-status > .icon { width: 16px; height: 16px; font-size: 14px; }
.session-tool-panel .exercise-sharing-controls > :last-child { margin-bottom: 0; }

/* One set of action styles for every tool, including disabled and keyboard states. */
.session-tool-panel :is(.exercise-primary, .checkin-send, .timer-start) {
    min-height: 44px; padding: 10px 14px; border: 1px solid var(--green); border-radius: 12px;
    background: var(--green); color: var(--surface); font: 500 12px/1.5 var(--sans); box-shadow: none;
}
.session-tool-panel :is(.exercise-primary, .checkin-send, .timer-start):hover:not(:disabled) { border-color: var(--deep); background: var(--deep); }
.session-tool-panel :is(.exercise-primary, .checkin-send, .timer-start):disabled { border-color: var(--room-line); background: var(--sage); color: var(--muted); opacity: .7; cursor: default; }
.session-tool-panel :is(.exercise-primary, .checkin-send, .timer-start) .icon { width: 14px; height: 14px; font-size: 13px; }
.session-tool-panel :is(.exercise-secondary, .exercise-step-navigation button, .timer-run-controls button) {
    min-height: 40px; border-color: var(--room-line); border-radius: 12px; background: var(--paper); color: var(--green); font: 500 12px/1.5 var(--sans);
}
.session-tool-panel :is(.exercise-text-button, .checkin-text-button, .timer-clear) { min-height: 32px; color: var(--green); font: 400 11px/1.5 var(--sans); text-underline-offset: 3px; }
.session-tool-panel :is(.exercise-primary, .exercise-secondary, .checkin-send, .timer-start, .timer-run-controls button):focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.session-tool-panel :is(.exercise-library-search, .timer-name input, .timer-duration input) { border-color: var(--room-line); background: var(--surface); color: var(--ink); }
.session-tool-panel .timer-name input::placeholder { color: var(--room-secondary); }
.session-tool-panel .timer-footnote { border-color: var(--room-line); }
.session-tool-panel .session-timers .choice-group { --choice-text: var(--ink); --choice-muted: var(--room-secondary); --choice-line: var(--room-line); --choice-selected-text: var(--green); --choice-font-size: 12px; --choice-description-size: 11px; }

@media (max-width: 620px) {
    .tools-menu { padding: 17px; }
    .tools-menu-option { padding: 12px; }
    .call-view[data-role=therapist] .conversation-controls .tools-launcher { width: auto; min-width: 70px; padding-inline: 9px; }
    .tools-launcher .tools-chevron { display: none; }
    .call-view[data-role=therapist] .conversation-controls .tools-launcher > .tools-timer-glance { display: none; }
    .session-tool-panel { --tool-panel-inset: 18px; }
    .session-tool-heading { padding: 12px; }
}
@media (pointer: coarse) {
    .session-tool-heading { --chat-icon-size: 44px; }
    .session-tool-panel :is(.exercise-text-button, .checkin-text-button, .timer-clear) { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) { .tools-launcher .tools-chevron, .tools-menu-option { transition: none; } }
