/* 51 · 房间布局与家具摆放 —— 建筑蓝图版式：藏青图纸底、白色工程线、虚线门弧母题 */
.rlp{
  --ink:#243447; --sub:#7185a0; --card:#ffffff; --line:#d7e0ec;
  --pri:#1f5fa8; --pri-deep:#153f70; --pri-soft:#e7f0fa; --ok:#2f7d5e; --warn:#b07a1f; --bad:#c0394f; --bg:#eef3f9;
  --bp:#0e2f55;
  --rlp-font:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,sans-serif;
  --rlp-num:"Bahnschrift","Segoe UI Variable Text",ui-monospace,monospace;
  color:var(--ink); background:var(--bg); font-family:var(--rlp-font);
  font-size:15px; line-height:1.8; letter-spacing:.12px;
  padding:30px 16px 64px;
}
:root[data-theme="dark"] .rlp{
  --ink:#e6edf6; --sub:#93a5bd; --card:#1b2433; --line:#31405a;
  --pri:#7fb1e8; --pri-deep:#5f93cf; --pri-soft:#223350; --ok:#7fd0a8; --warn:#e0b46a; --bad:#ff8fa0; --bg:#121826;
  --bp:#0a1e38;
}
.rlp-wrap{max-width:1120px;margin:0 auto;}
.rlp *{box-sizing:border-box;}
.rlp h1,.rlp h2,.rlp h3{margin:0;}
.rlp b{font-weight:700;color:var(--pri-deep);}
:root[data-theme="dark"] .rlp b{color:var(--pri);}
.rlp-hero{
  display:grid;grid-template-columns:minmax(0,1.62fr) 190px;gap:34px;align-items:center;
  background:var(--card);border:1px solid var(--line);border-radius:20px;padding:34px 38px;
  box-shadow:0 10px 30px rgba(31,95,168,.08);position:relative;overflow:hidden;
}
.rlp-hero:before{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(rgba(31,95,168,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(31,95,168,.035) 1px,transparent 1px);
  background-size:26px 26px;}
.rlp-badge{display:inline-block;font-size:12px;font-weight:700;letter-spacing:1.4px;color:var(--pri);background:var(--pri-soft);border:1px solid var(--line);border-radius:999px;padding:5px 14px;}
.rlp-hero h1{font-size:31px;line-height:1.34;font-weight:800;margin:16px 0 10px;letter-spacing:.3px;}
.rlp-hero h1 em{display:block;font-style:normal;font-size:16.5px;font-weight:600;color:var(--sub);letter-spacing:.2px;margin-top:8px;}
.rlp-hero p{margin:0;max-width:780px;font-size:15px;line-height:1.85;}
.rlp-hero-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;}
.rlp-hero-meta span{font-size:12px;font-weight:600;color:var(--sub);background:var(--bg);border:1px dashed var(--line);border-radius:6px;padding:4px 10px;}
.rlp-hero-blueprint{display:flex;flex-direction:column;align-items:center;gap:10px;}
.rlp-bp-svg{width:160px;height:130px;background:var(--bp);border-radius:8px;padding:4px;}
.rlp-bp-room{fill:none;stroke:#cfe2f7;stroke-width:2.5;}
.rlp-bp-doorline{stroke:#cfe2f7;stroke-width:2.5;stroke-dasharray:5 4;}
.rlp-bp-arc{fill:none;stroke:#7fb1e8;stroke-width:1.6;stroke-dasharray:4 4;}
.rlp-bp-item{fill:rgba(127,177,232,.25);stroke:#cfe2f7;stroke-width:1.6;}
.rlp-bp-text{fill:#e8f1fb;font-size:13px;text-anchor:middle;font-family:var(--rlp-font);}
.rlp-bp-note{font-size:11px;color:var(--sub);text-align:center;line-height:1.5;}
.rlp-card,.rlp-panel{
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  box-shadow:0 2px 12px rgba(31,95,168,.05);padding:24px 26px;margin-top:20px;
}
.rlp-card-h,.rlp-h2{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:18px;}
.rlp-card-h h2{font-size:20px;font-weight:750;}
.rlp-h2{font-size:18px;font-weight:750;}
.rlp-card-tip,.rlp-h2 span{font-size:12.5px;font-weight:500;color:var(--sub);}
.rlp-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 18px;}
.rlp-f{display:flex;flex-direction:column;gap:7px;font-size:13.5px;font-weight:650;}
.rlp-f input[type=text],.rlp-f select,.rlp-num input{
  width:100%;font:500 14px var(--rlp-font);color:var(--ink);background:var(--bg);
  border:1px solid var(--line);border-radius:10px;padding:10px 12px;outline:none;transition:border-color .18s,box-shadow .18s;
}
.rlp-f input:hover,.rlp-num input:hover{border-color:var(--pri);}
.rlp-f input:focus,.rlp-num input:focus{border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-soft);}
.rlp-num{display:flex;align-items:center;gap:6px;}
.rlp-num input{flex:1;min-width:0;}
.rlp-num i{font-style:normal;font-size:12px;color:var(--sub);white-space:nowrap;}
.rlp-presets{grid-column:1 / -1;}
.rlp-labtxt{font-size:13px;font-weight:650;}
.rlp-chip{
  font:600 12.5px var(--rlp-font);color:var(--pri-deep);background:var(--pri-soft);border:1px solid var(--line);
  border-radius:999px;padding:5px 12px;cursor:pointer;transition:background .15s,border-color .15s,transform .15s;
}
:root[data-theme="dark"] .rlp-chip{color:var(--pri);}
.rlp-chip:hover{background:var(--card);border-color:var(--pri);transform:translateY(-1px);}
.rlp-btn{
  font:650 14px var(--rlp-font);color:var(--ink);background:var(--card);border:1px solid var(--line);
  border-radius:10px;padding:10px 20px;cursor:pointer;transition:transform .15s,border-color .15s,background .15s,box-shadow .15s;white-space:nowrap;
}
.rlp-btn:hover{transform:translateY(-1px);border-color:var(--pri);box-shadow:0 6px 16px rgba(31,95,168,.14);}
.rlp-btn:active{transform:translateY(0);}
.rlp-btn:disabled{opacity:.5;cursor:not-allowed;}
.rlp-btn-ai{background:var(--ink);color:var(--card);border-color:var(--ink);}
.rlp-mini{font-size:12px;color:var(--sub);background:none;border:none;cursor:pointer;padding:2px 6px;}
.rlp-mini:hover{color:var(--bad);}
.rlp-msg{font-size:13px;color:var(--sub);margin:12px 0 0;min-height:20px;line-height:1.6;}
.rlp-stage{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,.9fr);gap:20px;margin-top:20px;}
.rlp-canvasbox{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 20px;box-shadow:0 2px 12px rgba(31,95,168,.05);}
.rlp-canvas-h{display:flex;align-items:baseline;justify-content:space-between;font-size:14px;margin-bottom:12px;}
.rlp-canvas-h span{font-size:12px;color:var(--sub);}
.rlp-svg{
  width:100%;height:auto;aspect-ratio:6/5;display:block;border-radius:12px;
  background:var(--bp);
  background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:25px 25px;
  touch-action:none;user-select:none;
}
.rlp-scalebar{font:600 12px var(--rlp-num);color:var(--sub);margin-top:10px;}
.rlp-side{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 20px;box-shadow:0 2px 12px rgba(31,95,168,.05);display:flex;flex-direction:column;}
.rlp-side-h{display:flex;align-items:center;gap:10px;font-size:13.5px;margin-bottom:12px;}
.rlp-side-h b{margin-right:auto;}
.rlp-side-h span{font:650 12px var(--rlp-num);color:var(--pri);}
.rlp-furnlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;max-height:300px;overflow:auto;}
.rlp-furnlist li{display:flex;align-items:center;gap:8px;font-size:13px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 10px;}
.rlp-furnlist li.is-sel{border-color:var(--pri);box-shadow:0 0 0 2px var(--pri-soft);}
.rlp-furnlist li b{cursor:pointer;}
.rlp-furnlist li span{font:500 12px var(--rlp-num);color:var(--sub);margin-left:auto;white-space:nowrap;}
.rlp-furn-empty{color:var(--sub);border-style:dashed!important;background:transparent!important;justify-content:center;}
.rlp-furn-del{background:none;border:none;color:var(--sub);cursor:pointer;font-size:14px;padding:0 2px;}
.rlp-furn-del:hover{color:var(--bad);}
.rlp-demo-row{margin-top:14px;}
.rlp-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px;}
.rlp-kpi{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:2px;}
.rlp-kpi .k{font-size:12px;color:var(--sub);}
.rlp-kpi .v{font:800 22px/1.2 var(--rlp-num);color:var(--pri-deep);}
:root[data-theme="dark"] .rlp-kpi .v{color:var(--pri);}
.rlp-kpi .s{font-size:11px;color:var(--sub);}
.rlp-issues{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.rlp-issues li{font-size:13.5px;line-height:1.75;background:var(--bg);border-left:3px solid var(--ok);border-radius:0 10px 10px 0;padding:10px 14px;}
.rlp-issues li.is-bad{border-left-color:var(--bad);}
.rlp-issues li.is-warn{border-left-color:var(--warn);}
.rlp-h3{font-size:16px;font-weight:750;display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;}
.rlp-h3 span{font-size:12px;font-weight:500;color:var(--sub);}
.rlp-ai{background:linear-gradient(120deg,var(--card),var(--pri-soft));border-radius:12px;padding:16px 18px;margin-top:18px;}
.rlp-ai-tip{font-size:13px;color:var(--sub);line-height:1.75;margin:8px 0 14px;}
.rlp-ai-out{white-space:pre-wrap;font-size:14px;line-height:1.85;margin-top:16px;padding:16px 18px;background:var(--card);border:1px solid var(--line);border-radius:12px;}
.rlp-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;}
.rlp-wall{fill:none;stroke:rgba(255,255,255,.92);stroke-width:5;stroke-linejoin:round;}
:root[data-theme="dark"] .rlp-wall{stroke:rgba(255,255,255,.75);}
.rlp-door{stroke:rgba(255,255,255,.92);stroke-width:5;stroke-dasharray:14 10;}
.rlp-arc{fill:none;stroke:rgba(127,177,232,.85);stroke-width:3;stroke-dasharray:10 8;}
.rlp-hinge{fill:#e8b25c;stroke:rgba(255,255,255,.6);stroke-width:1.5;}
.rlp-item rect{fill:rgba(127,177,232,.30);stroke:rgba(255,255,255,.85);stroke-width:2;cursor:grab;transition:fill .15s;}
.rlp-item:hover rect{fill:rgba(127,177,232,.45);}
.rlp-item.is-sel rect{fill:rgba(127,177,232,.55);stroke:#ffffff;stroke-width:3;}
.rlp-item text{fill:#f0f6ff;font:650 15px var(--rlp-font);pointer-events:none;}
@media (max-width:960px){
  .rlp{padding:20px 12px 48px;}
  .rlp-hero{grid-template-columns:1fr;padding:24px 20px;}
  .rlp-hero h1{font-size:25px;}
  .rlp-hero-blueprint{display:none;}
  .rlp-fields{grid-template-columns:1fr 1fr;}
  .rlp-stage{grid-template-columns:1fr;}
  .rlp-card,.rlp-panel{padding:18px 16px;}
}
