/* Ratings Prime: VA Disability Calculator (approved minimalist design) */
.rpc{--ink:#1D221F;--ink2:#5D645F;--ink3:#959B95;--line:#E7E3D9;--line2:#EFEBE3;--stone:#F2EFE8;--ivory:#F8F6F1;--paper:#FFFFFF;--green:#163A2D;--green2:#2F5E4B;--green3:#E7EEE9;--gold:#B79247;
  --serif:'Libre Baskerville',Georgia,'Times New Roman',serif;--sans:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--ivory);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;padding:104px 24px 56px}
.rpc *,.sh-modal *{box-sizing:border-box}
.rpc [hidden],.sh-modal[hidden],.sh-modal [hidden]{display:none!important}
.rpc svg:not(.bd-svg),.sh-modal svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.rpc button,.sh-modal button{font-family:inherit;-webkit-tap-highlight-color:transparent}
.rpc :focus-visible,.sh-modal :focus-visible{outline:2px solid var(--green2);outline-offset:2px;border-radius:10px}
.rpc-in{max-width:1360px;margin:0 auto}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body.calc3d-page nav:not(.scrolled){background:#0F2B21;padding:10px 0}
.calc3d-page .rpc h1,.calc3d-page .rpc h2,.calc3d-page .rpc h3,.calc3d-page .sh-modal h3,.calc3d-page .rpc h4,.calc3d-page .sh-modal h4{text-transform:none;letter-spacing:-.01em}

/* header */
.rpc-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:26px}
.rpc-eyebrow{font-size:11.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ink3);margin:0 0 10px}
.rpc-h1{font:700 clamp(34px,5.2vw,64px)/1.02 var(--serif);color:var(--ink);margin:0}
.rpc-sub{font:400 clamp(17px,1.9vw,23px)/1.35 var(--serif);color:var(--ink);margin:10px 0 0}
.rpc-feats{list-style:none;margin:0;padding:0;display:flex}
.rpc-feats li{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;font-size:13.5px;line-height:1.3;color:var(--ink2);padding:0 22px;border-left:1px solid var(--line)}
.rpc-feats li svg{width:26px;height:26px;color:var(--green)}

/* mode */
.rpc-mode{display:flex;width:max-content;max-width:100%;margin:0 auto 22px;padding:4px;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(29,34,31,.04)}
.rpc-mode button{border:0;background:0;border-radius:10px;padding:11px 22px;font-size:15px;font-weight:500;color:var(--ink);cursor:pointer;transition:background .25s,color .25s;white-space:nowrap}
.rpc-mode button small{font-size:12.5px;color:var(--ink3);font-weight:400}
.rpc-mode button.on{background:var(--green);color:#fff}
.rpc-mode button.on small{color:rgba(255,255,255,.7)}

/* layout */
.rpc-grid{display:grid;grid-template-columns:minmax(310px,345px) minmax(0,1fr) minmax(300px,340px);gap:16px;align-items:stretch}
.rpc-conds,.rpc-results,.rpc-stagewrap{background:var(--paper);border:1px solid var(--line);border-radius:22px;min-width:0}
.rpc-conds{padding:22px 18px 18px;display:flex;flex-direction:column;max-height:640px}
.rpc-results{padding:18px 22px 20px;display:flex;flex-direction:column}
.rpc-stagewrap{position:relative;padding:12px;background:linear-gradient(180deg,#FBFAF7,#F1EEE7)}

/* conditions */
.cc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cc-head h2{font:700 22px var(--serif);margin:0;display:flex;align-items:center;gap:8px}
.cc-plus{width:34px;height:34px;border-radius:50%;border:0;background:var(--gold);color:#fff;display:grid;place-items:center;cursor:pointer;transition:transform .2s,filter .2s}
.cc-plus:hover{filter:brightness(1.06)}.cc-plus:active{transform:scale(.95)}
.cc-plus svg{width:18px;height:18px;stroke-width:2.2}
.wi-badge{font:600 11px var(--sans);letter-spacing:.04em;color:var(--green2);background:var(--green3);border-radius:999px;padding:3px 8px}
.sb-search{position:relative}
.sb-search .s-ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--ink3);width:18px;height:18px}
.sb-search input{width:100%;height:46px;border-radius:12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:0 12px 0 40px;font:400 14.5px var(--sans);outline:none;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.sb-search input::placeholder{color:var(--ink3)}
.sb-search input:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(47,94,75,.12)}
.sb-results{position:absolute;top:52px;left:0;right:0;z-index:40;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:6px;box-shadow:0 18px 48px rgba(29,34,31,.14);max-height:340px;overflow:auto}
.sr-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:0;border:0;border-radius:10px;padding:9px 10px;color:var(--ink);cursor:pointer}
.sr-item .ci{width:34px;height:34px}
.sr-item b{display:block;font-size:14.5px;font-weight:600}.sr-item small{display:block;font-size:12px;color:var(--ink3)}
.sr-item.on,.sr-item:hover{background:var(--stone)}
.sr-none{padding:12px;color:var(--ink2);font-size:14px}
.wi-note{font-size:12.5px;line-height:1.45;color:var(--ink2);background:var(--green3);border-radius:10px;padding:9px 11px;margin-top:10px}
.wi-note button{border:0;background:0;color:var(--green2);font-weight:600;font-size:12.5px;cursor:pointer;padding:0;text-decoration:underline}
.cc-list{list-style:none;margin:12px -4px 0;padding:0 4px;overflow:auto;flex:1 1 auto;min-height:60px;overscroll-behavior:contain;scrollbar-width:thin}
.cc-empty{font-size:14px;color:var(--ink3);text-align:center;padding:26px 8px;border:1px dashed var(--line);border-radius:14px;line-height:1.5}
.cc-item{display:flex;align-items:center;gap:10px;padding:10px 8px 10px 10px;border:1px solid var(--line2);border-radius:14px;margin-bottom:8px;background:var(--paper);animation:ccIn .35s cubic-bezier(.2,.9,.3,1)}
@keyframes ccIn{from{opacity:0;transform:translateY(4px)}}
.cc-item.removed{opacity:.45}
.ci{width:38px;height:38px;border-radius:12px;background:var(--stone);color:var(--green);display:grid;place-items:center;flex:0 0 auto}
.ci svg{width:22px;height:22px;stroke-width:1.5}
.cc-main{flex:1;min-width:0;background:0;border:0;text-align:left;padding:0;cursor:pointer;color:var(--ink)}
.cc-name{display:block;font-size:14.5px;font-weight:500;line-height:1.3;overflow-wrap:anywhere;white-space:normal}
.cc-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px;font-size:12px;color:var(--ink3)}
.tag{font-size:11px;font-weight:600;border-radius:6px;padding:1px 6px;background:var(--stone);color:var(--ink2)}
.tag.wi{background:var(--green3);color:var(--green2)}
.tag.was{background:#F6F0E2;color:#8A6D2F}
.cc-pct{position:relative;flex:0 0 auto}
.cc-pct select{-webkit-appearance:none;appearance:none;height:38px;min-width:72px;border-radius:10px;border:1px solid var(--line);background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235D645F' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 9px center/12px;padding:0 26px 0 11px;font:600 14px var(--sans);color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums}
.cc-pct select:focus{outline:none;border-color:var(--green2)}
.cc-pct .smc{display:inline-flex;align-items:center;height:38px;padding:0 10px;border-radius:10px;background:var(--stone);font-size:12.5px;font-weight:600;color:var(--ink2)}
.cc-x{width:32px;height:32px;border-radius:50%;border:0;background:0;color:var(--ink3);display:grid;place-items:center;cursor:pointer;flex:0 0 auto}
.cc-x:hover{color:#B42318;background:#FDF3F2}
.cc-x svg{width:16px;height:16px;stroke-width:2}
.cc-add{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:46px;margin-top:8px;border-radius:12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:14.5px;font-weight:500;cursor:pointer;transition:border-color .2s,background .2s}
.cc-add:hover{border-color:#CFC9BC;background:#FCFBF8}
.cc-add svg{width:16px;height:16px;stroke-width:2}
.cc-browse{font-size:13px;color:var(--ink2);margin:12px 2px 0}
.cc-browse button{border:0;background:0;padding:0;color:var(--ink);font-weight:500;text-decoration:underline;cursor:pointer;font-size:13px}

/* stage */
.stage-ctrls{position:absolute;top:12px;left:12px;right:12px;z-index:5;display:flex;justify-content:space-between;gap:8px;pointer-events:none}
.stage-ctrls .seg{pointer-events:auto}
.seg{display:inline-flex;gap:2px;background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:12px;padding:3px}
.seg button{border:0;background:0;border-radius:9px;padding:8px 16px;font-size:13.5px;font-weight:500;color:var(--ink2);cursor:pointer;transition:background .25s,color .25s;min-height:36px}
.seg button.on{background:var(--green);color:#fff}
.seg-sm button{padding:6px 12px;min-height:32px;font-size:12.5px}
.sb-stage{position:relative;height:100%;min-height:560px;border-radius:16px;overflow:hidden;background:radial-gradient(90% 70% at 50% 42%,#FFFFFF 0%,#F6F4EE 60%,#EEEAE1 100%)}
.scan-canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;touch-action:pan-y;cursor:grab;outline:none}
.sb-stage.dragging .scan-canvas{cursor:grabbing}
.sb-labels{position:absolute;inset:0;z-index:3;pointer-events:none}
.mk{position:absolute;left:0;top:0;width:44px;height:44px;margin:-22px 0 0 -22px;pointer-events:auto;border:0;background:0;padding:0;cursor:pointer;display:grid;place-items:center;will-change:transform;transition:opacity .25s}
.mk i{width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid var(--gold);box-shadow:0 2px 8px rgba(29,34,31,.18);display:grid;place-items:center;transition:transform .25s}
.mk i::after{content:'';width:8px;height:8px;border-radius:50%;background:var(--gold)}
.mk.wi i{border-style:dashed;border-color:var(--green2)}
.mk.wi i::after{background:var(--green2)}
.mk::before{content:'';position:absolute;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--gold);opacity:0;animation:mkPulse 2.8s ease-out infinite}
.mk.wi::before{border-color:var(--green2)}
@keyframes mkPulse{0%{opacity:.55;transform:scale(1)}80%,100%{opacity:0;transform:scale(2)}}
.mk:hover i{transform:scale(1.12)}
.mk.back{opacity:.25}
.sb-tip{position:absolute;left:0;top:0;z-index:6;pointer-events:none;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 12px;display:flex;align-items:center;gap:10px;opacity:0;transition:opacity .15s;white-space:nowrap;box-shadow:0 10px 30px rgba(29,34,31,.12)}
.sb-tip.on{opacity:1}
.sb-tip b{display:block;font-size:13.5px;font-weight:600;color:var(--ink)}.sb-tip small{display:block;font-size:11.5px;color:var(--ink3)}
.sb-tip svg{width:16px;height:16px;color:var(--ink3)}
.sb-hint{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink2);white-space:nowrap;pointer-events:none;transition:opacity .4s}
.sb-hint svg{width:16px;height:16px}
.sb-hint.gone{opacity:0}
.sb-whole{position:absolute;right:14px;bottom:12px;z-index:4;border:1px solid var(--line);background:rgba(255,255,255,.9);border-radius:999px;padding:7px 13px;font-size:12.5px;font-weight:500;color:var(--ink2);cursor:pointer}
.sb-whole:hover{color:var(--ink);border-color:#CFC9BC}
.sb-boot{position:absolute;inset:0;z-index:2;display:grid;place-items:center;transition:opacity .5s,visibility .5s}
.sb-boot.done{opacity:0;visibility:hidden}
.sb-boot i{position:relative;top:-16%;width:26px;height:26px;border-radius:50%;border:2.5px solid #DDE5DF;border-top-color:var(--green2);animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* body panel (sheet inside the stage) */
.sb-dossier{position:absolute;left:12px;right:12px;bottom:12px;max-height:58%;z-index:8;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px rgba(29,34,31,.16);display:flex;flex-direction:column;transform:translateY(16px);opacity:0;transition:transform .32s cubic-bezier(.2,.9,.3,1),opacity .25s}
.sb-dossier.open{transform:none;opacity:1}
.dos-head{display:flex;align-items:center;gap:10px;padding:14px 14px 8px 18px}
.dos-head>div{flex:1;min-width:0}
.dos-kick{font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}
.dos-title{font:700 19px/1.2 var(--serif);color:var(--ink);margin-top:2px}
.dos-x,.dos-back{width:36px;height:36px;border-radius:50%;border:0;background:var(--stone);color:var(--ink2);display:grid;place-items:center;cursor:pointer;flex:0 0 auto}
.dos-back svg{transform:rotate(180deg)}
.dos-x svg,.dos-back svg{width:16px;height:16px;stroke-width:2}
.dos-body{padding:4px 18px 16px;overflow:auto;flex:1;overscroll-behavior:contain}
.dos-list{display:flex;flex-direction:column;gap:6px}
.dos-row{display:flex;align-items:center;gap:12px;text-align:left;background:#fff;border:1px solid var(--line2);border-radius:14px;padding:9px 10px;color:var(--ink);cursor:pointer;transition:border-color .2s,background .2s;min-height:56px}
.dos-row:hover{border-color:#CFC9BC;background:#FCFBF8}
.dos-row .ci{width:36px;height:36px}
.dr-txt{flex:1;min-width:0}
.dr-name{display:block;font-size:14.5px;font-weight:500}
.dr-meta{display:block;font-size:12px;color:var(--ink3);margin-top:1px}
.dr-act{font-size:13px;font-weight:600;color:var(--green2);white-space:nowrap}
.dos-row.have{border-color:#CFDDD3;background:#F7FAF8}
.pk-q{font-size:13.5px;font-weight:600;color:var(--ink);margin:12px 0 8px}
.pk-q:first-child{margin-top:2px}
.pk-sides,.pk-chips{display:flex;flex-wrap:wrap;gap:6px}
.pk-side,.pk-chip{min-width:56px;height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--ink);font:600 14.5px var(--sans);cursor:pointer;transition:all .18s;font-variant-numeric:tabular-nums}
.pk-side:hover,.pk-chip:hover{border-color:#BDB6A7}
.pk-side.on,.pk-chip.on{background:var(--green);border-color:var(--green);color:#fff}
.pk-all{margin-top:6px}.pk-all .pk-chip{height:38px;min-width:50px;font-size:13.5px}
.pk-other{background:0;border:0;color:var(--ink2);font-size:12.5px;cursor:pointer;margin-top:8px;padding:0;text-decoration:underline}
.pk-crit{font-size:13.5px;line-height:1.55;color:var(--ink2);background:var(--stone);border-radius:14px;padding:12px 14px;margin-top:12px}
.pk-crit b{display:block;color:var(--ink);font-size:12.5px;margin-bottom:2px}
.pk-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;font-size:12px;color:var(--ink3)}
.pk-foot a{color:var(--green2);text-decoration:none;font-weight:500}
.pk-go{display:flex;gap:8px;position:sticky;bottom:-16px;background:linear-gradient(rgba(255,255,255,0),#fff 30%);padding:14px 0 0;margin-top:4px}
.btn-lock{flex:1;height:50px;border:0;border-radius:14px;background:var(--green);color:#fff;font:600 15px var(--sans);cursor:pointer;transition:background .2s,transform .12s}
.btn-lock:hover:not(:disabled){background:#0F2B21}
.btn-lock:active:not(:disabled){transform:scale(.99)}
.btn-lock:disabled{background:#E9E6DF;color:var(--ink3);cursor:default}
.btn-rm{height:50px;padding:0 16px;border-radius:14px;border:1px solid var(--line);background:#fff;color:#B42318;font:600 14px var(--sans);cursor:pointer}

/* results */
.rt-tabs{display:flex;gap:18px;border-bottom:1px solid var(--line2);margin-bottom:18px}
.rt-tab{border:0;background:0;padding:8px 0 12px;font-size:14px;font-weight:500;color:var(--ink3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .2s}
.rt-tab.on{color:var(--ink);border-bottom-color:var(--green)}
.rt-label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink2)}
.rt-big{font:700 clamp(68px,7.6vw,96px)/1 var(--serif);color:var(--ink);letter-spacing:-.03em;margin:8px 0 14px;font-variant-numeric:lining-nums tabular-nums}
.rt-big .pct{font-size:.62em;margin-left:2px}
.rt-bar{position:relative;height:4px;border-radius:999px;background:#ECE8DF}
.rt-bar i{position:absolute;left:0;top:0;bottom:0;width:100%;border-radius:999px;background:var(--green2);transform-origin:left;transform:scaleX(0);transition:transform 1s cubic-bezier(.2,.9,.3,1)}
.rt-bar b{position:absolute;top:-4px;width:2px;height:12px;border-radius:2px;background:var(--ink);transform:translateX(-1px);transition:left 1s cubic-bezier(.2,.9,.3,1)}
.rt-note{font-size:13px;line-height:1.5;color:var(--ink2);margin:10px 0 0;min-height:20px}
.rt-note b{color:var(--ink);font-weight:600}
.rt-comp{border-top:1px solid var(--line2);margin-top:18px;padding-top:16px}
.rt-comp .k{font:400 15px var(--serif);color:var(--ink)}
.rt-comp .v{display:flex;align-items:baseline;gap:6px;margin-top:6px}
#payOdo{font:700 clamp(36px,3.6vw,46px)/1.05 var(--serif);color:var(--ink);letter-spacing:-.02em;font-variant-numeric:lining-nums tabular-nums}
.rt-comp .per{font:400 17px var(--serif);color:var(--ink2)}
.rt-comp .m{font-size:13px;color:var(--ink2);margin-top:6px}
.link{border:0;background:0;padding:0;color:var(--ink2);font-size:13px;text-decoration:underline;text-decoration-color:#CFC9BC;cursor:pointer}
.pay-delta{font-size:13px;font-weight:600;height:18px;margin-top:6px;opacity:0;font-variant-numeric:tabular-nums}
.pay-delta.up{color:var(--green2)}.pay-delta.down{color:#B42318}
.pay-delta.show{animation:delta 2.6s ease forwards}
@keyframes delta{0%{opacity:0;transform:translateY(4px)}12%,75%{opacity:1;transform:none}100%{opacity:0}}
.btn-p{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:52px;margin-top:12px;border-radius:12px;border:0;background:var(--green);color:#fff;font:500 15.5px var(--sans);text-decoration:none;cursor:pointer;transition:background .2s,transform .12s}
.btn-p:hover{background:#0F2B21;color:#fff}.btn-p:active{transform:scale(.995)}
.btn-p svg{width:18px;height:18px;stroke-width:2}
.rt-fine{font-size:11.5px;line-height:1.5;color:var(--ink3);margin:12px 0 0}
.ct{width:100%;border-collapse:collapse;margin-top:14px;font-size:14px}
.ct td{padding:10px 0;border-bottom:1px solid var(--line2);color:var(--ink2)}
.ct td:last-child{text-align:right;color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}
.ct tr.tot td{color:var(--ink);font-weight:600;border-bottom:0;padding-top:14px;font-size:15px}
.ct th{font-size:12px;font-weight:600;color:var(--ink3);text-align:right;padding-bottom:6px}
.ct th:first-child{text-align:left}
.ct .wi-col{color:var(--green2)}
.act-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.btn-s{height:44px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 6px;transition:border-color .2s}
.btn-s svg{width:16px;height:16px;color:var(--green2)}
.btn-s:hover{border-color:#CFC9BC}
.sec-box{margin-top:18px;border-top:1px solid var(--line2);padding-top:16px}
.sec-box h3{font:700 16px var(--serif);margin:0 0 4px}
.sec-box>p{font-size:12.5px;line-height:1.5;color:var(--ink2);margin:0 0 8px}
.intel-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line2)}
.intel-row:first-child{border-top:0}
.intel-row .ci{width:34px;height:34px}
.intel-row>div{flex:1;min-width:0}
.intel-row b{display:block;font-size:14px;font-weight:500}
.intel-row small{display:block;font-size:12px;color:var(--ink3);line-height:1.35;margin-top:1px}
.intel-add{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--green2);font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.intel-add:hover{border-color:var(--green2)}

/* tools */
.rpc-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}
.tool{display:flex;align-items:center;gap:14px;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:16px 18px;cursor:pointer;color:var(--ink);transition:border-color .2s,background .2s;min-height:76px}
.tool:hover{border-color:#CFC9BC}
.tool[aria-expanded="true"]{border-color:var(--green2);background:#FBFCFB}
.tool .t-ic{width:30px;height:30px;color:var(--green)}
.tool span{flex:1;min-width:0}
.tool b{display:block;font:400 16px var(--serif);color:var(--ink)}
.tool small{display:block;font-size:12.5px;color:var(--ink2);margin-top:3px;line-height:1.4}
.tool .t-ch{width:18px;height:18px;color:var(--ink2);transition:transform .25s}
.tool[aria-expanded="true"] .t-ch{transform:rotate(90deg)}
.tool-panel{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:20px 22px;margin-top:12px;animation:panelIn .3s cubic-bezier(.2,.9,.3,1)}
@keyframes panelIn{from{opacity:0;transform:translateY(-4px)}}
.tp-note{font-size:13.5px;line-height:1.5;color:var(--ink2);margin:0 0 14px}
.hh-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.fld label{display:block;font-size:12.5px;font-weight:500;color:var(--ink2);margin-bottom:6px}
.fld select,.fld input{width:100%;height:46px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:0 12px;font:500 15px var(--sans);color-scheme:light}
.fld select{-webkit-appearance:none;appearance:none;padding-right:36px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235D645F' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 13px center/13px;cursor:pointer}
.fld select:focus,.fld input:focus{outline:none;border-color:var(--green2);box-shadow:0 0 0 3px rgba(47,94,75,.12)}
.chk{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:14px;color:var(--ink);cursor:pointer}
.chk input{width:19px;height:19px;accent-color:#163A2D}
.smc-out{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 10px;max-width:520px}
.smc-out div{background:var(--stone);border-radius:14px;padding:14px 16px}
.smc-out span{display:block;font-size:12px;color:var(--ink2)}
.smc-out b{display:block;font:700 26px var(--serif);color:var(--ink);margin-top:4px;font-variant-numeric:lining-nums}
.bp-big{font:700 40px var(--serif);color:var(--green);margin-top:14px;font-variant-numeric:lining-nums}
.bp-sub{font-size:13.5px;color:var(--ink2);margin-bottom:8px}
.bp-row{display:flex;justify-content:space-between;max-width:420px;font-size:14px;color:var(--ink);padding:8px 0;border-top:1px solid var(--line2)}
.bp-row b{font-weight:500;font-variant-numeric:tabular-nums}
.bp-lock{margin-top:12px;max-width:440px}
.bp-lock p{font-size:13.5px;color:var(--ink2);margin:4px 0 10px;line-height:1.5}
.bp-big.blur{filter:blur(9px);user-select:none}
.m-empty{font-size:13.5px;color:var(--ink3);margin:12px 0 0}.m-empty.warn{color:#9A6B12}

/* modals */
.sh-modal{position:fixed;inset:0;z-index:1000;background:rgba(29,34,31,.38);display:flex;align-items:center;justify-content:center;padding:16px;font-family:Inter,-apple-system,sans-serif;animation:fade .2s ease}
@keyframes fade{from{opacity:0}}
.sh-card{width:min(400px,100%);background:#fff;border-radius:22px;padding:20px;color:#1D221F;max-height:92vh;overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.22);animation:pop .28s cubic-bezier(.2,.9,.3,1)}
.sh-wide{width:min(560px,100%)}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.98)}}
.sh-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.sh-h h3{font:700 20px 'Libre Baskerville',Georgia,serif;margin:0}
.sh-x{width:36px;height:36px;border-radius:50%;border:0;background:#F2EFE8;color:#5D645F;display:grid;place-items:center;cursor:pointer}
.sh-x svg{width:16px;height:16px;stroke-width:2}
.sh-card img{width:100%;border-radius:14px;display:block;aspect-ratio:4/5;background:#F8F6F1;border:1px solid #E7E3D9}
.sh-card .btn-p{background:#163A2D;color:#fff}
.browse h4{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#959B95;margin:16px 0 6px}
.browse h4:first-child{margin-top:0}
.browse button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:0;border-radius:10px;padding:8px;font-size:14.5px;color:#1D221F;cursor:pointer}
.browse button:hover{background:#F2EFE8}
.browse .ci{width:32px;height:32px}
.browse .ci svg{width:18px;height:18px}
.m-wrap{position:relative}
.m-wrap.locked .m-steps{filter:blur(5px);user-select:none;pointer-events:none;max-height:200px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 40%,transparent);mask-image:linear-gradient(#000 40%,transparent)}
.m-sec{margin-bottom:14px}
.m-h{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#2F5E4B;margin-bottom:6px}
.m-row{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:8px 0;border-bottom:1px solid #EFEBE3}
.m-row b{font-variant-numeric:tabular-nums;font-weight:600}
.m-res{border-bottom:0}.m-res b{color:#163A2D;font-size:16px}
.m-note{font-size:12.5px;color:#959B95;padding:3px 0 5px}
.gate{position:relative;margin-top:20px;background:#F5F7F3;border:1px solid #E5ECE5;border-radius:16px;padding:18px;text-align:left;box-shadow:none}
.tp-small{font-size:12px;color:#7A8078;margin-top:10px}
.gate h4{font:700 17px 'Libre Baskerville',Georgia,serif;margin:0 0 4px}
.gate p{font-size:13.5px;color:#5D645F;margin:0 0 12px;line-height:1.5}
.gate form{display:flex;gap:8px}
.gate input{flex:1;min-width:0;height:46px;border-radius:12px;border:1px solid #E7E3D9;padding:0 12px;font:500 15px Inter,sans-serif}
.gate input:focus{outline:none;border-color:#2F5E4B}
.gate button{height:46px;padding:0 18px;border:0;border-radius:12px;background:#163A2D;color:#fff;font:600 14.5px Inter,sans-serif;cursor:pointer}
.gate-ok{color:#2F5E4B;font-weight:600;font-size:14.5px;margin:0}
.rp-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,16px);z-index:1100;background:#163A2D;color:#fff;font:500 14px Inter,sans-serif;padding:11px 18px;border-radius:999px;opacity:0;pointer-events:none;white-space:nowrap;box-shadow:0 12px 30px rgba(22,58,45,.25)}
.rp-toast.show{animation:toast 2s ease forwards}
@keyframes toast{0%{opacity:0;transform:translate(-50%,16px)}12%,78%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,8px)}}

/* fallback (no WebGL) */
.sb-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:60px 12px 50px}
.sb-fallback .body-diagram{width:min(260px,60vw);background:transparent;border:0;box-shadow:none}
.bre.sel .shp{fill:rgba(47,94,75,.7);stroke:#163A2D}
.sb-stage.flat .sb-hint svg{display:none}

/* below-the-fold content */
.calc-more{background:var(--cream,#F8F6F1);padding:40px 20px 40px}
.calc-more .sec-in{max-width:1100px;margin:0 auto}

/* ---------- tablet */
@media (max-width:1100px){
  .rpc-grid{grid-template-columns:minmax(0,1fr) minmax(300px,340px);grid-template-areas:'stage res' 'conds res'}
  .rpc-stagewrap{grid-area:stage}.rpc-results{grid-area:res;align-self:start}.rpc-conds{grid-area:conds;max-height:none}
  .sb-stage{min-height:600px}
  .rpc-feats{display:none}
}
/* ---------- phone: one continuous page, character first */
@media (max-width:760px){
  .rpc{padding:84px 14px 40px}
  .rpc-head{margin-bottom:16px}
  .rpc-eyebrow{font-size:10.5px;margin-bottom:8px}
  .rpc-h1{font-size:clamp(32px,9.6vw,42px)}
  .rpc-sub{font-size:17px;margin-top:8px}
  .rpc-mode{width:100%;margin-bottom:12px}
  .rpc-mode button{flex:1;padding:11px 8px;font-size:14.5px}
  .rpc-mode button small{display:none}
  .rpc-grid{grid-template-columns:1fr;grid-template-areas:'stage' 'res' 'conds';gap:12px}
  .rpc-stagewrap{padding:0;background:0;border:0;border-radius:0}
  .stage-ctrls{position:static;margin-bottom:10px}
  .stage-ctrls .seg{flex:1}
  .stage-ctrls .seg button{flex:1;min-height:42px;font-size:14px}
  .sb-stage{height:min(72vh,600px);min-height:470px;border:1px solid var(--line);border-radius:22px}
  .sb-dossier{position:fixed;left:0;right:0;bottom:0;max-height:62vh;border-radius:22px 22px 0 0;border-bottom:0;transform:translateY(40px);z-index:1001;box-shadow:0 -12px 40px rgba(29,34,31,.16)}
  .sb-dossier::before{content:'';display:block;width:40px;height:5px;border-radius:5px;background:#E2DED5;margin:8px auto 0}
  .dos-body{padding-bottom:calc(16px + env(safe-area-inset-bottom))}
  .rpc-results{padding:16px 18px 18px}
  .rt-big{font-size:64px;margin:4px 0 12px}
  .rpc-conds{padding:18px 14px 14px}
  .rpc-tools{grid-template-columns:1fr;gap:10px}
  .tool{min-height:68px;padding:14px 16px}
  .hh-grid{grid-template-columns:1fr 1fr}
  body.dos-open .chat-btn{display:none!important}
}
@media (max-width:360px){
  .rpc{padding-left:10px;padding-right:10px}
  .stage-ctrls{gap:6px}
  .seg button{padding:8px 10px}
  .act-row{grid-template-columns:1fr 1fr}.act-row .btn-s:last-child{grid-column:1/-1}
  .rt-tabs{gap:12px}.rt-tab{font-size:13px}
  .cc-pct select{min-width:64px}
}
@media (prefers-reduced-motion:reduce){
  .rpc *,.sh-modal *{animation:none!important;transition:none!important}
}
.cc-meta{flex-wrap:nowrap;overflow:hidden;white-space:nowrap}
.cc-meta .cat{overflow:hidden;text-overflow:ellipsis}
.cc-pct select{min-width:66px;padding-right:24px}
/* keyboard users: the hidden body-region list becomes visible when focused */
#sbRegionList:focus-within{position:absolute!important;left:12px;top:60px;width:auto!important;height:auto!important;clip:auto!important;overflow:visible!important;white-space:normal;margin:0;padding:6px;z-index:9;list-style:none;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(29,34,31,.12);max-width:220px}
#sbRegionList:focus-within li{display:none}
#sbRegionList:focus-within li:focus-within{display:block}
#sbRegionList button{border:0;background:var(--stone);border-radius:8px;padding:8px 12px;font-size:13.5px;color:var(--ink)}
