/* Shared styles for the bank / finance-company section-editor pages
 * (financial_banks.html, financial_finance_companies.html). */
.fc-toolbar { display:flex; flex-wrap:wrap; gap:0.5rem; align-items:center; margin-bottom:1rem; }
.fc-toolbar input[type="text"] { padding:0.4rem 0.7rem; border-radius:6px; border:1px solid var(--border-color); background:var(--bg-secondary); color:var(--text-primary); min-width:260px; }
.fc-toolbar button { padding:0.4rem 0.9rem; border-radius:999px; border:1px solid var(--border-color); background:var(--bg-secondary); color:var(--text-secondary); cursor:pointer; font-size:0.8rem; }
.fc-toolbar button:hover { background:var(--accent-gradient); color:#fff; border-color:transparent; }
.fc-toolbar button:disabled { opacity:0.5; cursor:not-allowed; }
.company-card { background:var(--card-bg); border:1px solid var(--border-color); border-radius:12px; padding:0.9rem; margin-bottom:0.75rem; }
.company-title { font-size:1.1rem; font-weight:700; color:var(--accent-primary); margin:0 0 0.5rem 0; }
.sec-row { border:1px solid var(--border-color); border-radius:10px; padding:0.6rem 0.75rem; margin-bottom:0.55rem; background:var(--bg-primary); }
.sec-row h3 { margin:0 0 0.7rem 0; font-size:0.95rem; color:var(--text-primary); border-bottom:1px solid var(--border-color); padding-bottom:0.4rem; }
.info-line { font-size:0.85rem; color:var(--text-secondary); margin-bottom:0.3rem; }
.info-line strong { color:var(--text-primary); }
.info-line a { color:var(--accent-primary); }
.form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:0.6rem; }
.form-field { display:flex; flex-direction:column; gap:0.2rem; }
.form-field label { font-size:0.72rem; color:var(--text-muted); font-weight:600; }
.form-field input, .form-field textarea { padding:0.4rem 0.55rem; border-radius:6px; border:1px solid var(--border-color); background:var(--bg-secondary); color:var(--text-primary); font-size:0.82rem; width:100%; box-sizing:border-box; }
.form-field textarea { min-height:3.2rem; resize:vertical; }
.sec-actions { display:flex; flex-wrap:wrap; gap:0.5rem; align-items:center; margin-top:0.8rem; padding-top:0.7rem; border-top:1px solid var(--border-color); }
.sec-actions button { padding:0.38rem 0.95rem; font-size:0.78rem; border-radius:999px; cursor:pointer; border:1px solid var(--border-color); background:var(--bg-secondary); color:var(--text-secondary); }
.sec-actions button.primary { background:#16a34a; color:#fff; border-color:#16a34a; }
.sec-actions button.extract-btn { background:#2563eb; color:#fff; border-color:#2563eb; }
.sec-actions button.btn-fill { background:#2563eb; color:#fff; border-color:#2563eb; }
.sec-actions button.btn-overwrite { background:#dc2626; color:#fff; border-color:#dc2626; }
.sec-actions button:disabled { opacity:0.5; cursor:not-allowed; }
.annual-bar { gap:0.45rem; }
.url-input { padding:0.38rem 0.7rem; border-radius:999px; border:1px solid var(--border-color); background:var(--bg-secondary); color:var(--text-primary); font-size:0.78rem; min-width:230px; width:auto; max-width:100%; box-sizing:border-box; }
.url-input::placeholder { color:var(--text-muted); }
.url-input:focus { outline:none; border-color:var(--accent-primary); }
.url-input:invalid { box-shadow:none; border-color:var(--border-color); }
.annual-bar .url-input { min-width:250px; }
.annual-bar .upload-annual-label { display:inline-flex; align-items:center; gap:0.3rem; padding:0.38rem 0.95rem; border:1px solid var(--border-color); border-radius:999px; background:var(--bg-secondary); cursor:pointer; }
.annual-bar .upload-annual-label input[type="file"] { display:inline-block; font-size:0.76rem; max-width:180px; }
.modal-wide { max-width:960px; width:95%; }
.annual-section-title { font-size:0.9rem; font-weight:700; margin:1rem 0 0.4rem 0; color:var(--text-primary); border-bottom:1px solid var(--border-color); padding-bottom:0.3rem; }
.modal-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:780px){ .modal-grid-2{ grid-template-columns:1fr; } }
.sec-status { font-size:0.76rem; color:var(--text-muted); width:100%; min-height:1rem; }
.file-label { font-size:0.76rem; color:var(--text-muted); }
table.edit-table { width:100%; border-collapse:collapse; font-size:0.8rem; }
table.edit-table th, table.edit-table td { border:1px solid var(--border-color); padding:0.3rem; vertical-align:top; }
table.edit-table th { background:var(--bg-tertiary); color:var(--text-secondary); font-size:0.72rem; }
table.edit-table input, table.edit-table textarea { width:100%; box-sizing:border-box; padding:0.3rem 0.4rem; border-radius:4px; border:1px solid var(--border-color); background:var(--bg-secondary); color:var(--text-primary); font-size:0.78rem; }
table.edit-table textarea { min-height:2.6rem; resize:vertical; }
.row-btn { padding:0.15rem 0.5rem; font-size:0.72rem; border-radius:6px; cursor:pointer; border:1px solid var(--border-color); background:var(--bg-tertiary); color:var(--text-secondary); }
.hl-table-wrap { overflow-x:auto; }
/* Director photo thumbnails (board_of_directors img field) */
.img-cell { display:flex; flex-direction:column; gap:0.3rem; align-items:flex-start; min-width:120px; }
.img-cell input { width:100%; }
img.person-img { width:72px; height:72px; object-fit:cover; border-radius:50%; border:2px solid var(--border-color); background:var(--bg-tertiary); }
.no-photo { font-size:0.72rem; color:var(--text-muted); border:1px dashed var(--border-color); border-radius:50%; width:72px; height:72px; display:inline-flex; align-items:center; justify-content:center; text-align:center; }
.img-url { font-size:0.68rem; color:var(--text-muted); word-break:break-all; max-width:180px; }
/* Extract modal */
.modal-overlay { display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.55); z-index:2000; align-items:center; justify-content:center; }
.modal-box { background:var(--bg-primary); border:1px solid var(--border-color); border-radius:12px; max-width:720px; width:92%; max-height:86vh; overflow-y:auto; padding:1.4rem; position:relative; }
.modal-close { position:absolute; top:0.7rem; right:1rem; background:none; border:none; font-size:1.3rem; cursor:pointer; color:var(--text-muted); }
.modal-title { margin:0 0 0.3rem 0; font-size:1.05rem; }
.modal-sub { font-size:0.78rem; color:var(--text-muted); margin-bottom:0.8rem; }
.modal-extract-text { font-size:0.72rem; background:var(--bg-tertiary); border:1px solid var(--border-color); border-radius:6px; padding:0.5rem; max-height:8rem; overflow-y:auto; white-space:pre-wrap; margin-bottom:0.8rem; color:var(--text-secondary); }
.modal-btns { display:flex; gap:0.5rem; margin-top:1rem; flex-wrap:wrap; }
.modal-btns button { padding:0.45rem 1rem; border-radius:8px; cursor:pointer; font-size:0.82rem; border:1px solid var(--border-color); }
.btn-fill { background:#2563eb; color:#fff; border-color:#2563eb; }
.btn-overwrite { background:#dc2626; color:#fff; border-color:#dc2626; }
.btn-discard { background:var(--bg-secondary); color:var(--text-primary); }
.spinner { display:inline-block; width:14px; height:14px; border:2px solid var(--border-color); border-top-color:var(--accent-primary); border-radius:50%; animation:spin 0.8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.toast { position:fixed; bottom:1.5rem; right:1.5rem; background:var(--card-bg); border:1px solid var(--border-color); border-radius:10px; padding:0.7rem 1.2rem; font-size:0.85rem; z-index:3000; }
