/* Phase 1 — 신규 컴포넌트 (2026-04-28) */

/* 글로벌 빠른 진입 바 */
.global-bar {
    display: flex; align-items: center; gap: 10px;
    margin: 0 0 18px 0; padding: 10px 14px;
    background: #fff; border: 1px solid var(--border, #e5e7eb);
    border-radius: 12px;
}
.global-search { flex: 1; }
.global-search input {
    width: 100%; border: 1px solid var(--border, #e5e7eb); border-radius: 8px;
    padding: 8px 12px; font-size: 13px; background: #fafafa;
    box-sizing: border-box;
}
.global-search input:focus { outline: none; border-color: #10a37f; background: #fff; }
.global-btn {
    border: 1px solid var(--border, #e5e7eb); background: #fff; border-radius: 8px;
    padding: 8px 12px; font-size: 13px; cursor: pointer;
    text-decoration: none; color: #333; white-space: nowrap;
}
.global-btn:hover { background: #f5f7f8; }
.global-btn.quick { background: #10a37f; color: #fff; border-color: #0c8c6a; }
.global-btn.quick:hover { background: #0c8c6a; }
.global-btn.voice { background: #f3e8ff; color: #6b21a8; border-color: #d8b4fe; }

/* 사이드바 서브메뉴 디바이더 */
.submenu .submenu-divider {
    font-size: 10px; color: #b0b3b8; padding: 8px 14px 4px;
    text-transform: uppercase; letter-spacing: 0.5px; pointer-events: none;
    list-style: none;
}

/* 빠른 기록 모달 */
.modal-overlay {
    position: fixed; inset: 0; background: rgba(0,0,0,0.45);
    display: flex; align-items: flex-start; justify-content: center;
    padding-top: 10vh; z-index: 1000;
}
.modal-card {
    width: 92%; max-width: 640px; background: #fff;
    border-radius: 16px; box-shadow: 0 30px 80px rgba(0,0,0,0.3);
    overflow: hidden;
}
.modal-head {
    display: flex; justify-content: space-between; align-items: center;
    padding: 14px 18px; border-bottom: 1px solid var(--border, #e5e7eb);
    font-weight: 700; font-size: 15px;
}
.modal-close {
    border: none; background: transparent; font-size: 18px;
    cursor: pointer; color: #6b7280;
}
.modal-card form { padding: 18px; }
.modal-card textarea {
    width: 100%; min-height: 120px; resize: vertical;
    border: 1px solid var(--border, #e5e7eb); border-radius: 10px;
    padding: 12px 14px; font-size: 14px; font-family: inherit;
    line-height: 1.6; box-sizing: border-box;
}
.modal-card textarea:focus { outline: none; border-color: #10a37f; }
.modal-foot {
    display: flex; justify-content: space-between; align-items: center;
    margin-top: 12px; flex-wrap: wrap; gap: 10px;
}
.modal-foot .hint { font-size: 12px; color: #6b7280; }
.modal-actions { display: flex; gap: 8px; }
.modal-actions .btn-ghost {
    border: 1px solid var(--border, #e5e7eb); background: #fff; padding: 6px 12px;
    border-radius: 8px; font-size: 12px; cursor: pointer;
}
.modal-actions .btn-primary {
    background: #10a37f; color: #fff; border: 1px solid #0c8c6a;
    padding: 6px 14px; border-radius: 8px; font-size: 12px; cursor: pointer;
    font-weight: 600;
}
.quick-msg { margin-top: 10px; font-size: 12px; min-height: 16px; }
.quick-msg.ok { color: #047857; }
.quick-msg.err { color: #b91c1c; }

/* 대시보드 — 4 핵심 카드 */
.dash-row {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px; margin: 14px 0;
}
.dash-card {
    background: #fff; border: 1px solid var(--border, #e5e7eb); border-radius: 12px;
    padding: 14px 16px; text-align: center;
}
.dash-card .label { font-size: 11px; color: #6b7280; margin-bottom: 6px; }
.dash-card .value { font-size: 26px; font-weight: 700; color: #111827; }
.dash-card .unit { font-size: 12px; color: #6b7280; }

/* 한 줄 입력창 (대시보드 상단) */
.dash-input {
    background: #fff; border: 2px solid var(--border, #e5e7eb); border-radius: 12px;
    padding: 12px 14px; display: flex; gap: 10px; align-items: center;
    margin-bottom: 14px; transition: border-color 0.15s;
}
.dash-input:focus-within { border-color: #10a37f; }
.dash-input input {
    flex: 1; border: none; outline: none; font-size: 14px;
    background: transparent; font-family: inherit;
}
/* 직계 button만 — 마이크 버튼(.mic-wrap 내부)은 영향 안 받도록 */
.dash-input > button[type="submit"] {
    background: #10a37f; color: #fff; border: none; border-radius: 8px;
    padding: 8px 18px; font-size: 13px; cursor: pointer; font-weight: 600;
    writing-mode: horizontal-tb;
    text-orientation: mixed;
    letter-spacing: normal;
    white-space: nowrap;
}

/* 어제 피드백 박스 */
.dash-feedback {
    background: #f0fdf4; border: 1px solid #a7f3d0; border-radius: 12px;
    padding: 14px 16px; margin: 14px 0; font-size: 13px; color: #065f46;
    line-height: 1.65;
}
.dash-feedback .head { font-weight: 700; margin-bottom: 6px; color: #047857; }

/* 30일 잔디 */
.dash-grass {
    background: #fff; border: 1px solid var(--border, #e5e7eb); border-radius: 12px;
    padding: 14px 16px; margin: 14px 0;
}
.dash-grass .head {
    font-size: 12px; color: #6b7280; margin-bottom: 8px;
}
.grass-row {
    display: grid; grid-template-columns: repeat(30, 1fr); gap: 3px;
}
.grass-cell {
    aspect-ratio: 1/1; border-radius: 3px; background: #ebedf0;
    position: relative;
}
.grass-cell.lv1 { background: #c6e7d4; }
.grass-cell.lv2 { background: #6cc596; }
.grass-cell.lv3 { background: #2da55a; }
.grass-cell.lv4 { background: #14803c; }
.grass-cell:hover::after {
    content: attr(data-tip);
    position: absolute; bottom: calc(100% + 4px); left: 50%; transform: translateX(-50%);
    background: #1f2937; color: #fff; font-size: 10px; padding: 3px 6px;
    border-radius: 4px; white-space: nowrap; pointer-events: none;
}

/* 오늘의 자아 카드 */
.dash-soul {
    background: linear-gradient(135deg, #fef3c7, #fde68a); border-radius: 12px;
    padding: 14px 16px; margin: 14px 0; border: 1px solid #fcd34d;
}
.dash-soul .head {
    font-size: 12px; color: #92400e; margin-bottom: 6px; font-weight: 600;
}
.dash-soul .badge {
    font-size: 16px; font-weight: 700; color: #78350f;
}
.dash-soul .desc { font-size: 13px; color: #92400e; margin-top: 4px; }

/* 입력 화면 — 질문 카드 */
.q-card {
    background: #fff; border: 1px solid var(--border, #e5e7eb); border-radius: 12px;
    padding: 14px 16px; margin-bottom: 12px;
}
.q-card label {
    display: block; font-weight: 600; font-size: 13px;
    color: #111827; margin-bottom: 8px;
}
.q-card input[type="text"], .q-card input[type="date"], .q-card textarea, .q-card select {
    width: 100%; border: 1px solid var(--border, #e5e7eb); border-radius: 8px;
    padding: 8px 10px; font-size: 13px; font-family: inherit;
    background: #fff; color: var(--ink, #111);
    box-sizing: border-box; transition: all 0.1s;
}
.q-card input[type="text"]:focus, .q-card input[type="date"]:focus,
.q-card textarea:focus, .q-card select:focus {
    outline: none;
    border-color: var(--accent, #10a37f);
    box-shadow: 0 0 0 3px var(--accent-bg, rgba(16,163,127,0.12));
}
.q-card textarea { min-height: 80px; resize: vertical; line-height: 1.6; }
.q-card .hint { font-size: 11px; color: #9ca3af; margin-top: 4px; }

/* 감정 8선택 — 한 줄 배치 */
.emotion-grid {
    display: grid; grid-template-columns: repeat(8, 1fr); gap: 6px;
    margin-bottom: 14px;
}
.emotion-btn {
    border: 2px solid var(--border, #e5e7eb); background: #fff; border-radius: 8px;
    padding: 6px 4px; cursor: pointer; font-size: 12px; font-weight: 600;
    transition: all 0.15s; text-align: center;
}
.emotion-btn > div:first-child { font-size: 18px !important; }
.emotion-btn:hover { border-color: #10a37f; }
.emotion-btn.selected {
    border-color: #10a37f; background: #f0fdf4; color: #10a37f;
}
.intensity-row {
    display: flex; align-items: center; gap: 8px; margin-top: 8px;
}
.intensity-row input[type="range"] { flex: 1; }
.intensity-row .v { font-weight: 700; color: #10a37f; min-width: 36px; text-align: right; }

/* 모아보기 페이지 (curate) */
.curate-top {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 12px;
    padding: 14px 16px; margin-bottom: 14px;
}
.curate-search {
    display: flex; align-items: center; gap: 8px; margin-bottom: 10px;
}
.curate-search .search-icon { font-size: 16px; color: #6b7280; }
.curate-search input[type="text"] {
    flex: 1; border: 1px solid #e5e7eb; border-radius: 8px;
    padding: 8px 12px; font-size: 13px;
}
.curate-types {
    display: flex; flex-wrap: wrap; gap: 6px;
}
.type-chip {
    text-decoration: none; padding: 5px 10px; border-radius: 16px;
    font-size: 12px; background: #f3f4f6; color: #374151;
    border: 1px solid #e5e7eb;
}
.type-chip:hover { background: #e5e7eb; }
.type-chip.active {
    background: #10a37f; color: #fff; border-color: #10a37f; font-weight: 600;
}

.curate-list-head {
    display: flex; justify-content: space-between; align-items: center;
    padding: 8px 12px; font-size: 12px; color: #6b7280;
}
.curate-select-all {
    display: flex; align-items: center; gap: 6px; cursor: pointer;
    user-select: none;
}
.curate-select-all input { cursor: pointer; }

.curate-list {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 12px;
    overflow: hidden;
}
.curate-row {
    display: grid; grid-template-columns: auto 80px 1fr;
    gap: 12px; align-items: center;
    padding: 10px 14px; border-top: 1px solid #f3f4f6;
    cursor: pointer; transition: background 0.1s;
}
.curate-row:first-child { border-top: none; }
.curate-row:hover { background: #f9fafb; }
.curate-row input[type="checkbox"] { cursor: pointer; transform: scale(1.1); }
.row-meta { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.row-meta .row-date { font-size: 11px; color: #9ca3af; }
.row-meta .row-type-mini { font-size: 16px; }
.row-content {
    display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.row-content .row-title {
    font-size: 13px; font-weight: 600; color: #111;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.row-content .row-preview {
    font-size: 12px; color: #6b7280;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.curate-actions {
    position: sticky; bottom: 12px;
    margin-top: 14px; padding: 12px 16px;
    background: #111827; color: #fff;
    border-radius: 14px; box-shadow: 0 8px 24px rgba(0,0,0,0.15);
    display: flex; align-items: center; gap: 10px;
    justify-content: flex-end;
}
.curate-actions-count {
    margin-right: auto; font-size: 13px; color: #d1d5db;
}
.curate-actions .btn-ghost {
    padding: 8px 14px; border-radius: 8px;
    background: rgba(255,255,255,0.08); color: #fff;
    border: 1px solid rgba(255,255,255,0.2); cursor: pointer;
    font-size: 13px;
}
.curate-actions .btn-ghost:hover { background: rgba(255,255,255,0.15); }
.curate-actions .btn-primary {
    padding: 8px 16px; border-radius: 8px;
    background: #10a37f; color: #fff; border: none; cursor: pointer;
    font-size: 13px; font-weight: 600;
}
.curate-actions .btn-primary:hover { background: #0c8c6a; }

/* 모아보기 결과 (collect 모드) */
.collected-card {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px;
    padding: 14px 16px; margin-bottom: 10px;
}
.collected-meta {
    display: flex; align-items: center; gap: 10px;
    font-size: 11px; color: #6b7280; margin-bottom: 6px;
}
.collected-link { color: #10a37f; text-decoration: none; margin-left: auto; }
.collected-title { font-weight: 700; font-size: 14px; margin-bottom: 4px; }
.collected-body {
    font-size: 14px; line-height: 1.7; color: #1f2937;
    white-space: pre-wrap;
}
.collected-tags { font-size: 11px; color: #9ca3af; margin-top: 6px; }

/* ===== 계획 페이지 — 새 디자인 (2026-04-29) ===== */
.plan-year-nav {
    margin-left: auto;
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 13px; color: #6b7280;
}
.plan-year-nav a {
    color: #6b7280; text-decoration: none;
    padding: 2px 8px; border-radius: 5px;
}
.plan-year-nav a:hover { background: #f3f4f6; color: #10a37f; }
.plan-year-nav strong { color: #111; font-weight: 700; padding: 0 4px; }

/* 편집 모드 */
.plan-edit { padding: 0; }

/* 최고 목표 — 초록 톤 강조, 폰트는 영역별 목표 제목과 동일 14px */
.plan-goals {
    display: flex; flex-direction: column; gap: 6px;
    margin-bottom: 14px;
}
.plan-goal-input {
    width: 100%; padding: 9px 14px;
    font-size: 14px; font-weight: 500;
    border: 1px solid #6ee7b7; border-radius: 8px;
    background: #f0fdf4; color: #047857;
    box-sizing: border-box;
    transition: all 0.1s;
}
.plan-goal-input::placeholder { color: #86efac; }
.plan-goal-input:focus {
    outline: none; border-color: #10a37f;
    background: #fff; color: #111;
    box-shadow: 0 0 0 2px rgba(16,163,127,0.22);
}

.plan-section-title {
    font-size: 14px; font-weight: 700;
    color: #374151;
    margin: 16px 0 8px;
}

.plan-areas-edit {
    display: flex; flex-direction: column; gap: 8px;
}

/* 영역 카드 — 영역명 좌측 + 과제들 우측에 같은 행으로 (flex) */
.plan-area-edit {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
    padding: 10px 12px;
    display: flex; align-items: flex-start; gap: 12px;
}
.plan-area-name-input {
    width: 110px; flex-shrink: 0;
    padding: 9px 12px;
    font-size: 14px; font-weight: 600;
    border: none; background: #f3f4f6;
    border-radius: 6px;
    box-sizing: border-box;
}
.plan-area-name-input:focus {
    outline: none; background: #fff;
    box-shadow: 0 0 0 2px rgba(16,163,127,0.18);
}

.plan-area-tasks {
    flex: 1; min-width: 0;
    display: flex; flex-direction: column; gap: 6px;
}

/* 과제 입력 행 — 시원한 패딩 */
.plan-task-edit-row {
    display: flex; align-items: center; gap: 6px;
    flex-wrap: nowrap;
}
.plan-task-edit-row .ptr-title {
    flex: 2; min-width: 140px;
    padding: 9px 12px; border: 1px solid #e5e7eb;
    border-radius: 6px; font-size: 14px; box-sizing: border-box;
}
.plan-task-edit-row .ptr-csf {
    flex: 1.5; min-width: 110px;
    padding: 9px 12px; border: 1px solid #e5e7eb;
    border-radius: 6px; font-size: 13px; color: #6b7280;
    box-sizing: border-box;
}
.plan-task-edit-row select {
    padding: 8px 6px; border: 1px solid #e5e7eb;
    border-radius: 6px; font-size: 13px; background: #fff;
}
.plan-task-edit-row .ptr-sep { color: #9ca3af; font-size: 13px; }
.plan-task-edit-row input:focus, .plan-task-edit-row select:focus {
    outline: none; border-color: #10a37f;
    box-shadow: 0 0 0 2px rgba(16,163,127,0.18);
}
.plan-task-edit-row .ptr-add,
.plan-task-edit-row .ptr-del {
    width: 30px; height: 36px;
    border: 1px solid #e5e7eb; background: #fff;
    border-radius: 6px; cursor: pointer;
    font-size: 16px; color: #6b7280; line-height: 1;
    flex-shrink: 0;
}
.plan-task-edit-row .ptr-add:hover { border-color: #10a37f; color: #10a37f; }
.plan-task-edit-row .ptr-del:hover { border-color: #dc2626; color: #dc2626; }

.add-area-btn {
    margin-top: 10px; padding: 8px 14px;
    background: #fff; border: 1px dashed #d1d5db;
    border-radius: 8px; color: #6b7280;
    cursor: pointer; font-size: 13px; width: 100%;
}
.add-area-btn:hover { border-color: #10a37f; color: #10a37f; }

.plan-save-all-row {
    margin-top: 16px; text-align: right;
}
.plan-save-all-btn {
    padding: 8px 24px; border-radius: 6px;
    background: #10a37f; color: #fff; border: none;
    cursor: pointer; font-weight: 600; font-size: 14px;
}
.plan-save-all-btn:hover { background: #0c8c6a; }
.plan-save-all-btn:disabled { background: #9ca3af; cursor: not-allowed; }

/* 정리 보기 모드 — 잘 디자인된 텍스트 문서 */
.plan-summary {
    background: #fff; border: 1px solid #e5e7eb;
    border-radius: 12px; padding: 28px 38px;
    line-height: 1.8; color: #1f2937;
}
.plan-summary h1 {
    font-size: 22px; font-weight: 700; color: #111;
    margin: 0 0 12px; padding-bottom: 10px;
    border-bottom: 1px solid #f3f4f6;
}
.plan-summary h2 {
    font-size: 16px; font-weight: 700; color: #047857;
    margin: 22px 0 6px;
}
.plan-summary h3 {
    font-size: 14px; font-weight: 700;
    margin: 12px 0 4px;
}
.plan-summary p { margin: 4px 0; font-size: 15px; }
.plan-summary-goal { font-weight: 500; }
.plan-summary-tasks {
    list-style: none; padding: 0; margin: 0 0 0 8px;
}
.plan-summary-tasks li {
    margin: 5px 0; font-size: 14px;
}
.plan-summary-tasks li strong { font-weight: 600; }
.plan-summary-csf {
    font-style: italic; color: #6b7280; font-size: 13px;
}
.plan-summary-roadmap {
    color: #047857; font-size: 12px;
    background: #f0fdf4; padding: 1px 7px;
    border-radius: 8px; margin-left: 4px;
    white-space: nowrap;
}
.plan-summary-empty {
    color: #9ca3af; font-style: italic; font-size: 13px;
    margin: 6px 0;
}
.plan-summary-empty-li {
    color: #9ca3af; font-style: italic; font-size: 12px;
}
.plan-summary-actions {
    text-align: right; margin-top: 22px;
    padding-top: 14px; border-top: 1px solid #f3f4f6;
}
.btn-edit-plan {
    padding: 6px 18px; background: #10a37f; color: #fff;
    border: none; border-radius: 5px; text-decoration: none;
    font-size: 13px; font-weight: 600;
}
.btn-edit-plan:hover { background: #0c8c6a; }

/* 기간별 계획에 자동 반영되는 프로젝트 과제 섹션 */
.plan-projects-section {
    margin-top: 20px;
}
.plan-projects-section .plan-section-title {
    font-size: 14px; font-weight: 700; color: #047857;
    margin: 14px 0 4px;
}
.plan-projects-section .plan-section-hint {
    font-size: 11px; color: #9ca3af; margin: 0 0 10px;
}
.ppl-group {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-left: 3px solid var(--proj-color, #10a37f);
    border-radius: 8px;
    padding: 10px 14px;
    margin-bottom: 8px;
}
.ppl-head {
    display: flex; align-items: center; gap: 10px;
    margin-bottom: 6px;
}
.ppl-name {
    font-size: 13px; font-weight: 700;
    color: var(--proj-color, #10a37f);
    text-decoration: none;
}
.ppl-name:hover { text-decoration: underline; }
.ppl-count {
    margin-left: auto;
    font-size: 11px; color: #9ca3af;
    background: #f3f4f6; padding: 2px 8px; border-radius: 8px;
}
.ppl-tasks {
    list-style: none; padding: 0; margin: 0;
}
.ppl-task {
    padding: 4px 0; font-size: 13px;
    display: flex; gap: 8px; align-items: baseline;
    border-top: 1px solid #f9fafb;
}
.ppl-task:first-child { border-top: none; }
.ppl-task.is-sub { padding-left: 16px; color: #6b7280; }
.ppl-title { flex: 1; }
.ppl-period {
    font-size: 11px; color: var(--proj-color, #10a37f);
    background: color-mix(in srgb, var(--proj-color) 10%, white);
    padding: 1px 8px; border-radius: 8px; white-space: nowrap;
}

/* daily 시간대 슬롯 placeholder (보기 모드) */
.plan-day-slots {
    display: flex; flex-direction: column; gap: 6px;
    margin: 8px 0;
}
.plan-day-slot {
    display: flex; align-items: center; gap: 12px;
    padding: 8px 14px;
    background: #f9fafb; border-radius: 6px;
    font-size: 14px;
}
.ds-label { font-weight: 600; color: #374151; min-width: 50px; }
.ds-empty { color: #9ca3af; font-style: italic; font-size: 12px; }

/* ===== 기록 브리프 (구 today.html, 2026-04-29 재정비) ===== */

/* 4 카운터 — 한 줄, 얇게, 작은 숫자 */
.brief-counters {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin: 0 0 14px;
}
.brief-counter {
    display: flex; align-items: baseline; gap: 6px;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
    padding: 8px 14px;
}
.brief-counter .bc-label {
    font-size: 12px; color: #6b7280; font-weight: 500;
    flex: 1;
}
.brief-counter .bc-num {
    font-size: 16px; font-weight: 500; color: #111;
}
.brief-counter .bc-unit {
    font-size: 11px; color: #9ca3af;
}

/* 최근 피드백 — 제목 강조, 본문 길고 작음 */
.brief-feedback {
    background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 10px;
    padding: 12px 16px; margin: 0 0 14px;
}
.brief-feedback.dim {
    background: #f9fafb; border-color: #e5e7eb;
}
.brief-feedback .bf-head {
    font-size: 11px; color: #047857; font-weight: 600;
    margin-bottom: 4px; letter-spacing: 0.02em;
}
.brief-feedback.dim .bf-head { color: #6b7280; }
.brief-feedback .bf-title {
    font-size: 15px; font-weight: 700; color: #064e3b;
    margin-bottom: 6px; line-height: 1.4;
}
.brief-feedback .bf-body {
    font-size: 12.5px; color: #374151; line-height: 1.7;
}
.brief-feedback .bf-link {
    margin-top: 6px; font-size: 11px;
}
.brief-feedback .bf-link a {
    color: #047857; text-decoration: underline;
}

/* 30일 잔디 — 두께 절반 */
.brief-grass {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
    padding: 10px 14px; margin: 0 0 14px;
}
.brief-grass .bg-head {
    font-size: 11px; color: #6b7280; font-weight: 600;
    margin-bottom: 6px;
}
.brief-grass .bg-row {
    display: flex; gap: 2px;
}
.brief-grass .grass-cell {
    flex: 1; height: 14px; border-radius: 2px;
}
.brief-grass .grass-cell.lv0 { background: #f3f4f6; }
.brief-grass .grass-cell.lv1 { background: #d1fae5; }
.brief-grass .grass-cell.lv2 { background: #6ee7b7; }
.brief-grass .grass-cell.lv3 { background: #10a37f; }
.brief-grass .grass-cell.lv4 { background: #047857; }

/* AI 자아 분석 */
.brief-soul {
    background: #fffbeb; border: 1px solid #fde68a; border-radius: 10px;
    padding: 12px 16px; margin: 0 0 14px;
}
.brief-soul .bs-head {
    display: flex; align-items: center; gap: 10px;
    font-size: 13px; font-weight: 700; color: #92400e;
    margin-bottom: 4px;
}
.brief-soul .bs-time {
    font-size: 11px; color: #b45309; font-weight: 400;
    margin-left: 8px;
}
.brief-soul .bs-run-btn {
    margin-left: auto;
    padding: 4px 12px; border-radius: 5px;
    background: #f59e0b; color: #fff;
    border: none; cursor: pointer; font-size: 12px;
}
.brief-soul .bs-run-btn:hover { background: #d97706; }
.brief-soul .bs-run-btn:disabled { background: #d1d5db; cursor: not-allowed; }
.brief-soul .bs-hint {
    font-size: 11px; color: #b45309;
    margin: 0 0 6px;
}
.brief-soul .bs-output {
    background: #fff; border-radius: 6px;
    padding: 0 12px; margin-top: 8px;
    line-height: 1.7;
}
.brief-soul .bs-output:empty { padding: 0; }
.brief-soul .soul-title {
    font-size: 15px; font-weight: 700; color: #92400e;
    margin: 12px 0 4px;
}
.brief-soul .soul-summary {
    font-size: 12.5px; color: #b45309;
    background: #fef3c7; padding: 6px 10px; border-radius: 4px;
    margin: 4px 0 8px;
}
.brief-soul .soul-axis {
    font-size: 12px; font-weight: 700; color: #92400e;
    margin: 8px 0 2px;
}
.brief-soul .soul-para {
    font-size: 13px; color: #374151;
    margin: 2px 0 8px;
}

/* 오늘 기록 리스트 — 행 자체 클릭 가능 (링크) */
.brief-records {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px;
    overflow: hidden;
}
.brief-records .br-head {
    padding: 10px 14px; border-bottom: 1px solid #f3f4f6;
    font-weight: 600; font-size: 13px;
}
.brief-records .br-row {
    display: grid;
    grid-template-columns: 50px 30px 1fr;
    gap: 10px; align-items: center;
    padding: 10px 14px;
    border-top: 1px solid #f9fafb;
    text-decoration: none; color: inherit;
    transition: background 0.1s;
}
.brief-records .br-row:hover { background: #f9fafb; }
.brief-records .br-time {
    font-size: 11px; color: #9ca3af; text-align: center;
}
.brief-records .br-type {
    font-size: 16px; text-align: center;
}
.brief-records .br-content {
    display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.brief-records .br-title {
    font-size: 13px; font-weight: 600; color: #111;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.brief-records .br-preview {
    font-size: 12px; color: #6b7280;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* 마이크 버튼 — Material Design 마이크 아이콘, 검은색, 모든 입력창 통일 */
.mic-wrap {
    position: relative;
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
}
.mic-btn {
    position: absolute;
    top: 50%;
    right: 6px;
    transform: translateY(-50%);
    width: 32px; height: 32px;
    border-radius: 50%;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    display: flex; align-items: center; justify-content: center;
    z-index: 5;
    color: #1f2937;  /* 검은색 톤 — 어디서든 동일하게 또렷 */
    transition: background-color 0.1s;
}
.mic-btn svg {
    display: block;
    width: 22px; height: 22px;
    fill: currentColor;
}
.mic-btn:hover {
    background: rgba(0,0,0,0.06);
    color: #1f2937;  /* hover에도 색은 동일 — 식별성 위해 */
}
.mic-btn:active {
    background: rgba(0,0,0,0.12);
}
.mic-btn.recording {
    color: #dc2626;
    background: rgba(220,38,38,0.1);
    animation: mic-pulse 1.2s ease-in-out infinite;
}
@keyframes mic-pulse {
    0%, 100% { transform: translateY(-50%) scale(1); }
    50% { transform: translateY(-50%) scale(1.1); }
}
.mic-btn.mic-error {
    color: #b45309;
    background: rgba(180,83,9,0.1);
}
/* textarea / input 우측 패딩 확보 */
.mic-wrap textarea, .mic-wrap input[type="text"], .mic-wrap input:not([type]) {
    padding-right: 44px !important;
    width: 100%;
    box-sizing: border-box;
}
/* textarea는 마이크가 위쪽 (가운데 아님) */
.mic-wrap textarea ~ .mic-btn {
    top: 8px;
    transform: none;
}
.mic-wrap textarea ~ .mic-btn.recording {
    transform: none;
    animation: mic-pulse-top 1.2s ease-in-out infinite;
}
@keyframes mic-pulse-top {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

/* AI 피드백 — 단일 페이지 컨트롤 (기간 + 주제 + 자유 + 받기) */
.fb-controls {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px;
    padding: 12px 14px; margin-bottom: 14px;
}
.fb-row {
    display: flex; align-items: center; gap: 10px;
    margin-bottom: 8px;
}
.fb-row:last-child { margin-bottom: 0; }
.fb-label {
    width: 50px; font-size: 12px; font-weight: 600; color: #6b7280;
    flex-shrink: 0;
}
.fb-chips {
    display: flex; gap: 6px; flex-wrap: wrap;
}
.fb-chip {
    padding: 5px 12px; border-radius: 14px;
    background: #f3f4f6; border: 1px solid transparent;
    color: #374151; font-size: 12px; cursor: pointer;
    transition: all 0.1s;
}
.fb-chip:hover { background: #e5e7eb; }
.fb-chip.active {
    background: #10a37f; color: #fff; border-color: #10a37f; font-weight: 600;
}
.fb-row-prompt { gap: 8px; }
.fb-prompt-input {
    flex: 1; padding: 7px 12px;
    border: 1px solid #e5e7eb; border-radius: 6px;
    font-size: 13px; box-sizing: border-box;
    background: #fff;
}
.fb-prompt-input:focus {
    outline: none; border-color: #10a37f;
    box-shadow: 0 0 0 2px rgba(16,163,127,0.18);
}
.fb-run-btn {
    padding: 7px 18px; border-radius: 6px;
    background: #10a37f; color: #fff; border: none;
    cursor: pointer; font-size: 13px; font-weight: 600;
    flex-shrink: 0;
}
.fb-run-btn:hover { background: #0c8c6a; }
.fb-run-btn:disabled { background: #9ca3af; cursor: not-allowed; }

/* 스트리밍 패널 */
.fb-stream-panel {
    background: #fff; border: 1px solid #d1fae5; border-radius: 10px;
    padding: 14px 18px; margin-bottom: 14px;
}
.fb-stream-status {
    display: flex; align-items: center; gap: 8px;
    padding-bottom: 10px; border-bottom: 1px solid #f0fdf4; margin-bottom: 10px;
    font-size: 12px; font-weight: 600; color: #047857;
}
.fb-stream-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: #10a37f; animation: ai-pulse 1.2s ease-in-out infinite;
}
.fb-stream-output {
    line-height: 1.7; font-size: 14px;
}
.fb-stream-output .md-title { font-size: 18px; font-weight: 700; margin: 6px 0; }
.fb-stream-output .md-section-heading { font-size: 14px; font-weight: 700; color: #10a37f; margin: 12px 0 4px; }
.fb-stream-output .md-summary { background: #f0fdf4; padding: 8px 12px; border-radius: 4px; margin: 6px 0 10px; font-size: 13px; color: #047857; }
.fb-stream-output .md-para { margin: 4px 0; }

/* 누적 피드백 목록 */
.fb-history { display: flex; flex-direction: column; gap: 12px; }
.fb-card {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px;
    padding: 14px 18px;
}
.fb-card-meta {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    margin-bottom: 8px;
}
.fb-period-badge, .fb-type-badge {
    font-size: 11px; padding: 2px 8px; border-radius: 10px;
}
.fb-period-badge { background: #d1fae5; color: #047857; font-weight: 600; }
.fb-type-badge { background: #f3f4f6; color: #374151; }
.fb-period-label, .fb-date, .fb-records {
    font-size: 11px; color: #9ca3af;
}
.fb-card-title {
    font-size: 16px; font-weight: 700; color: #111;
    margin: 4px 0 6px;
}
.fb-card-summary {
    background: #f9fafb; padding: 8px 12px; border-radius: 4px;
    font-size: 13px; color: #374151; margin-bottom: 8px;
    border-left: 3px solid #10a37f;
}
.fb-card-section { margin-top: 10px; }
.fb-card-section h4 {
    font-size: 13px; font-weight: 700; color: #047857;
    margin: 8px 0 4px;
}
.fb-card-section-body {
    font-size: 13px; color: #374151; line-height: 1.7; white-space: pre-wrap;
}
.fb-card-body {
    font-size: 13px; color: #374151; line-height: 1.7; white-space: pre-wrap;
}

/* ===== 프로젝트 계획 ===== */
.proj-mode-tabs {
    margin-top: 4px;
}
.proj-tabs {
    display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
    margin: 12px 0 6px;
}
.proj-tab {
    padding: 6px 14px; text-decoration: none;
    color: #374151; font-size: 13px; font-weight: 500;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-bottom: 3px solid var(--proj-color, #10a37f);
    border-radius: 8px 8px 4px 4px;
    transition: all 0.1s;
}
.proj-tab:hover {
    background: #f9fafb;
    transform: translateY(-1px);
}
.proj-tab.active {
    background: var(--proj-color, #10a37f);
    color: #fff;
    font-weight: 700;
    border-color: var(--proj-color, #10a37f);
}
.proj-tab-new {
    border-style: dashed;
    color: #6b7280;
    border-bottom-style: dashed;
}
.proj-tab-new.active {
    background: #6b7280; color: #fff;
    border-style: solid;
}

/* 빈 상태 안내 배너 */
.proj-draft-banner {
    background: #fef3c7; border: 1px solid #fde68a;
    border-radius: 8px; padding: 10px 14px;
    font-size: 13px; color: #92400e; line-height: 1.6;
    margin: 12px 0;
}

/* 메타 폼 — 6컬럼 그리드, 필드별 1/2/3단 조합 */
.proj-meta-form {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px;
    padding: 14px 16px; margin-bottom: 12px;
    display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px 14px;
}
.pmf-row {
    grid-column: span 6;
    display: flex; align-items: center; gap: 10px;
}
.pmf-row.span-3 { grid-column: span 3; }
.pmf-row.span-2 { grid-column: span 2; }
.pmf-row.span-6 { grid-column: span 6; }
.pmf-row > label {
    width: 50px; flex-shrink: 0;
    font-size: 12px; font-weight: 700; color: #6b7280;
}
.pmf-row > input {
    flex: 1; padding: 7px 11px;
    border: 1px solid #e5e7eb; border-radius: 6px;
    font-size: 13px; box-sizing: border-box;
    font-family: inherit;
}
.pmf-row > input:focus {
    outline: none; border-color: #10a37f;
    box-shadow: 0 0 0 2px rgba(16,163,127,0.18);
}
@media (max-width: 720px) {
    .pmf-row.span-3, .pmf-row.span-2 { grid-column: span 6; }
}

/* 최종 아웃풋 — 강조 박스 (과제 트리 위) */
.proj-final-output {
    display: flex; align-items: center; gap: 12px;
    background: linear-gradient(90deg, #fef3c7, #fffbeb);
    border: 1px solid #fde68a; border-radius: 10px;
    padding: 10px 14px; margin: 0 0 14px;
}
.proj-final-output .pfo-label {
    font-size: 13px; font-weight: 700; color: #b45309;
    flex-shrink: 0;
}
.proj-final-output input {
    flex: 1; padding: 7px 11px; border: 1px solid #fde68a;
    border-radius: 6px; font-size: 13px; background: #fff;
    box-sizing: border-box;
}
.proj-final-output input:focus {
    outline: none; border-color: #f59e0b;
    box-shadow: 0 0 0 2px rgba(245,158,11,0.2);
}

.btn-end-proj {
    padding: 6px 14px; border-radius: 6px;
    background: #fff; color: #b91c1c; border: 1px solid #fecaca;
    font-size: 13px; cursor: pointer;
}
.btn-end-proj:hover { background: #fef2f2; }

/* 작성 방식 토글 */
.proj-write-mode {
    display: inline-flex; gap: 4px; padding: 4px;
    background: #f3f4f6; border-radius: 8px; margin-bottom: 12px;
}
.pwm-btn {
    padding: 5px 14px; border-radius: 6px;
    border: none; background: transparent;
    font-size: 12px; font-weight: 600; color: #6b7280; cursor: pointer;
}
.pwm-btn.active { background: #fff; color: #10a37f; box-shadow: 0 1px 2px rgba(0,0,0,0.08); }

/* 과제 카드 (수동 입력) */
.proj-task-edit-tree { display: flex; flex-direction: column; gap: 8px; }
.proj-task-card {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
    padding: 8px 12px;
}
.proj-task-card.depth-1 { background: #f9fafb; border-left: 3px solid #d1d5db; margin-left: 18px; }
.proj-task-card.depth-2 { background: #f3f4f6; margin-left: 36px; }
.ptc-row {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 4px;
}
.ptc-row:last-child { margin-bottom: 0; }
.ptc-title { flex: 2; padding: 7px 10px; border: 1px solid #e5e7eb; border-radius: 5px; font-size: 13px; }
.ptc-output { flex: 1; padding: 6px 10px; border: 1px solid #e5e7eb; border-radius: 5px; font-size: 12px; color: #6b7280; }
.ptc-start, .ptc-end { padding: 6px 8px; border: 1px solid #e5e7eb; border-radius: 5px; font-size: 12px; }
.ptc-row input:focus {
    outline: none; border-color: #10a37f;
    box-shadow: 0 0 0 2px rgba(16,163,127,0.18);
}
.ptc-add-sub, .ptc-del {
    flex-shrink: 0;
    border: 1px solid #e5e7eb; background: #fff;
    border-radius: 4px; cursor: pointer;
    color: #6b7280; line-height: 1; font-size: 12px;
    padding: 6px 10px;
    white-space: nowrap;
    writing-mode: horizontal-tb;
}
.ptc-add-sub { font-weight: 600; }
.ptc-del { width: 32px; padding: 6px 0; font-size: 14px; }
.ptc-add-sub:hover { color: #10a37f; border-color: #10a37f; background: #f0fdf4; }
.ptc-del:hover { color: #dc2626; border-color: #fca5a5; }
.ptc-children { margin-top: 6px; display: flex; flex-direction: column; gap: 6px; }
.proj-task-add-row {
    display: flex; gap: 8px; justify-content: space-between;
    margin-top: 12px;
}

/* 자연어 입력 박스 (상단 단일 박스) */
.proj-auto-box {
    background: #fffbeb; border: 1px solid #fde68a;
    border-radius: 10px; padding: 12px 14px;
    margin: 14px 0;
}
.proj-auto-head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 8px;
    font-size: 13px; font-weight: 700; color: #92400e;
}
.proj-auto-head small { font-weight: 400; color: #b45309; font-size: 11px; }
.proj-auto-head .btn-primary {
    padding: 6px 16px; border-radius: 6px;
    background: #f59e0b; color: #fff; border: none;
    font-weight: 600; font-size: 13px; cursor: pointer;
}
.proj-auto-head .btn-primary:hover { background: #d97706; }
.proj-auto-head .btn-primary:disabled { background: #9ca3af; cursor: not-allowed; }

#proj-auto-input {
    width: 100%; padding: 10px 12px;
    border: 1px solid #fde68a; border-radius: 8px;
    font-size: 14px; font-family: inherit; line-height: 1.6;
    box-sizing: border-box; min-height: 80px; resize: vertical;
    background: #fff;
}
#proj-auto-input:focus {
    outline: none; border-color: #f59e0b;
    box-shadow: 0 0 0 2px rgba(245,158,11,0.2);
}
.proj-auto-stream {
    margin-top: 10px; padding: 10px 12px;
    background: #fff; border: 1px solid #fde68a; border-radius: 6px;
    font-size: 11px; color: #6b7280;
    max-height: 180px; overflow: auto;
    white-space: pre-wrap; word-break: break-all;
    font-family: monospace;
}

/* 진행 관리 — 컴팩트 카드 + 상위 색감 강조 */
.proj-manage { --proj-color: #10a37f; }
.proj-manage-head {
    background: linear-gradient(135deg, color-mix(in srgb, var(--proj-color) 14%, white), #fff);
    border: 1px solid color-mix(in srgb, var(--proj-color) 35%, #e5e7eb);
    border-radius: 10px;
    padding: 10px 14px; margin: 10px 0 12px;
}
.proj-manage-head h3 {
    margin: 0 0 2px; font-size: 15px; font-weight: 700;
    color: color-mix(in srgb, var(--proj-color) 75%, #000);
}
.proj-manage-head p {
    margin: 0 0 6px; font-size: 12px; color: #6b7280;
}
.proj-progress {
    height: 6px; background: rgba(0,0,0,0.06);
    border-radius: 3px; overflow: hidden; margin-top: 6px;
}
.proj-progress-bar {
    height: 100%; background: var(--proj-color); transition: width 0.3s;
}
.proj-progress-text {
    text-align: right; font-size: 10.5px; color: #6b7280; margin-top: 3px;
}

.pmg-tree {
    display: flex; flex-direction: column; gap: 4px;
}
.pmg-card {
    background: #fff; border: 1px solid #e5e7eb;
    border-radius: 6px; padding: 5px 12px;
    transition: all 0.12s;
}
.pmg-card:hover { box-shadow: 0 1px 3px rgba(0,0,0,0.05); }

/* 상위 과제 (depth-0) — 강한 색감, 좌측 두꺼운 컬러 바, 약간 더 진한 폰트 */
.pmg-card.depth-0 {
    border-left: 5px solid var(--proj-color);
    background: linear-gradient(90deg, color-mix(in srgb, var(--proj-color) 8%, white), #fff 25%);
    padding: 7px 14px;
}
.pmg-card.depth-0 .pmg-title {
    font-size: 13.5px; font-weight: 700;
    color: color-mix(in srgb, var(--proj-color) 70%, #000);
}

/* 하위 과제 — 들여쓰기 + 옅은 색 + 작은 폰트 */
.pmg-card.depth-1 {
    margin-left: 28px;
    border-left: 3px solid color-mix(in srgb, var(--proj-color) 55%, #d1d5db);
    background: #fafbfc;
    padding: 4px 12px;
}
.pmg-card.depth-2 {
    margin-left: 56px;
    border-left: 2px solid color-mix(in srgb, var(--proj-color) 35%, #d1d5db);
    background: #f3f4f6;
    padding: 4px 12px;
}

.pmg-card.done {
    background: color-mix(in srgb, var(--proj-color) 6%, white);
}
.pmg-card.done .pmg-title {
    text-decoration: line-through; color: #9ca3af;
}

.pmg-check-row {
    display: flex; align-items: center; gap: 8px;
    cursor: pointer; min-height: 24px;
}
.pmg-check-row input[type="checkbox"] {
    transform: scale(1.05); cursor: pointer;
    accent-color: var(--proj-color);
    flex-shrink: 0;
}
.pmg-title {
    flex: 1; font-size: 12.5px; font-weight: 500; color: #1f2937;
    line-height: 1.5;
}
.pmg-period {
    font-size: 10.5px; color: var(--proj-color);
    background: color-mix(in srgb, var(--proj-color) 10%, white);
    padding: 1px 7px; border-radius: 8px;
    flex-shrink: 0; white-space: nowrap;
}
.pmg-children {
    margin-top: 4px;
    display: flex; flex-direction: column; gap: 3px;
}

/* 5축 인물 사전 편집 (설정 페이지) */
.soul-axis-card {
    border: 1px solid #e5e7eb; border-radius: 8px;
    padding: 12px 14px; margin-bottom: 12px;
    background: #fafafa;
}
.soul-axis-head {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 8px;
}
.soul-axis-label {
    font-size: 14px; font-weight: 700; color: #111;
}
.soul-axis-desc { font-size: 12px; color: #6b7280; }
.soul-axis-save {
    margin-left: auto;
    padding: 4px 12px; border-radius: 5px;
    background: #10a37f; color: #fff; border: none;
    font-size: 12px; cursor: pointer; font-weight: 600;
}
.soul-axis-save:hover { background: #0c8c6a; }
.soul-axis-save:disabled { background: #9ca3af; cursor: not-allowed; }
.soul-axis-persons {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px;
    margin-bottom: 8px;
}
.soul-person-row {
    display: flex; align-items: center; gap: 4px;
}
.soul-person-input {
    flex: 1; padding: 6px 10px; border: 1px solid #e5e7eb;
    border-radius: 5px; font-size: 13px; background: #fff;
    box-sizing: border-box;
}
.soul-person-input:focus {
    outline: none; border-color: #10a37f;
    box-shadow: 0 0 0 2px rgba(16,163,127,0.18);
}
.soul-person-del {
    width: 26px; height: 28px;
    border: 1px solid #e5e7eb; background: #fff;
    border-radius: 4px; cursor: pointer;
    color: #9ca3af; font-size: 14px; line-height: 1;
}
.soul-person-del:hover { color: #dc2626; border-color: #fca5a5; }
.soul-person-add {
    background: #fff; border: 1px dashed #d1d5db;
    border-radius: 5px; padding: 6px 12px;
    color: #6b7280; cursor: pointer; font-size: 12px;
}
.soul-person-add:hover { border-color: #10a37f; color: #10a37f; }

/* 오늘의 과제 — 카운터 다음 2단 그리드 */
.brief-tasks-2col {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px;
    padding: 12px 16px; margin-bottom: 14px;
}
.brief-tasks-head {
    font-size: 13px; font-weight: 700; color: #047857;
    margin-bottom: 8px;
    display: flex; align-items: center;
}
.brief-tasks-head .brief-tasks-edit {
    margin-left: auto;
    font-size: 11px; color: #6b7280; text-decoration: none; font-weight: 500;
}
.brief-tasks-head .brief-tasks-edit:hover { color: #10a37f; }
.brief-tasks-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 4px 18px;
}
.brief-task-row {
    display: flex; align-items: baseline; gap: 6px;
    padding: 4px 0;
    font-size: 13px;
    border-top: 1px solid #f9fafb;
}
.brief-task-row .bt-slot { font-size: 13px; flex-shrink: 0; width: 18px; }
.brief-task-row .bt-title { color: #1f2937; font-weight: 500; }
.brief-task-row .bt-csf { color: #6b7280; font-size: 12px; font-style: italic; }
.brief-tasks-empty { color: #9ca3af; font-size: 12px; padding: 4px 0; }
.brief-tasks-empty a { color: #10a37f; text-decoration: none; }

/* 캘린더 selected day (브리프 보기 중인 날) */
.calendar-day.selected {
    background: #10a37f !important;
    color: #fff !important;
    font-weight: 700;
    border-radius: 4px;
}
/* 헤더 '오늘로' 버튼 */
.back-to-today {
    margin-left: 12px;
    padding: 4px 12px;
    background: #f3f4f6;
    color: #374151;
    border-radius: 5px;
    font-size: 12px;
    text-decoration: none;
    font-weight: 600;
}
.back-to-today:hover {
    background: #10a37f; color: #fff;
}

/* 한 줄 기록 종합 섹션 (오늘 기록 페이지 하단) */
.brief-list-section {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px;
    padding: 16px 20px; margin-top: 18px;
}
.brief-list-section h3 {
    font-size: 14px; font-weight: 700; color: #374151;
    margin: 0 0 8px;
}
.brief-list-section .bls-hint {
    font-size: 11px; color: #9ca3af; margin: 0 0 14px;
}
.brief-list-slot {
    margin-bottom: 14px;
}
.brief-list-slot-label {
    font-size: 12px; font-weight: 700; color: #047857;
    margin: 8px 0 6px; padding-bottom: 3px;
    border-bottom: 1px dashed #d1fae5;
}
.brief-list-row {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 10px;
    padding: 5px 0;
    font-size: 13px; line-height: 1.6;
    border-top: 1px solid #f9fafb;
}
.brief-list-row:first-of-type { border-top: none; }
.brief-list-row .bls-time { color: #9ca3af; font-size: 11px; }
.brief-list-row .bls-text { color: #1f2937; }
.brief-list-empty {
    color: #9ca3af; font-style: italic; font-size: 12px; padding: 6px 0;
}

/* 로고와 캘린더 사이의 로그인 정보 */
.sidebar-user-info {
    margin: 8px 12px;
    padding: 6px 10px;
    background: #f3f4f6;
    border-radius: 6px;
    font-size: 12px;
    color: #374151;
    text-align: center;
}

/* 사이드바 앱 종료 버튼 — 메뉴 항목처럼 */
.menu-shutdown-form { margin: 0; padding: 0; }
.menu-shutdown-btn {
    width: 100%;
    background: none; border: none; cursor: pointer;
    text-align: left; font-family: inherit; font-size: inherit;
    color: inherit;
    padding: inherit;
}
.menu-shutdown-btn:hover {
    color: #dc2626;
}

/* 모드 토글 (계획 쓰기 / 계획 보기) */
.plan-mode-tabs {
    display: flex; gap: 4px;
    margin: 0 0 14px;
    padding: 4px;
    background: #f3f4f6;
    border-radius: 8px;
    width: fit-content;
}
.plan-mode-tab {
    padding: 6px 16px;
    border-radius: 6px;
    font-size: 13px; font-weight: 600;
    color: #6b7280; text-decoration: none;
    transition: all 0.1s;
}
.plan-mode-tab:hover { color: #10a37f; }
.plan-mode-tab.active {
    background: #fff; color: #10a37f;
    box-shadow: 0 1px 2px rgba(0,0,0,0.08);
}

/* 섹션 안내문 */
.plan-section-hint {
    font-size: 12px; color: #9ca3af;
    margin: 0 0 8px; padding-left: 2px;
}

/* 루틴 편집 — 입력 행과 동일한 시원한 패딩 */
.plan-routines-edit {
    display: flex; flex-direction: column; gap: 6px;
    margin-bottom: 4px;
}
.plan-routine-row {
    display: flex; align-items: center; gap: 6px;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
    padding: 8px 10px;
}
.plan-routine-row input[type="text"] {
    flex: 1;
    padding: 9px 12px; border: 1px solid #e5e7eb;
    border-radius: 6px; font-size: 14px; box-sizing: border-box;
}
.plan-routine-row .prr-title { flex: 1.2; }
.plan-routine-row .prr-when { flex: 1.5; }
.plan-routine-row .prr-where { flex: 1; }
.plan-routine-row input:focus {
    outline: none; border-color: #10a37f;
    box-shadow: 0 0 0 2px rgba(16,163,127,0.18);
}
.plan-routine-row .prr-del {
    width: 30px; height: 36px;
    border: 1px solid #e5e7eb; background: #fff;
    border-radius: 6px; cursor: pointer;
    color: #6b7280; flex-shrink: 0;
}
.plan-routine-row .prr-del:hover { border-color: #dc2626; color: #dc2626; }

/* 일간 시간대 안내 */
.plan-day-hint {
    font-size: 13px; color: #6b7280;
    background: #f0fdf4; border-left: 3px solid #10a37f;
    padding: 8px 14px; border-radius: 4px;
    margin: 0 0 14px;
}

/* 일간 시간대별 편집 컨테이너 */
.plan-day-slot-edit {
    display: flex; flex-direction: column; gap: 4px;
    background: #fff; border: 1px solid #e5e7eb;
    border-radius: 8px; padding: 8px 10px;
    margin-bottom: 10px;
}

/* 일간 루틴 체크 */
.plan-routine-checks {
    display: flex; flex-direction: column; gap: 4px;
    background: #fff; border: 1px solid #e5e7eb;
    border-radius: 8px; padding: 8px 12px;
    margin-bottom: 12px;
}
.plan-routine-check {
    display: flex; align-items: center; gap: 8px;
    padding: 4px 0;
    cursor: pointer;
    user-select: none;
}
.plan-routine-check input[type="checkbox"] {
    cursor: pointer; transform: scale(1.1);
}
.plan-routine-check .prc-title {
    font-size: 14px; font-weight: 600; color: #111;
}
.plan-routine-check .prc-when,
.plan-routine-check .prc-where {
    font-size: 12px; color: #6b7280;
}
.plan-routine-check input:checked ~ .prc-title {
    text-decoration: line-through; color: #9ca3af;
}

/* 통일 하단바 — 모든 입력 폼 공용 (날짜 + 취소 + 저장 한 줄) */
.form-bottom-bar {
    display: flex; align-items: center; gap: 10px;
    padding: 6px 12px;
    background: var(--accent-bg, #f0fdf4);
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 8px;
    margin-top: 14px;
    flex-wrap: wrap;
}
.form-bottom-bar .fbb-date-label {
    font-weight: 600; color: var(--accent, #10a37f);
    font-size: 13px; white-space: nowrap;
}
.form-bottom-bar input[type="date"] {
    padding: 5px 8px;
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 5px;
    font-size: 13px; font-family: inherit;
    background: #fff; color: var(--ink, #111);
    transition: all 0.1s;
}
.form-bottom-bar input[type="date"]:focus {
    outline: none;
    border-color: var(--accent, #10a37f);
    box-shadow: 0 0 0 2px var(--accent-bg, rgba(16,163,127,0.18));
}
.form-bottom-bar .fbb-spacer { flex: 1; }
.form-bottom-bar .fbb-cancel,
.form-bottom-bar .fbb-save {
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 13px; font-family: inherit;
    cursor: pointer; text-decoration: none;
    border: 1px solid transparent;
    transition: all 0.1s;
}
.form-bottom-bar .fbb-cancel {
    background: #fff; color: #6b7280;
    border-color: var(--border, #e5e7eb);
}
.form-bottom-bar .fbb-cancel:hover {
    border-color: #9ca3af; color: #374151;
}
.form-bottom-bar .fbb-save {
    background: var(--accent, #10a37f); color: #fff;
    border-color: var(--accent, #10a37f); font-weight: 600;
}
.form-bottom-bar .fbb-save:hover {
    background: #0c8c6a; border-color: #0c8c6a;
}

/* 기간 설정 폼 */
.range-form {
    display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px;
    padding: 10px 14px; margin: 10px 0 14px;
}
.range-form label {
    display: flex; align-items: center; gap: 6px; font-size: 13px;
}
.range-form input[type="date"] {
    border: 1px solid #e5e7eb; border-radius: 6px;
    padding: 4px 8px; font-size: 13px;
}

/* AI 스트리밍 패널 (공용 — 모든 .ai-save-form 제출 시) */
.ai-stream-panel {
    background: #fff; border: 1px solid #d1fae5; border-radius: 12px;
    padding: 20px 22px; margin: 16px 0;
    box-shadow: 0 1px 3px rgba(16, 163, 127, 0.08);
}
.ai-stream-status {
    display: flex; align-items: center; gap: 10px;
    padding-bottom: 12px; border-bottom: 1px solid #f0fdf4; margin-bottom: 14px;
    font-size: 13px; font-weight: 600; color: #047857;
}
.ai-stream-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: #10a37f; animation: ai-pulse 1.2s ease-in-out infinite;
}
@keyframes ai-pulse {
    0%, 100% { opacity: 0.4; transform: scale(0.9); }
    50% { opacity: 1; transform: scale(1.1); }
}
.ai-stream-output {
    max-height: 60vh; overflow-y: auto; line-height: 1.7;
}
.ai-stream-output .ai-md-h {
    font-size: 13px; font-weight: 700; color: #10a37f;
    margin: 14px 0 6px; padding-bottom: 4px; border-bottom: 1px dashed #d1fae5;
}
.ai-stream-output .ai-md-h:first-child { margin-top: 0; }
.ai-stream-output .ai-md-p {
    font-size: 15px; margin: 6px 0; color: #1f2937;
}
.ai-stream-output .ai-md-li {
    font-size: 14px; margin: 3px 0 3px 8px; color: #374151;
}
.ai-stream-output .ai-md-spacer { height: 6px; }

/* 페이지 placeholder (Phase 2~5 예고) */
.coming-soon {
    background: #f9fafb; border: 2px dashed #d1d5db; border-radius: 12px;
    padding: 40px 24px; text-align: center; color: #6b7280;
    margin: 20px 0;
}
.coming-soon .icon { font-size: 36px; margin-bottom: 10px; }
.coming-soon .title { font-size: 16px; font-weight: 700; color: #374151; margin-bottom: 6px; }
.coming-soon .desc { font-size: 13px; line-height: 1.6; }

/* 기록 카드 (시간축·축별 공용) */
.rec-card {
    display: grid; grid-template-columns: 80px 60px 1fr auto;
    gap: 12px; align-items: start;
    padding: 14px; border-bottom: 1px solid var(--border, #e5e7eb);
    transition: background 0.1s;
}
.rec-card:hover { background: #f9fafb; }
.rec-card .rec-time {
    font-size: 12px; color: #6b7280; padding-top: 2px;
}
.rec-card .rec-type {
    font-size: 11px; padding: 3px 8px; border-radius: 8px;
    background: #eef2ff; color: #4338ca; font-weight: 600;
    white-space: nowrap; text-align: center; height: fit-content;
}
.rec-card .rec-type.t-emotion { background: #fee2e2; color: #b91c1c; }
.rec-card .rec-type.t-lecture { background: #d1fae5; color: #065f46; }
.rec-card .rec-type.t-book { background: #fef3c7; color: #92400e; }
.rec-card .rec-type.t-idea { background: #fef9c3; color: #854d0e; }
.rec-card .rec-type.t-material { background: #ccfbf1; color: #115e59; }
.rec-card .rec-type.t-quick { background: #e0e7ff; color: #4338ca; }
.rec-card .rec-type.t-voice { background: #ede9fe; color: #6d28d9; }
.rec-card .rec-type.t-legacy { background: #f3f4f6; color: #4b5563; }
.rec-card .rec-body { min-width: 0; }
.rec-card .rec-title { font-weight: 600; font-size: 14px; color: #111827; margin-bottom: 4px; }
.rec-card .rec-preview { font-size: 13px; color: #6b7280; line-height: 1.55;
    overflow: hidden; text-overflow: ellipsis; display: -webkit-box;
    -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.rec-card .rec-meta { font-size: 11px; color: #9ca3af; margin-top: 4px; }
.rec-card .rec-actions { display: flex; gap: 6px; flex-direction: column; }
.rec-card .rec-actions a {
    font-size: 11px; padding: 3px 8px; border-radius: 6px;
    background: #f3f4f6; color: #111827; text-decoration: none; white-space: nowrap;
}
.rec-card .rec-actions a:hover { background: #e5e7eb; }

/* 시간축 탭 */
.time-tabs { display: flex; gap: 6px; margin-bottom: 14px; flex-wrap: wrap; }
.time-tab {
    padding: 6px 14px; border-radius: 18px; font-size: 12px;
    color: #6b7280; text-decoration: none;
    border: 1px solid var(--border, #e5e7eb); background: #fff;
}
.time-tab.active { background: #10a37f; color: #fff; border-color: #10a37f; }
.time-tab:hover { background: #f5f7f8; }
.time-tab.active:hover { background: #10a37f; }

/* 기록 상세 화면 — AI 자동처리 결과 박스 */
.detail-meta {
    background: #fafafa; border: 1px solid var(--border, #e5e7eb); border-radius: 10px;
    padding: 12px 14px; margin: 12px 0; font-size: 12px;
}
.detail-meta .row { display: flex; gap: 10px; margin-bottom: 6px; align-items: baseline; }
.detail-meta .row .key { color: #6b7280; min-width: 70px; }
.detail-meta .row .val { color: #111827; font-weight: 500; }

/* 액션 행 */
.detail-actions {
    display: flex; gap: 8px; flex-wrap: wrap; margin: 14px 0;
}
.detail-actions a, .detail-actions button {
    padding: 8px 14px; border-radius: 8px; font-size: 13px;
    background: #f3f4f6; border: 1px solid var(--border, #e5e7eb);
    color: #111827; text-decoration: none; cursor: pointer;
}
.detail-actions a.primary, .detail-actions button.primary {
    background: #10a37f; color: #fff; border-color: #0c8c6a;
}
.detail-actions a:hover { background: #e5e7eb; }
.detail-actions a.primary:hover { background: #0c8c6a; }
