/* Family Property Hub workspace. Shared visual ideas with MyBudget, independent code. */
:root {
  --ink:#172c36; --muted:#61737c; --green:#146653;
  --paper:#f4f6f5; --line:#dbe7e1; --white:#fff; --sand:#fbefe4;
  --blue:#e9eff8; --mint:#e5f3eb; --lilac:#eeebf8;
  --shadow:0 7px 24px #172c360b;
}
html { scroll-behavior:smooth; }
body { background:var(--paper); color:var(--ink); font-size:15px; }
:focus-visible { outline:3px solid #b17b28; outline-offset:3px; }
.skip-link { position:absolute; top:-100px; left:16px; z-index:100; padding:10px 15px; background:#fff; color:var(--ink); }
.skip-link:focus { top:10px; }
.app-shell { display:grid; grid-template-columns:244px minmax(0,1fr); min-height:100vh; }
.sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; gap:24px; padding:22px 15px 18px; background:#172c36; color:#f5faf7; z-index:20; }
.sidebar .brand { color:#f5faf7; font-size:16px; line-height:1.2; gap:10px; padding:5px 8px; }
.brand-mark { display:grid; place-items:center; flex:none; width:44px; height:44px; border-radius:12px; background:#ffffff1c; }
.brand-mark img { display:block; width:37px; height:37px; object-fit:contain; }
.sidebar .brand small { margin-top:4px; color:#a8c3c1; font-size:9px; letter-spacing:1px; }
.desktop-nav { display:flex; flex-direction:column; gap:3px; overflow-y:auto; min-height:0; padding:0; background:transparent; border:0; white-space:normal; }
.desktop-nav a { display:grid; grid-template-columns:37px minmax(0,1fr); align-items:center; gap:10px; min-height:57px; padding:7px 10px; border:1px solid transparent; border-radius:12px; color:#e3efeb; font-size:14px; font-weight:650; text-decoration:none; }
.desktop-nav a>span:first-child { display:grid; place-items:center; height:35px; border-radius:10px; background:#ffffff14; font-size:19px; font-weight:500; }
.desktop-nav a>span:first-child,.link-tile>span:first-child { font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif; }
.desktop-nav a small { color:#a6bdb9; font-size:11px; line-height:1.2; }
.desktop-nav a:hover,.desktop-nav a.active { color:#fff; background:#ffffff16; border-color:#ffffff24; }
.desktop-nav a.active>span:first-child { background:#2b7965; }
.desktop-nav a.active small { color:#d6ece4; }
.nav-divider { margin:9px 12px; border-top:1px solid #ffffff23; }
.sidebar-user { margin-top:auto; display:grid; grid-template-columns:37px minmax(0,1fr) 35px; align-items:center; gap:9px; border-top:1px solid #ffffff25; padding:17px 5px 0; }
.user-avatar { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#74cda9; color:#143f36; font-weight:800; }
.sidebar-user strong { display:block; font-size:13px; }
.sidebar-user small { color:#aac2bd; font-size:11px; }
.sidebar-user form { margin:0; }
.signout { width:34px; min-height:34px; padding:0; border:0; background:none; color:#d8ede4; font-size:24px; }
.signout:hover { background:#ffffff1a; }
.workspace { min-width:0; }
.workspace-header { display:flex; justify-content:space-between; align-items:center; gap:20px; min-height:66px; margin:22px 28px 0; padding:10px 18px; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:var(--shadow); }
.workspace-header strong,.workspace-header small { display:block; }
.workspace-title { display:flex; align-items:center; gap:10px; min-width:0; }
.workspace-emoji { display:grid; place-items:center; flex:none; width:37px; height:37px; border-radius:11px; background:#e5f3ea; font-size:24px; line-height:1; }
.workspace-header strong { font-size:13px; }
.workspace-header small { color:var(--muted); font-size:11px; }
.workspace-header a { padding:7px 11px; border:1px solid var(--line); border-radius:9px; text-decoration:none; font-size:12px; font-weight:650; }
.workspace main { width:100%; max-width:1480px; min-height:calc(100vh - 150px); padding:32px 28px 56px; margin:0 auto; }
.workspace footer { max-width:none; margin:0 28px; padding:16px 0; }
.mobile-nav { display:none; }
.public-header { display:flex; align-items:center; justify-content:space-between; gap:15px; max-width:1100px; margin:auto; padding:24px 20px; }
.public-header .brand-mark { background:#e5f2ea; }
.public-main { max-width:1100px; padding:28px 20px 55px; }
.page-heading { align-items:center; margin-bottom:22px; }
.page-heading h1 { margin:0 0 6px; font-size:clamp(27px,2.6vw,38px); letter-spacing:-.8px; }
.eyebrow,.card-label { color:#5a726b; font-size:11px; letter-spacing:1.4px; }
.panel,.card { border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); }
.panel { margin-bottom:18px; }
.button,button { border-radius:10px; min-height:42px; }
.secondary { border-color:#b9d5c9; }
.badge { border-color:#d9e4dd; border-radius:999px; background:#f4f7f5; color:#526761; font-weight:650; }
.status-good { background:#e5f5ec; border-color:#bce1cc; color:#176045; }
.status-warning { background:#fff3df; border-color:#edcf99; color:#78531b; }
.notice { border-radius:12px; }
.task-feedback[hidden],.task-empty[hidden] { display:none; }
.task-feedback { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.task-feedback.error { position:static; width:auto; height:auto; padding:12px 16px; margin:0 0 16px; overflow:visible; clip:auto; white-space:normal; border:1px solid #e4b7ac; border-radius:12px; background:#fff0ec; color:#7b2c1e; }
.destination-flash { animation:destination-flash 1.15s ease-out; }
@keyframes destination-flash { 24% { background:#c7f1d5; box-shadow:0 0 0 7px #3ca9724d,0 0 20px #3ca97270; transform:scale(1.045); } 100% { box-shadow:none; transform:scale(1); } }
.task-saving .task-tick { animation:task-tick-confirm .34s ease-out both; }
.task-leaving { height:0!important; padding-top:0!important; padding-bottom:0!important; border-top-color:transparent!important; opacity:0; transform:translateX(24px); overflow:hidden; transition:height .36s ease,padding .36s ease,border-color .36s ease,opacity .25s ease,transform .36s ease; }
@keyframes task-tick-confirm { 0% { transform:scale(1); } 45% { transform:scale(1.2); background:#d4ecdf; color:#176045; } 100% { transform:scale(1); background:var(--green); color:white; } }
@media (prefers-reduced-motion:reduce) { .task-saving .task-tick,.destination-flash { animation:none; } .task-leaving { transition:none; } }
.link-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.link-tile { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:76px; padding:15px; border:1px solid var(--line); border-radius:15px; background:#fff; box-shadow:var(--shadow); color:var(--ink); text-decoration:none; }
.link-tile>span:first-child { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:var(--mint); color:var(--green); font-size:24px; }
.link-tile:nth-child(3n+2)>span:first-child { background:var(--blue); }
.link-tile:nth-child(3n)>span:first-child { background:var(--lilac); }
.link-tile strong,.link-tile small { display:block; }
.link-tile small { color:var(--muted); font-size:12px; }
.link-tile b { color:var(--green); font-size:24px; font-weight:400; }
.more-signout { margin:18px 0; }
.balance-hero,.money-bank { background:linear-gradient(140deg,#172c36,#20594f); color:#fff; border-radius:20px; padding:27px; box-shadow:var(--shadow); }
.balance-hero .card-label,.money-bank .card-label { color:#c0e5d3; }
.balance-hero p,.money-bank p { color:#d2e8df; }
.hero-amount { display:block; margin:8px 0; font-size:clamp(36px,4vw,54px); line-height:1.12; letter-spacing:-1.5px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.hero-links { display:flex; gap:8px 18px; flex-wrap:wrap; margin-top:25px; }
.hero-links a,.money-bank a { color:#fff; font-size:13px; font-weight:650; }
.dashboard-overview { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(260px,1fr); gap:16px; margin-bottom:27px; }
.funding-card { display:flex; flex-direction:column; gap:7px; border:1px solid #cae4d7; border-radius:20px; padding:24px; background:#e8f4eb; box-shadow:var(--shadow); }
.funding-card p { color:#526e61; margin:0 0 6px; }
.funding-card .funding-amount { font-size:clamp(27px,2.8vw,40px); line-height:1.2; letter-spacing:-1px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.funding-card label { margin-top:auto; font-size:12px; }
.funding-card progress { width:100%; height:11px; accent-color:var(--green); }
.funding-card small { color:#526e61; }
.funding-card>a { margin-top:9px; font-weight:700; }
.dashboard-section-heading { display:flex; justify-content:space-between; align-items:end; gap:12px; margin:20px 0 12px; }
.dashboard-section-heading .eyebrow { margin:0 0 3px; }
.dashboard-section-heading h2 { margin:0; }
.loan-cards,.money-loans { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.loan-card { display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:12px; padding:19px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:var(--shadow); color:var(--ink); text-decoration:none; }
.loan-card:hover,.link-tile:hover { border-color:#8dbfa5; }
.loan-avatar { display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:var(--blue); color:#315e72; font-weight:750; }
.loan-card:nth-child(2) .loan-avatar,.director-card:nth-child(2) .loan-avatar { background:var(--lilac); color:#68598d; }
.loan-card small,.loan-card strong { display:block; }
.loan-card small { color:var(--muted); font-size:12px; }
.loan-card strong { font-size:23px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.loan-card b { font-size:25px; color:var(--green); font-weight:400; }
.loan-total { display:flex; justify-content:space-between; gap:20px; padding:13px 16px; margin:10px 0 19px; border-radius:12px; background:#e9f1ed; font-size:13px; }
.loan-total strong { font-size:16px; font-variant-numeric:tabular-nums; }
.quick-actions { display:flex; flex-wrap:wrap; gap:9px; padding:0; margin:0 0 24px; background:none; border:0; white-space:normal; }
.quick-actions a { padding:9px 14px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--green); font-size:13px; font-weight:700; text-decoration:none; }
.dashboard-detail-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:17px; }
.dashboard-task-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 0; border-top:1px solid var(--line); color:var(--ink); text-decoration:none; }
.dashboard-task-row strong,.dashboard-task-row small { display:block; }
.dashboard-task-row small { color:var(--muted); font-size:11px; }
.dashboard-task-row .badge { flex:none; }
.money-bank { display:grid; grid-template-columns:1fr minmax(230px,.65fr); gap:25px; margin-bottom:24px; }
.money-bank h2 { font-size:clamp(36px,4vw,52px); letter-spacing:-1.5px; margin:10px 0; }
.money-movements { margin:0; align-self:center; }
.money-movements>div { display:flex; justify-content:space-between; gap:14px; padding:10px 0; border-bottom:1px solid #ffffff3b; }
.money-movements dt { color:#cde2dc; }
.money-movements dd { margin:0; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.director-heading { display:flex; align-items:center; gap:11px; margin-bottom:24px; }
.director-heading h3 { margin:0; font-size:19px; }
.director-heading small { color:var(--muted); }
.director-balance { display:block; font-size:31px; font-variant-numeric:tabular-nums; margin:-8px 0 18px; }
.director-card .actions { gap:8px; }
.director-card .button { font-size:12px; padding:10px 12px; }
.research-primary { display:flex; gap:6px; padding:4px; margin:0 0 10px; border:1px solid var(--line); border-radius:13px; background:#e9efeb; overflow-x:auto; white-space:nowrap; }
.research-primary a { display:flex; align-items:center; justify-content:center; gap:6px; flex:1; min-width:max-content; padding:8px 13px; border-radius:9px; color:#536961; font-size:13px; font-weight:700; text-align:center; text-decoration:none; }
.research-primary a>span:first-child { flex:none; font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif; font-size:16px; line-height:1; }
.research-primary .tab-short,.add-short { display:none; }
.research-primary a.active { background:#fff; color:var(--green); box-shadow:0 2px 8px #172c3610; }
.research-tools { margin:0 0 17px; padding:0; border:0; }
.research-tools summary { display:inline-block; padding:3px 0; color:var(--green); font-size:13px; cursor:pointer; }
.research-tools[open] { padding:10px 0; }
.research-tools>div { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
.research-tools a { display:inline-flex; align-items:center; gap:5px; padding:7px 11px; border:1px solid var(--line); border-radius:9px; background:#fff; font-size:12px; text-decoration:none; }
.research-status { background:#edf4ef; border-color:#cfe1d5; border-left:4px solid #5b9a78; }
.research-more-stats { display:none; }
.featured-opportunity { display:grid; grid-template-columns:minmax(0,1fr) minmax(350px,.9fr) auto; align-items:center; gap:18px; padding:18px 20px; margin:0 0 17px; border:1px solid #bad7c5; border-radius:17px; background:#e8f4ec; color:var(--ink); text-decoration:none; box-shadow:var(--shadow); }
.featured-opportunity>span:first-child { min-width:0; }
.featured-opportunity small,.featured-opportunity strong,.featured-opportunity>span:first-child>span { display:block; }
.featured-opportunity small { color:#57756a; font-size:10px; letter-spacing:.5px; }
.featured-opportunity strong { font-size:18px; line-height:1.25; margin:3px 0; }
.featured-opportunity>span:first-child>span { font-size:12px; color:#536c60; }
.featured-figures { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.featured-figures b { display:block; font-size:15px; white-space:nowrap; }
.featured-link { color:var(--green); font-size:12px; font-weight:700; white-space:nowrap; }
.research-cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.research-cards .card { border-radius:14px; box-shadow:none; }
.research-cards .card h2 { font-size:21px; }
.ranking-help { margin:-7px 0 10px; border:0; font-size:12px; }
.ranking-help summary { color:var(--green); }
.ranking-help p { padding:10px 13px; margin:6px 0 0; border-radius:9px; background:#e9f1ed; }
.opportunity-card { padding:22px; }
.opportunity-top { display:flex; justify-content:space-between; gap:18px; align-items:start; }
.opportunity-title { margin:9px 0 3px; font-size:21px; }
.opportunity-title a { color:var(--ink); text-decoration:none; }
.opportunity-title a:hover { color:var(--green); text-decoration:underline; }
.status-line { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.confidence-label { font-size:11px; color:var(--muted); }
.rank-label { min-width:95px; font-size:29px; text-align:right; line-height:1; white-space:nowrap; }
.rank-label small { display:block; margin-top:5px; font-size:11px; line-height:1.3; color:var(--muted); font-weight:400; }
.opportunity-figures { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:15px 0; }
.opportunity-figures>div { min-width:0; padding:13px; border-radius:12px; background:#f2f7f4; }
.opportunity-figures>div:nth-child(2) { background:#eaf2f8; }
.opportunity-figures>div:nth-child(3) { background:#f4f0e8; }
.opportunity-figures small,.report-summary small { display:block; color:#5d716d; font-size:11px; }
.opportunity-figures strong,.report-summary strong { display:block; margin-top:4px; font-size:22px; line-height:1.2; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.opportunity-foot p { margin:7px 0; font-size:12px; color:var(--muted); }
.opportunity-foot .availability-note { color:#8a5720; font-weight:700; }
.opportunity-foot .key-risk { color:#43554f; }
.opportunity-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; padding-top:11px; border-top:1px solid var(--line); }
.opportunity-actions a { font-size:12px; }
.opportunity-actions .button { min-height:39px; padding:8px 13px; }
.report-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin:0 0 14px; }
.report-summary>div { min-width:0; padding:17px; border-radius:14px; border:1px solid var(--line); background:#eaf4ee; }
.report-summary>div:nth-child(2) { background:#eaf2f8; }
.report-summary>div:nth-child(3) { background:#edf1f8; }
.report-summary>div:nth-child(4) { background:#f5efe5; }
.report-jumps { position:sticky; top:0; z-index:10; display:flex; gap:5px; overflow-x:auto; white-space:nowrap; margin:0 0 14px; padding:7px; border:1px solid var(--line); border-radius:11px; background:#f8faf8f4; backdrop-filter:blur(12px); }
.report-jumps a { flex:1; padding:7px 10px; border-radius:7px; color:var(--green); font-size:12px; font-weight:700; text-align:center; text-decoration:none; }
.report-jumps a:hover { background:#e5f3e9; }
.report-section { scroll-margin-top:70px; }
@media(max-width:1050px) {
  .app-shell { grid-template-columns:208px minmax(0,1fr); }
  .sidebar .brand { font-size:14px; }
  .dashboard-overview,.dashboard-detail-grid { grid-template-columns:1fr; }
  .report-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .featured-opportunity { grid-template-columns:1fr; }
  .featured-figures { width:100%; }
}
@media(max-width:850px) {
  .app-shell { display:block; }
  .sidebar { display:none; }
  .mobile-nav { position:fixed; left:0; right:0; bottom:0; z-index:50; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); padding:4px 4px max(4px,env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:#fffffff2; backdrop-filter:blur(12px); box-shadow:0 -4px 22px #172c3614; }
  .mobile-nav a { display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:0; min-height:58px; gap:2px; border-radius:10px; color:#62756f; text-decoration:none; }
  .mobile-nav a.active { color:var(--green); background:#e6f3e9; }
  .mobile-nav a>span { font-size:19px; line-height:1.15; }
  .mobile-nav a>span { font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif; }
  .mobile-nav small { font-size:9px; line-height:1.15; font-weight:750; white-space:nowrap; }
  .workspace main { padding-bottom:105px; }
  .workspace footer { padding-bottom:86px; }
  .money-bank { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  .workspace-header { min-height:53px; margin:0; padding:9px 15px; border:0; border-bottom:1px solid var(--line); border-radius:0; box-shadow:none; }
  .workspace-header small { display:none; }
  .workspace-header>a { display:none; }
  .workspace-emoji { width:32px; height:32px; font-size:21px; }
  .workspace main { padding:16px 14px 104px; }
  .workspace footer { margin:0 14px; }
  .page-heading { align-items:stretch; }
  .page-heading>.button { width:100%; }
  .balance-hero,.money-bank { padding:21px; }
  .loan-cards,.money-loans,.link-grid { grid-template-columns:minmax(0,1fr); }
  .dashboard-section-heading { align-items:start; flex-direction:column; }
  .dashboard-task-row { align-items:start; flex-direction:column; }
  .money-bank h2 { font-size:36px; }
  .research-heading { flex-direction:row; align-items:center; gap:8px; margin-bottom:12px; }
  .research-heading>div { min-width:0; }
  .research-heading .eyebrow { margin-bottom:5px; font-size:9px; }
  .research-heading h1 { margin:0; font-size:clamp(21px,6vw,27px); line-height:1.13; letter-spacing:-.6px; }
  .research-heading p.muted { display:none; }
  .research-heading>.button { flex:none; width:auto; min-width:64px; min-height:40px; padding:8px 10px; font-size:12px; white-space:nowrap; }
  .research-heading .add-full { display:none; }
  .research-heading .add-short { display:inline; }
  .research-primary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; margin-bottom:7px; white-space:normal; overflow:visible; }
  .research-primary a { flex-direction:column; gap:3px; min-width:0; min-height:53px; padding:5px 2px; white-space:normal; font-size:10px; line-height:1.1; }
  .research-primary a>span:first-child { font-size:17px; }
  .research-primary .tab-long { display:none; }
  .research-primary .tab-short { display:inline; }
  .research-tools { margin-bottom:10px; }
  .research-status { padding:10px 12px; margin-bottom:13px; font-size:12px; line-height:1.45; }
  .research-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; overflow:visible; margin-bottom:8px; }
  .research-cards .card { min-height:81px; padding:11px; }
  .research-cards .card h2 { font-size:19px; line-height:1.18; }
  .research-cards .card-label { font-size:10px; line-height:1.25; letter-spacing:.2px; }
  .research-cards .research-extra-card { display:none; }
  .research-more-stats { display:block; margin:-2px 0 14px; padding:0; border:0; font-size:12px; }
  .research-more-stats summary { color:var(--green); font-weight:700; }
  .research-more-stats dl { margin:7px 0 0; padding:5px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; }
  .research-more-stats dl>div { display:flex; justify-content:space-between; gap:10px; padding:7px 0; }
  .research-more-stats dl>div+div { border-top:1px solid var(--line); }
  .research-more-stats dt { flex:0 0 94px; color:var(--muted); }
  .research-more-stats dd { min-width:0; margin:0; text-align:right; font-weight:650; overflow-wrap:anywhere; }
  .featured-opportunity { padding:15px; gap:10px; }
  .featured-figures b { font-size:13px; }
  .featured-link { display:none; }
  .opportunity-card { padding:16px; }
  .opportunity-top { gap:8px; }
  .opportunity-title { font-size:18px; }
  .rank-label { min-width:72px; font-size:23px; }
  .opportunity-figures { grid-template-columns:1fr 1fr; }
  .opportunity-figures>div:first-child { grid-column:1/-1; }
  .opportunity-figures strong { font-size:20px; }
  .report-summary strong { font-size:20px; }
  .report-jumps a { flex:none; }
}
@media(max-width:370px) {
  .opportunity-top { flex-direction:column; }
  .rank-label { text-align:left; }
  .featured-figures { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .featured-figures>span:first-child { grid-column:1/-1; }
  .opportunity-figures { grid-template-columns:minmax(0,1fr); }
  .opportunity-figures>div:first-child { grid-column:auto; }
  .report-summary { grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
.receipt-upload { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:14px; margin:18px 0; padding:16px; border:1px solid var(--line); border-radius:13px; background:#f4f8f5; }
.receipt-panel>.section-heading { padding-right:55px; }
.receipt-upload label { margin:0; }
.receipt-list { display:grid; gap:10px; margin-top:16px; }
.receipt-row { display:grid; grid-template-columns:58px minmax(0,1fr) auto; align-items:center; gap:13px; padding:10px; border:1px solid var(--line); border-radius:12px; }
.receipt-preview { display:grid; place-items:center; width:58px; height:58px; overflow:hidden; border-radius:9px; background:#e9f1ed; color:var(--green); font-size:12px; font-weight:800; text-decoration:none; }
.receipt-preview img { width:100%; height:100%; object-fit:cover; }
.receipt-row strong,.receipt-row small { display:block; overflow-wrap:anywhere; }
.receipt-row small { color:var(--muted); }
.receipt-actions { display:flex; align-items:center; gap:6px; }
.receipt-actions form { margin:0; }
.receipt-actions .button { padding:7px 10px; font-size:12px; }
.receipt-chip { display:inline-block; width:max-content; margin-top:5px!important; padding:2px 7px; border-radius:99px; font-weight:700; }
.receipt-chip.attached { color:#24684f; background:#e4f3e9; }
.receipt-chip.missing { color:#8a5720; background:#fbefe4; }
@media(max-width:600px) { .receipt-upload { grid-template-columns:1fr; } .receipt-upload button { width:100%; } .receipt-row { grid-template-columns:48px minmax(0,1fr); } .receipt-preview { width:48px; height:48px; } .receipt-actions { grid-column:1/-1; justify-content:flex-end; } }
@media print {
  .app-shell { display:block; }
  .sidebar,.workspace-header,.mobile-nav,.quick-actions,.report-jumps,.research-primary,.research-tools,.opportunity-actions { display:none!important; }
  .workspace main { max-width:none; padding:0; }
  .workspace footer { margin:0; }
  .balance-hero,.money-bank { background:#fff; color:#000; border:1px solid #999; box-shadow:none; }
  .balance-hero p,.money-bank p,.balance-hero .card-label,.money-bank .card-label { color:#000; }
  .report-summary { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
