/* Unified mobile-first product system — quiet ivory canvas, wine actions, gold utility. */
:root{
  --jm-bg:#f7f4ef;--jm-surface:#fffdfa;--jm-surface-2:#f4eee7;--jm-ink:#2f2527;
  --jm-muted:#766b6c;--jm-line:#e8ddd5;--jm-wine:#8c2342;--jm-wine-dark:#67152e;
  --jm-gold:#ad8241;--jm-focus:rgba(173,130,65,.22);--jm-radius:20px;
}
*{box-sizing:border-box}
html{background:var(--jm-bg);scroll-behavior:smooth}
body{margin:0;background:var(--jm-bg);color:var(--jm-ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Microsoft YaHei",sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}button{touch-action:manipulation}
.app-shell{max-width:760px;margin:0 auto;padding:0 14px 104px}
.topbar{position:sticky;top:0;z-index:20;margin:0 -14px;padding:12px 18px;background:rgba(247,244,239,.9);backdrop-filter:blur(18px);border-bottom:1px solid rgba(232,221,213,.72)}
.brand-mark{background:var(--jm-wine);box-shadow:0 5px 14px rgba(140,35,66,.22)}.brand-name{letter-spacing:.02em}.offline-pill{color:var(--jm-muted);background:var(--jm-surface);border:1px solid var(--jm-line);border-radius:99px;padding:5px 9px;font-size:11px}
.page-panel{border:1px solid var(--jm-line);border-radius:var(--jm-radius);background:var(--jm-surface);box-shadow:0 8px 24px rgba(92,46,35,.055);margin:14px 0;padding:20px}
.overview{background:linear-gradient(135deg,#fffdfa 0%,#f9eee9 100%);padding:23px 20px}.overview h1{font-size:clamp(25px,7vw,36px);letter-spacing:-.04em;line-height:1.14;margin:9px 0}.overview-note{color:var(--jm-muted);font-size:14px}.support-note{color:var(--jm-wine);font-size:12px;margin-top:12px}
.total-card{background:var(--jm-wine);color:#fff;border-radius:16px;padding:16px;box-shadow:0 10px 20px rgba(140,35,66,.18)}.total-card strong{font-size:27px;letter-spacing:-.03em}
.mode-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px;background:var(--jm-surface-2)}.mode-button{min-height:42px;border:1px solid transparent;border-radius:13px;background:transparent;color:var(--jm-muted);font-weight:650}.mode-button.active{background:var(--jm-surface);color:var(--jm-wine);box-shadow:0 3px 12px rgba(92,46,35,.08)}
.section-heading{gap:12px}.eyebrow,.section-kicker{letter-spacing:.08em;font-size:11px;color:var(--jm-wine);font-weight:700}.section-heading h2,.form-card-header h2{font-size:22px;letter-spacing:-.025em;margin:3px 0}.text-button{color:var(--jm-wine);min-height:38px;border-radius:11px;padding:0 11px}.text-button:hover{background:#f6e9eb}
.category-scroller{display:flex;gap:8px;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}.category-chip{flex:0 0 auto;min-width:94px;padding:12px;border-radius:15px;border:1px solid var(--jm-line);background:var(--jm-surface);text-align:left}.category-chip.active{background:var(--jm-wine);border-color:var(--jm-wine)}
.form-card-header{align-items:flex-start}.live-badge{color:#35754e;background:#eaf5ed;border-radius:99px;padding:6px 9px;font-size:11px}.field{min-width:0}.field label{display:block;color:var(--jm-muted);font-size:12px;margin-bottom:6px}.field input,.field select,.field textarea,.talk-search,.month-picker input{width:100%;min-height:46px;border:1px solid var(--jm-line);border-radius:13px;background:#fff;color:var(--jm-ink);padding:10px 12px}.field textarea{min-height:88px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.talk-search:focus-within{outline:0;border-color:var(--jm-gold);box-shadow:0 0 0 4px var(--jm-focus)}
.unit-wrap{min-width:0}.unit{color:var(--jm-wine);font-size:11px}.primary-button,.secondary-button,.ghost-button{min-height:44px;border-radius:13px;font-weight:700}.primary-button{background:var(--jm-wine);border-color:var(--jm-wine)}.primary-button:hover{background:var(--jm-wine-dark)}.secondary-button{background:#f3e7e8;color:var(--jm-wine);border-color:#edd5d9}.ghost-button{color:var(--jm-wine);border-color:var(--jm-line);background:var(--jm-surface)}
.breakdown-card{background:var(--jm-wine-dark);border-color:var(--jm-wine-dark);box-shadow:0 12px 28px rgba(103,21,46,.18)}.breakdown-card .breakdown-row{border-color:rgba(255,255,255,.16)}
.side-stones-section,.fee-lines-section,.document-tool{border-color:var(--jm-line)!important;background:var(--jm-surface-2)!important;border-radius:17px!important}.side-stone-card{border-color:var(--jm-line)!important;border-radius:16px!important;box-shadow:none!important}.add-side-stone,.fee-add{background:var(--jm-wine)!important;border-color:var(--jm-wine)!important;border-radius:11px!important}.fee-line .fee-remove,.local-document-card button{color:var(--jm-wine);background:#f8e9eb;border-color:#efd4d9}
.services-hero{background:linear-gradient(135deg,#fffdfa,#f4e7e8);border-color:var(--jm-line)}.services-badge{background:#f3e0e3;color:var(--jm-wine)}.service-card{border-color:var(--jm-line);border-radius:17px;box-shadow:0 6px 18px rgba(92,46,35,.05)}.service-card .service-icon{background:#f5e4e7;color:var(--jm-wine)}.service-card-accent{background:var(--jm-wine);border-color:var(--jm-wine)}
.document-upload{border-color:#d4af79;background:#fffaf2;color:var(--jm-wine)}.document-preview-wrap{background:#f6eceb}.document-preview-wrap img{background:#fff;border:1px solid var(--jm-line)}
.local-document-card{align-items:center;border-color:var(--jm-line);background:var(--jm-surface);box-shadow:0 5px 14px rgba(92,46,35,.05)}.local-document-card img{width:80px;height:80px;flex:0 0 80px}.local-document-card strong{font-size:14px}.local-document-card small{font-size:11px}
.bottom-nav{left:50%;transform:translateX(-50%);width:min(760px,100%);padding:8px max(12px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));background:rgba(255,253,250,.94);backdrop-filter:blur(18px);border-top:1px solid var(--jm-line);box-shadow:0 -8px 22px rgba(92,46,35,.08)}.nav-item{min-height:52px;border-radius:14px;color:#9a8f90}.nav-item.active{color:var(--jm-wine);background:#f4e5e7}.nav-item b{font-size:10px}
.jm-doc-dialog{width:min(92vw,520px);max-height:90vh;padding:0;border:1px solid var(--jm-line);border-radius:20px;background:var(--jm-surface);box-shadow:0 24px 80px rgba(50,20,25,.28);overflow:hidden}.jm-doc-dialog::backdrop{background:rgba(46,22,29,.5);backdrop-filter:blur(4px)}.jm-doc-dialog-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--jm-line)}.jm-doc-dialog-head strong{font-size:15px}.jm-doc-dialog-close{border:0;background:#f3e7e8;color:var(--jm-wine);width:34px;height:34px;border-radius:50%;font-size:22px;line-height:1}.jm-doc-dialog-body{padding:14px}.jm-doc-dialog-body img{display:block;width:100%;max-height:68vh;object-fit:contain;background:#f5f1ec;border-radius:12px}.jm-doc-dialog-meta{display:block;color:var(--jm-muted);font-size:11px;margin-top:9px}
@media(max-width:560px){.app-shell{padding-left:11px;padding-right:11px}.page-panel{padding:16px;margin:11px 0;border-radius:18px}.topbar{margin:0 -11px;padding-left:15px;padding-right:15px}.overview{padding:19px 16px}.overview h1{font-size:27px}.form-actions,.summary-actions{display:grid;grid-template-columns:1fr;gap:8px}.service-card-grid{gap:8px}.service-card{min-height:158px;padding:13px}.service-card strong{font-size:14px}.local-document-card{padding:10px;gap:9px}.local-document-card img{width:70px;height:70px;flex-basis:70px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* Readability guardrails: the calculation card always keeps dark text on a light surface. */
.breakdown-card{background:var(--jm-surface)!important;border-color:var(--jm-line)!important;color:var(--jm-ink)!important;box-shadow:0 8px 24px rgba(92,46,35,.055)!important}
.breakdown-card .eyebrow,.breakdown-card .formula-tag{color:var(--jm-wine)!important}.breakdown-card .breakdown-row{border-color:var(--jm-line)!important}.breakdown-card .breakdown-row span:first-child,.breakdown-card .breakdown-total span{color:var(--jm-ink)!important}.breakdown-card .breakdown-row span:last-child,.breakdown-card .breakdown-total strong{color:var(--jm-wine)!important}.breakdown-card .formula-tag{border-color:#dec5a2!important}.breakdown-card .ghost-button{color:var(--jm-wine)!important;border-color:var(--jm-line)!important;background:var(--jm-surface)!important}
.fee-line-latest,.fee-line{grid-template-columns:105px minmax(0,1fr) 105px minmax(0,1fr) 105px minmax(0,1fr) auto!important;min-width:0}.fee-line .unit-wrap{min-width:0}.fee-line input{min-width:0;max-width:100%}
.setting-fees-group{margin-top:18px}.setting-fees-group>.fee-lines-section{margin-top:0}
.setting-fees-inline{grid-column:1/-1;margin-top:2px;padding:16px;border:1px solid var(--jm-line);border-radius:16px;background:var(--jm-surface-2)}.setting-fees-inline-title{display:grid;gap:2px;margin-bottom:10px}.setting-fees-inline-title h3{margin:0;font-size:17px;color:var(--jm-ink)}.setting-fees-inline-title small{color:var(--jm-muted);font-size:11px}.setting-fees-inline .fee-lines-section{margin:10px 0 0!important;background:var(--jm-surface)!important}.setting-fees-inline .fee-lines-section+.side-fee-group{margin-top:10px;padding-top:10px;border-top:1px dashed var(--jm-line)}
@media(max-width:640px){.fee-line-latest,.fee-line{grid-template-columns:1fr 1fr!important}.fee-line-latest>label,.fee-line>label{font-size:12px!important}.fee-line-latest>.unit-wrap:nth-of-type(1),.fee-line>.unit-wrap:nth-of-type(1){grid-column:1/-1}.fee-line-latest>.unit-wrap:nth-of-type(2),.fee-line>.unit-wrap:nth-of-type(2){grid-column:1/-1}.fee-line-latest>.unit-wrap:nth-of-type(3),.fee-line>.unit-wrap:nth-of-type(3){grid-column:1/-1}.fee-line-latest .fee-remove,.fee-line .fee-remove{grid-column:1/-1;justify-self:start}.breakdown-card{padding:16px}.breakdown-total strong{font-size:22px}}
