/* RC2: Coldham's navy / lagoon identity. Existing workflow and pricebook are unchanged. */
:root {
  --navy: #0b2138;
  --blue: #176db0;
  --mint: #53d8c8;
  --lagoon: #087b78;
  --mist: #edf6f6;
  --paper: #f5f8fa;
  --line: #dce6eb;
  --muted: #536c80;
  color-scheme: light;
}
body {
  background: radial-gradient(ellipse 75% 440px at 60% 0, #def2f38a, transparent), var(--paper);
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.preview-bar { height:28px; font-size:.62rem; letter-spacing:.025em; background:#0b2138; color:#dcecf2; }
.preview-bar .quiet { min-height:28px; padding:4px 10px; }
.status-dot { background:var(--mint); box-shadow:0 0 0 3px #53d8c815; }
.site-header { padding:22px 28px; gap:20px; border-bottom:1px solid #dce6eb9c; }
.brand { display:flex; align-items:center; gap:11px; width:auto; flex-shrink:0; }
.site-header .brand .brand-icon { display:block; width:44px; height:44px; flex-shrink:0; border-radius:13px; overflow:hidden; background:var(--navy); box-shadow:0 5px 12px #0b213819; }
.brand .brand-icon img { display:block; width:100%; height:100%; object-fit:cover; }
.site-header .brand .brand-wordmark { width:139px; height:47px; object-fit:contain; }
.top-nav { padding:5px; gap:4px; background:#e9eff2c9; border:1px solid #ffffffc9; border-radius:16px; box-shadow:inset 0 1px 2px #0b213807; }
.top-nav button { border-radius:11px; min-height:44px; font-size:.76rem; color:#536b7d; }
.top-nav button[aria-current="page"] { background:white; color:var(--navy); box-shadow:0 3px 9px #0b21380a,0 1px 2px #0b21380a; }
.top-nav button[aria-current="page"]::after { content:""; display:block; width:15px; height:2px; border-radius:2px; background:var(--lagoon); margin:5px auto -7px; }
.top-nav button span { color:#0c5b61; background:#d6efeb; }
.top-nav:not(:has(button[data-view="studio"]:not([hidden]), button[data-view="loans"]:not([hidden]))) { display:none; }
.account-button { min-height:44px; padding:10px 16px; border-color:#dce6eb; box-shadow:0 2px 5px #0b213803; color:#29475d; }
main { padding-top:42px; }
#proposal-view { grid-template-columns:minmax(280px,1fr) 460px; gap:76px; padding:12px 42px; }
.proposal-intro { padding-top:55px; }
.proposal-intro h1 { font-size:clamp(2.5rem,4.2vw,3.6rem); line-height:1.1; letter-spacing:-.055em; max-width:430px; }
.proposal-intro > p { font-size:1rem; line-height:1.8; max-width:335px; margin-top:25px; }
.eyebrow { color:var(--lagoon); font-size:.65rem; letter-spacing:.16em; }
.intro-note { color:#17594f; padding:14px 17px; border-radius:14px; background:#e5f3ef; width:fit-content; max-width:350px; margin-top:29px; line-height:1.6; }
.sample-note { margin-top:42px; border:0; padding:0; max-width:310px; }
.calculator { border-radius:28px; border:1px solid #dce6eb; box-shadow:0 28px 75px #153e5010,0 3px 9px #153e5008; }
.amount-region {
  position:relative; isolation:isolate; overflow:hidden;
  padding:27px 30px 25px;
  background:radial-gradient(ellipse at 100% 0, #20647599, transparent 66%),linear-gradient(135deg,#102d46,#0b2138 70%);
}
.amount-region > :not(.amount-watermark) { position:relative; z-index:1; }
.amount-watermark { position:absolute; width:154px; height:154px; right:-10px; bottom:22px; opacity:.11; pointer-events:none; }
.amount-region .section-top { margin-bottom:23px; color:#d3e7ee; font-weight:600; }
.amount-region .mini-label { border-color:#badfe12e; border-radius:100px; padding:5px 9px; color:#d3e7ee; font-size:.58rem; background:#ffffff07; }
.amount-label { color:#c6dce5; font-size:.79rem; }
.amount-display { font-size:3.3rem; font-weight:750; letter-spacing:-.055em; margin-bottom:17px; }
.amount-region input[type="range"] { height:5px; background:linear-gradient(to right,#63d9ce 0 var(--fill,20%),#48647799 var(--fill,20%) 100%); margin:12px 0 18px; }
.amount-region input[type="range"]::-webkit-slider-thumb { width:27px; height:27px; border:4px solid white; background:var(--mint); box-shadow:0 0 0 1px #ffffff55,0 3px 9px #001b2d55; }
.amount-region input[type="range"]::-moz-range-thumb { width:21px; height:21px; border:4px solid white; background:var(--mint); box-shadow:0 3px 9px #001b2d55; }
.range-limits { color:#c3d9e1; }
.payment-region { padding:23px 26px 24px; }
#borrow-summary:not(:empty) { padding:9px 17px; border:1px solid #d7eae7; border-radius:18px; background:linear-gradient(135deg,#eef9f6,#f3f8fa); margin-bottom:28px; }
#borrow-summary .summary-row { border-color:#d8e9e7; padding:11px 0; font-size:.76rem; color:#4f6b76; }
#borrow-summary .summary-row:last-child { border:0; }
#borrow-summary .summary-row:first-child strong { font-size:1.65rem; letter-spacing:-.045em; }
#borrow-summary .summary-row:first-child { color:var(--navy); font-weight:700; }
#borrow-summary .summary-row:not(:first-child) strong { color:#25485b; font-size:.87rem; }
.quote-prompt { display:flex; gap:11px; align-items:center; width:100%; min-height:58px; padding:12px 14px; margin:0 0 23px; color:#24525e; background:#edf7f5; border:1px solid #d6eae5; border-radius:15px; text-align:left; font-size:.76rem; font-weight:650; }
.quote-prompt img { width:20px; height:20px; flex-shrink:0; }
.quote-prompt img:last-child { width:16px; margin-left:auto; }
.payment-region h2 { font-size:1.04rem; letter-spacing:-.025em; }
.dial-controls { position:relative; display:block; margin:9px -2px 17px; }
.payment-dial { width:min(270px,calc(100% - 42px)); height:auto; min-width:0; aspect-ratio:1; margin:0 auto; border-radius:50%; background:radial-gradient(circle closest-side,#fff 44%,#f4fafa 72%,transparent 80%); }
.dial-controls .round-button { position:absolute; top:50%; margin-top:-22px; width:44px; height:44px; padding:12px; border-color:#dbe7eb; background:#f7fbfc; box-shadow:0 3px 9px #143b5005; }
#payment-minus { left:0; }
#payment-plus { right:0; }
.dial-controls .round-button:hover { background:#e7f5f2; border-color:#a6d8d0; }
.dial-controls .round-button:active { background:#d9efea; }
.dial-copy { padding-top:4px; }
.dial-copy output { font-size:3.1rem; letter-spacing:-.055em; line-height:1.15; }
.dial-copy > span { font-size:.81rem; margin-top:5px; }
.dial-copy small { border:0; padding:0; margin-top:14px; font-size:.6rem; color:#617b8c; }
.segmented { border-radius:14px; padding:4px; background:#edf3f5; border-color:#e2eaed; }
.segmented button { border-radius:10px; min-height:44px; font-size:.7rem; padding:8px 6px; }
.segmented button[aria-pressed="true"] { background:#12364c; box-shadow:0 2px 6px #12364c18; }
.proposal-dates { border-color:#e5ecef; }
.proposal-dates label { color:#294b60; }
input[type="date"], input[type="number"], input[type="text"], input[type="email"], input[type="password"], textarea, select {
  border-color:#d4e1e7; border-radius:11px; background-color:#fafcfd; min-height:46px;
}
input:focus-visible,textarea:focus-visible,select:focus-visible { background-color:#fff; outline-color:#176db0; box-shadow:0 0 0 5px #176db009; }
.budget-plan { border:1px solid #d9e8ee; background:#edf5f9; border-radius:16px; padding:17px; }
.budget-plan strong { font-weight:750; }
.disclosure-button { border-radius:14px; background:#fafcfd; border-color:#e0e8ec; }
.primary,.secondary { min-height:48px; border-radius:13px; }
.primary { background:linear-gradient(145deg,#16465c,#0b283f); border-color:#12334a; box-shadow:0 4px 10px #0b283f14,inset 0 1px 0 #ffffff15; }
.primary:hover { background:linear-gradient(145deg,#1b5870,#10364e); box-shadow:0 7px 18px #0b283f20; }
.primary:active { box-shadow:0 1px 4px #0b283f16; }
#submit-proposal { min-height:55px; font-size:.82rem; }
.secondary { box-shadow:0 2px 5px #0b213803; border-color:#dce6eb; }
.secondary:hover { background:#eff7f6; border-color:#c2dbd7; }
.footnote { margin-top:12px; color:#60778a; }
.panel,.return-hero { border-radius:22px; }
.panel { border-color:#dce6eb; box-shadow:0 4px 18px #123d4b04; }
.return-hero { background:radial-gradient(ellipse at 100% 0,#225e6d99,transparent 70%),#0b2138; box-shadow:0 10px 30px #123d4b0c; }
.return-hero .eyebrow { color:var(--mint); }
.hero-number { letter-spacing:-.055em; }
.owner-tools { gap:9px; }
.portfolio-summary { border:0; background:none; padding:0; gap:15px; border-radius:0; }
.portfolio-summary > div, .portfolio-summary > div:first-child, .portfolio-summary > div:last-child { border:1px solid #dce6eb; border-radius:20px; background:white; padding:25px; min-width:0; }
.portfolio-summary > div:first-child { background:radial-gradient(ellipse at 100% 0,#245e6a99,transparent 75%),#0b2138; border-color:#173e50; }
.portfolio-summary > div:first-child span { color:#c0d8df; }
.portfolio-summary > div:first-child strong { color:#fff; }
.portfolio-summary > div:nth-child(2) { background:#eaf6f2; border-color:#d7eae3; }
.portfolio-summary > div:nth-child(2) strong { color:#125c50; }
.portfolio-summary strong { font-size:2rem; letter-spacing:-.045em; }
.portfolio-summary span { line-height:1.5; font-size:.72rem; }
.loan-list { display:grid; gap:10px; background:none; border:0; border-radius:0; overflow:visible; }
.loan-row,.loan-row:last-child { border:1px solid #dce6eb; border-radius:17px; padding:21px 23px; box-shadow:0 3px 12px #0b213803; grid-template-columns:minmax(210px,1.5fr) 1fr 1fr 145px 18px; }
.loan-row:hover { background:#fafdfe; border-color:#b7d3d6; box-shadow:0 5px 16px #0b213807; }
.loan-person { display:flex; align-items:center; gap:12px; min-width:0; }
.loan-person > span:last-child { min-width:0; }
.loan-person h3 { line-height:1.5; }
.borrower-initials { display:grid; place-items:center; width:39px; height:39px; flex-shrink:0; border-radius:12px; background:#e7f1f8; color:#19587b; font-size:.73rem; font-weight:750; letter-spacing:-.04em; }
.loan-row:nth-child(3n+1) .borrower-initials { color:#1d6254; background:#e3f3ec; }
.loan-row:nth-child(3n+2) .borrower-initials { color:#6a5f4f; background:#f2eee8; }
.badge { border-radius:100px; padding:6px 9px; font-size:.61rem; }
.badge.active { background:#e0f3e9; color:#1b634b; }
.loan-row small { line-height:1.5; }
.search-box { border-radius:13px; box-shadow:0 2px 5px #0b213803; }
.search-box:focus-within { outline:3px solid #176db0; outline-offset:3px; }
.search-box input:focus-visible { box-shadow:none; }
dialog { border:1px solid #ffffffa6; border-radius:25px; box-shadow:0 30px 120px #001c3252; }
dialog::backdrop { background:#071f365d; backdrop-filter:blur(5px); }
.sheet-heading { padding:20px 25px; border-color:#e5edf0; background:#fffffff5; backdrop-filter:blur(16px); }
.sheet-heading .round-button { width:44px; height:44px; padding:12px; background:#f4f8fa; }
.sheet-stats { background:#edf6f5; border:1px solid #dae9e6; padding:18px; border-radius:16px; grid-template-columns:repeat(3,minmax(0,1fr)); text-align:center; align-items:stretch; }
.sheet-stats > div { display:grid; grid-template-rows:1fr auto; }
.sheet-stats strong { font-size:1.28rem; }
.sheet-stats span { color:#4c6877; }
.receipt-panel { border-radius:16px; background:#f0f7f7; }
.notification-row { border-radius:15px; background:white; border-color:#dce6eb; }
.notification-row:hover { background:#f0f8f7; border-color:#c0dcd5; }
.toast { border-radius:16px; background:#0b2a3f; border-color:#7ed8cd33; box-shadow:0 10px 38px #0b213833; }
@media(min-width:1101px) { .site-header { position:sticky; top:0; z-index:4; background:#f8fbfce8; backdrop-filter:blur(18px); } }
@media(max-width:1100px) {
  .proposal-intro { display:none !important; }
  #proposal-view { display:block; padding:0; width:100%; max-width:460px; margin:auto; }
  .loan-row,.loan-row:last-child { grid-template-columns:minmax(180px,1.4fr) .8fr .9fr 120px 16px; gap:12px; }
}
@media(max-width:820px) {
  .site-header { padding:17px 22px; gap:13px; }
  .brand,.brand img { height:auto; width:auto; }
  .site-header .brand .brand-icon { width:40px; height:40px; border-radius:12px; }
  .site-header .brand .brand-wordmark { width:132px; height:44px; }
  main { padding-top:22px; }
  .top-nav { width:100%; }
  .top-nav button { font-size:.75rem; min-height:44px; }
  .portfolio-summary { gap:10px; }
  .portfolio-summary > div,.portfolio-summary > div:first-child,.portfolio-summary > div:last-child { padding:20px 17px; }
  .portfolio-summary strong { font-size:1.65rem; }
  .loan-row,.loan-row:last-child { grid-template-columns:minmax(0,1fr) auto 16px; padding:18px; gap:11px; }
  .loan-row > div:first-child { grid-column:1; grid-row:1; }
  .loan-row > div:nth-child(2) { grid-column:2; grid-row:1; align-self:center; }
  .loan-row > div:nth-child(3) { display:flex; align-items:baseline; gap:6px; grid-column:1; grid-row:2; padding-left:51px; min-width:0; flex-wrap:wrap; }
  .loan-row > div:nth-child(3) small { margin-top:0; font-size:.62rem; }
  .loan-row > .badge { grid-column:2; grid-row:2; align-self:center; }
  .loan-row > img { grid-column:3; grid-row:1/3; }
  .loan-row > div:nth-child(2) strong { font-size:1rem; }
}
@media(max-width:600px) {
  main { padding-left:16px; padding-right:16px; }
  .site-header { padding:14px 18px 12px; }
  .brand { gap:9px; }
  .site-header .brand .brand-wordmark { width:126px; height:42px; }
  .account-button { min-height:44px; padding:9px 12px; font-size:.68rem; }
  .calculator { border-radius:24px; border:1px solid #dce6eb; box-shadow:0 14px 36px #0b213809; }
  .amount-region { padding:23px 24px 21px; }
  .amount-display { font-size:3.1rem; }
  .payment-region { padding:20px; }
  .portfolio-summary { grid-template-columns:1fr 1fr; }
  .portfolio-summary > div:first-child { grid-column:1/-1; padding:21px; }
  .portfolio-summary > div:first-child strong { font-size:2.2rem; }
  .portfolio-summary > div:not(:first-child) { padding:18px; }
  .portfolio-summary strong { font-size:1.65rem; }
  .page-heading h1 { font-size:2rem; }
  .page-heading p { line-height:1.7; }
  .owner-tools { gap:8px; }
  .owner-tools .secondary { min-height:44px; border-radius:12px; }
  #borrow-summary:not(:empty) { padding:8px 14px; margin-bottom:25px; }
  #borrow-summary .summary-row:first-child strong { font-size:1.5rem; }
  .dial-copy output { font-size:2.85rem; }
  .segmented button { font-size:.68rem; }
  .sheet-heading { padding:17px 20px; }
  .sheet-stats { padding:15px 12px; gap:11px; }
  .sheet-stats strong { font-size:1.15rem; }
  .sheet-stats span { font-size:.63rem; }
  .sheet-heading h2 { font-size:1.05rem; }
}
@media(max-width:360px) {
  main { padding-left:13px; padding-right:13px; }
  .site-header { padding-left:14px; padding-right:14px; gap:10px; }
  .brand { gap:7px; }
  .site-header .brand .brand-icon { width:35px; height:35px; border-radius:10px; }
  .site-header .brand .brand-wordmark { width:110px; height:37px; }
  .account-button { padding:9px 10px; font-size:.62rem; }
  .top-nav button { font-size:.67rem; padding:8px 5px; }
  .amount-region { padding:21px 21px 19px; }
  .amount-display { font-size:2.85rem; }
  .payment-region { padding:18px 16px; }
  .payment-dial { width:calc(100% - 40px); }
  .dial-copy output { font-size:2.15rem; }
  .dial-copy > span { font-size:.68rem; }
  .dial-copy small { font-size:.54rem; margin-top:11px; }
  .segmented button { font-size:.6rem; }
  #borrow-summary .summary-row:first-child strong { font-size:1.35rem; }
  #borrow-summary .summary-row { font-size:.69rem; }
  #borrow-summary .summary-row:not(:first-child) strong { font-size:.77rem; }
  .loan-row,.loan-row:last-child { padding:16px 13px; gap:9px; }
  .loan-person { gap:9px; }
  .borrower-initials { width:32px; height:32px; border-radius:10px; font-size:.65rem; }
  .loan-row h3 { font-size:.76rem; }
  .loan-row small { font-size:.58rem; }
  .loan-row > div:nth-child(3) { padding-left:0; }
  .loan-row > div:nth-child(3) strong { font-size:.76rem; }
  .badge { font-size:.55rem; padding:5px 7px; }
}
@media(prefers-reduced-transparency:reduce), (prefers-contrast:more) {
  .site-header,.sheet-heading { background:#fafcfd; backdrop-filter:none; }
  dialog::backdrop { background:#071f36a6; backdrop-filter:none; }
  .calculator,.panel,.loan-row,.loan-row:last-child { border-color:#8fa5b4; }
  .account-button,.secondary,.round-button { border-color:#7a92a5; }
}
@media(prefers-reduced-motion:reduce) {
  .view { animation:none; }
  button,input,select,textarea,a { transition:none; }
  button:active:not(:disabled) { transform:none; }
}

/* RC4: dates before payments; a calendar for manual collection work. */
.flow-step { display:inline-grid; place-items:center; width:23px; height:23px; margin-right:9px; border-radius:50%; background:#e3f3ee; color:#21675b; font-size:.68rem; vertical-align:middle; letter-spacing:0; }
.amount-step { color:#81e0d2; }
.calculator > .dates-region { margin:0; padding:24px 26px 8px; border:0; background:#f2f8f8; border-bottom:1px solid #e0ece9; }
.dates-region h2 { font-size:1.04rem; letter-spacing:-.025em; }
.dates-region .field-help { font-size:.67rem; line-height:1.65; }
.dates-region input[type="date"] { background:#fff; }
#borrow-summary:not(:empty) { margin-top:24px; margin-bottom:16px; }
#open-schedule { background:#e7f4ef; border-color:#cce5dc; color:#174c42; }
#open-schedule:hover:not(:disabled) { background:#daeee5; border-color:#a9d2c3; }
.deferred-date { display:inline-block; background:#fff1cc; color:#725215; border:1px solid #e8d496; border-radius:8px; padding:5px 8px; line-height:1.45; }
.deferred-date small { display:block; color:#725215; font-size:.58rem; font-weight:650; }
.collections { padding:25px; margin:22px 0 30px; }
.collections-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.collections-heading h2 { margin:5px 0 0; font-size:1.3rem; letter-spacing:-.035em; text-wrap:initial; }
.collections-heading label { font-size:.66rem; color:var(--muted); display:grid; gap:5px; }
.collections-heading input { width:180px; min-height:44px; background:#f7fafb; }
.collection-summary { display:flex; align-items:baseline; gap:12px; padding:21px 0 17px; }
.collection-summary strong { font-size:1.65rem; letter-spacing:-.04em; }
.collection-summary span { font-size:.73rem; color:var(--muted); }
.collection-list { display:grid; gap:0; }
.collection-row { display:grid; grid-template-columns:minmax(130px,1.2fr) minmax(130px,1fr) 90px 105px; align-items:center; gap:18px; padding:17px 0; border-top:1px solid var(--line); }
.collection-row small,.collection-date span { display:block; font-size:.64rem; color:var(--muted); line-height:1.6; margin-top:4px; }
.collection-person .text-button { padding:0; font-size:.82rem; color:var(--navy); text-align:left; }
.collection-date strong { font-size:.78rem; }
.collection-amount { text-align:right; }
.collection-amount strong { font-size:1rem; }
.collect-button { min-height:44px; padding:10px; font-size:.71rem; background:#e8f5f0; border-color:#d0e6df; color:#185746; }
.collection-date.is-rescheduled { background:#fff4d8; border:1px solid #eddca9; border-radius:10px; padding:8px 10px; }
.collection-date.is-rescheduled strong,.collection-date.is-rescheduled span { color:#725215; }
.overdue-payments { border-top:1px solid var(--line); margin-top:12px; }
.overdue-payments summary { padding:18px 0; color:#725215; font-size:.77rem; font-weight:700; }
.collection-empty { color:var(--muted); font-size:.78rem; padding:12px 0; }
.collections > .field-help { margin-top:17px; max-width:680px; }
.all-loans-heading { font-size:1.05rem; margin-bottom:17px; }
@media(max-width:700px) {
  .collections { padding:20px; }
  .collections-heading { align-items:flex-start; flex-wrap:wrap; }
  .collections-heading input { width:160px; }
  .collection-summary { display:block; }
  .collection-summary span { display:block; margin-top:5px; }
  .collection-row { grid-template-columns:minmax(0,1fr) auto; gap:11px 16px; padding:18px 0; }
  .collection-person { grid-column:1; grid-row:1; }
  .collection-amount { grid-column:2; grid-row:1; }
  .collection-date { grid-column:1; grid-row:2; width:fit-content; }
  .collect-button { grid-column:2; grid-row:2; min-width:93px; }
}
@media(max-width:600px) {
  .calculator > .dates-region { padding:21px 20px 8px; }
  .dates-region h2 { font-size:1rem; }
}
@media(max-width:360px) {
  .calculator > .dates-region { padding-left:16px; padding-right:16px; }
  .collections { padding:17px; }
}

/* RC6: one form treatment for names, email, access codes and other fields. */
.sheet-form label { color:#294b60; font-size:.77rem; font-weight:600; line-height:1.6; margin:18px 0; }
.sheet-form input:not([type="checkbox"]),.sheet-form select,.sheet-form textarea {
  display:block; width:100%; max-width:100%; min-width:0; min-height:48px;
  padding:12px 13px; border:1px solid #d4e1e7; border-radius:11px;
  color:var(--navy); background:#fafcfd; font-size:.9rem; font-weight:500; line-height:1.5;
}
.sheet-form label > input:not([type="checkbox"]),.sheet-form label > select,.sheet-form label > textarea { margin-top:7px; }
.sheet-form input::placeholder,.sheet-form textarea::placeholder { color:#6a7f8e; opacity:1; }
.sheet-form input:focus-visible,.sheet-form select:focus-visible,.sheet-form textarea:focus-visible { outline:2px solid #176db0; outline-offset:2px; background:white; }
.sheet-form .primary.wide { margin-top:7px; }
.sheet-form .checkbox-label { line-height:1.65; font-weight:500; }
.sheet-form .checkbox-label input { flex-shrink:0; }
.preview-bar { gap:7px; }
@media(max-width:820px) {
  .sheet-form input:not([type="checkbox"]),.sheet-form select,.sheet-form textarea,
  .dates-region input[type="date"],.studio-controls input[type="date"],.studio-controls select,
  #collection-month,.search-box input { font-size:1rem; }
}
@media(max-width:480px) {
  .sheet-form .field-pair { grid-template-columns:minmax(0,1fr); gap:17px; }
  .sheet-form label { margin:17px 0; }
}

/* Owner overview and forms must reflow with larger preferred text sizes. */
.portfolio-summary.is-owner { grid-template-columns:repeat(3,minmax(0,1fr)); }
.portfolio-summary.is-owner > div:first-child { grid-column:auto; }
.portfolio-summary strong { display:block; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.portfolio-help { margin:-10px 0 26px; color:var(--muted); font-size:.75rem; line-height:1.7; }
.portfolio-help summary { color:#365666; }
.portfolio-help p { max-width:75ch; }
.owner-maintenance { margin-top:30px; padding-top:22px; border-top:1px solid var(--line); text-align:center; }
.owner-maintenance > span { display:block; margin-bottom:12px; color:var(--muted); font-size:.72rem; }
.owner-maintenance > div { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; }
.owner-maintenance[hidden],.portfolio-help[hidden] { display:none; }
.studio-controls .studio-date-fields { grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr)); gap:18px; justify-items:center; }
.studio-date-fields label, .dates-region > label { min-inline-size:0; inline-size:100%; max-inline-size:18rem; text-align:center; }
.dates-region > label { margin-inline:auto; }
/* iOS applies native date sizing outside the CSS border box unless appearance is reset.
   Keep the native picker, but let the shared form styles size the visible field. */
.studio-date-fields input[type="date"], .dates-region input[type="date"] {
  -webkit-appearance:none; appearance:none; box-sizing:border-box;
  width:100%; min-width:0; max-width:100%; margin-inline:auto; text-align:center;
}
input[type="date"],input[type="month"] { inline-size:100%; min-inline-size:0; max-inline-size:100%; }
input::-webkit-date-and-time-value { min-inline-size:0; text-align:start; }
.studio-date-fields input::-webkit-date-and-time-value, .dates-region input::-webkit-date-and-time-value { text-align:center; }
.studio-date-fields input::-webkit-datetime-edit, .dates-region input::-webkit-datetime-edit { text-align:center; }
.section-top,.slider-label { flex-wrap:wrap; }
.preview-bar { height:auto; min-height:28px; flex-wrap:wrap; }
.page-heading h1,.collection-summary,.summary-row { overflow-wrap:anywhere; }
.top-nav { flex-wrap:wrap; }
.top-nav button { flex:1 1 6rem; min-width:0; }
.return-stats { grid-template-columns:repeat(auto-fit,minmax(min(100%,5rem),1fr)); }
.return-stats > div { min-width:0; }
.return-stats strong { white-space:normal; }
.sheet-stats { grid-template-columns:repeat(auto-fit,minmax(min(100%,4rem),1fr)); }
.calculator .flow-heading { display:flex; align-items:center; gap:.6rem; margin:0; font-size:1.04rem; font-weight:750; line-height:1.4; letter-spacing:-.025em; }
.flow-heading .flow-step { flex:0 0 1.5rem; width:1.5rem; height:1.5rem; margin:0; font-size:.72rem; font-weight:750; }
.amount-region .flow-heading { color:#fff; margin-bottom:14px; }
.plan-line { display:block; }
.plan-line + .plan-line { margin-top:.3rem; }
.plan-meta { display:block; margin-top:.7rem; }
.agreement-copy { margin:24px 0; padding:20px; border:1px solid var(--line); border-radius:14px; background:#f6faf9; }
.agreement-copy h3 { margin:20px 0 8px; font-size:.95rem; }
.agreement-copy h3:first-child { margin-top:0; }
.agreement-copy p { font-size:.82rem; line-height:1.75; overflow-wrap:anywhere; }
@media(max-width:820px) {
  .portfolio-summary.is-owner { grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr)); }
  .portfolio-summary.is-owner > div:first-child { padding:18px; }
  .portfolio-summary.is-owner > div:first-child strong { font-size:1.65rem; }
  .mobile-studio-summary { grid-template-columns:repeat(auto-fit,minmax(min(100%,6rem),1fr)); }
}

