/* --- Print Styles for Accounts Page --- */
@media print {
	.accounts-page-print .topbar, 
	.accounts-page-print .sidebar, 
	.accounts-page-print .page-header, 
	.accounts-page-print .split,
	.accounts-page-print .card:not(#print-balances-card),
	.accounts-page-print #acct-balances-initial, 
	.accounts-page-print #acct-balances-loading, 
	.accounts-page-print #acct-balances-empty,
	.accounts-page-print .no-print {
		display: none !important;
	}
	.accounts-page-print, 
	.accounts-page-print .app, 
	.accounts-page-print .main {
		display: block !important;
		margin: 0 !important;
		padding: 0 !important;
		width: 100% !important;
	}
	.accounts-page-print #print-balances-card {
		box-shadow: none !important;
		border: none !important;
		padding: 0 !important;
		margin: 0 !important;
	}
	.accounts-page-print #acct-balances-wrap {
		display: block !important;
	}
	.accounts-page-print #asset-accounts-section,
	.accounts-page-print #mortgage-accounts-section,
	.accounts-page-print #credit-accounts-section {
		display: block !important;
		page-break-inside: avoid;
	}
	.accounts-page-print table {
		width: 100%;
		border-collapse: collapse;
		font-size: 11px;
	}
	.accounts-page-print th, 
	.accounts-page-print td {
		border: 1px solid #ccc;
		padding: 4px 8px;
	}
	.accounts-page-print .print-title {
		font-size: 16px;
		font-weight: 700;
		margin-bottom: 4px;
	}
	.accounts-page-print .print-subtitle {
		font-size: 11px;
		color: #666;
		margin-bottom: 16px;
	}
}

/* --- Agent Architect Chat Bubbles --- */
.architect-bubble {
	padding: 0.6rem 0.8rem;
	border-radius: var(--radius);
	max-width: 85%;
	font-size: 0.85rem;
	line-height: 1.45;
	white-space: pre-wrap;
}

/* --- Common Utilities --- */
.hidden { display: none !important; }
.flex-between { display: flex; align-items: center; justify-content: space-between; }
.flex-between-mb { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.flex-between-mb-2 { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.8rem; }
.flex-wrap-end { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; }
.flex-gap-2 { display: flex; gap: 0.5rem; }
.grid-2-col { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.mt-1 { margin-top: 0.25rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-4 { margin-top: 1rem; }
.mt-5 { margin-top: 1.2rem; }
.mt-6 { margin-top: 1.4rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-8 { margin-bottom: 2rem; }
.min-h-8 { min-height: 2rem; }
.align-self-start { align-self: flex-start; }
.cursor-pointer { cursor: pointer; }
.pos-relative-inline { position: relative; display: inline-block; }

/* --- Typography --- */
.text-danger { color: var(--danger) !important; }
.text-success { color: var(--success) !important; }
.text-warning { color: #f59e0b !important; }
.text-muted-sm { font-size: 0.82rem; color: var(--text-muted); }
.text-muted-sm-mt { display: block; font-size: 0.82rem; color: var(--text-muted); margin-top: 0.4rem; }
.text-muted-sm-2 { font-size: 0.85rem; color: var(--text-muted); }
.text-muted-xs { font-size: 0.75rem; color: var(--text-muted); }
.text-muted-margin { font-size: 0.78rem; color: var(--text-muted); margin: 0.3rem 0 0.8rem; }
.label-caps-sm { font-size: 0.78rem; font-weight: 600; color: var(--text-muted); letter-spacing: 0.05em; text-transform: uppercase; }
.font-weight-500 { font-weight: 500; }
.font-weight-600 { font-weight: 600; }

/* --- Table & Form Elements --- */
.th-right { text-align: right !important; }
.th-border-right { border-right: 2px solid var(--border) !important; }
.td-right { text-align: right !important; }
.td-mono-sm { font-size: 0.78rem; }
.td-mono-xs { font-size: 0.75rem; }
.td-mono-preview { font-size: 0.78rem; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.td-border-right { border-right: 2px solid var(--border) !important; }
.tr-total { font-weight: 700; border-top: 2px solid var(--border); }
.textarea-mono { font-family: var(--font-mono); font-size: 0.82rem; }
.form-group-inline { margin: 0 !important; min-width: 120px; }
.form-group-no-margin { margin: 0 !important; }

/* --- Buttons --- */
.btn-danger-outline { color: var(--danger); border: 1px solid var(--danger); background: transparent; }
.btn-warning-ghost { border-color: #f59e0b; color: #f59e0b; }

/* --- Modals & Panels --- */
.modal-box-attach { max-width: 520px; width: 100%; }
.modal-box-error { max-width: 640px; width: 100%; }
.modal-box-resolve { max-width: 700px; width: 100%; max-height: 90vh; overflow-y: auto; }
.modal-title-danger { color: var(--danger); }
.modal-title-warning { color: #f59e0b; }
.pre-error-modal { margin-top: 0.4rem; padding: 0.75rem; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); font-size: 0.8rem; color: var(--danger); white-space: pre-wrap; word-break: break-all; max-height: 160px; overflow-y: auto; }
.pre-output-modal { margin-top: 0.4rem; padding: 0.75rem; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); font-size: 0.8rem; color: var(--text-muted); white-space: pre-wrap; word-break: break-all; max-height: 240px; overflow-y: auto; }
.pre-resolve-modal { margin-top: 0.4rem; padding: 0.75rem; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); font-size: 0.78rem; color: var(--text-muted); white-space: pre-wrap; word-break: break-all; max-height: 200px; overflow-y: auto; }
.fields-container { display: flex; flex-direction: column; gap: 0.6rem; }
.resolve-error-alert { margin-top: 0.8rem; padding: 0.6rem 0.8rem; background: rgba(224,92,106,0.1); border: 1px solid var(--danger); border-radius: var(--radius); font-size: 0.82rem; color: var(--danger); }

/* --- Tab bar & Buttons --- */
.tab-bar { display: flex; gap: 0; border-bottom: 2px solid var(--border); margin-bottom: 1.5rem; }
.tab-button { padding: 0.6rem 1.4rem; background: none; border: none; border-bottom: 2px solid transparent; margin-bottom: -2px; cursor: pointer; font-size: 0.9rem; font-weight: 600; color: var(--text-muted); }
.tab-button-active { border-bottom-color: var(--accent) !important; color: var(--accent) !important; }

/* --- Accounts page specific --- */
.accounts-notes-td { font-size: 0.82rem; color: var(--text-muted); }
.accounts-balances-card { margin-top: 1.5rem; }
.balances-filter-form { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; margin-bottom: 1rem; }
.balances-filter-group-inner { display: flex; gap: 0.5rem; align-items: center; margin-top: 0.4rem; }
.acct-select-month { width: 130px; }
.acct-input-year { width: 100px; }
.balances-filter-actions { display: flex; flex-direction: column; gap: 0.3rem; }
.balances-section-title { font-size: 0.78rem; font-weight: 600; color: var(--text-muted); letter-spacing: 0.05em; text-transform: uppercase; margin-bottom: 0.5rem; }
.balances-section-subtitle { font-size: 0.8rem; color: var(--text-muted); margin-bottom: 0.6rem; }
.td-credit { color: #4caf82; }
.td-debit { color: var(--danger); }
.td-interest { color: #f59e0b; }
.td-principal { color: #3b82f6; }
.td-bold-right { text-align: right !important; font-weight: 600; }

/* --- Agents page specific --- */
.split-assisted { grid-template-columns: 1fr 340px; }
.chat-container-card { display: flex; flex-direction: column; height: calc(100vh - 240px); }
.architect-agent-select-group { margin-bottom: 1rem; max-width: 320px; }
.architect-agent-select-label { font-size: 0.75rem; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; }
.architect-agent-select { width: 100%; padding: 0.4rem 0.6rem; font-size: 0.85rem; margin-top: 0.25rem; }
.architect-desc { font-size: 0.8rem; color: var(--text-muted); margin-bottom: 1rem; }
.architect-messages-area { flex: 1; overflow-y: auto; border: 1px solid var(--border); border-radius: var(--radius); padding: 1rem; background: var(--bg); margin-bottom: 1rem; display: flex; flex-direction: column; gap: 0.75rem; }
.architect-file-indicator { align-items: center; gap: 0.5rem; padding: 0.4rem 0.6rem; background: rgba(99,102,241,0.08); border: 1px solid var(--border); border-radius: var(--radius); font-size: 0.8rem; margin-bottom: 0.5rem; }
.architect-form { display: flex; gap: 0.5rem; align-items: stretch; }
.architect-file-btn { padding: 0.5rem 1rem; }
.architect-guide-card { font-size: 0.83rem; line-height: 1.5; color: var(--text-muted); }
.architect-guide-title { font-size: 0.9rem; }
.architect-guide-p { margin-bottom: 0.75rem; }
.architect-proposal-box { margin-top: 1.5rem; padding: 0.75rem; background: var(--bg); border-radius: var(--radius); border: 1px solid var(--border); }
.architect-proposal-title { font-weight: 600; color: var(--text); }
.architect-proposal-card { margin-top: 0.75rem; padding: 1rem; background: var(--bg); border: 2px solid var(--accent); border-radius: var(--radius); font-size: 0.82rem; display: flex; flex-direction: column; gap: 0.5rem; max-width: 85%; }
.architect-schema-pre { font-family: var(--font-mono); font-size: 0.72rem; background: var(--surface); padding: 0.4rem; border-radius: 4px; border: 1px solid var(--border); margin-top: 0.2rem; }
.architect-proposal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem; background: var(--surface); padding: 0.5rem; border-radius: 4px; border: 1px solid var(--border); margin: 0.2rem 0; }
.architect-log-pre { font-family: var(--font-mono); font-size: 0.72rem; background: var(--bg); padding: 0.5rem; border-radius: 4px; overflow-x: auto; border: 1px solid var(--border); margin-top: 0.5rem; max-height: 250px; }

/* --- Domains page specific --- */
.asgn-toggle-icon { display: inline-block; width: 1em; font-size: 0.8rem; color: var(--text-muted); margin-right: 0.3rem; }

/* --- Prompts page specific --- */
.insert-artifact-bar-flex { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.4rem; }
.artifact-empty-msg { padding: 0.6rem 1rem; color: var(--text-muted); font-size: 0.82rem; }
.artifact-type-label { color: var(--text-muted); font-size: 0.75rem; margin-left: 0.4rem; }
.insert-artifact-hint { font-size: 0.78rem; color: var(--text-muted); }
.artifact-dropdown-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 200;
	min-width: 220px;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 6px;
	box-shadow: 0 4px 16px rgba(0,0,0,0.18);
	padding: 0.3rem 0;
}
.artifact-drop-item {
	display: block;
	width: 100%;
	text-align: left;
	padding: 0.5rem 1rem;
	background: none;
	border: none;
	cursor: pointer;
	font-size: 0.85rem;
	color: var(--text);
}
.architect-bubble.system {
	background: var(--surface);
	border: 1px solid var(--border);
	align-self: flex-start;
	color: var(--text);
}
.architect-bubble.user {
	background: var(--accent);
	color: #fff;
	align-self: flex-end;
}
.architect-bubble.notification {
	background: rgba(76,175,130,0.12);
	border: 1px solid #4caf82;
	color: #4caf82;
	align-self: center;
	max-width: 95%;
	font-weight: 500;
	text-align: center;
}

/* --- Print Styles for P&L Page --- */
@media print {
	/* Hide everything except the print-active-card and the print header */
	.pnl-page-print .topbar, 
	.pnl-page-print .sidebar, 
	.pnl-page-print .page-header, 
	.pnl-page-print .split,
	.pnl-page-print .card:not(.print-active-card),
	.pnl-page-print .empty,
	.pnl-page-print .no-print,
	.pnl-page-print button, 
	.pnl-page-print .btn {
		display: none !important;
	}
	.pnl-page-print, 
	.pnl-page-print .app, 
	.pnl-page-print .main {
		display: block !important;
		margin: 0 !important;
		padding: 0 !important;
		width: 100% !important;
		background: #fff !important;
		color: #1e293b !important;
		font-family: 'Inter', -apple-system, sans-serif !important;
	}
	.pnl-page-print .print-active-card {
		display: block !important;
		box-shadow: none !important;
		border: none !important;
		padding: 0 !important;
		margin: 0 !important;
	}
	
	/* Elegant Print Header */
	.pnl-page-print #print-header {
		display: flex !important;
		justify-content: space-between;
		align-items: flex-end;
		border-bottom: 2px solid #6366f1;
		padding-bottom: 12px;
		margin-bottom: 24px;
	}
	.pnl-page-print .print-title {
		font-size: 22px;
		font-weight: 800;
		color: #0f172a;
		margin: 0;
		text-transform: uppercase;
		letter-spacing: 0.05em;
	}
	.pnl-page-print .print-subtitle {
		font-size: 11px;
		color: #475569;
		margin: 0;
		font-weight: 500;
	}
	
	/* Card Title in Print */
	.pnl-page-print .card-title {
		font-size: 14px !important;
		font-weight: 700 !important;
		color: #1e293b !important;
		margin-top: 0 !important;
		margin-bottom: 12px !important;
		text-transform: uppercase;
		letter-spacing: 0.05em;
	}

	/* Beautiful Financial Tables */
	.pnl-page-print table {
		width: 100% !important;
		border-collapse: collapse !important;
		font-size: 10px !important;
		line-height: 1.4 !important;
		margin-bottom: 16px !important;
	}
	.pnl-page-print th {
		background-color: #f1f5f9 !important;
		color: #334155 !important;
		font-weight: 700 !important;
		text-transform: uppercase !important;
		letter-spacing: 0.05em !important;
		border-bottom: 2px solid #cbd5e1 !important;
		padding: 6px 8px !important;
	}
	.pnl-page-print td {
		border-bottom: 1px solid #e2e8f0 !important;
		padding: 6px 8px !important;
		color: #334155 !important;
	}
	.pnl-page-print tr:nth-child(even) {
		background-color: #f8fafc !important;
	}
	.pnl-page-print tr {
		page-break-inside: avoid !important;
	}
	
	/* Table Footer / Totals Row */
	.pnl-page-print tfoot tr, 
	.pnl-page-print tr.total-row, 
	.pnl-page-print tr:last-child {
		font-weight: 700 !important;
		background-color: #f1f5f9 !important;
		border-top: 2px solid #cbd5e1 !important;
		border-bottom: 2px solid #cbd5e1 !important;
	}
	
	/* Monospace numbers */
	.pnl-page-print .td-mono, 
	.pnl-page-print td[style*="text-align:right"], 
	.pnl-page-print td[style*="text-align: right"] {
		font-family: 'JetBrains Mono', monospace !important;
		font-size: 9.5px !important;
		font-variant-numeric: tabular-nums !important;
	}

	/* Badges in Print */
	.pnl-page-print .badge {
		border: 1px solid #cbd5e1 !important;
		background: transparent !important;
		color: #334155 !important;
		font-size: 8px !important;
		padding: 1px 4px !important;
		border-radius: 3px !important;
		text-transform: uppercase !important;
		font-weight: 600 !important;
	}
	.pnl-page-print .badge-active {
		border-color: #bbf7d0 !important;
		color: #15803d !important;
	}
	.pnl-page-print .badge-inactive {
		border-color: #fecdd3 !important;
		color: #b91c1c !important;
	}

	/* Page margins */
	@page {
		margin: 1.5cm;
		size: letter portrait;
	}
}
