@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=Space+Mono:wght@400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Caprasimo&family=Figtree:wght@400;600;700&display=swap');

*, *:after, *:before {
	box-sizing: border-box;
}

:root {
	/* ── Design tokens (Organic system, terracotta accent) — Inc 0 ── */
	--f:'Noto Sans JP','Figtree',system-ui,sans-serif;
	--fd:'Caprasimo',Georgia,serif;
	--fm:ui-monospace,'SFMono-Regular',Menlo,monospace;
	--bg:#f5ead8; --card:#fdf8ef; --inset:#ebddc5;
	--line:rgba(32,30,29,.16); --line2:rgba(32,30,29,.08);
	--text:#201e1d; --dim:#645c50; --faint:#82796a;
	--accent:#c67139; --on-accent:#fff9f0;
	--acc-100:color-mix(in srgb,var(--accent) 13%,var(--card));
	--acc-200:color-mix(in srgb,var(--accent) 26%,var(--card));
	--acc-700:color-mix(in srgb,var(--accent) 72%,var(--text));
	--sage:#7a8a5e; --sage-100:#f0fae1; --sage-700:#56633f;
	--rec:#c0392b; --rec-100:#fbe9e5;
	--warn:#a8781c; --warn-100:#f8efdb;
	--sp1:#c67139; --sp2:#7a8a5e; --sp3:#5b7d8f; --sp4:#97627a;
	--shadow:0 1px 2px rgba(46,43,37,.10);
	--shadow-md:0 3px 10px rgba(46,43,37,.13);
	--shadow-lg:0 14px 40px rgba(46,43,37,.22);

	/* ── Legacy alias shim → new tokens (delete at Inc 8) ── */
	--c-text-primary:var(--text);
	--c-text-secondary:var(--dim);
	--c-action-primary:var(--accent);
	--c-action-primary-accent:var(--acc-100);
	--c-action-secondary:var(--sage);
	--c-action-tertiary:var(--warn);
	--c-bg-primary:var(--card);
	--c-bg-secondary:var(--bg);
	--c-bg-search:var(--inset);
}

[data-theme="dark"] {
	--bg:#1a1817; --card:#232120; --inset:#2e2b28;
	--line:rgba(245,234,216,.18); --line2:rgba(245,234,216,.09);
	--text:#f2e9db; --dim:#b1a695; --faint:#8d8376; --on-accent:#1a1817;
	--acc-100:color-mix(in srgb,var(--accent) 20%,var(--card));
	--acc-200:color-mix(in srgb,var(--accent) 34%,var(--card));
	--acc-700:color-mix(in srgb,var(--accent) 65%,#ffffff);
	--sage:#9db07e; --sage-100:#2a3122; --sage-700:#bccca0;
	--rec:#e2705c; --rec-100:#3a2320;
	--warn:#d6a44a; --warn-100:#332a17;
	--sp1:#e08b52; --sp2:#9db07e; --sp3:#7fa3b5; --sp4:#c08aa4;
	--shadow:0 1px 2px rgba(0,0,0,.4);
	--shadow-md:0 3px 12px rgba(0,0,0,.45);
	--shadow-lg:0 14px 40px rgba(0,0,0,.55);
}

@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.82)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Theme toggle button (header) */
.theme-toggle{width:36px;height:36px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;font-size:1rem;line-height:1;display:inline-grid;place-items:center}
.theme-toggle:hover{border-color:var(--accent)}

body {
	font-family: var(--f);
	line-height: 1.5;
	min-height: 100vh;
	background-color: var(--bg);
	color: var(--text);
	padding: 2rem;
}

input, select, button, textarea {
	font: inherit;
	color: inherit;
	outline: 0;
}

img {
	display: block;
	max-width: 100%;
}

.earmark-app {
	box-shadow: 0 0 2px 0 rgba(0,0,0,.1), 0 15px 30px rgba(68,68,68,.1);
	padding: 3rem;
	border-radius: 15px;
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	background-color: var(--c-bg-primary);
	min-height: calc(100vh - 4rem);
}

.header {
	display: flex;
	align-items: center;
}

.header-logo {
	font-family: "Lora", sans-serif;
	font-weight: 700;
	font-size: 1.5rem;
}

.header-actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 1rem;
}

.language-switcher {
	padding: 0.5rem 0.75rem;
	border-radius: 6px;
	border: 1px solid #ddd;
	background: #fff;
	font-size: 0.9rem;
	cursor: pointer;
	outline: none;
}

.language-switcher:hover {
	border-color: var(--c-action-primary);
}

.language-switcher:focus {
	border-color: var(--c-action-primary);
	box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.2);
}

/* User Menu */
.user-menu {
	position: relative;
}

.user-menu-btn {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.35rem 0.75rem;
	border-radius: 99em;
	border: 1px solid #ddd;
	background: #fff;
	cursor: pointer;
	transition: all 0.2s ease;
}

.user-menu-btn:hover {
	border-color: var(--c-action-primary);
	background: var(--c-action-primary-accent);
}

.user-avatar {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	object-fit: cover;
}

.user-avatar-placeholder {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--c-action-primary);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.85rem;
	font-weight: 600;
}

.user-name {
	font-size: 0.9rem;
	font-weight: 500;
	max-width: 120px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.user-dropdown {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	min-width: 200px;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
	border: 1px solid #eee;
	display: none;
	z-index: 1000;
	overflow: hidden;
}

.user-dropdown.show {
	display: block;
}

.user-dropdown-email {
	padding: 0.75rem 1rem;
	font-size: 0.85rem;
	color: var(--c-text-secondary);
	border-bottom: 1px solid #eee;
	background: #f9f9f9;
}

.user-dropdown-item {
	display: block;
	padding: 0.75rem 1rem;
	color: var(--c-text-primary);
	text-decoration: none;
	font-size: 0.9rem;
	transition: background 0.2s ease;
}

.user-dropdown-item:hover {
	background: var(--c-action-primary-accent);
}

.header-content {
	margin-left: auto;
	display: flex;
	flex-wrap: wrap;
}

.header-search {
	display: flex;
	position: relative;
}

.search-field {
	border-radius: 99em;
	background-color: var(--c-bg-search); 
	border: none;
	padding-left: 2.75rem;
	height: 3rem;
	transition: width 380ms ease;
	width: 250px;
}
.search-field:focus {
	width: 400px;
}

.search-btn {
	border: none;
	position: absolute;
	left: .5rem; 
	top: 50%;
	transform: translateY(-50%);
	border-radius: 50%;
	background-color: transparent;
	display: flex;
	align-items: center;
	justify-content: center;
}

.header-avatar {
	border: none;
	background-color: transparent;
	display: flex;
	align-items: center;
	margin-left: 1rem;
}

.header-avatar-img { 
	display: block;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background-image: url("https://assets.codepen.io/285131/user-avatar.jpg");
	background-position: 50% 50%;
	background-size: cover; 
	background-repeat: no-repeat;
}

.header-avatar-name {
	margin-left: .75rem;
}

.main {
	margin-top: 6rem;
	display: grid;
	grid-template-columns: 1fr 4fr;
	column-gap: 5rem;
}

.tabs {
	display: flex;
	flex-direction: column;
}

.tab {
	display: flex;
}
.tab + .tab {
	margin-top: .5rem;
}

.tab-btn {
	border: none;
	background-color: transparent;
	padding: .75rem;
	border-radius: 6px;
	display: flex;
	align-items: center;
	width: 100%;
	font-weight: 500;
}
.tab-btn i {
	margin-right: .75rem;
	font-size: 1.25em;
	color: var(--c-text-secondary);
}
.tab-btn--active, .tab-btn:hover {
	color: var(--c-action-primary);
	background-color: var(--c-action-primary-accent);
	cursor: pointer;
}
.tab-btn--active {
	font-weight: 600;
}

.main-content {
	padding: 2rem 0;
}

.content-header {
	display: flex;
}

.content-header-inner {
	flex: 1;
}

.back-link {
	display: inline-block;
	color: var(--c-text-secondary);
	text-decoration: none;
	font-size: 0.9rem;
	margin-bottom: 0.75rem;
	transition: color 0.15s ease;
}

.back-link:hover {
	color: var(--c-action-primary);
}

.content-header-title {
	font-size: 2.5rem;
	font-weight: 700;
	font-family: "Lora", sans-serif;
	line-height: 1.125;
}
.content-header-title small {
	display: block;
	font-weight: 400;
	font-family: "Space Mono", monospace;
	font-size: .875em;
	color: var(--c-action-secondary);
	margin-top: .5em;
}

.content-header-info {
	margin-top: 1.5rem;
	font-weight: 600;
}

.link {
	color: var(--c-action-tertiary);
	text-decoration:none;
	box-shadow: 0 1px 0 currentcolor;
	font-weight: 600;
}
.link i {
	display: inline-block;
	margin-left: .25rem;
}
.link:hover, .link:focus {
	box-shadow: 0 3px 0 currentcolor;
}

.content-header-illustration {
	display: flex;
	justify-content: flex-end;
	flex: 1;
	margin-top: -2rem;
}
.content-header-illustration img {
	max-width: 400px;
	max-height: 300px;
}

.overview {
	border: 1px solid #dedede;
	border-radius: 8px;
	min-height: 100px;
	padding: 2rem;
}
.overview + .overview {
	margin-top: 3rem;
}

.overview-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.overview-header-title {
	font-size: 1.25rem;
	font-weight: 700;
}
.overview-header-title span {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	font-size: .75em;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	color: var(--c-text-secondary);
	background-color: var(--c-bg-secondary);
	margin-left: .5rem;
}

.summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-weight: 500;
	margin-top: 1.5rem;
	color: var(--c-text-secondary);
}

.summary-amount {
	font-family: "Space Mono", monospace;
}

.list {
	margin-top: 1rem;
}
.list + .summary {
	margin-top: 2.5rem;
}

.list-item {
	border-top: 1px solid #dedede;
	padding-top: 1.25rem;
	padding-bottom: 1.25rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.list .list-item:last-child {
	border-bottom: 1px solid #dedede;
}

.list-item-company {
	display: flex;
	align-items: center;
}

.list-item-company-logo {
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 50%;
	overflow: hidden;
	position: relative;
}
.list-item-company-logo img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.list-item-company-logo--square {
	border-radius: 12px;
	box-shadow: 0 0 4px 0 #dedede;
}

.list-item-company-info {
	margin-left: 1.25rem;
}

.list-item-company-name {
	font-weight: 600;
}

.list-item-company-hashtag {
	display: inline-block;
	text-decoration: none;
	color: var(--c-text-secondary);
	margin-top: .125rem;
}
.list-item-company-hashtag + .list-item-company-hashtag {
	margin-left: .25rem;
}

.list-item-transaction {
	display: flex;
	align-items: center;
}

.list-item-transaction-values {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.list-item-transaction-value {
	font-weight: 600;
	font-family: "Space Mono", monospace;
	display: inline-flex;
	align-items: center;
}
.list-item-transaction-value i {
	margin-right: .5rem;
}
.list-item-transaction-value--positive {
	color: var(--c-action-secondary);
}

.list-item-transaction-time {
	color: var(--c-text-secondary);
	font-size: .875rem;
}

.list-item-transaction-action {
	border: none;
	background-color: var(--c-bg-search);
	border-radius: 8px;
	margin-left: 1rem;
	width: 2.25rem;
	height: 2.25rem;
	color: var(--c-text-secondary);
}

.overview-footer {
	display: flex;
	justify-content: center;
	padding-top: 1.25rem;
}

/* Header Tabs */
.header-tabs {
	display: flex;
	gap: 0.5rem;
	margin-left: 2rem;
}

.header-tab {
	padding: 0.75rem 1.5rem;
	border-radius: 8px;
	background-color: var(--c-bg-search);
	color: var(--c-text-primary);
	text-decoration: none;
	font-weight: 500;
	transition: background-color 0.2s, color 0.2s;
}

.header-tab:hover, .header-tab.active {
	background-color: var(--c-action-primary);
	color: #fff;
}

/* Calendar Styles */
.calendar-wrapper {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.08);
	padding: 1.5rem;
	margin-top: 2rem;
}

.calendar-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.5rem;
}

.calendar-title {
	font-size: 1.25rem;
	font-weight: 600;
	font-family: "Lora", sans-serif;
}

.calendar-nav {
	display: flex;
	gap: 0.5rem;
}

.calendar-nav button {
	background: var(--c-bg-search);
	border: none;
	border-radius: 6px;
	padding: 0.5rem 1rem;
	cursor: pointer;
	font-weight: 500;
}

.calendar-nav button:hover {
	background: var(--c-action-primary);
	color: #fff;
}

.calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
}

.calendar-day-header {
	text-align: center;
	font-weight: 600;
	padding: 0.75rem;
	background: var(--c-bg-secondary);
	color: var(--c-text-secondary);
	font-size: 0.875rem;
}

.calendar-day {
	aspect-ratio: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	padding: 0.5rem;
	background: #fff;
	border: 1px solid #eee;
	cursor: pointer;
	transition: background 0.2s;
	min-height: 80px;
}

.calendar-day:hover {
	background: var(--c-action-primary-accent);
}

.calendar-day.today {
	background: var(--c-action-primary-accent);
}

.calendar-day.selected {
	border: 2px solid var(--c-action-primary);
}

.calendar-day.other-month {
	color: #ccc;
	background: #fafafa;
}

.calendar-day-number {
	font-weight: 600;
	font-size: 0.875rem;
	margin-bottom: 0.25rem;
}

.calendar-day.today .calendar-day-number {
	background: var(--c-action-primary);
	color: #fff;
	border-radius: 50%;
	width: 28px;
	height: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.calendar-meeting-dot {
	width: 6px;
	height: 6px;
	background: var(--c-action-secondary);
	border-radius: 50%;
	margin-top: 2px;
}

.meeting-list {
	margin-top: 2rem;
}

.meeting-card {
	background: #fff;
	border-radius: 8px;
	padding: 1rem 1.25rem;
	margin-bottom: 0.75rem;
	box-shadow: 0 1px 4px rgba(0,0,0,0.06);
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-left: 4px solid var(--c-action-secondary);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.meeting-card:hover {
	transform: translateX(4px);
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.meeting-card-title {
	font-weight: 600;
}

.meeting-card-date {
	color: var(--c-text-secondary);
	font-size: 0.875rem;
}

.meeting-card-platform {
	background: var(--c-bg-secondary);
	padding: 0.25rem 0.75rem;
	border-radius: 99em;
	font-size: 0.75rem;
	color: var(--c-text-secondary);
}

.delete-meeting-btn {
	background: none;
	border: none;
	cursor: pointer;
	font-size: 1rem;
	padding: 0.25rem;
	opacity: 0.5;
	transition: opacity 0.2s, transform 0.2s;
}

.delete-meeting-btn:hover {
	opacity: 1;
	transform: scale(1.1);
}

.meeting-card-status {
	padding: 0.2rem 0.6rem;
	border-radius: 4px;
	font-size: 0.75rem;
	font-weight: 500;
	text-transform: capitalize;
}

.meeting-card-status.scheduled {
	background: #e3f2fd;
	color: #1565c0;
}

.meeting-card-status.recording {
	background: #ffebee;
	color: #c62828;
}

.meeting-card-status.processing {
	background: #fff3e0;
	color: #e65100;
}

.meeting-card-status.done,
.meeting-card-status.processed {
	background: #e8f5e9;
	color: #2e7d32;
}

.home-start-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 1rem;
	margin-top: 2rem;
}

.home-start-panel,
.home-metrics-panel,
.meeting-info-panel {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 12px;
	padding: 1.5rem;
	box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.home-start-panel h3,
.meeting-info-panel h3 {
	margin: 0;
	font-size: 1.2rem;
	font-family: "Lora", sans-serif;
}

.home-start-panel p,
.meeting-info-panel p {
	margin-top: 0.65rem;
	color: var(--c-text-secondary);
}

.home-start-actions {
	display: flex;
	gap: 0.75rem;
	margin-top: 1rem;
}

.home-metrics-panel {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
}

.home-metric-card {
	border-radius: 10px;
	background: var(--c-bg-search);
	padding: 1rem;
}

.home-metric-label {
	display: block;
	font-size: 0.85rem;
	color: var(--c-text-secondary);
}

.home-metric-value {
	font-size: 1.7rem;
	font-family: "Space Mono", monospace;
	font-weight: 700;
}

.home-list-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.75rem;
}

.home-list-header h3 {
	margin: 0;
	font-family: "Lora", sans-serif;
}

.home-meeting-list {
	margin-top: 1.5rem;
	padding: 1.5rem;
	border-radius: 12px;
	border: 1px solid #ececec;
	background: #fff;
	box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.meeting-info-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-top: 2rem;
}

@media (max-width: 960px) {
	.home-start-grid,
	.meeting-info-grid {
		grid-template-columns: 1fr;
	}

	.home-start-actions {
		flex-direction: column;
	}
}

/* Flow stage placeholders (Phase 1 shell pages) */
.stage-placeholder {
	margin-top: 2rem;
	padding: 2rem;
	border: 1px solid #e9e9e9;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.stage-placeholder h3 {
	margin: 0;
	font-size: 1.35rem;
	font-family: "Lora", sans-serif;
}

.stage-placeholder p {
	margin-top: 0.75rem;
	color: var(--c-text-secondary);
}

/* Modal */
.modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0,0,0,0.4);
	display: none;
	align-items: center;
	justify-content: center;
	z-index: 100;
}

.modal-overlay.active {
	display: flex;
}

.modal {
	background: #fff;
	border-radius: 12px;
	padding: 2rem;
	min-width: 400px;
	box-shadow: 0 10px 40px rgba(0,0,0,0.2);
}

.modal-title {
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 1.5rem;
}

.form-group {
	margin-bottom: 1rem;
}

.form-group label {
	display: block;
	font-weight: 500;
	margin-bottom: 0.5rem;
}

.form-group input,
.form-group select {
	width: 100%;
	padding: 0.75rem;
	border: 1px solid #ddd;
	border-radius: 8px;
}

.form-actions {
	display: flex;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

.btn {
	padding: 0.75rem 1.5rem;
	border-radius: 8px;
	border: none;
	cursor: pointer;
	font-weight: 500;
}

.btn-primary {
	background: var(--c-action-primary);
	color: #fff;
}

.btn-primary:hover {
	background: #e07850;
}

.btn-secondary {
	background: var(--c-bg-search);
	color: var(--c-text-primary);
}

.btn-secondary:hover {
	background: #e0e4e5;
}

/* Meeting Info Sidebar */
.meeting-info-sidebar {
	position: fixed;
	top: 0;
	right: -440px;
	width: 420px;
	height: 100vh;
	background: #fff;
	box-shadow: -4px 0 20px rgba(0,0,0,0.1);
	z-index: 1002;
	transition: right 0.3s ease;
	display: flex;
	flex-direction: column;
}

.meeting-info-sidebar.open {
	right: 0;
}

.meeting-info-sidebar .form-group {
	margin-bottom: 1rem;
}

.meeting-info-sidebar .form-group label {
	display: block;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--c-text-secondary);
	margin-bottom: 0.35rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

/* Speaker Sidebar */
.speaker-sidebar {
	position: fixed;
	top: 0;
	right: -400px;
	width: 380px;
	height: 100vh;
	background: #fff;
	box-shadow: -4px 0 20px rgba(0,0,0,0.1);
	z-index: 1000;
	transition: right 0.3s ease;
	display: flex;
	flex-direction: column;
}

.speaker-sidebar.open {
	right: 0;
}

.sidebar-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid #eee;
	background: var(--c-bg-secondary);
}

.sidebar-header h3 {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 600;
}

.sidebar-close {
	background: none;
	border: none;
	font-size: 1.75rem;
	cursor: pointer;
	color: var(--c-text-secondary);
	line-height: 1;
	padding: 0;
}

.sidebar-close:hover {
	color: var(--c-text-primary);
}

.sidebar-content {
	flex: 1;
	overflow-y: auto;
	padding: 1.5rem;
}

.sidebar-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,0.3);
	z-index: 999;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.sidebar-overlay.open {
	opacity: 1;
	visibility: visible;
}

.info-row {
	display: flex;
	justify-content: space-between;
	padding: 0.6rem 0;
	border-bottom: 1px solid #f0f0f0;
}

.info-label {
	color: var(--c-text-secondary);
	font-size: 0.9em;
}

.info-value {
	font-weight: 500;
}

.employee-card {
	background: var(--c-bg-search);
	padding: 1rem;
	border-radius: 8px;
}

.employee-name {
	font-weight: 600;
	margin-bottom: 0.25rem;
}

.employee-email {
	color: var(--c-text-secondary);
	font-size: 0.9em;
}

.sidebar-input {
	width: 100%;
	padding: 0.65rem 0.75rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 0.95em;
}

.sidebar-input:focus {
	border-color: var(--c-action-primary);
	box-shadow: 0 0 0 2px rgba(242,152,115,0.2);
}

.suggestion-item, .search-result-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.6rem 0.75rem;
	background: #f9f9f9;
	border-radius: 6px;
	margin-bottom: 0.5rem;
	cursor: pointer;
	transition: background 0.15s ease;
}

.suggestion-item:hover, .search-result-item:hover {
	background: var(--c-action-primary-accent);
}

.suggestion-item.high-match {
	border-left: 3px solid var(--c-action-secondary);
}

.suggestion-name {
	font-weight: 500;
}

.suggestion-confidence {
	font-size: 0.8em;
	color: var(--c-text-secondary);
}

.suggestion-confidence.high {
	color: var(--c-action-secondary);
	font-weight: 600;
}

/* Clickable speaker in transcript */
.speaker-clickable {
	cursor: pointer;
	transition: color 0.15s ease;
}

.speaker-clickable:hover {
	color: var(--c-action-primary);
	text-decoration: underline;
}

.speaker-assigned {
	color: var(--c-action-secondary);
}

.status-badge {
	display: inline-block;
	padding: 0.2rem 0.5rem;
	border-radius: 4px;
	font-size: 0.8em;
	font-weight: 500;
}

.status-badge.unassigned {
	background: #fff3cd;
	color: #856404;
}

.status-badge.assigned {
	background: #d4edda;
	color: #155724;
}

.status-badge.auto-matched {
	background: #cce5ff;
	color: #004085;
}

/* =============================================
   Record Page - Card Layout
   ============================================= */

.record-page-wrapper {
	width: min(100%, 1120px);
	margin: 0 auto;
}

.record-card {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 2px 12px rgba(0,0,0,0.08);
	margin-bottom: 1.5rem;
	overflow: hidden;
}

.card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1.5rem;
	background: var(--c-bg-secondary);
	border-bottom: 1px solid #eee;
}

.card-header-left {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.card-icon {
	font-size: 1.25rem;
}

.card-title {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 600;
}

.card-toggle-btn {
	background: none;
	border: none;
	width: 32px;
	height: 32px;
	border-radius: 6px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--c-text-secondary);
	transition: background 0.15s ease, color 0.15s ease;
}

.card-toggle-btn:hover {
	background: #e0e0e0;
	color: var(--c-text-primary);
}

.toggle-icon {
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1;
}

.card-body {
	padding: 1.5rem;
	transition: max-height 0.3s ease, padding 0.3s ease, opacity 0.2s ease;
	max-height: 1000px;
	opacity: 1;
}

.card-body.collapsed {
	max-height: 0;
	padding-top: 0;
	padding-bottom: 0;
	opacity: 0;
	overflow: hidden;
}

/* Two-column grid for recording controls */
.recording-controls-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
}

@media (max-width: 768px) {
	.recording-controls-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
}

.controls-column {
	min-width: 0;
}

.controls-column .form-group {
	margin-bottom: 1rem;
}

.controls-column select,
.controls-column input[type="text"],
.controls-column input[type="email"] {
	width: 100%;
}

.inline-form-panel {
	display: none;
	margin-top: 0.75rem;
	padding: 1rem;
	background: #f9f9f9;
	border-radius: 8px;
	border: 1px solid #eee;
}

.form-hint {
	font-size: 0.8em;
	color: var(--c-text-secondary);
	margin-top: 0.25rem;
	margin-bottom: 0;
}

.file-input {
	width: 100%;
	padding: 0.5rem;
	border: 1px dashed #ccc;
	border-radius: 6px;
	background: #fafafa;
}

/* Slider Input */
.slider-input {
	width: 100%;
	height: 6px;
	-webkit-appearance: none;
	appearance: none;
	background: #e0e0e0;
	border-radius: 3px;
	outline: none;
	cursor: pointer;
}

.slider-input::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 18px;
	height: 18px;
	background: var(--primary-color, #4a6da7);
	border-radius: 50%;
	cursor: pointer;
	transition: background 0.2s;
}

.slider-input::-webkit-slider-thumb:hover {
	background: var(--primary-hover, #3d5a8a);
}

.slider-input::-moz-range-thumb {
	width: 18px;
	height: 18px;
	background: var(--primary-color, #4a6da7);
	border-radius: 50%;
	cursor: pointer;
	border: none;
}

.slider-value {
	font-weight: 600;
	color: var(--primary-color, #4a6da7);
	min-width: 1.5rem;
	text-align: center;
}

/* Live Recording Section */
.live-recording-section {
	height: 100%;
	display: flex;
	flex-direction: column;
}

.section-label {
	font-size: 1rem;
	font-weight: 600;
	margin: 0 0 0.25rem 0;
	color: var(--c-text-primary);
}

.section-sublabel {
	font-size: 0.9em;
	font-weight: 500;
	margin-bottom: 0.5rem;
}

.audio-source-options {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
}

.radio-option {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	cursor: pointer;
	font-weight: normal;
	font-size: 0.9em;
}

.recording-buttons {
	display: flex;
	gap: 0.75rem;
	margin-top: auto;
	padding-top: 1rem;
}

.btn-record {
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.btn-record .btn-icon {
	color: #e53935;
	font-size: 0.8em;
}

.btn-sm {
	padding: 0.5rem 1rem;
	font-size: 0.9em;
}

.recording-status {
	margin-top: 0.75rem;
	font-size: 0.9em;
	color: var(--c-text-secondary);
	min-height: 1.5em;
}

.recording-status--recording {
	color: #e53935;
	font-weight: 600;
}

.recording-status--processing {
	color: #fb8c00;
	font-weight: 600;
}

.recording-status--done {
	color: #43a047;
	font-weight: 600;
}

.recording-status--error {
	color: #e53935;
	font-weight: 600;
}

.recording-progress {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.5rem;
	margin-top: 0.75rem;
}

.progress-pill {
	background: var(--c-bg-search);
	border-radius: 8px;
	padding: 0.5rem 0.65rem;
	display: flex;
	flex-direction: column;
}

.progress-pill span {
	font-size: 0.75rem;
	color: var(--c-text-secondary);
}

.progress-pill strong {
	font-family: "Space Mono", monospace;
	font-size: 0.95rem;
}

.recording-next-step {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin-top: 0.85rem;
	padding: 0.7rem 0.8rem;
	border: 1px solid #d9f2de;
	border-radius: 8px;
	background: #f3fbf5;
	color: #2e7d32;
	font-size: 0.9rem;
}

.btn-disabled {
	opacity: 0.5;
	pointer-events: none;
}

/* Summary Page */
.summary-page {
	margin-top: 2rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.summary-toolbar {
	display: grid;
	grid-template-columns: 1fr 1fr auto;
	gap: 0.75rem;
	align-items: end;
	padding: 1rem;
	border: 1px solid #ececec;
	border-radius: 10px;
	background: #fff;
}

.summary-toolbar-item {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.summary-toolbar-item label {
	font-size: 0.85rem;
	color: var(--c-text-secondary);
}

.summary-status {
	margin: 0;
	padding: 0.7rem 0.85rem;
	border-radius: 8px;
	background: #f6f6f6;
	color: var(--c-text-secondary);
}

.summary-status--processing {
	background: #fff6e9;
	color: #b26a00;
}

.summary-status--done {
	background: #eefbf1;
	color: #2e7d32;
}

.summary-status--error {
	background: #fff0f0;
	color: #c62828;
}

.summary-actions {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.summary-tabs-wrapper {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.5rem;
	flex-wrap: wrap;
}

.summary-tabs {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.summary-tab-btn {
	padding: 0.6rem 1.2rem;
	font-size: 0.9rem;
	border-radius: 6px;
	font-weight: 500;
	transition: all 0.2s ease;
	cursor: pointer;
	border: none;
}

.summary-tab-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.summary-regen-btn {
	padding: 0.6rem 0.75rem;
	font-size: 1.1rem;
	line-height: 1;
	border-radius: 6px;
	cursor: pointer;
	transition: transform 0.2s ease, background 0.2s ease;
}

.summary-regen-btn:hover:not(:disabled) {
	transform: rotate(20deg);
}

.summary-regen-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.summary-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.summary-card {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 10px;
	padding: 1rem;
}

.summary-card h3 {
	margin: 0 0 0.75rem 0;
	font-family: "Lora", sans-serif;
	font-size: 1.1rem;
}

.summary-output {
	white-space: pre-wrap;
	line-height: 1.6;
	color: var(--c-text-primary);
	min-height: 160px;
	max-height: 420px;
	overflow-y: auto;
}

.summary-output h2,
.summary-output h3,
.summary-output h4,
.summary-output h5 {
	margin: 1rem 0 0.5rem;
	font-family: "Lora", sans-serif;
	line-height: 1.25;
}

.summary-output h2:first-child,
.summary-output h3:first-child,
.summary-output h4:first-child,
.summary-output h5:first-child,
.summary-output p:first-child,
.summary-output ul:first-child,
.summary-output ol:first-child {
	margin-top: 0;
}

.summary-output p {
	margin: 0 0 0.7rem;
	white-space: normal;
}

.summary-output ul,
.summary-output ol {
	margin: 0 0 0.9rem 1.25rem;
	padding: 0;
	white-space: normal;
}

.summary-output li {
	margin-bottom: 0.35rem;
}

.summary-output code {
	font-family: "Space Mono", monospace;
	font-size: 0.9em;
	background: #f5f1ea;
	padding: 0.1rem 0.3rem;
	border-radius: 4px;
}

.summary-transcript {
	max-height: 360px;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.summary-transcript-row {
	padding: 0.65rem;
	background: #f9f9f9;
	border-radius: 8px;
	border-left: 3px solid var(--c-action-secondary);
}

.summary-transcript-meta {
	font-size: 0.82rem;
	color: var(--c-text-secondary);
	margin-bottom: 0.2rem;
	font-weight: 600;
}

/* Checklist Page */
.checklist-page {
	margin-top: 2rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.checklist-toolbar {
	display: grid;
	grid-template-columns: 1fr 1fr auto;
	gap: 0.75rem;
	align-items: end;
	padding: 1rem;
	border: 1px solid #ececec;
	border-radius: 10px;
	background: #fff;
}

.checklist-toolbar--compact {
	grid-template-columns: 1fr auto;
}

.checklist-toolbar-item {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.checklist-toolbar-item label {
	font-size: 0.85rem;
	color: var(--c-text-secondary);
}

.checklist-toolbar-actions {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
	justify-content: flex-end;
}

.checklist-create-panel {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding: 1rem;
	border: 1px solid #ececec;
	border-radius: 10px;
	background: #fff;
}

.checklist-create-panel[hidden] {
	display: none;
}

.checklist-create-panel label {
	font-size: 0.85rem;
	color: var(--c-text-secondary);
}

.checklist-create-input {
	width: 100%;
	resize: vertical;
	padding: 0.6rem 0.7rem;
	border: 1px solid #ddd;
	border-radius: 8px;
	font: inherit;
}

.checklist-status {
	margin: 0;
	padding: 0.7rem 0.85rem;
	border-radius: 8px;
	background: #f6f6f6;
	color: var(--c-text-secondary);
}

.checklist-status--processing {
	background: #fff6e9;
	color: #b26a00;
}

.checklist-status--done {
	background: #eefbf1;
	color: #2e7d32;
}

.checklist-status--error {
	background: #fff0f0;
	color: #c62828;
}

.checklist-card {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 10px;
	padding: 1rem;
}

.checklist-card h3 {
	margin: 0 0 0.75rem 0;
	font-family: "Lora", sans-serif;
	font-size: 1.1rem;
}

.checklist-list-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.75rem;
}

.checklist-count {
	font-size: 0.85rem;
	color: var(--c-text-secondary);
}

.checklist-list {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.checklist-table-wrap {
	overflow-x: auto;
}

.checklist-table {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	min-width: 720px;
}

.checklist-empty-in-table {
	padding: 0.9rem 0.5rem;
	text-align: center;
	color: var(--c-text-secondary);
}

.checklist-table-head,
.checklist-table-row {
	display: grid;
	grid-template-columns: minmax(180px, 0.34fr) minmax(280px, 0.66fr) 90px;
	gap: 0.5rem;
}

.checklist-table-head-cell {
	background: #ecd3ad;
	color: #2b2b2b;
	font-weight: 700;
	font-size: 0.9rem;
	padding: 0.7rem;
	border-radius: 4px;
	text-align: center;
}

.checklist-table-head-cell--actions {
	min-width: 90px;
}

.checklist-table-cell {
	padding: 0.4rem;
	border-radius: 4px;
	min-height: 76px;
	display: flex;
	align-items: stretch;
	justify-content: center;
}

.checklist-table-cell--area {
	background: #c8d5f7;
}

.checklist-table-cell--ai {
	background: #efedb8;
}

.checklist-table-cell--actions {
	background: #f5f5f5;
	align-items: center;
	flex-direction: column;
	gap: 0.4rem;
}

.checklist-table-row.is-done .checklist-table-cell--area,
.checklist-table-row.is-done .checklist-table-cell--ai {
	opacity: 0.66;
}

.checklist-area-input,
.checklist-ai-input {
	width: 100%;
	height: 100%;
	border: none;
	background: transparent;
	font-size: 0.98rem;
	line-height: 1.45;
	padding: 0.35rem;
	resize: none;
	overflow: hidden;
	color: var(--c-text-primary);
}

.checklist-area-input:focus,
.checklist-ai-input:focus {
	outline: 2px solid rgba(242, 152, 115, 0.35);
	border-radius: 3px;
}

.checklist-table-row--adder .checklist-table-cell--area,
.checklist-table-row--adder .checklist-table-cell--ai,
.checklist-table-row--adder .checklist-table-cell--actions {
	background: #d9d9d9;
}

.checklist-item {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 0.6rem;
	align-items: center;
	padding: 0.65rem;
	border-radius: 8px;
	background: #f9f9f9;
	border-left: 3px solid var(--c-action-primary);
}

.checklist-item.is-done {
	border-left-color: var(--c-action-secondary);
	background: #f2fbf8;
}

.checklist-check-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
}

.checklist-edit {
	width: 100%;
	padding: 0.5rem;
	border-radius: 6px;
	border: 1px solid #ddd;
	background: #fff;
}

.checklist-actions {
	display: flex;
	gap: 0.35rem;
}


@media (max-width: 960px) {
	.summary-toolbar {
		grid-template-columns: 1fr;
	}

	.summary-grid {
		grid-template-columns: 1fr;
	}

	.checklist-toolbar,
	.checklist-toolbar--compact {
		grid-template-columns: 1fr;
	}

	.checklist-toolbar-actions {
		justify-content: flex-start;
	}

	.checklist-table {
		min-width: 100%;
	}

	.checklist-table-head {
		display: none;
	}

	.checklist-table-row {
		grid-template-columns: 1fr;
	}

	.checklist-table-cell {
		min-height: 58px;
	}

	.checklist-actions {
		justify-content: flex-start;
	}

}

/* Session Card */
.session-card .card-body {
	padding: 0;
}

/* AI Sidebar — tab bar */
.ai-sidebar-tabs {
	display: flex;
	border-bottom: 1px solid #e0e0e0;
	flex-shrink: 0;
}
.ai-sidebar-tab {
	flex: 1;
	padding: 8px 0;
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	cursor: pointer;
	font-size: 0.85rem;
	color: #666;
	transition: color 0.15s, border-color 0.15s;
}
.ai-sidebar-tab.is-active {
	color: #1a56db;
	border-bottom-color: #1a56db;
	font-weight: 600;
}

/* AI Sidebar — panel show/hide */
.ai-sidebar-panel {
	display: none;
	flex: 1;
	flex-direction: column;
	overflow: hidden;
	min-height: 0;
}
.ai-sidebar-panel.is-active {
	display: flex;
}

/* AI Sidebar — checklist toolbar and adder row */
.ai-checklist-toolbar {
	display: flex;
	gap: 6px;
	align-items: center;
	padding: 8px 12px;
	border-bottom: 1px solid #eee;
	flex-shrink: 0;
	flex-wrap: wrap;
}
.ai-checklist-toolbar select {
	flex: 1;
	min-width: 0;
	font-size: 0.8rem;
}
#ai-checklist-create-panel {
	padding: 8px 12px;
	border: none;
	border-bottom: 1px solid #eee;
	border-radius: 0;
	background: none;
}
#ai-checklist-create-panel .checklist-create-input {
	font-size: 0.8rem;
}
.ai-checklist-adder {
	display: flex;
	gap: 6px;
	padding: 8px 12px;
	border-top: 1px solid #eee;
	flex-shrink: 0;
}
.ai-checklist-adder input {
	flex: 1;
	min-width: 0;
}

/* AI Sidebar — scrollable row list */
#ai-checklist-list {
	flex: 1;
	overflow-y: auto;
	padding: 4px 0;
}

/* AI Sidebar — compact two-column checklist rows */
#ai-panel-checklist .checklist-table-row {
	grid-template-columns: 1fr auto;
}
#ai-panel-checklist .checklist-table-cell--ai {
	display: none;
}
#ai-panel-checklist .checklist-table-cell--area {
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
}
.ai-cl-area-text {
	display: block;
	font-size: 0.85rem;
}
.ai-cl-interp-text {
	display: block;
	font-size: 0.75rem;
	color: #666;
	margin-top: 2px;
	white-space: pre-wrap;
}
.ai-cl-interp-text:empty {
	display: none;
}

#session-info-container {
	padding: 1rem 1.5rem;
	background: #fafafa;
	border-bottom: 1px solid #eee;
}

#session-info-container:empty {
	display: none;
}

.session-info-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.session-info-left {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.session-info-meta {
	font-size: 0.9em;
	color: var(--c-text-secondary);
}

.transcript-container {
	padding: 1.5rem;
	min-height: 360px;
	max-height: min(68vh, 760px);
	overflow-y: auto;
}

.placeholder-text {
	color: var(--c-text-secondary);
	text-align: center;
	padding: 2rem;
}

/* Transcript segment styling */
.transcript-segment {
	margin-bottom: 1rem;
	padding: 0.75rem 1rem;
	background: #f9f9f9;
	border-radius: 8px;
	border-left: 3px solid var(--c-action-secondary);
}

.transcript-segment:last-child {
	margin-bottom: 0;
}

/* Status badges for session */
.status-badge.pending {
	background: #e3f2fd;
	color: #1565c0;
}

.status-badge.processing,
.status-badge.reconciling {
	background: #fff3e0;
	color: #e65100;
}

.status-badge.done {
	background: #e8f5e9;
	color: #2e7d32;
}

.status-badge.failed {
	background: #ffebee;
	color: #c62828;
}

/* ================================
   SPEAKERS PAGE STYLES
   ================================ */

.speakers-page-wrapper {
	padding: 1rem 0;
}

.speakers-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1.5rem;
	gap: 1rem;
}

.speakers-toolbar .search-input {
	padding: 0.75rem 1rem;
	border: 1px solid #ddd;
	border-radius: 8px;
	width: 300px;
	font-size: 1rem;
}

.speakers-toolbar .search-input:focus {
	border-color: var(--c-action-primary);
	box-shadow: 0 0 0 3px var(--c-action-primary-accent);
}

/* Speaker Cards Grid */
.speakers-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1.25rem;
}

.speaker-card {
	background: white;
	border: 1px solid #e0e0e0;
	border-radius: 12px;
	padding: 1.25rem;
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	cursor: pointer;
	transition: all 0.2s ease;
}

.speaker-card:hover {
	border-color: var(--c-action-primary);
	box-shadow: 0 4px 12px rgba(0,0,0,0.08);
	transform: translateY(-2px);
}

.speaker-card.has-voice {
	border-left: 4px solid var(--c-action-secondary);
}

.speaker-card.no-voice {
	border-left: 4px solid #e0e0e0;
}

.speaker-card-avatar {
	width: 48px;
	height: 48px;
	background: var(--c-action-primary-accent);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.speaker-card-avatar .avatar-icon {
	font-size: 1.5rem;
}

.speaker-card-info {
	flex: 1;
	min-width: 0;
}

.speaker-card-name {
	font-weight: 600;
	font-size: 1.05rem;
	margin-bottom: 0.25rem;
}

.speaker-card-role {
	color: var(--c-text-secondary);
	font-size: 0.9rem;
	margin-bottom: 0.5rem;
}

.speaker-card-status {
	font-size: 0.8rem;
	font-weight: 500;
}

.speaker-card-status.status-active {
	color: var(--c-action-secondary);
}

.speaker-card-status.status-inactive {
	color: #999;
}

/* Speaker Detail Panel - Inline Card */
.speaker-detail-panel {
	display: none;
	animation: fadeIn 0.2s ease;
}

.speaker-detail-panel.open {
	display: block;
}

@keyframes fadeIn {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: translateY(0); }
}

/* Hide the grid and toolbar when detail is open */
.speakers-page-wrapper.detail-open .speakers-toolbar,
.speakers-page-wrapper.detail-open .speakers-grid {
	display: none;
}

/* Also hide the page subtitle when detail is open */
.speakers-page-wrapper.detail-open ~ .content-header small,
body:has(.speakers-page-wrapper.detail-open) .content-header small {
	display: none;
}

.detail-panel-overlay {
	display: none; /* No longer needed for full-page view */
}

.detail-panel-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 0;
	margin-bottom: 1rem;
	border-bottom: 1px solid #eee;
}

.back-btn {
	background: none;
	border: none;
	color: var(--c-text-secondary);
	font-size: 0.95rem;
	cursor: pointer;
	padding: 0.5rem 0;
}

.back-btn:hover {
	color: var(--c-action-primary);
}

.detail-actions {
	display: flex;
	gap: 0.5rem;
}

.detail-panel-content {
	padding: 0;
}

/* Employee Info Section */
.employee-info-section {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin-bottom: 1.5rem;
	padding: 1.5rem;
	background: white;
	border-radius: 12px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.employee-avatar {
	width: 72px;
	height: 72px;
	background: var(--c-action-primary-accent);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.employee-avatar .avatar-icon {
	font-size: 2.5rem;
}

.employee-details h2 {
	margin: 0 0 0.25rem 0;
	font-size: 1.5rem;
	font-weight: 600;
}

.detail-email {
	color: var(--c-action-secondary);
	margin: 0 0 0.25rem 0;
}

.detail-meta {
	color: var(--c-text-secondary);
	margin: 0;
	font-size: 0.9rem;
}

/* Detail Columns */
.detail-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
	margin-bottom: 1.5rem;
}

@media (max-width: 1000px) {
	.detail-columns {
		grid-template-columns: 1fr;
	}
}

.detail-card {
	background: white;
	border-radius: 12px;
	padding: 1.5rem;
	box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.detail-card.full-width {
	grid-column: 1 / -1;
}

.detail-card .card-title {
	margin: 0 0 1rem 0;
	font-size: 1rem;
	font-weight: 600;
	color: var(--c-text-primary);
}

.detail-card .card-title.collapsible {
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.section-hint {
	font-size: 0.85rem;
	color: var(--c-text-secondary);
	margin: 0 0 1rem 0;
}

/* Profile Stats */
.profile-status {
	margin-bottom: 1rem;
}

.badge {
	display: inline-block;
	padding: 0.35rem 0.75rem;
	border-radius: 20px;
	font-size: 0.85rem;
	font-weight: 500;
}

.badge-success {
	background: #e8f5e9;
	color: #2e7d32;
}

.badge-warning {
	background: #fff3e0;
	color: #e65100;
}

.profile-stats {
	margin-bottom: 1rem;
}

.stat-row {
	display: flex;
	justify-content: space-between;
	padding: 0.5rem 0;
	border-bottom: 1px solid #eee;
}

.stat-row:last-child {
	border-bottom: none;
}

.stat-label {
	color: var(--c-text-secondary);
	font-size: 0.9rem;
}

.stat-value {
	font-weight: 500;
}

/* Upload Tabs */
.upload-tabs {
	display: flex;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.upload-tab {
	padding: 0.5rem 1rem;
	border: 1px solid #ddd;
	background: white;
	border-radius: 6px;
	cursor: pointer;
	font-size: 0.9rem;
	transition: all 0.15s ease;
}

.upload-tab.active {
	background: var(--c-action-primary);
	border-color: var(--c-action-primary);
	color: white;
}

.upload-tab-content {
	display: none;
}

.upload-tab-content.active {
	display: block;
}

.upload-status {
	margin-top: 0.75rem;
	font-size: 0.9rem;
}

.upload-status .processing {
	color: #e65100;
}

.upload-status .success {
	color: #2e7d32;
}

.upload-status .error {
	color: #c62828;
}

/* Session Segments List */
.session-segments-list {
	max-height: 200px;
	overflow-y: auto;
}

.segment-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.75rem;
	background: white;
	border-radius: 8px;
	margin-bottom: 0.5rem;
}

.segment-session {
	font-weight: 500;
	font-size: 0.9rem;
}

.segment-meta {
	font-size: 0.8rem;
	color: var(--c-text-secondary);
}

/* Chart Container */
.chart-container {
	position: relative;
	height: 250px;
	margin-bottom: 0.75rem;
}

.chart-legend {
	text-align: center;
}

/* Raw Embedding */
.raw-embedding-content {
	padding-top: 0.5rem;
}

.embedding-preview {
	background: white;
	padding: 0.75rem;
	border-radius: 6px;
	font-family: monospace;
	font-size: 0.8rem;
	overflow-x: auto;
	margin-bottom: 0.75rem;
}

.embedding-code {
	word-break: break-all;
}

/* Session History Table */
.session-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
}

.session-table th {
	text-align: left;
	padding: 0.75rem;
	background: white;
	font-weight: 500;
	border-bottom: 2px solid #eee;
}

.session-table td {
	padding: 0.75rem;
	border-bottom: 1px solid #eee;
}

.session-table tr:hover td {
	background: white;
}

/* Additional button styles */
.btn-danger {
	background: #c62828;
	color: white;
	border: none;
}

.btn-danger:hover {
	background: #b71c1c;
}

/* Voice Fingerprint Visualization */
.voice-fingerprint-card {
	background: white !important;
}

.fingerprint-header {
	text-align: center;
	margin-bottom: 0.5rem;
}

.fingerprint-subtitle {
	display: none;
}

.voice-fingerprint-card .card-title {
	color: var(--c-text-primary);
	font-size: 1rem;
	font-weight: 600;
	margin: 0;
}

.fingerprint-container {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 280px;
}

.fingerprint-container canvas {
	cursor: crosshair;
	max-width: 100%;
	height: auto;
}

.fingerprint-container .placeholder-text {
	position: absolute;
	color: var(--c-text-secondary);
}

.fingerprint-tooltip {
	position: absolute;
	background: rgba(255,255,255,0.95);
	border: 1px solid #eee;
	border-radius: 8px;
	padding: 10px 14px;
	font-size: 12px;
	line-height: 1.6;
	pointer-events: none;
	display: none;
	color: var(--c-text-primary);
	z-index: 100;
	box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.fingerprint-stats {
	display: none;
}

.fingerprint-legend {
	display: flex;
	gap: 20px;
	margin-top: 0.75rem;
	font-size: 11px;
	color: var(--c-text-secondary);
	justify-content: center;
}

.legend-line {
	display: inline-block;
	width: 16px;
	height: 3px;
	vertical-align: middle;
	margin-right: 6px;
	border-radius: 2px;
}

.legend-line.positive { background: var(--c-action-secondary); }
.legend-line.negative { background: var(--c-action-primary); }

.legend-hint {
	display: none;
}

/* =============================================
   AI Assistant Styles
   ============================================= */

/* Floating AI Button */
.ai-floating-btn {
	position: absolute;
	bottom: 1.5rem;
	right: 1.5rem;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	border: none;
	background: linear-gradient(135deg, var(--c-action-primary) 0%, var(--c-action-tertiary) 100%);
	box-shadow: 0 4px 15px rgba(242, 152, 115, 0.4);
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	overflow: hidden;
	z-index: 100;
}

.ai-floating-btn:hover {
	transform: scale(1.1);
	box-shadow: 0 6px 20px rgba(242, 152, 115, 0.5);
}

.ai-floating-btn:active {
	transform: scale(0.95);
}

.ai-btn-img {
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 50%;
}

.ai-floating-btn.thinking .ai-btn-img {
	animation: ai-pulse 1.5s ease-in-out infinite;
}

@keyframes ai-pulse {
	0%, 100% { transform: scale(1); opacity: 1; }
	50% { transform: scale(1.05); opacity: 0.8; }
}

/* AI Sidebar */
.ai-sidebar {
	position: fixed;
	top: 0;
	right: 0;
	width: 400px;
	height: 100vh;
	background: #fff;
	box-shadow: -4px 0 20px rgba(0,0,0,0.1);
	z-index: 1000;
	transition: transform 0.3s ease;
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
}

.ai-sidebar.open {
	transform: translateX(0);
}

.ai-sidebar .sidebar-header {
	background: linear-gradient(135deg, var(--c-action-primary) 0%, var(--c-action-tertiary) 100%);
	color: #fff;
}

.ai-sidebar .sidebar-header h3 {
	color: #fff;
}

.ai-sidebar .sidebar-close {
	color: #fff;
}

.ai-sidebar .sidebar-close:hover {
	color: rgba(255,255,255,0.8);
}

.ai-sidebar-content {
	flex: 1;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

/* Model Selector */
.ai-model-selector {
	padding: 1rem 1.5rem;
	border-bottom: 1px solid #eee;
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.ai-model-selector label {
	font-size: 0.9em;
	color: var(--c-text-secondary);
	white-space: nowrap;
}

.ai-model-dropdown {
	flex: 1;
	padding: 0.5rem 0.75rem;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 0.9em;
	background: #fff;
	cursor: pointer;
}

.ai-model-dropdown:focus {
	border-color: var(--c-action-primary);
	outline: none;
}

/* Quick Actions */
.ai-quick-actions {
	padding: 0.75rem 1.5rem;
	border-bottom: 1px solid #eee;
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.ai-quick-btn {
	padding: 0.4rem 0.75rem;
	border: 1px solid #ddd;
	border-radius: 20px;
	background: #fff;
	font-size: 0.8em;
	cursor: pointer;
	transition: all 0.2s ease;
	white-space: nowrap;
}

.ai-quick-btn:hover {
	border-color: var(--c-action-primary);
	background: var(--c-action-primary-accent);
}

.ai-quick-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* Chat Messages */
.ai-chat-messages {
	flex: 1;
	overflow-y: auto;
	padding: 1rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.ai-welcome-message {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 2rem 1rem;
	color: var(--c-text-secondary);
}

.ai-welcome-message .ai-avatar {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	margin-bottom: 1rem;
	box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.ai-welcome-message p {
	font-size: 0.95em;
	line-height: 1.5;
	max-width: 280px;
}

/* Chat Message Bubbles */
.ai-message {
	display: flex;
	gap: 0.75rem;
	animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: translateY(0); }
}

.ai-message.user {
	flex-direction: row-reverse;
}

.ai-message-avatar {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	flex-shrink: 0;
}

.ai-message-avatar.user-avatar {
	background: var(--c-action-secondary);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-weight: 600;
	font-size: 0.9em;
}

.ai-message-content {
	max-width: 80%;
	padding: 0.75rem 1rem;
	border-radius: 12px;
	font-size: 0.9em;
	line-height: 1.5;
}

.ai-message.user .ai-message-content {
	background: var(--c-action-primary);
	color: #fff;
	border-bottom-right-radius: 4px;
}

.ai-message.assistant .ai-message-content {
	background: var(--c-bg-search);
	color: var(--c-text-primary);
	border-bottom-left-radius: 4px;
}

.ai-message-content pre {
	background: rgba(0,0,0,0.05);
	padding: 0.5rem;
	border-radius: 4px;
	overflow-x: auto;
	margin: 0.5rem 0;
}

.ai-message-content code {
	font-family: 'Space Mono', monospace;
	font-size: 0.85em;
}

/* Typing indicator */
.ai-typing {
	display: flex;
	gap: 4px;
	padding: 0.5rem;
}

.ai-typing span {
	width: 8px;
	height: 8px;
	background: var(--c-text-secondary);
	border-radius: 50%;
	animation: typing 1.4s infinite;
}

.ai-typing span:nth-child(2) { animation-delay: 0.2s; }
.ai-typing span:nth-child(3) { animation-delay: 0.4s; }

@keyframes typing {
	0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
	30% { transform: translateY(-4px); opacity: 1; }
}

/* Chat Input */
.ai-chat-input-container {
	padding: 1rem 1.5rem;
	border-top: 1px solid #eee;
	display: flex;
	gap: 0.75rem;
	align-items: flex-end;
	background: #fafafa;
}

.ai-chat-input {
	flex: 1;
	padding: 0.75rem 1rem;
	border: 1px solid #ddd;
	border-radius: 12px;
	font-size: 0.9em;
	resize: none;
	max-height: 120px;
	line-height: 1.4;
}

.ai-chat-input:focus {
	border-color: var(--c-action-primary);
	outline: none;
}

.ai-send-btn {
	width: 44px;
	height: 44px;
	border: none;
	border-radius: 50%;
	background: var(--c-action-primary);
	color: #fff;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s ease, transform 0.2s ease;
	flex-shrink: 0;
}

.ai-send-btn:hover {
	background: #e08860;
	transform: scale(1.05);
}

.ai-send-btn:disabled {
	background: #ccc;
	cursor: not-allowed;
	transform: none;
}

/* Error message styling */
.ai-error-message {
	background: #fff5f5;
	border: 1px solid #ffcdd2;
	color: #c62828;
	padding: 0.75rem 1rem;
	border-radius: 8px;
	font-size: 0.85em;
}

/* AI Response Markdown Styling */
.ai-message-content .ai-h1 {
	font-size: 1.3em;
	font-weight: 700;
	margin: 1rem 0 0.5rem 0;
	padding-bottom: 0.3rem;
	border-bottom: 2px solid var(--c-action-primary);
	color: var(--c-text-primary);
}

.ai-message-content .ai-h2 {
	font-size: 1.15em;
	font-weight: 600;
	margin: 0.9rem 0 0.4rem 0;
	color: var(--c-text-primary);
}

.ai-message-content .ai-h3 {
	font-size: 1.05em;
	font-weight: 600;
	margin: 0.75rem 0 0.35rem 0;
	color: var(--c-action-primary);
}

.ai-message-content .ai-h4 {
	font-size: 0.95em;
	font-weight: 600;
	margin: 0.6rem 0 0.3rem 0;
	color: var(--c-text-secondary);
}

.ai-message-content .ai-list {
	margin: 0.5rem 0;
	padding-left: 1.5rem;
}

.ai-message-content .ai-list li {
	margin: 0.25rem 0;
	line-height: 1.5;
}

.ai-message-content ul.ai-list {
	list-style-type: disc;
}

.ai-message-content ol.ai-list {
	list-style-type: decimal;
}

.ai-message-content ul.ai-list li::marker {
	color: var(--c-action-primary);
}

.ai-message-content ol.ai-list li::marker {
	color: var(--c-action-primary);
	font-weight: 600;
}

/* AI Sidebar Resize Handle */
.ai-sidebar-resize-handle {
	position: absolute;
	left: 0;
	top: 0;
	width: 6px;
	height: 100%;
	cursor: ew-resize;
	background: transparent;
	transition: background 0.2s ease;
	z-index: 10;
}

.ai-sidebar-resize-handle:hover,
.ai-sidebar-resize-handle.dragging {
	background: var(--c-action-primary);
}

.ai-sidebar-resize-handle::before {
	content: '';
	position: absolute;
	left: 1px;
	top: 50%;
	transform: translateY(-50%);
	width: 4px;
	height: 40px;
	background: repeating-linear-gradient(
		to bottom,
		var(--c-text-secondary) 0px,
		var(--c-text-secondary) 2px,
		transparent 2px,
		transparent 6px
	);
	border-radius: 2px;
	opacity: 0.3;
	transition: opacity 0.2s ease;
}

.ai-sidebar-resize-handle:hover::before {
	opacity: 0.6;
}

/* Expanded state for AI sidebar */
.ai-sidebar.expanded {
	width: 600px;
}

.ai-sidebar.resizing {
	transition: none;
}
/* =============================================
   Record Page — Simplified Layout
   ============================================= */

.record-simple-layout {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 1.25rem;
	padding: 2rem 1rem 3rem;
	width: 100%;
	max-width: 980px;
	margin: 0 auto;
}

.record-controls-stack {
	width: min(100%, 620px);
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.25rem;
}

/* Big circle play/stop button */
.record-circle-btn {
	width: 120px;
	height: 120px;
	border-radius: 50%;
	border: none;
	background: var(--c-action-primary);
	color: #fff;
	font-size: 2.5rem;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 6px 24px rgba(242, 152, 115, 0.45);
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.2s ease;
	flex-shrink: 0;
}

.record-circle-btn:hover {
	transform: scale(1.06);
	box-shadow: 0 8px 30px rgba(242, 152, 115, 0.55);
}

.record-circle-btn.recording {
	background: #e53935;
	box-shadow: 0 6px 24px rgba(229, 57, 53, 0.45);
	animation: pulse-ring 1.8s ease-in-out infinite;
}

.record-circle-btn.recording:hover {
	box-shadow: 0 8px 30px rgba(229, 57, 53, 0.55);
}

@keyframes pulse-ring {
	0%   { box-shadow: 0 6px 24px rgba(229, 57, 53, 0.45), 0 0 0 0 rgba(229, 57, 53, 0.3); }
	70%  { box-shadow: 0 6px 24px rgba(229, 57, 53, 0.45), 0 0 0 18px rgba(229, 57, 53, 0); }
	100% { box-shadow: 0 6px 24px rgba(229, 57, 53, 0.45), 0 0 0 0 rgba(229, 57, 53, 0); }
}

.record-circle-icon {
	pointer-events: none;
	line-height: 1;
}

/* Elapsed time big display */
.record-elapsed-display {
	font-family: "Space Mono", monospace;
	font-size: 2rem;
	font-weight: 700;
	color: var(--c-text-primary);
	letter-spacing: 0.04em;
}

/* Two-button row under timer */
.record-action-row {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	justify-content: center;
}

.record-action-btn {
	min-width: 140px;
	text-align: center;
}

.record-meeting-info {
	width: 100%;
	background: var(--c-bg-secondary);
	border: 1px solid #e8e8e8;
	border-radius: 10px;
	padding: 0.9rem 1rem;
}

.record-meeting-info-title {
	margin: 0 0 0.65rem 0;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--c-text-secondary);
}

.record-meeting-info-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem 1rem;
}

.record-meeting-info-item {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	min-width: 0;
}

.record-meeting-info-item span {
	font-size: 0.75rem;
	color: var(--c-text-secondary);
}

.record-meeting-info-item strong {
	font-size: 0.92rem;
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

@media (max-width: 640px) {
	.record-meeting-info-grid {
		grid-template-columns: 1fr;
	}
}

/* Transcript section */
.record-transcript-section {
	width: 100%;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 2px 12px rgba(0,0,0,0.07);
	padding: 1.25rem 1.5rem;
	align-self: stretch;
}

.record-transcript-label {
	margin: 0 0 0.85rem 0;
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--c-text-secondary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* =============================================
   Live preview lane — provisional Whisper text
   Styled as clearly subordinate to confirmed speaker turns: muted, italic, no
   speaker chip. Unconfirmed text must never read like the record.
   ============================================= */
.live-feed {
	margin: 0 0 0.9rem 0;
	padding: 0.7rem 0.9rem;
	border-radius: 10px;
	border: 1px dashed var(--c-border, #e0e0e0);
	background: rgba(0, 0, 0, 0.02);
}

.live-feed-head {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	margin-bottom: 0.35rem;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--c-text-secondary, #666);
}

.live-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #e53935;
	animation: live-dot-pulse 1.6s ease-in-out infinite;
}

@keyframes live-dot-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.25; }
}

@media (prefers-reduced-motion: reduce) {
	.live-dot { animation: none; }
}

.live-feed-text {
	margin: 0;
	font-style: italic;
	line-height: 1.6;
	color: var(--c-text-secondary, #666);
}

.transcript-toolbar {
	display: flex;
	justify-content: flex-end;
	margin-bottom: 0.5rem;
}

.transcript-order-btn {
	border: 1px solid var(--c-border, #e0e0e0);
	background: transparent;
	border-radius: 999px;
	padding: 0.2rem 0.7rem;
	font-size: 0.75rem;
	color: var(--c-text-secondary, #666);
	cursor: pointer;
}

.transcript-order-btn:hover {
	background: rgba(0, 0, 0, 0.04);
}

/* Override .recording-progress for the simplified 2-pill layout */
.record-simple-layout .recording-progress {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	width: 100%;
	max-width: 300px;
}

/* =============================================
   Meeting Info — Advanced Settings (collapsible)
   ============================================= */

.adv-settings {
	margin-top: 1.25rem;
	border: 1px solid #e8e8e8;
	border-radius: 8px;
	overflow: hidden;
}

.adv-settings-toggle {
	list-style: none;
	padding: 0.75rem 1rem;
	cursor: pointer;
	font-weight: 500;
	font-size: 0.9rem;
	color: var(--c-text-secondary);
	background: var(--c-bg-secondary);
	user-select: none;
	transition: background 0.15s;
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.adv-settings-toggle::before {
	content: '▸';
	display: inline-block;
	transition: transform 0.2s;
}

.adv-settings[open] > .adv-settings-toggle::before {
	transform: rotate(90deg);
}

.adv-settings-toggle:hover {
	background: #eceaf5;
}

.adv-settings-toggle::-webkit-details-marker {
	display: none;
}

.adv-settings-body {
	padding: 1rem 1rem 0.5rem;
	border-top: 1px solid #e8e8e8;
}

.adv-settings-body .form-group {
	margin-bottom: 1rem;
}

/* ── Recordings Page ── */

/* Hide the meeting-select row when embedded inside the recordings detail view */
.recordings-hidden-select {
	display: none !important;
}

/* List view */
.recordings-list {
	margin-top: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.recordings-list-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: #fff;
	border-radius: 8px;
	border-left: 4px solid var(--c-action-secondary);
	box-shadow: 0 1px 4px rgba(0,0,0,.06);
	transition: transform 0.15s, box-shadow 0.15s;
	overflow: hidden;
}

.recordings-list-item:hover {
	transform: translateX(4px);
	box-shadow: 0 2px 8px rgba(0,0,0,.1);
}

.recordings-list-item-link {
	flex: 1;
	display: block;
	padding: 1rem 1.25rem;
	text-decoration: none;
	color: inherit;
	min-width: 0;
}

.recordings-list-item-actions {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding-right: 1rem;
	flex-shrink: 0;
}

.recordings-delete-btn {
	opacity: 0;
	transition: opacity 0.15s;
}

.recordings-list-item:hover .recordings-delete-btn {
	opacity: 1;
}

.recordings-list-item-title {
	font-weight: 600;
	font-size: 0.975rem;
}

.recordings-list-item-meta {
	color: var(--c-text-secondary);
	font-size: 0.82rem;
	margin-top: 0.15rem;
}

.recordings-list-item-badge {
	padding: 0.2rem 0.6rem;
	border-radius: 4px;
	font-size: 0.72rem;
	font-weight: 500;
	text-transform: capitalize;
	white-space: nowrap;
	margin-left: 1rem;
}

.recordings-list-item-badge--scheduled { background: #e3f2fd; color: #1565c0; }
.recordings-list-item-badge--recording { background: #ffebee; color: #c62828; }
.recordings-list-item-badge--processing { background: #fff3e0; color: #e65100; }
.recordings-list-item-badge--done      { background: #e8f5e9; color: #2e7d32; }
.recordings-list-item-badge--cancelled { background: #f5f5f5; color: #757575; }
.recordings-list-item-badge--unknown   { background: #f5f5f5; color: #757575; }

/* Detail view header */
.recordings-detail-header {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.5rem;
	flex-wrap: wrap;
}

.recordings-meeting-title {
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0;
}

.recordings-meeting-meta {
	color: var(--c-text-secondary);
	font-size: 0.875rem;
}

/* Subtabs */
.recordings-subtabs {
	display: flex;
	gap: 0;
	border-bottom: 2px solid #e8e8e8;
	margin-bottom: 1.5rem;
}

.recordings-subtab {
	padding: 0.6rem 1.2rem;
	border: none;
	background: none;
	cursor: pointer;
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--c-text-secondary);
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	transition: color 0.15s, border-color 0.15s;
}

.recordings-subtab:hover {
	color: var(--c-text-primary);
}

.recordings-subtab.is-active {
	color: var(--c-action-primary);
	border-bottom-color: var(--c-action-primary);
}

/* Tab panels */
.recordings-tab-panel {
	display: none;
}

.recordings-tab-panel.is-active {
	display: block;
}

/* Transcript tab */
.recordings-transcript-output {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.recordings-transcript-row {
	background: #fff;
	border-radius: 6px;
	padding: 0.75rem 1rem;
	box-shadow: 0 1px 3px rgba(0,0,0,.06);
}

.recordings-transcript-meta {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.35rem;
}

.recordings-transcript-speaker {
	font-weight: 600;
	font-size: 0.85rem;
}

.recordings-transcript-time {
	color: var(--c-text-secondary);
	font-size: 0.78rem;
}

.recordings-transcript-text {
	font-size: 0.9rem;
	line-height: 1.55;
}

/* Status line shared by transcript / speakers tabs */
.recordings-tab-status {
	color: var(--c-text-secondary);
	font-size: 0.875rem;
	margin-bottom: 0.75rem;
}

/* Speakers tab */
.recordings-speakers-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1rem;
	margin-top: 0.5rem;
}

.recordings-speaker-card {
	background: #fff;
	border-radius: 8px;
	padding: 1rem 1.25rem;
	box-shadow: 0 1px 4px rgba(0,0,0,.06);
	border-top: 3px solid var(--c-action-secondary);
}

.recordings-speaker-label {
	font-size: 0.75rem;
	color: var(--c-text-secondary);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 0.25rem;
}

.recordings-speaker-name {
	font-weight: 600;
	font-size: 1rem;
	margin-bottom: 0.35rem;
}

.recordings-speaker-unassigned {
	color: var(--c-text-secondary);
	font-weight: 400;
	font-style: italic;
}

.recordings-speaker-stats {
	font-size: 0.8rem;
	color: var(--c-text-secondary);
}

.recordings-speakers-hint {
	margin-top: 1.25rem;
	font-size: 0.85rem;
	color: var(--c-text-secondary);
}

/* ── Responsive header ── */
@media (max-width: 760px) {
	body {
		padding: 0.75rem;
	}

	.earmark-app {
		padding: 1.25rem 1rem;
		border-radius: 10px;
	}

	.header {
		flex-wrap: wrap;
		gap: 0.5rem;
	}

	.header-logo {
		font-size: 1.15rem;
	}

	.header-tabs {
		order: 3;
		width: 100%;
		margin-left: 0;
		gap: 0.25rem;
	}

	.header-tab {
		padding: 0.5rem 0.85rem;
		font-size: 0.85rem;
		flex: 1;
		text-align: center;
	}

	.header-actions {
		gap: 0.5rem;
	}

	.language-switcher {
		padding: 0.35rem 0.5rem;
		font-size: 0.8rem;
	}

	.user-name {
		display: none;
	}

	.user-menu-btn {
		padding: 0.3rem 0.5rem;
	}
}

/* ══════════════════════════════════════════════════════
   ASSETS FEATURE — cards, upload row, chips, slash menu
   ══════════════════════════════════════════════════════ */

/* ── Assets panel container ── */
.assets-panel-container {
	padding: 0.75rem 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

/* ── Upload row ── */
.assets-upload-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0 0 0.25rem;
}
.assets-upload-status {
	font-size: 0.8rem;
	color: var(--c-text-secondary, #888);
}

/* ── Asset grid ── */
.assets-grid {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

/* ── Asset card ── */
.asset-card {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.6rem 0.75rem;
	background: var(--c-surface, #fff);
	border: 1px solid var(--c-border, #e5e7eb);
	border-radius: 8px;
	transition: box-shadow 0.15s;
}
.asset-card:hover {
	box-shadow: 0 2px 8px rgba(0,0,0,0.07);
}

.asset-card-preview {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	border-radius: 4px;
	background: var(--c-surface-secondary, #f3f4f6);
}
.asset-card-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.asset-card-icon {
	font-size: 1.75rem;
	line-height: 1;
}

.asset-card-info {
	flex: 1;
	min-width: 0;
}
.asset-card-name {
	font-size: 0.85rem;
	font-weight: 500;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.asset-card-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: 0.15rem;
}
.asset-meta-item {
	font-size: 0.75rem;
	color: var(--c-text-secondary, #888);
	background: var(--c-surface-secondary, #f3f4f6);
	padding: 0.1rem 0.4rem;
	border-radius: 3px;
}

.asset-card-actions {
	flex-shrink: 0;
	display: flex;
	gap: 0.35rem;
}

/* ── Attachment chips (above chat input) ── */
.ai-attachment-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	padding: 0.4rem 0.5rem;
	background: var(--c-surface-secondary, #f3f4f6);
	border-radius: 6px 6px 0 0;
	border: 1px solid var(--c-border, #e5e7eb);
	border-bottom: none;
}
.ai-attachment-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 0.78rem;
	background: var(--c-surface, #fff);
	border: 1px solid var(--c-border, #e5e7eb);
	border-radius: 4px;
	padding: 0.15rem 0.5rem;
	max-width: 180px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ai-chip-remove {
	background: none;
	border: none;
	cursor: pointer;
	font-size: 0.9rem;
	padding: 0;
	line-height: 1;
	color: var(--c-text-secondary, #888);
	flex-shrink: 0;
}
.ai-chip-remove:hover {
	color: var(--c-danger, #e53935);
}

/* ── Slash command menu ── */
.ai-slash-menu {
	background: var(--c-surface, #fff);
	border: 1px solid var(--c-border, #e5e7eb);
	border-radius: 8px;
	box-shadow: 0 4px 16px rgba(0,0,0,0.12);
	max-height: 220px;
	overflow-y: auto;
	z-index: 200;
	margin-bottom: 0.25rem;
}
.ai-slash-item {
	padding: 0.5rem 0.75rem;
	cursor: pointer;
	font-size: 0.85rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	transition: background 0.1s;
}
.ai-slash-item:hover,
.ai-slash-item.is-active {
	background: var(--c-primary-light, #eff6ff);
	color: var(--c-primary, #2563eb);
}

/* ── Utility button sizes ── */
.btn-xs {
	padding: 0.15rem 0.4rem;
	font-size: 0.75rem;
	border-radius: 4px;
}
.assets-open-btn {
	text-decoration: none;
}

/* ── Slash-command hint below chat input ── */
.ai-chat-slash-hint {
	font-size: 0.72rem;
	color: var(--c-text-secondary, #aaa);
	text-align: right;
	padding: 0.15rem 1.5rem 0.35rem;
	margin: 0;
}

/* ===== My Voice Profile (self enrollment) ===== */
.my-voice-card {
	display: flex;
	gap: 1.5rem;
	align-items: flex-start;
	justify-content: space-between;
	background: white;
	border: 1px solid var(--c-action-secondary);
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
	margin-bottom: 1.25rem;
	box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.my-voice-main {
	display: flex;
	gap: 1rem;
	flex: 1;
	min-width: 0;
}
.my-voice-avatar {
	flex: 0 0 auto;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--c-bg-secondary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.4rem;
}
.my-voice-body { flex: 1; min-width: 0; }
.my-voice-headline {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-wrap: wrap;
}
.my-voice-headline h3 {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--c-text-primary);
}
.mv-status {
	font-size: 0.75rem;
	font-weight: 600;
	padding: 0.15rem 0.6rem;
	border-radius: 999px;
}
.mv-status--on { background: rgba(99,196,177,0.18); color: #2f8f7d; }
.mv-status--off { background: rgba(249,190,49,0.18); color: #a5820f; }
.my-voice-intro {
	margin: 0.35rem 0 0;
	font-size: 0.85rem;
	color: var(--c-text-secondary);
}
.my-voice-updated {
	margin: 0.15rem 0 0;
	font-size: 0.75rem;
	color: var(--c-text-secondary);
}
.my-voice-script {
	margin: 0.75rem 0;
	padding: 0.75rem 1rem;
	background: var(--c-bg-secondary);
	border-radius: 8px;
	font-size: 0.85rem;
	line-height: 1.5;
	color: var(--c-text-primary);
}
.mv-edit-btn {
	background: none;
	border: 1px solid var(--c-action-secondary, #63C4B1);
	color: var(--c-action-secondary, #63C4B1);
	border-radius: 6px;
	font-size: 0.75rem;
	padding: 0.15rem 0.5rem;
	cursor: pointer;
}
.my-voice-edit {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 0.5rem 0 0.75rem;
	max-width: 360px;
}
.my-voice-edit-actions {
	display: flex;
	gap: 0.5rem;
}
.my-voice-lang {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
	font-size: 0.85rem;
	color: var(--c-text-secondary);
}
.my-voice-lang select {
	max-width: 220px;
}
.my-voice-controls {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-wrap: wrap;
}
.my-voice-timer {
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	color: var(--c-action-primary);
}
.my-voice-status-msg {
	margin-top: 0.5rem;
	font-size: 0.82rem;
	min-height: 1rem;
}
.my-voice-status-msg.mv-msg--error { color: #d9534f; }
.my-voice-status-msg.mv-msg--success { color: #2f8f7d; }
.my-voice-status-msg.mv-msg--processing { color: var(--c-text-secondary); }
.my-voice-fingerprint {
	flex: 0 0 auto;
	position: relative;
}
.my-voice-fingerprint canvas {
	display: block;
	border-radius: 8px;
}
@media (max-width: 700px) {
	.my-voice-card { flex-direction: column; }
}

/* Voice-profile setup prompt banner (shown until the user enrolls) */
.voice-setup-banner {
	display: flex;
	align-items: center;
	gap: 1rem;
	background: var(--c-action-primary-accent, #FAF5F1);
	border: 1px solid var(--c-action-primary, #F29873);
	border-radius: 10px;
	padding: 0.75rem 1rem;
	margin: 0 0 1.25rem;
}
.voice-setup-text {
	flex: 1;
	font-size: 0.9rem;
	color: var(--c-text-primary);
}
.voice-setup-dismiss {
	background: none;
	border: none;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	color: var(--c-text-secondary);
	padding: 0 0.25rem;
}

/* Inline checkbox + label row (advanced meeting settings) */
.checkbox-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
	font-weight: 500;
}
.checkbox-row input[type="checkbox"] {
	width: 16px;
	height: 16px;
	flex: 0 0 auto;
	cursor: pointer;
}

/* ─────────────────────────────────────────────────────────────────────────
   Alt-UI Phase 0 — record workspace dock (persistent right rail)
   Three former slide-out sidebars become one docked column with an always-
   visible glyph rail (Details / Speaker / AI). Selecting a tab expands the
   panel and PUSHES the transcript; nothing overlays or dims the screen.
   ───────────────────────────────────────────────────────────────────────── */
.record-workspace {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 48px;
	align-items: start;
	transition: grid-template-columns 0.25s ease;
}
.record-workspace.dock-open { grid-template-columns: minmax(0, 1fr) 384px; }
.record-main { min-width: 0; }

.record-dock {
	position: sticky;
	top: 1rem;
	height: calc(100vh - 2rem);
	display: flex;
	flex-direction: row-reverse;      /* glyph rail on the right edge */
	background: #fff;
	border-left: 1px solid #eee;
	border-radius: 12px 0 0 12px;
	overflow: hidden;
}
.record-workspace.dock-open .record-dock {
	box-shadow: -4px 0 20px rgba(0, 0, 0, 0.06);
}

/* Always-visible vertical glyph rail. */
.record-dock-tabs {
	flex: 0 0 48px;
	width: 48px;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: 0.5rem 0.25rem;
	background: var(--c-bg-secondary);
	border-left: 1px solid #eee;
}
.record-dock-tab {
	height: 44px;
	border: none;
	background: none;
	cursor: pointer;
	border-radius: 8px;
	font-size: 1.2rem;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--c-text-secondary);
}
.record-dock-tab:hover { background: rgba(0, 0, 0, 0.05); }
.record-dock-tab.is-active { background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12); }
.record-dock-collapse { display: none; }

/* Panel body: 0 width when collapsed, grows to fill the column when a tab is on. */
.record-dock-body {
	flex: 1 1 auto;
	width: 0;
	min-height: 0;
	overflow: hidden;
}
.record-workspace.dock-open .record-dock-body { overflow-y: auto; }

/* Neutralize the old fixed slide-out styling for panels living in the dock. */
.record-dock .dock-panel {
	position: static;
	right: auto;
	top: auto;
	width: 100% !important;
	height: auto;
	max-width: none;
	box-shadow: none;
	transition: none;
	z-index: auto;
	display: none;
}
.record-dock .dock-panel.open { display: block; }
.record-dock .ai-sidebar-resize-handle { display: none; }
.record-dock .sidebar-content,
.record-dock .ai-sidebar-content { height: auto; }

/* The docked layout never dims the screen. */
#record-page-root .sidebar-overlay { display: none !important; }

@media (max-width: 900px) {
	.record-workspace,
	.record-workspace.dock-open { grid-template-columns: minmax(0, 1fr); }
	.record-dock {
		position: static;
		height: auto;
		max-height: 70vh;
		flex-direction: column;
		border-radius: 12px;
		border-left: none;
		margin-top: 1rem;
	}
	.record-dock-tabs {
		flex: 0 0 auto;
		width: auto;
		flex-direction: row;
		border-left: none;
		border-bottom: 1px solid #eee;
	}
	.record-dock-tab { flex: 1; }
	.record-dock-body { width: auto; }
	.record-workspace:not(.dock-open) .record-dock-body { display: none; }
}

/* ════════════════════════════════════════════════════════════════════
   Reusable components (Inc 1) — status badge, speaker chip/avatar,
   view switcher, command line. Consumed by the hub + workspace.
   ════════════════════════════════════════════════════════════════════ */

/* Status badge */
.status-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}
.status-badge .status-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.status-rec{background:var(--rec-100);color:var(--rec)}
.status-rec .status-dot{animation:pulse 1.4s ease-in-out infinite}
.status-warn{background:var(--warn-100);color:var(--warn)}
.status-done{background:var(--sage-100);color:var(--sage-700)}
.status-neutral{background:var(--inset);color:var(--dim)}

/* Speaker chip + avatar — color piped in via inline style="--_sp:var(--spN)" */
.speaker-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 11px 3px 8px;background:var(--inset);border-radius:999px;font-size:11.5px;font-weight:700;line-height:1;white-space:nowrap}
.speaker-chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--_sp,var(--sp1));flex:none}
.speaker-avatar{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--_sp,var(--sp1));color:#fff;font-weight:700;font-size:12px;flex:none}
.speaker-avatar--sm{width:22px;height:22px;font-size:10px}
.speaker-avatar--lg{width:44px;height:44px;font-size:16px}

/* View switcher (also used for landing 今日/予定/過去 and modal segmented controls) */
.view-switcher{display:flex;gap:2px;padding:3px;background:var(--inset);border-radius:999px}
.view-switcher button{padding:7px 14px;border:0;background:transparent;color:var(--dim);border-radius:999px;font-size:12.5px;font-weight:700;line-height:1;cursor:pointer;white-space:nowrap}
.view-switcher button.is-active{background:var(--card);color:var(--text);box-shadow:var(--shadow)}
.view-switcher--lg button{padding:9px 20px;font-size:13.5px}

/* Command line — workspace top row. Every child holds its width except the
   switcher, which is the only shrinkable child (Japanese has no break points). */
.command-line{display:flex;flex-wrap:wrap;align-items:center;gap:14px;row-gap:10px;min-height:60px;padding:11px 20px;background:var(--card);border-bottom:1px solid var(--line2);position:sticky;top:0;z-index:20}
.command-line>*{flex:none;white-space:nowrap}
.command-line .cl-spacer{flex:1 1 auto;min-width:8px}
.command-line .cl-title{flex:0 1 auto;min-width:0}
.command-line .cl-switch{display:contents}
.command-line .view-switcher{flex-shrink:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.command-line .view-switcher::-webkit-scrollbar{display:none}
.command-line .cl-divider{width:1px;height:24px;background:var(--line2)}
/* Before a single row would clip, drop the switcher to its own right-aligned row.
   cl-switch is display:contents when inline; becomes a full-width flex row here so
   the content-width pill sits flush right (no left gap), AI + record stay on row 1. */
@media (max-width:1150px){
  .command-line .cl-switch{display:flex;order:10;flex-basis:100%;justify-content:flex-end}
  .command-line .cl-divider{display:none}
}

/* Recording mode (#workspace.is-recording, set by workspace.js). While audio is being
   captured there is only one view, so the tab strip goes away entirely and the AI
   assistant takes its place as a filled button — testers walked the tabs and never
   pressed AI, so during recording there are no tabs to walk. ID selector so this beats
   `.command-line .cl-switch` in the base rule AND in the 1150px block above. */
#workspace.is-recording .cl-switch{display:none}
#workspace.is-recording .cl-divider{display:none}
#workspace.is-recording .cl-ai-toggle{padding:9px 20px;font-size:13.5px;background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
#workspace.is-recording .cl-ai-toggle::before{content:"🤖";margin-right:7px;font-size:14px}
#workspace.is-recording .cl-ai-toggle.is-active{box-shadow:0 0 0 3px var(--acc-100)}

/* Focus ring — no browser-default outlines */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ════════════════════════════════════════════════════════════════════
   Landing hub (Inc 2) — 今日 / 予定 / 過去
   ════════════════════════════════════════════════════════════════════ */
.hub{max-width:1080px;margin:0 auto;padding:40px 32px 64px;position:relative}
.hub>*{position:relative;z-index:1}
.hub-kicker{font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--faint);text-transform:uppercase;font-variant-numeric:tabular-nums}
.hub-greeting{font-family:var(--fd);font-size:36px;font-weight:400;line-height:1.2;margin:6px 0 4px;color:var(--text)}
.hub-subline{color:var(--dim);font-size:14.5px}
.hub-subline b{color:var(--acc-700);font-variant-numeric:tabular-nums}
.hub-toolbar{display:flex;align-items:center;gap:16px;margin:24px 0 20px;flex-wrap:wrap}
.hub-new-btn{margin-left:auto;border-radius:999px;padding:13px 22px;box-shadow:var(--shadow-md)}
.hub-tab-count{font-variant-numeric:tabular-nums;opacity:.7;margin-left:4px}
.hub-panel{display:flex;flex-direction:column;gap:14px}
/* The author `display` above beats the UA `[hidden]{display:none}`, so the tab
   toggle in calendar.js (sets .hidden on the inactive panels) had no visual effect.
   Restore hiding explicitly, same pattern as .ws-view[hidden] / .nm-overlay[hidden]. */
.hub-panel[hidden]{display:none}

/* today / upcoming card row */
.hub-card{display:flex;align-items:center;gap:18px;padding:20px 24px;background:var(--card);border:1px solid var(--line2);border-radius:20px;box-shadow:var(--shadow);cursor:pointer;text-decoration:none;color:inherit}
.hub-card:hover{border-color:var(--line)}
.hub-card-time{flex:none;width:86px;text-align:center}
.hub-card-time b{display:block;font-size:21px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.hub-card-time span{font-size:11.5px;color:var(--faint)}
.hub-card-div{width:1px;align-self:stretch;background:var(--line2)}
.hub-card-body{flex:1;min-width:0}
.hub-card-title{font-size:15px;font-weight:700;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hub-card-meta{font-size:12px;color:var(--faint);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hub-card-cta{flex:none}

.hub-empty{padding:18px 24px;border:1px dashed var(--line);border-radius:20px;color:var(--faint);font-size:13.5px;text-align:center}

/* Google sync banner */
.hub-sync{display:flex;align-items:center;gap:12px;padding:14px 20px;background:var(--sage-100);border:1px solid var(--line2);border-radius:16px;font-size:13px;color:var(--sage-700)}
.hub-sync .g-circle{width:26px;height:26px;border-radius:50%;background:var(--card);display:inline-grid;place-items:center;font-weight:700;color:var(--text);flex:none}
.hub-sync .cl-spacer{flex:1}

/* past table */
.hub-table{background:var(--card);border:1px solid var(--line2);border-radius:20px;overflow:hidden}
.hub-table-head,.hub-table-row{display:grid;grid-template-columns:150px 1fr 118px 92px 1fr 116px;gap:12px;align-items:center}
.hub-table-head{background:var(--inset);padding:12px 24px;font-size:11.5px;font-weight:700;letter-spacing:.06em;color:var(--dim)}
.hub-table-row{padding:17px 24px;border-top:1px solid var(--line2);font-size:13.5px;text-decoration:none;color:inherit;font-variant-numeric:tabular-nums}
.hub-table-row:hover{background:var(--acc-100)}
.hub-table-row .ellip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hub-table-actions{display:flex;align-items:center;gap:8px;justify-self:end}
.hub-table-open{justify-self:end}
.hub-table-del{display:inline-grid;place-items:center;width:26px;height:26px;flex:none;padding:0;border:0;border-radius:50%;background:transparent;color:var(--dim);font-size:17px;line-height:1;cursor:pointer;transition:background .15s,color .15s}
.hub-table-del:hover{background:var(--rec-100);color:var(--rec)}
.hub-table-del:disabled{opacity:.5;cursor:default}
@media (max-width:760px){
  .hub-table-head{display:none}
  .hub-table-row{grid-template-columns:1fr;gap:6px}
  .hub-table-actions{justify-self:start}
}

/* ════════════════════════════════════════════════════════════════════
   Workspace shell (Inc 3) — command line + inline views
   ════════════════════════════════════════════════════════════════════ */
.ws-view[hidden]{display:none}
.ws-stub{padding:64px 24px;text-align:center;color:var(--faint);font-size:14px}
.cl-back{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--text);display:inline-grid;place-items:center;text-decoration:none;font-size:15px}
.cl-back:hover{border-color:var(--accent)}
.cl-title{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:transparent;color:var(--text);font-size:15px;font-weight:700;cursor:pointer;padding:0}
.cl-ai-toggle{padding:7px 14px;border:1px solid var(--line);background:transparent;color:var(--dim);border-radius:999px;font-size:12.5px;font-weight:700;cursor:pointer}
.cl-ai-toggle.is-active{background:var(--acc-100);color:var(--acc-700);border-color:var(--accent)}
.cl-record-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:0;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:12.5px;font-weight:700;cursor:pointer}
.cl-record-btn .record-circle-icon{font-size:10px;line-height:1}
.cl-record-btn.recording{background:var(--rec);color:#fff}

/* Inc 4 — non-Live view content */
.ws-panel-pad{padding:26px 34px 48px;max-width:900px;margin:0 auto}
.ws-tab-status{color:var(--faint);font-size:13px;padding:16px 0}

/* transcript */
.ws-tx-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.ws-tx-search{min-width:260px;flex:1;padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--text);font-size:13.5px}
.ws-tx-filters{display:flex;gap:8px;flex-wrap:wrap}
.ws-tx-filter{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--line);background:transparent;border-radius:999px;font-size:12px;font-weight:700;color:var(--dim);cursor:pointer}
.ws-tx-filter::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--_sp,var(--sp1))}
.ws-tx-filter[data-label="__all"]::before{display:none}
.ws-tx-filter.is-active{background:var(--acc-100);border-color:var(--accent);color:var(--acc-700)}
.ws-tx-row{display:grid;grid-template-columns:64px 1fr;gap:16px;padding:11px 0;border-bottom:1px solid var(--line2)}
.ws-tx-time{font-family:var(--fm);font-size:11.5px;color:var(--faint);padding-top:3px}
.ws-tx-text{font-size:14.5px;line-height:1.95;margin-top:4px;text-wrap:pretty}

/* speakers */
.ws-sp-card{display:flex;align-items:center;gap:18px;padding:20px 24px;background:var(--card);border:1px solid var(--line2);border-radius:20px;box-shadow:var(--shadow);margin-bottom:14px}
.ws-sp-circle{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:12px;font-family:var(--fm);background:var(--_sp,var(--sp1));flex:none}
.ws-sp-id{width:132px;flex:none}
.ws-sp-id b{font-family:var(--fm);font-size:12.5px;display:block}
.ws-sp-id span{font-size:11.5px;color:var(--faint)}
.ws-sp-sample{flex:1;min-width:0;background:var(--bg);border-radius:13px;padding:10px 14px;font-size:13px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-sp-assign{width:206px;flex:none;display:flex;flex-direction:column;gap:8px}
.ws-sp-select{width:100%;height:38px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--text);padding:0 14px;font-size:13px}
.ws-sp-conf{align-self:flex-start;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px}
.ws-sp-conf.match{background:var(--sage-100);color:var(--sage-700)}
.ws-sp-conf.review{background:var(--warn-100);color:var(--warn)}
@media (max-width:760px){.ws-sp-card{flex-wrap:wrap}.ws-sp-id,.ws-sp-assign{width:100%}}

/* Why auto-fill named nobody (workspace.js autofillNote). Sits above the speaker cards. */
.ws-autofill-note{margin:0 0 14px;padding:11px 15px;background:var(--warn-100);color:var(--warn);border-radius:13px;font-size:12.5px;line-height:1.6}
.ws-autofill-note a{color:inherit;font-weight:700}

/* ════════════════════════════════════════════════════════════════════
   Workspace dock (Inc 5) — 372px, pushes content, never overlays.
   The panels (#ai-sidebar / #speaker-sidebar / #meeting-info-sidebar) moved out
   of #record-workspace, so the old `.record-dock .dock-panel` neutralizer no
   longer matches — re-neutralize their fixed slide-out styling here.
   ════════════════════════════════════════════════════════════════════ */
.workspace-main{display:flex;align-items:stretch;min-height:0}
.workspace-body{flex:1;min-width:0}
.ws-dock{display:flex;flex-direction:column;flex:none;width:0;overflow:hidden;background:var(--card);border-left:1px solid var(--line2);transition:width .18s ease}
.workspace-main.dock-open .ws-dock{width:372px;box-shadow:var(--shadow-md)}
@media (prefers-reduced-motion:reduce){.ws-dock{transition:none}}

.ws-dock .record-dock-tabs{flex:none;width:auto;flex-direction:row;display:flex;gap:2px;padding:10px 14px 0;background:transparent;border-left:0;border-bottom:1px solid var(--line2)}
.ws-dock .record-dock-tab{flex:1;height:auto;padding:9px 0 11px;border:0;border-radius:0;background:transparent;color:var(--dim);font-size:15px;line-height:1;cursor:pointer;border-bottom:2px solid transparent}
.ws-dock .record-dock-tab:hover{background:transparent;color:var(--text)}
.ws-dock .record-dock-tab.is-active{background:transparent;box-shadow:none;color:var(--text);border-bottom-color:var(--accent)}
.ws-dock .record-dock-body{flex:1;width:372px;min-width:372px;overflow-y:auto}

.ws-dock .dock-panel{position:static;right:auto;top:auto;left:auto;width:100%!important;height:auto;max-width:none;box-shadow:none;transition:none;z-index:auto;display:none;transform:none}
.ws-dock .dock-panel.open{display:block}
.ws-dock .ai-sidebar-resize-handle{display:none}
.ws-dock .sidebar-content,.ws-dock .ai-sidebar-content{height:auto}

/* Memo pane */
.ws-memo-hint{font-size:11.5px;color:var(--faint);padding:14px 16px 4px}
.ws-memo{width:100%;min-height:340px;border:0;background:transparent;color:var(--text);padding:8px 16px 16px;font:inherit;font-size:14px;line-height:2.1;resize:vertical}
.ws-memo:focus{outline:none}

@media (max-width:900px){
  .workspace-main{flex-direction:column}
  .ws-dock{width:100%;border-left:0;border-top:1px solid var(--line2)}
  .workspace-main.dock-open .ws-dock{width:100%}
  .ws-dock .record-dock-body{width:auto;min-width:0}
}

/* ════════════════════════════════════════════════════════════════════
   新規ミーティング modal (Inc 6)
   ════════════════════════════════════════════════════════════════════ */
.nm-overlay{position:fixed;inset:0;background:rgba(32,30,29,.5);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}
.nm-overlay[hidden]{display:none}
.nm-modal{width:560px;max-width:100%;max-height:90vh;overflow-y:auto;background:var(--card);border-radius:28px;box-shadow:var(--shadow-lg);padding:32px 34px 28px}
.nm-title{font-family:var(--fd);font-size:24px;font-weight:400;margin-bottom:18px;color:var(--text)}
.nm-field{margin-bottom:16px;display:flex;flex-direction:column;gap:6px}
.nm-field>label{font-size:12px;font-weight:700;color:var(--dim)}
.nm-modal input[type=text],.nm-modal input[type=date],.nm-modal input[type=time],.nm-modal input:not([type]),.nm-modal select{padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--text);font:inherit;font-size:14px}
.nm-req{color:var(--rec);font-size:11px;font-weight:700;margin-left:6px}
.nm-row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.nm-datetime{display:flex;gap:8px}
.nm-datetime input{flex:1;min-width:0}
.nm-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:8px 10px;background:var(--bg)}
.nm-chip{display:inline-flex;align-items:center;gap:6px;background:var(--inset);border-radius:22px;padding:4px 10px;font-size:12.5px;font-weight:700}
.nm-chip button{border:0;background:transparent;color:var(--dim);cursor:pointer;font-size:14px;line-height:1;padding:0}
.nm-chip-input{flex:1;min-width:120px;border:0!important;background:transparent!important;padding:4px!important;color:var(--text);font:inherit}
/* Attendee picker (attendee-picker.js). A guest chip is someone not saved on the
   company: it cannot drive speaker matching, so it must not look identical to one that
   can. Same for a saved person with no voice enrolled. */
.nm-chip--guest{background:transparent;border:1px dashed var(--line);color:var(--dim)}
.nm-chip--no-voice{opacity:.72}
.nm-chip--no-voice::after{content:"·";margin-left:2px;color:var(--warn)}
.attendee-suggestions{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:1200;max-height:240px;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-md)}
.attendee-suggestions[hidden]{display:none}
.attendee-suggestion{display:flex;align-items:baseline;gap:8px;padding:8px 12px;cursor:pointer;font-size:13px}
.attendee-suggestion.is-active,.attendee-suggestion:hover{background:var(--inset)}
.attendee-suggestion .as-name{font-weight:700;color:var(--text)}
.attendee-suggestion .as-email{color:var(--faint);font-size:11.5px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.attendee-suggestion .as-novoice{font-size:10.5px;font-weight:700;color:var(--warn);white-space:nowrap}
.nm-seg{width:100%}
.nm-seg button{flex:1}
.nm-adv{margin:4px 0 2px}
.nm-adv summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--dim);padding:6px 0}
.nm-adv-body{padding-top:8px}
.nm-check{display:flex;align-items:center;gap:8px;font-size:13px;margin:10px 0}
.nm-hint{font-size:11.5px;color:var(--faint);line-height:1.5}
.nm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
@media (max-width:560px){.nm-row2{grid-template-columns:1fr}}

/* ════════════════════════════════════════════════════════════════════
   Responsive + polish (Inc 7)
   ════════════════════════════════════════════════════════════════════ */
@media (max-width:700px){
  body{padding:0}
  .earmark-app{padding:1rem;border-radius:0;min-height:100vh}
  .command-line{gap:10px;padding:8px 12px}
  .command-line .cl-title{max-width:120px}
  .ws-panel-pad{padding:18px 16px 40px}
  .hub{padding:28px 18px 56px}
  .hub-greeting{font-size:28px}
  .ws-tx-row{grid-template-columns:52px 1fr;gap:12px}
}
@media (max-width:560px){
  .hub-toolbar{gap:12px}
  .hub-toolbar .view-switcher{width:100%}
  .hub-new-btn{width:100%;margin-left:0}
  .hub-card{flex-wrap:wrap;gap:12px}
  .hub-card-cta{width:100%}
  .hub-card-cta .btn,.hub-card-cta.btn{width:100%}
}
