:root{--ink:#132838;--navy:#0b2433;--orange:#f28c28;--mist:#eef4f6;--line:#dbe5e9}*{box-sizing:border-box}body{margin:0;background:var(--mist);font-family:Inter,Arial,sans-serif;color:var(--ink)}button,input,select,textarea{font:inherit}.bar{background:var(--navy);color:#fff;padding:16px max(5vw,24px);display:flex;align-items:center;justify-content:space-between}.brand{font-size:22px;font-weight:800;letter-spacing:-.8px}.brand i{color:var(--orange);font-style:normal}.wrap{max-width:1160px;margin:0 auto;padding:32px 24px}.login{max-width:430px;margin:9vh auto;background:#fff;border-radius:16px;padding:32px;box-shadow:0 12px 40px #102d3c1a}.login h1{margin:0 0 8px}.muted{color:#587080}.field{display:grid;gap:7px;margin:16px 0}input,select,textarea{border:1px solid var(--line);border-radius:8px;padding:12px}.primary,.secondary{border:0;border-radius:8px;padding:11px 16px;font-weight:700;cursor:pointer}.primary{background:var(--orange);color:#1d2a31}.secondary{background:#fff;color:var(--navy)}.error{color:#b42318;min-height:20px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:18px}.card{background:#fff;border-radius:14px;overflow:hidden;border:1px solid var(--line)}.thumb{height:125px;background:linear-gradient(135deg,#24566c,#8bb7b9 52%,#ed9b42);padding:18px;color:white;display:flex;align-items:end;font-weight:700}.card section{padding:18px}.meta{font-size:14px;color:#587080}.tag{font-size:12px;background:#e5f3f4;border-radius:999px;padding:5px 8px;display:inline-block;margin:10px 4px 0 0}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tab{border:1px solid var(--line);background:#fff;padding:9px 13px;border-radius:8px;cursor:pointer}.tab.active{background:var(--navy);color:#fff}.pane{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.map{height:min(65vh,620px);border-radius:9px;overflow:hidden}.model{width:100%;height:min(65vh,620px);background:#e9f1f3;border-radius:9px}.measure{margin:12px 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.measure button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px;cursor:pointer}.measure .on{background:#fff2df;border-color:var(--orange)}.notice{padding:12px;background:#fff8e9;border-left:4px solid var(--orange);border-radius:5px}.hidden{display:none}@media(max-width:600px){.wrap{padding:22px 16px}.bar{padding:13px 16px}.map,.model{height:55vh}.login{margin:4vh 16px}}
