/* Crystal surroundings; solid, readable financial content. */
:root {
  --ink:#172c40; --muted:#526779; --paper:#edf4f8; --white:#fff;
  --line:#d6e3ec; --surface-soft:#f1f6fa; --accent:#1267c5;
  --accent-strong:#0756a8; --accent-soft:#e6f1fc; --focus:#588dd1;
  --radius:22px; --sidebar:216px;
  --shadow:0 8px 28px #24486108,0 1px 2px #24486105;
  --glass:#ffffffd9; --glass-border:#ffffff;
}
:root[data-theme="dark"] {
  --ink:#eaf3fb; --muted:#afc0d0; --paper:#101c29; --white:#1a2a3b;
  --line:#344b60; --surface-soft:#203449; --accent:#96c9ff;
  --accent-strong:#b4d9ff; --accent-soft:#263e59; --focus:#a6cfff;
  --glass:#162738ed; --glass-border:#3d5469;
}
:root[data-theme="warm"] {
  --ink:#33382f; --muted:#606956; --paper:#f3f3eb; --white:#fffef8;
  --line:#dddccd; --surface-soft:#efefe4; --accent:#426c55;
  --accent-strong:#30583f; --accent-soft:#e6eee3; --focus:#8aaf96;
  --glass:#fffef8ed; --glass-border:#fffef8;
}
body { background:radial-gradient(ellipse at 85% 0%,var(--accent-soft),transparent 55%),var(--paper); }
.topbar,.company-shell { background:var(--glass); border-color:var(--glass-border); backdrop-filter:blur(24px) saturate(125%); -webkit-backdrop-filter:blur(24px) saturate(125%); }
.topbar { min-height:60px; padding-block:10px; }
.topbar .user-name { max-width:none; overflow:visible; text-overflow:clip; white-space:normal; overflow-wrap:anywhere; }
.brand-mark { background:linear-gradient(145deg,var(--accent),var(--accent-strong)); border:1px solid #ffffff40; }
.environment-notice { padding-block:4px; font-size:.69rem; }
.page-shell { max-width:1700px; margin-inline:auto; padding-top:26px; }
h1 { font-size:clamp(1.65rem,2.3vw,2.2rem); line-height:1.2; }
.owner-heading,.page-heading,.bw-heading { align-items:center; gap:16px; flex-wrap:wrap; }
.owner-heading p,.page-heading p { margin-block:5px; }
.owner-heading { margin-bottom:18px; }
.card,.owner-metric,.company-card,.bw-cash-card,.bw-list,.bw-panel { border-color:var(--line); box-shadow:var(--shadow); }
.card { padding:24px; }
.business-period { padding:14px 18px; border:1px solid var(--line); border-radius:16px; background:var(--glass); margin-block:16px 22px; }
.business-period label { font-size:.76rem; }
.business-period .button { min-height:40px; padding:8px 12px; }
.business-period p { margin:8px 0 0; }
.insight-actions { gap:14px; font-size:.79rem; flex-wrap:wrap; }
.owner-metrics { gap:16px; }
.owner-metric { min-width:0; padding:22px; }
.owner-metric strong { font-size:clamp(1.45rem,2.5vw,2.5rem); overflow-wrap:anywhere; }
.owner-metric small { font-size:.78rem; }
.insight-trend-row,.insight-mix a { border-radius:10px; padding:12px; }
.insight-trend-row:hover,.insight-mix a:hover { background:var(--accent-soft); }
.trend-bars i,.insight-mix i { border-radius:5px; }
.insight-legend { font-size:.8rem; }
.business-projects { margin-block:22px; }
.business-projects .business-line { align-items:center; }
.business-project-values { text-align:right; font-variant-numeric:tabular-nums; }
.business-project-values strong,.business-project-values small { display:block; }
.business-project-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,1fr); align-items:center; gap:24px; padding:16px 10px; border-top:1px solid var(--line); color:var(--ink); border-radius:8px; }
.business-project-row:hover { background:var(--accent-soft); text-decoration:none; }
.business-project-row>div { min-width:0; }
.project-chart-bars { display:grid; gap:4px; margin-top:9px; }
.project-chart-bars i { display:block; height:7px; border-radius:4px; }
.project-revenue { background:var(--accent-strong); }
.project-costs { background:#8c7a9d; }
.project-loss { color:var(--negative); }
.project-chart-legend { display:flex; gap:16px; color:var(--muted); font-size:.76rem; }
.project-chart-legend span { display:flex; align-items:center; gap:6px; }
.project-chart-legend i { width:9px; height:9px; border-radius:3px; }
.bw-heading h1 { margin-block:3px; }
.bw-balances { gap:14px; margin-bottom:18px; }
.bw-balance { padding:20px; }
.bw-balance strong { font-size:1.6rem; }
.bw-cash-card { padding:20px; }
.bw-row button { white-space:normal; }
.bw-row button strong,.bw-row button small,.bw-panel h2 { overflow-wrap:anywhere; white-space:normal; }
.bw-panel { padding:22px; }
.bw-actions,.bw-quick-actions { gap:8px; }
.bw-start { margin-block:18px; padding:30px; background:linear-gradient(125deg,var(--white),var(--accent-soft)); }
.bw-start h2 { font-size:1.5rem; margin-block:6px 12px; }
.bw-start ol { display:flex; flex-wrap:wrap; gap:24px; padding-left:22px; margin:18px 0 24px; }
.bw-start li { padding-right:12px; font-size:.88rem; }
.bw-start p { max-width:65ch; }
.bw-empty-action { padding:24px; }
.bw-empty-action h3 { margin-top:0; }
.bw-more-candidates>summary { padding:12px 0; color:var(--accent-strong); cursor:pointer; font-size:.82rem; }
.context-panel { width:min(1200px,calc(100vw - 48px)); border-radius:24px 0 0 24px; }
.context-panel-header { background:var(--glass); padding:16px 22px; flex-wrap:wrap; }
.context-panel-header h2 { min-width:180px; }
.context-panel-body { padding:22px 28px 40px; }
.context-panel-body .accountant-tabs,.context-panel-body .banking-tabs,.context-panel-body .context-return { display:none; }
.context-panel .table-scroll { max-height:none; }
.context-panel-status { font-size:.78rem; }
.workspace-editor { max-width:calc(100vw - 32px); }
.table-scroll:not(.print-document) { max-height:75vh; }
td,th { line-height:1.5; }
td:not(.numeric):not(.amount):not(.money),.business-line>span,.business-line>div { overflow-wrap:anywhere; }
.record-list-search,.predictive-choice { min-width:0; }
.predictive-options { border-radius:12px; max-height:300px; box-shadow:0 12px 36px #18374b20; }
.predictive-options li { white-space:normal; overflow-wrap:anywhere; padding:12px; }
.accountant-line { align-items:start; }
.accountant-line .line-account { min-width:0; }
.journal-totals { position:sticky; bottom:0; background:var(--glass); border:1px solid var(--line); border-radius:12px; padding:14px; backdrop-filter:blur(16px); }
.section-nav,.accountant-tabs,.banking-tabs { flex-wrap:wrap; height:auto; overflow:visible; }
.section-nav>a,.accountant-tabs>a,.banking-tabs>a { white-space:normal; }
@media(min-width:1180px) {
  .company-shell { padding:24px 16px; }
  .company-nav>a,.company-more summary { justify-content:flex-start; min-height:44px; padding:10px 12px; white-space:normal; }
  .company-context-actions { flex-wrap:wrap; }
}
@media(max-width:900px) {
  .business-grid,.insight-charts { grid-template-columns:1fr; }
}
@media(max-width:760px) {
  .page-shell { padding:22px 16px 36px; }
  .topbar .user-name,.brand .phase { display:initial; max-width:none; overflow:visible; }
  .topbar nav { gap:10px; }
  .owner-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .owner-metric { padding:16px; }
  .card,.bw-start { padding:20px; }
  .company-shell { padding:16px; }
  .company-nav>a { white-space:normal; }
  .context-panel { width:100vw; max-width:100vw; border-radius:0; }
  .context-panel-body { padding:18px 16px 32px; }
  .context-panel-header { gap:8px; padding:12px 16px; }
  .context-panel-header h2 { flex-basis:100%; }
  .business-period { padding:14px; }
  .business-period label { width:auto; max-width:100%; }
  .trend-values { white-space:normal; overflow-wrap:anywhere; }
  .business-project-row { grid-template-columns:1fr; gap:12px; }
  .business-project-values { text-align:left; }
}
@media(max-width:420px) {
  .owner-metrics { grid-template-columns:1fr; }
  .insight-trend-row { grid-template-columns:1fr; gap:6px; }
  .trend-values { display:flex; gap:12px; }
}
@media(prefers-reduced-motion:no-preference) {
  @keyframes crystal-arrive { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
}
@media print {
  body { background:#fff; }
  .topbar,.company-shell { backdrop-filter:none; }
  .card,.owner-metric { box-shadow:none; }
  .journal-totals { position:static; }
}

.bw-no-import .bw-cash-card,.bw-no-import .bw-toolbar,.bw-no-import .bw-layout,.bw-no-import .bw-filters,.bw-no-import .bw-bottom { display:none; }

.setup-panel .accountant-tabs,.setup-panel .banking-tabs { display:none; }
[id^="asset-figure-"]:target { background:var(--accent-soft); outline:2px solid var(--focus); outline-offset:-2px; scroll-margin-top:18px; }
.context-panel .is-source-focus { background:var(--accent-soft); outline:2px solid var(--focus); outline-offset:-2px; }
