/* ====================================================
   FİRMA, FİNANS VE LEGAL (Faz 13) — js/finance.js
   Proje Kimlik Kartı bölümü, yükümlülük detayındaki iç yorumlar, firma profili özeti ve pencereler.
   ==================================================== */

.fin-section { margin-top: 14px; }
.fin-head {
    cursor: pointer;
    justify-content: space-between;
    user-select: none;
    background: var(--sidebar-bg);
    padding: 9px 12px;
    border-radius: 8px;
    border: 1px solid var(--border-light);
}
.fin-head:focus-visible { outline: 2px solid var(--accent-purple); outline-offset: 2px; }
.fin-head-left { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; min-width: 0; }
.fin-toggle { font-size: 11px; font-weight: 700; color: var(--accent-purple); white-space: nowrap; }

.fin-lock-chip {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: none;
    color: #9a3412;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 9999px;
    padding: 1px 7px;
    white-space: nowrap;
}
.fin-pill {
    font-size: 10.5px;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    color: var(--text-secondary);
    background: var(--bg-shell);
    border: 1px solid var(--border-light);
    border-radius: 9999px;
    padding: 1px 7px;
    white-space: nowrap;
}
.fin-pill-danger { color: #b91c1c; background: #fef2f2; border-color: #fecaca; }

.fin-body { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; }
.fin-block {
    border: 1px solid var(--border-light);
    border-radius: 10px;
    padding: 10px 12px;
    background: var(--bg-shell);
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 12px;
    color: var(--text-primary);
}
.fin-block-internal { border-color: #fed7aa; background: linear-gradient(0deg, rgba(255, 247, 237, 0.55), rgba(255, 247, 237, 0.55)), var(--bg-shell); }
.fin-block-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-secondary);
}
.fin-block-title > span:first-child { display: inline-flex; align-items: center; gap: 4px; }
.fin-tools { display: inline-flex; align-items: center; gap: 8px; text-transform: none; letter-spacing: 0; font-weight: 500; }
.fin-sub-title { font-size: 11px; font-weight: 700; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.04em; margin-top: 2px; }
.fin-count { font-weight: 600; color: var(--text-muted); text-transform: none; letter-spacing: 0; }
.fin-muted { color: var(--text-muted); font-size: 11.5px; }
.fin-small { font-size: 11.5px; padding: 3px 9px; }
.fin-primary { background: var(--accent-purple); color: #fff; border-color: var(--accent-purple); font-weight: 600; }
.fin-primary:hover { background: #6d28d9; color: #fff; }
.fin-danger { color: #dc2626 !important; }
.fin-note {
    font-size: 12px;
    color: var(--text-secondary);
    background: var(--accent-purple-light);
    border-radius: 8px;
    padding: 7px 10px;
}
.fin-error { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; border-radius: 8px; padding: 7px 10px; font-size: 12px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fin-conflict { background: #fffbeb; color: #92400e; border: 1px solid #fcd34d; border-radius: 8px; padding: 8px 10px; font-size: 12px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fin-check { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; color: var(--text-secondary); cursor: pointer; }

/* Proje finansı */
.fin-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.fin-stat { display: flex; flex-direction: column; gap: 2px; background: var(--sidebar-bg); border: 1px solid var(--border-light); border-radius: 8px; padding: 7px 9px; min-width: 0; }
.fin-stat-label { font-size: 10px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.03em; }
.fin-stat-num { font-size: 13.5px; font-weight: 800; color: var(--text-primary); overflow-wrap: anywhere; }
.fin-kv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 12px; margin: 0; }
.fin-kv > div { min-width: 0; }
.fin-kv dt { font-size: 10.5px; font-weight: 600; color: var(--text-muted); }
.fin-kv dd { margin: 0; font-size: 12px; font-weight: 600; color: var(--text-primary); overflow-wrap: anywhere; }
.fin-co-list, .fin-doc-list, .fin-comment-list, .fin-cp-infra { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.fin-co-row { border: 1px solid var(--border-light); border-radius: 8px; padding: 6px 9px; display: flex; flex-direction: column; gap: 2px; background: var(--bg-shell); }
.fin-co-top { display: flex; align-items: center; gap: 6px; }
.fin-co-name { font-weight: 700; font-size: 12px; }
.fin-pm { margin-left: auto; font-size: 11px; font-weight: 700; color: #0369a1; background: #e0f2fe; border-radius: 9999px; padding: 1px 8px; white-space: nowrap; }
.fin-co-figs { font-size: 11.5px; color: var(--text-secondary); padding-left: 14px; }
.fin-co-note { font-size: 11px; color: var(--text-muted); padding-left: 14px; white-space: pre-wrap; }
.fin-co-sum { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; font-size: 11.5px; color: var(--text-secondary); border-top: 1px dashed var(--border-light); padding-top: 6px; }
.fin-balance { font-size: 11.5px; color: var(--text-muted); }
.fin-balance-over { color: #b45309; font-weight: 600; }
.fin-notes, .fin-cp-text { white-space: pre-wrap; font-size: 12px; line-height: 1.5; color: var(--text-secondary); }
.fin-updated { font-size: 10.5px; }

/* Legal dokümanlar */
.fin-doc { border: 1px solid var(--border-light); border-radius: 8px; padding: 7px 9px; display: flex; flex-direction: column; gap: 4px; background: var(--bg-shell); }
.fin-doc-overdue { border-color: #fca5a5; box-shadow: inset 3px 0 0 #ef4444; }
.fin-doc-deleted { opacity: 0.6; }
.fin-doc-deleted .fin-doc-title { text-decoration: line-through; }
.fin-doc-top { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.fin-doc-title { font-weight: 700; font-size: 12.5px; margin-right: 2px; overflow-wrap: anywhere; }
.fin-doc-meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 11.5px; color: var(--text-secondary); }
.fin-sep { color: var(--text-faint); }
.fin-doc-note { font-size: 11.5px; color: var(--text-muted); white-space: pre-wrap; }
.fin-doc-actions { display: flex; gap: 4px; justify-content: flex-end; }
.fin-due-overdue { color: #b91c1c; font-weight: 700; }
.fin-due-soon { color: #b45309; font-weight: 600; }
.fin-link { color: var(--accent-blue); font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.fin-link:hover { text-decoration: underline; }
.fin-link-btn { font: inherit; font-size: 11.5px; border: none; background: none; color: var(--accent-blue); cursor: pointer; padding: 2px 4px; border-radius: 5px; }
.fin-link-btn:hover { background: var(--sidebar-bg); }

.fin-badge { display: inline-flex; align-items: center; font-size: 10.5px; font-weight: 700; padding: 1px 7px; border-radius: 9999px; white-space: nowrap; }
.fin-kind { background: #f1f5f9; color: #475569; }
.fin-st-draft { background: #f1f5f9; color: #475569; }
.fin-st-in_review { background: #dbeafe; color: #1d4ed8; }
.fin-st-to_sign { background: #fef3c7; color: #b45309; }
.fin-st-signed { background: #dcfce7; color: #15803d; }
.fin-st-submitted { background: #ede9fe; color: #6d28d9; }
.fin-st-archived { background: #e2e8f0; color: #334155; }
.fin-st-deleted { background: #fee2e2; color: #b91c1c; }
.fin-badge-muted { background: var(--sidebar-bg); color: var(--text-muted); border: 1px solid var(--border-light); font-weight: 600; }

/* İç yorumlar */
.fin-internal-note { font-size: 11.5px; line-height: 1.45; color: #9a3412; background: #fff7ed; border: 1px dashed #fdba74; border-radius: 8px; padding: 6px 9px; }
.fin-comment { border: 1px solid var(--border-light); border-radius: 8px; padding: 6px 9px; background: var(--bg-shell); display: flex; flex-direction: column; gap: 3px; }
.fin-comment-own { border-left: 3px solid var(--accent-purple); }
.fin-comment-head { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.fin-comment-author { font-weight: 700; font-size: 12px; }
.fin-comment-time { margin-left: auto; font-size: 10.5px; }
.fin-comment-body { white-space: pre-wrap; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.fin-comment-form { display: flex; flex-direction: column; gap: 5px; }
.fin-comment-form textarea, .fin-box input, .fin-box select, .fin-box textarea {
    font: inherit;
    font-size: 12.5px;
    color: var(--text-primary);
    background: var(--bg-shell);
    border: 1px solid var(--border-light);
    border-radius: 7px;
    padding: 5px 8px;
    min-height: 30px;
    width: 100%;
    box-sizing: border-box;
}
.fin-comment-form textarea, .fin-box textarea { resize: vertical; }
.fin-comment-form textarea:focus, .fin-box input:focus, .fin-box select:focus, .fin-box textarea:focus { outline: 2px solid var(--accent-purple-light); border-color: var(--accent-purple); }
.fin-comment-form-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.fin-icon-btn { border: 1px solid transparent; background: transparent; color: var(--text-secondary); border-radius: 6px; min-width: 24px; height: 24px; cursor: pointer; font-size: 12px; }
.fin-icon-btn:hover { background: var(--sidebar-item-hover, var(--sidebar-bg)); border-color: var(--border-light); }
.fin-ob-section { display: flex; flex-direction: column; gap: 6px; }

/* Şirket Kimlik Kartı: firma profili özeti */
.fin-cp-card { display: flex; flex-direction: column; gap: 6px; }
.fin-cp-summary { display: flex; flex-direction: column; gap: 6px; background: var(--sidebar-bg); border: 1px solid var(--border-light); border-radius: 10px; padding: 10px 12px; font-size: 12px; }
.fin-cp-sum-name { font-weight: 700; font-size: 12.5px; }
.fin-cp-facts { display: flex; gap: 12px; flex-wrap: wrap; color: var(--text-secondary); font-size: 11.5px; }
.fin-cp-facts b { color: var(--text-muted); font-weight: 600; margin-right: 3px; }
.fin-card-btn { align-self: flex-start; font-size: 11.5px; font-weight: 600; background: var(--accent-purple-light); color: var(--accent-purple); }
.fin-chips { display: flex; gap: 5px; flex-wrap: wrap; align-items: center; }
.fin-chip { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 6px; background: var(--bg-shell); border: 1px solid var(--border-light); color: var(--text-primary); }

/* Pencere ve formlar */
.fin-box { width: 760px; max-width: 95vw; max-height: 88vh; }
.fin-box.fin-box-wide { width: 1080px; }
.fin-box.fin-busy { cursor: progress; }
.fin-box.fin-busy .fin-modal-body { opacity: 0.7; pointer-events: none; }
body.test-mode .fin-overlay { top: 30px; }
.fin-modal-body { gap: 12px; font-size: 12.5px; color: var(--text-primary); }
#fin-modal-form { display: flex; flex-direction: column; gap: 12px; }
.fin-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; }
.fin-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fin-field { display: flex; flex-direction: column; gap: 3px; font-size: 11.5px; font-weight: 600; color: var(--text-secondary); min-width: 0; }
.fin-wide { grid-column: 1 / -1; }
.fin-field-error { font-size: 11px; font-weight: 600; color: #b91c1c; }
.fin-has-error input, .fin-has-error select, .fin-has-error textarea { border-color: #ef4444 !important; background: #fff5f5 !important; }
.fin-fieldset { border: 1px solid var(--border-light); border-radius: 10px; padding: 8px 12px 12px; margin: 0; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.fin-fieldset > legend { font-size: 11.5px; font-weight: 700; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.04em; padding: 0 4px; }
.fin-fieldset > .btn-clean { align-self: flex-start; }
.fin-row-card { position: relative; display: grid; grid-template-columns: 22px minmax(0, 1fr) 26px; gap: 8px; align-items: start; border: 1px dashed var(--border-light); border-radius: 9px; padding: 8px; background: var(--sidebar-bg); }
.fin-row-num { font-size: 11px; font-weight: 800; color: var(--text-muted); padding-top: 20px; text-align: center; }
.fin-row-remove { margin-top: 18px; }
.fin-cp-form-key { font-size: 12px; color: var(--text-secondary); }

/* Firma profilleri ekranı */
.fin-cp-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 16px; align-items: start; }
.fin-cp-list { display: flex; flex-direction: column; gap: 4px; position: sticky; top: 0; }
.fin-cp-item { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; font: inherit; color: var(--text-primary); background: var(--bg-shell); border: 1px solid var(--border-light); border-radius: 9px; padding: 7px 9px; cursor: pointer; }
.fin-cp-item:hover { border-color: var(--accent-purple); }
.fin-cp-item.active { border-color: var(--accent-purple); background: var(--accent-purple-light); }
.fin-cp-item-text { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.fin-cp-item-name { font-weight: 700; font-size: 12.5px; }
.fin-cp-item-text .fin-muted { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 10.5px; }
.fin-cp-detail { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.fin-cp-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.fin-cp-name { font-size: 17px; font-weight: 800; margin: 0 0 2px; color: var(--text-primary); }
.fin-cp-infra li { border: 1px solid var(--border-light); border-radius: 8px; padding: 6px 9px; }
.fin-table-wrap { overflow-x: auto; }
.fin-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.fin-table th { text-align: left; font-size: 10.5px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.03em; border-bottom: 1px solid var(--border-light); padding: 4px 6px; }
.fin-table td { border-bottom: 1px solid var(--border-light); padding: 6px; vertical-align: top; }
.fin-num { text-align: right !important; white-space: nowrap; }

@media (max-width: 820px) {
    .fin-cp-layout { grid-template-columns: 1fr; }
    .fin-cp-list { position: static; }
    .fin-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
    .fin-form-grid, .fin-grid-3, .fin-kv, .fin-stats { grid-template-columns: 1fr; }
}

/* Koyu tema */
body.dark-mode .fin-lock-chip { color: #fdba74; background: rgba(251, 146, 60, 0.12); border-color: rgba(251, 146, 60, 0.35); }
body.dark-mode .fin-internal-note { color: #fdba74; background: rgba(251, 146, 60, 0.08); border-color: rgba(251, 146, 60, 0.35); }
body.dark-mode .fin-block-internal { border-color: rgba(251, 146, 60, 0.35); background: rgba(251, 146, 60, 0.04); }
body.dark-mode .fin-error, body.dark-mode .fin-pill-danger { background: rgba(239, 68, 68, 0.12); border-color: rgba(239, 68, 68, 0.35); color: #fca5a5; }
body.dark-mode .fin-conflict { background: rgba(245, 158, 11, 0.12); border-color: rgba(245, 158, 11, 0.35); color: #fcd34d; }
body.dark-mode .fin-pm { background: rgba(14, 165, 233, 0.15); color: #7dd3fc; }
body.dark-mode .fin-kind, body.dark-mode .fin-st-draft, body.dark-mode .fin-st-archived { background: rgba(148, 163, 184, 0.15); color: #cbd5e1; }
body.dark-mode .fin-st-in_review { background: rgba(59, 130, 246, 0.18); color: #93c5fd; }
body.dark-mode .fin-st-to_sign { background: rgba(245, 158, 11, 0.18); color: #fcd34d; }
body.dark-mode .fin-st-signed { background: rgba(16, 185, 129, 0.18); color: #6ee7b7; }
body.dark-mode .fin-st-submitted { background: rgba(124, 58, 237, 0.2); color: #c4b5fd; }
body.dark-mode .fin-st-deleted { background: rgba(239, 68, 68, 0.18); color: #fca5a5; }
body.dark-mode .fin-due-overdue { color: #f87171; }
body.dark-mode .fin-due-soon { color: #fbbf24; }
body.dark-mode .fin-has-error input, body.dark-mode .fin-has-error select, body.dark-mode .fin-has-error textarea { background: rgba(239, 68, 68, 0.08) !important; }
