/* R4 implementation source: authored native typography, independent SVG elements, no screenshot underlays. */
:root{--paper:#fff4e4;--paper2:#fffaf3;--white:#fffdfb;--brown:#2e241e;--text:#705f51;--muted:#a18c77;--red:#c41029;--red2:#e22327;--redDark:#a51126;--gold:#d79c33;--goldLight:#f0c686;--border:#f1d8b5;--chip:#fbe9d1;--green:#21865e;--shadow:0 8px 22px rgba(107,72,37,.06);--sans:"Noto Sans SC","PingFang SC","Microsoft Yahei",sans-serif;--serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong",serif}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:var(--sans);color:var(--brown)}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #d7a84e;outline-offset:2px}button:disabled{opacity:.46;cursor:not-allowed}a{color:inherit;text-decoration:none}.studio{min-height:100vh;background:radial-gradient(at 20% 0,#fff9ed,#e9d7bd 90%);display:grid;grid-template-columns:310px 1fr;gap:22px;padding:20px}.studio-sidebar{align-self:start;background:#fffaf3;border:1px solid #e7cba4;border-radius:19px;padding:22px;box-shadow:var(--shadow)}.studio-brand{font-size:13px;font-weight:800;letter-spacing:.08em;color:var(--red)}.studio-brand span{font-weight:400;color:var(--muted);display:block;margin-top:5px}.studio-sidebar h1{font:700 23px/1.4 var(--serif);margin:18px 0 6px}.studio-sidebar p{color:#84705b;font-size:13px;line-height:1.7}.studio-group{padding:16px 0;border-top:1px solid #f0e2cc}.studio-group>b{display:block;margin-bottom:10px}#devNav{display:grid;grid-template-columns:1fr 1fr;gap:6px}#devNav button{background:#fff3e1;border:1px solid #ecd5b5;border-radius:9px;padding:9px 6px;color:#7d5d41;font-size:12px}#devNav button.selected{background:var(--red);color:white}.phone-stage{display:flex;justify-content:center;align-items:flex-start}.phone{width:420px;height:884px;position:relative;border:11px solid #151515;border-radius:45px;overflow:hidden;background:radial-gradient(circle at 82% 29%,#ffeed0 0,transparent 36%),radial-gradient(circle at 10% 85%,#fffdfa 0,transparent 28%),var(--paper);box-shadow:0 20px 58px #89755751;isolation:isolate}.phone:before{content:"";position:absolute;z-index:-1;width:250px;height:250px;border:1.5px solid #edb97873;border-radius:50%;right:-113px;top:108px;pointer-events:none}.phone:after{content:"";position:absolute;z-index:-1;width:300px;height:300px;border:1.3px solid #e4ab7380;border-radius:50%;left:-155px;bottom:-180px;pointer-events:none}.island{position:absolute;top:0;left:50%;transform:translateX(-50%);background:#151515;width:125px;height:13px;border-radius:0 0 11px 11px;z-index:20}.status{height:34px;display:flex;justify-content:space-between;align-items:center;padding:5px 30px 2px;font-weight:800;font-size:13px;color:#151515}.status-right{font-size:13px;letter-spacing:1px}#masthead{height:68px;display:flex;align-items:center;gap:10px;padding:5px 18px 5px;position:relative;z-index:3}.back-circle{width:28px;height:28px;border:1px solid var(--border);border-radius:50%;background:#fffdfa;display:grid;place-items:center;color:#5e4539;font-size:21px;flex:0 0 auto}.wordmark{display:flex;gap:8px;align-items:center;flex:1;min-width:0}.logo-box{width:30px;height:33px;border-radius:8px;background:linear-gradient(160deg,#e32926,#b60825);border:2px solid #efc77f;display:grid;place-items:center;color:#fff;font:800 24px/1 var(--serif);box-shadow:0 3px 8px #b82e2640}.brand-cn{font-weight:800;font-size:19px;line-height:1.05;color:#2e211b;white-space:nowrap}.brand-sub{margin-top:4px;color:#a08162;font-size:10px;letter-spacing:.23em;white-space:nowrap}.year-chip{padding:6px 10px;border:1px solid #dfa34f;border-radius:99px;color:#c3122b;font-weight:800;background:#fff3e6;font-size:12px;white-space:nowrap}.page{height:calc(100% - 102px);overflow-y:auto;overflow-x:hidden;scrollbar-width:none;padding:9px 18px 103px;position:relative}.page::-webkit-scrollbar{display:none}.page>.scene{position:relative}.scene:before{content:"";position:absolute;z-index:-1;top:10px;right:-23px;background:url('./assets/motif.svg') center/cover no-repeat;width:200px;height:210px;opacity:.6;pointer-events:none}.scene>.flower{position:absolute;right:1px;top:0;color:#d58781;font-size:26px;line-height:1;opacity:.8;z-index:-1}.eyebrow{font-weight:800;color:#ab4126;font-size:12px;letter-spacing:.03em;margin:9px 0 12px}.title{font-family:var(--serif);font-weight:900;font-size:29px;line-height:1.28;letter-spacing:-.035em;margin:0 0 12px;color:#2e241e}.title em{font-style:normal;color:var(--red)}.title.tight{font-size:25px}.subtitle{font-size:13px;line-height:1.75;color:#786453;margin:0 0 16px}.small{font-size:11px;color:#a48b74}.muted{color:#9a816a}.strong{font-weight:800}.crimson{color:var(--red)}.gold{color:#ac7932}.center{text-align:center}.row{display:flex;gap:8px;align-items:center}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.stack{display:grid;gap:9px}.topspace{margin-top:14px}.section{margin-top:14px}.panel{background:#fffdfa;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:15px;margin-top:13px}.panel.noMargin{margin-top:0}.panelTitle{font-size:15px;font-weight:800;margin-bottom:9px}.panelNote{font-size:12px;color:#907561;line-height:1.55}.roundedSoft{background:#fff4e1;border:1px solid #eccb9b;border-radius:14px}.pill{border-radius:99px;padding:7px 11px;background:#f9ead6;border:0;color:#835e42;font-size:12px;white-space:nowrap}.pill.active,.chip.active{background:var(--red);color:white}.chip{border:1px solid #e6c599;background:#fff5e7;border-radius:99px;color:#805c40;padding:7px 12px;font-weight:700;font-size:12px}.pillRow{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.mainBtn{border:1px solid #fa6565;border-radius:99px;background:linear-gradient(180deg,#ef2028 0,#b80923 100%);color:white;font-weight:800;font-size:15px;min-height:47px;box-shadow:0 9px 20px #c51b2831;padding:10px 14px;width:100%;text-align:center}.outlineBtn{border:1px solid #dbad73;border-radius:99px;background:#fffaef;color:#a85a2b;font-weight:750;font-size:13px;min-height:40px;padding:10px 15px;width:100%}.ghostBtn{border:0;background:none;color:#987454;font-size:12px;min-height:29px}.sticky-action{position:absolute;left:15px;right:15px;bottom:8px;z-index:6;background:linear-gradient(0deg,#fff4e7 78%,#fff4e700);padding-top:15px;display:flex;flex-direction:column;gap:5px}.sticky-action .mainBtn{height:52px}.sticky-action .fineprint{font-size:10px;color:#a8917b;text-align:center;line-height:1.3}.picture{width:100%;display:block;border-radius:10px}.photoWall{display:grid;grid-template-columns:1fr 1fr;gap:8px}.houseCard{border:1px solid #ecd4af;background:#fffdfa;border-radius:15px;padding:5px 5px 8px;text-align:left;position:relative;box-shadow:var(--shadow);min-width:0}.houseCard.selected{border:2px solid var(--red);padding:4px 4px 7px}.houseCard img{width:100%;aspect-ratio:1.7/1;object-fit:cover;border-radius:10px;display:block;background:#f5e6cb}.houseCard strong{display:block;margin:7px 6px 3px;font-size:13px}.houseCard small{display:block;margin:0 6px;color:#ad9178;font-size:10px}.houseCheck{position:absolute;top:5px;right:5px;width:24px;height:24px;background:var(--red);border:2px solid #fff;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:15px}.countrySwitch{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#eee5db;padding:4px;border-radius:13px;margin-bottom:15px}.countrySwitch button{border:0;background:transparent;color:#aa9381;font-weight:800;font-size:13px;padding:9px 6px;border-radius:10px}.countrySwitch button.active{background:var(--red);color:white;box-shadow:0 3px 8px #c5142641}.uploadLine{border:1px dashed #dda96c;border-radius:15px;background:#fff8ee;padding:11px;display:flex;gap:12px;align-items:center;width:100%;color:inherit;text-align:left}.uploadLine img{width:33px;height:33px;flex:0 0 auto}.uploadLine strong{font-size:13px}.uploadLine small{display:block;font-size:11px;color:#987d65;margin-top:4px}.selectedFile{font-size:11px;color:#388061;word-break:break-all}.label{font-weight:800;font-size:14px;margin-bottom:9px}.subLabel{font-size:11px;color:#a58a72}.directionGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.directionGrid button{border:1px solid #e3b877;border-radius:25px;background:#fff4e3;color:#7c5b40;padding:10px 4px;font-size:13px;font-weight:700}.directionGrid button.active{color:white;background:var(--red);border-color:var(--red)}.planShell{background:#fffdfa;border:1px solid var(--border);border-radius:17px;padding:12px;margin:14px 0}.planFrame{background:#fff8f0;border:1px solid #eacb9f;border-radius:14px;padding:8px;position:relative;overflow:hidden}.planFrame>img{width:100%;display:block;aspect-ratio:840/584;object-fit:contain}.planFrame .overlay{position:absolute;left:8px;top:8px;right:8px;bottom:8px;pointer-events:none}.marker{position:absolute;transform:translate(-50%,-50%);border-radius:99px;color:white;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #4d32254a}.marker.gold{background:#c89124}.marker.red{background:var(--red)}.marker.green{background:var(--green)}.marker.circle{width:28px;height:28px}.marker.label{font-size:11px;padding:5px 8px;white-space:nowrap}.legend{display:flex;gap:8px;justify-content:space-around;padding:7px 0 0;color:#917a63;font-size:10px}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}.flag{border-radius:99px;background:#fcf0da;color:#b06f22;padding:5px 9px;font-size:11px;white-space:nowrap;font-weight:750}.reportHero{border-radius:15px;background:linear-gradient(110deg,#a60d26,#bd3031);color:#fff;padding:16px;margin:8px 0 12px;position:relative;overflow:hidden}.reportHero .k{font-size:12px;opacity:.85}.reportHero h2{font:800 23px/1.42 var(--serif);margin:5px 0}.reportHero p{font-size:11px;margin:0;opacity:.85}.reportHero:after{content:"☁";font:400 70px var(--serif);color:#fff3;position:absolute;right:5px;bottom:-28px}.tabs{display:flex;gap:7px;margin:5px 0 11px}.tabs button{border:0;padding:9px 13px;border-radius:99px;background:var(--chip);font-size:12px;color:#916b4b;white-space:nowrap}.tabs button.active{background:var(--red);color:#fff}.miniCard{display:flex;align-items:center;gap:10px;border:1px solid #efdabb;background:#fffefd;border-radius:13px;padding:12px;margin-top:8px;width:100%;text-align:left}.miniCard .ico{width:36px;height:36px;border-radius:11px;background:#fff0db;display:grid;place-items:center;flex:0 0 auto}.ico img{width:22px;height:22px}.miniCard strong{display:block;font-size:13px}.miniCard small{display:block;font-size:11px;color:#99826e;margin-top:3px;line-height:1.6}.miniCard .arrow{margin-left:auto;color:#b89b75}.numberBadge{width:27px;height:27px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;color:white;background:#c18b23;font-weight:800}.numberBadge.green{background:var(--green)}.numberBadge.red{background:var(--red)}.numberBadge.orange{background:#c46e30}.listCard{border:1px solid #eedac0;background:#fffdfa;border-radius:13px;margin-top:6px;padding:12px;display:flex;align-items:center;gap:12px;width:100%;text-align:left}.listCard strong{font-size:13px;display:block}.listCard p{font-size:11px;color:#927b66;margin:3px 0}.listCard .arrow{margin-left:auto;color:#c5a277}.listCard:focus{border-color:var(--red)}.roomNav{display:flex;gap:4px;overflow-x:auto;margin:5px 0 10px}.roomNav button{background:var(--chip);border:0;border-radius:99px;color:#8b6548;padding:8px 17px;white-space:nowrap;font-size:12px}.roomNav button.active{background:var(--red);color:white}.infoList{display:grid;gap:8px}.infoItem{display:flex;gap:11px;align-items:flex-start;padding:12px;border:1px solid #f0dcc3;background:white;border-radius:12px}.infoItem>img{width:32px;height:32px;padding:5px;background:#fff2df;border-radius:10px}.infoItem strong{font-size:13px}.infoItem p{margin:3px 0 0;color:#85705e;font-size:11px;line-height:1.6}.priceBox{border:1px solid #ebc696;background:#fff0d9;border-radius:15px;padding:13px;display:flex;gap:15px;align-items:center}.priceBox .amount{font:700 30px/1.18 var(--serif);color:var(--red);white-space:nowrap}.priceBox strong{font-size:14px}.priceBox p{font-size:11px;color:#9c7959;margin:4px 0 0}.payMethods{display:grid;gap:8px}.payMethods.triple{grid-template-columns:repeat(3,1fr)}.payMethods button{border:1px solid #e4cdb0;background:#fffefd;border-radius:11px;min-height:52px;color:#8b6e55;text-align:center;padding:8px 4px}.payMethods button.selected{border:2px solid var(--red);padding:7px 3px}.payMethods button strong{font-size:13px;display:block}.payMethods button small{font-size:10px;display:block;margin-top:3px}.checkline{display:flex;align-items:center;gap:8px;font-size:12px;margin-top:9px;color:#82705f}.checkline strong{color:#2e8a60}.priceLarge{font:800 35px/1 var(--serif);color:var(--red);margin:4px 0}.priceMini{font-size:12px;color:#a58a75}.stripe{border-top:1px solid #ead6bd;margin:10px 0}.benefit{display:flex;gap:10px;margin:7px 0}.benefit .greencheck{color:#15936f;font-weight:800;font-size:20px}.benefit strong{font-size:13px}.benefit small{color:#a18b74;display:block;font-size:11px;margin-top:3px}.progressTrack{height:7px;background:#f0e5d7;border-radius:20px;overflow:hidden}.progressTrack>span{height:100%;display:block;background:linear-gradient(90deg,#b58220,#e6b55e);border-radius:20px;transition:width .3s}.timeline{padding:8px 0 4px;display:grid;gap:14px}.timelineLine{display:flex;gap:14px;align-items:flex-start}.timelineLine i{width:22px;height:22px;flex:0 0 auto;border-radius:50%;border:2px solid #d3b89a;background:#fff;display:grid;place-items:center;color:#fff;font-style:normal}.timelineLine.done i{background:#168e61;border-color:#168e61}.timelineLine.active i{background:#d8a145;border-color:#d8a145}.timelineLine strong{font-size:13px}.timelineLine p{font-size:11px;line-height:1.6;color:#92806f;margin:3px 0}.iconLarge{width:145px;height:145px;border:9px solid #f9e4bb;border-radius:50%;display:grid;place-items:center;margin:38px auto 20px;background:#fff8ef}.iconLarge img{width:80px;height:80px}.stateTitle{text-align:center;font:900 33px/1.3 var(--serif)}.stateSubtitle{text-align:center;color:#90765f;font-size:17px;margin:9px 0 25px}.field{display:grid;gap:5px;margin-top:12px}.field label{font-size:12px;font-weight:800}.field input{border:1px solid #e7c99f;border-radius:10px;padding:9px;background:#fff;width:100%;font-size:13px}.editableHint{border:1px solid #edd0a6;border-radius:14px;background:#fff3df;color:#916f46;padding:10px 12px;margin:10px 0;font-size:12px}.checkItem{border:1px solid #ecd3b1;border-radius:12px;padding:11px;margin:8px 0;background:white}.checkItem label{display:flex;gap:9px;align-items:center;font-size:13px;font-weight:800}.checkItem input{accent-color:#bf1a31;width:18px;height:18px}.checkItem .desc{padding:9px 10px;background:#fff5e7;border-radius:9px;margin:10px 0 0;font-size:11px;color:#987d64;line-height:1.5}.linkText{color:#a0612d;text-align:center;text-decoration:underline;background:none;border:0;font-size:12px}.modal-root:empty{display:none}.modal-root{position:absolute;z-index:12;inset:0;background:#19100ca1;display:grid;place-items:center;padding:20px}.modalCard{width:100%;border-radius:20px;background:#fffaf1;padding:20px;border:1px solid #eaca99;box-shadow:0 10px 40px #2c211c4d}.modalCard h3{margin:0;font-family:var(--serif)}.modalCard p{color:#796451;font-size:12px;line-height:1.6}.modalClose{float:right;border:0;background:none;color:var(--red);font-size:22px}.upload-preview{max-height:80px;max-width:100%;object-fit:contain;display:block;margin:8px auto}.homeTitle{font-size:28px;line-height:1.2;text-align:center;margin:6px 0;color:#28201b}.homeTitle em{font-style:normal;color:#c40e27}.homePlan{position:relative;margin:7px 0 7px}.homePlan .planFrame{border:0;background:transparent;padding:0}.homePlan .planFrame img{filter:drop-shadow(0 7px 8px #ac774c33)}.homePlan .homeRibbon{position:absolute;z-index:2;background:#fffdf8;padding:5px 7px;border-radius:8px;font-size:10px;font-weight:800;box-shadow:0 1px 6px #0002}.homeRibbon.r{left:0;top:6%;color:#b70e29;border:1px solid #e54b42}.homeRibbon.g{right:0;top:19%;color:#1c895a;border:1px solid #69b899}.homeRibbon.b{right:0;bottom:8%;color:#2b68a9;border:1px solid #81b5df}.footFeatures{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:8px}.footFeatures div{display:flex;align-items:center;gap:5px;color:#805e47;font-size:10px}.footFeatures img{width:22px;height:22px}.decorRule{font-size:10px;text-align:center;background:#fff0d8;border:1px solid #e4c28c;border-radius:99px;padding:6px;color:#987047;margin-bottom:9px}.modalChoices{display:grid;gap:8px}.quietNote{font-size:10px;text-align:center;color:#ac9580;line-height:1.5}.toast{position:absolute;z-index:12;left:12%;right:12%;bottom:100px;background:#3c332d;color:#fff;border-radius:12px;padding:12px;text-align:center;font-size:12px}.fileInput{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
@media(max-width:800px){.studio{display:block;padding:0;background:var(--paper)}.studio-sidebar{display:none}.phone-stage{display:block}.phone{border:none;width:100%;height:100dvh;max-width:none;border-radius:0;box-shadow:none}.island{display:none}.status{display:none}#masthead{height:67px}.page{height:calc(100% - 67px)}.sticky-action{bottom:env(safe-area-inset-bottom,0px)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* R2: one-page per-floor correction and annotation. All new elements remain editable DOM/CSS. */
.choiceRow{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}.choice{border:1px solid #e7c9a2;background:#fff7e9;color:#805d43;border-radius:12px;padding:9px 11px;flex:1 1 34%;font:650 12px var(--sans);cursor:pointer}.choice.selected{border:2px solid var(--red);color:var(--red);background:#fff3ed}.floorbar{display:flex;gap:7px;overflow-x:auto;margin:10px 0}.floorbar button{border:1px solid #e6bd87;padding:9px 15px;border-radius:99px;background:#fff7e9;color:#9b723d;white-space:nowrap;font-weight:700;font-size:12px}.floorbar button.active{background:var(--red);color:white;border-color:var(--red)}.inline-control{color:#bd2630;font-size:12px;text-decoration:underline;border:0;background:none;padding:4px}.floorPreview{height:210px;width:100%;background:linear-gradient(180deg,#fffdf7,#fcf1e2);border:1px solid #e6cda8;border-radius:15px;position:relative;overflow:hidden;cursor:crosshair;display:grid;place-items:center;touch-action:manipulation}.floorTransform{width:100%;height:100%;display:grid;place-items:center;transition:transform .22s}.floorTransform img{width:90%;height:90%;object-fit:contain}.annotationOverlay{position:absolute;inset:0;pointer-events:none}.annotationChip{position:absolute;transform:translate(-50%,-50%);font-size:11px;color:white;background:#be172c;box-shadow:0 2px 7px #5434;padding:4px 7px;border-radius:12px;white-space:nowrap}.annotationChip.door{background:#b47e18}.annotationChip.window{background:#258775}.floorCoverage{display:grid;gap:3px;padding:10px;border-radius:12px;background:#fff8e9;border:1px solid #eacfaa;margin:0 0 8px}.floorCoverage b{font-size:13px}.floorCoverage span{font-size:11px;color:#896c53;line-height:1.5}.sketchPair{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.sketchPair>div{min-width:0;border:1px solid #e7d1b2;border-radius:10px;padding:8px}.sketchPair strong{font-size:11px}.sketchPair img{width:100%;height:116px;object-fit:contain}.skeletonImage{display:grid;place-items:center;background:#f8efdf;height:116px;color:#9d845e;font-size:11px;text-align:center;padding:8px}.uploadThumb{display:flex;align-items:center;gap:10px;margin:10px 0;border:1px solid #eacdab;padding:8px;border-radius:12px;color:#8c7058;font-size:12px}.uploadThumb img{max-width:90px;max-height:72px;object-fit:contain}.checkline input{width:17px;height:17px;accent-color:var(--red)}.choice:focus-visible,.inline-control:focus-visible,.floorbar button:focus-visible{outline:2px solid var(--red);outline-offset:2px}

.phone{overflow:clip}.floorTransform.turned{width:58%;height:88%}
