/* ── Audio / Meeting Notes Manager ──────────────────────── */ .audio-mgr { border-radius: 14px; background: var(--background-secondary); border: 1px solid var(--background-modifier-border); overflow: hidden; font-family: var(--font-interface); } /* ── Header ─────────────────────────────────────────────── */ .am-header { display: flex; align-items: center; justify-content: space-between; padding: 12px 20px; border-bottom: 1px solid var(--background-modifier-border); } .am-header-left { display: flex; align-items: center; gap: 10px; font-size: 0.92rem; font-weight: 600; color: var(--text-muted); } .am-header-left svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; } .am-header-right { display: flex; align-items: center; gap: 4px; } .am-icon-btn { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 6px; border: none; background: transparent; color: var(--text-muted); cursor: pointer; transition: background 0.15s, color 0.15s; padding: 0; } .am-icon-btn:hover { background: var(--background-modifier-hover); color: var(--text-normal); } .am-icon-btn.is-active { color: var(--text-accent); background: var(--background-modifier-hover); } .am-icon-btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; } .am-new-btn { display: flex; align-items: center; gap: 0; padding: 5px 14px; margin-left: 6px; border-radius: 6px; border: none; background: var(--interactive-accent); color: var(--text-on-accent); font-weight: 700; font-size: 0.85rem; cursor: pointer; transition: opacity 0.15s; font-family: inherit; } .am-new-btn:hover { opacity: 0.85; } .am-new-btn.is-recording { animation: am-pulse 2s infinite; } @keyframes am-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.55; } } /* ── Search / Filter bar ────────────────────────────────── */ .am-toolbar { display: flex; gap: 8px; padding: 10px 20px; border-bottom: 1px solid var(--background-modifier-border); flex-wrap: wrap; align-items: center; } .am-search { flex: 1; min-width: 160px; padding: 6px 10px; border-radius: 6px; border: 1px solid var(--background-modifier-border); background: var(--background-primary); color: var(--text-normal); font-size: 0.85rem; font-family: inherit; } .am-select { padding: 6px 10px; border-radius: 6px; border: 1px solid var(--background-modifier-border); background: var(--background-primary); color: var(--text-normal); font-size: 0.85rem; cursor: pointer; font-family: inherit; } /* ── Body / Month groups ────────────────────────────────── */ .am-body { padding: 4px 0; max-height: 520px; overflow-y: auto; } .am-month { padding: 0 20px; } .am-month-header { display: flex; align-items: center; gap: 6px; padding: 10px 0 6px; font-weight: 700; font-size: 0.92rem; color: var(--text-normal); cursor: pointer; user-select: none; } .am-month-header:hover { color: var(--text-accent); } .am-month-toggle { font-size: 0.7rem; transition: transform 0.2s; color: var(--text-faint); } .am-month-toggle.is-collapsed { transform: rotate(-90deg); } .am-month-items { display: flex; flex-direction: column; gap: 2px; padding-bottom: 4px; } .am-month-items.is-collapsed { display: none; } /* ── Individual recording row ───────────────────────────── */ .am-item { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; cursor: pointer; transition: background 0.12s; min-height: 36px; } .am-item:hover { background: var(--background-modifier-hover); } .am-item-icon { flex-shrink: 0; color: var(--text-faint); } .am-item-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; } .am-item-info { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 8px; overflow: hidden; } .am-item-title { font-weight: 650; color: var(--text-normal); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .am-item-date-inline { font-size: 0.82rem; color: var(--text-faint); white-space: nowrap; flex-shrink: 0; } .am-item-date-short { font-size: 0.82rem; color: var(--text-faint); white-space: nowrap; flex-shrink: 0; margin-left: auto; } /* ── Hover action buttons ───────────────────────────────── */ .am-item-actions { display: flex; gap: 2px; opacity: 0; transition: opacity 0.15s; flex-shrink: 0; } .am-item:hover .am-item-actions { opacity: 1; } .am-item-actions .am-icon-btn { width: 26px; height: 26px; } .am-item-actions .am-icon-btn svg { width: 14px; height: 14px; } .am-item-actions .am-icon-btn.am-delete { color: var(--text-error); } /* ── Empty state ────────────────────────────────────────── */ .am-empty { padding: 32px 20px; color: var(--text-faint); text-align: center; font-style: italic; }