:root{--bg:#f5f7fa;--card:#fff;--ink:#17212b;--muted:#6d7885;--border:#d9e0e7;--brand:#153a5b;--accent:#1976d2}*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,Arial;color:var(--ink);background:var(--bg)}a{color:#145ea8;text-decoration:none}.topbar,.editor-top{height:58px;background:#102c46;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.topbar a,.editor-top a{color:#fff}.brand{font-weight:800;letter-spacing:.12em}.topbar nav{display:flex;gap:18px;align-items:center}.container{max-width:1280px;margin:28px auto;padding:0 20px}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.page-head h1{margin:.2rem 0}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12px}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;box-shadow:0 2px 10px #102c4610}.project-card{color:var(--ink)}.btn{display:inline-block;border:1px solid #bdc8d3;background:white;color:#16334d!important;padding:9px 13px;border-radius:8px;cursor:pointer;font-weight:600}.btn.primary{background:#1769aa;color:#fff!important;border-color:#1769aa}.btn.small{padding:6px 9px;font-size:12px}.inline{display:inline}.linkbtn{background:none;border:0;color:#fff;cursor:pointer;font:inherit}.narrow{max-width:760px;margin:0 auto}.form-card p{display:grid;gap:5px}.form-card input,.form-card select,.form-card textarea,.login-card input{width:100%;padding:9px;border:1px solid var(--border);border-radius:7px}.login-card{max-width:420px;margin:12vh auto;background:#fff;padding:32px;border-radius:14px;border:1px solid var(--border)}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--border);border-radius:10px}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:11px 13px;border-bottom:1px solid #edf0f3}small{display:block;color:var(--muted);margin-top:4px}.msg{padding:12px 14px;border-radius:8px;margin-bottom:16px;background:#e7f1fb}.msg.warning,.warning{background:#fff3cd}.msg.error{background:#fde2e2}.msg.success{background:#dff4e6}.swatch{display:inline-block;width:18px;height:10px;border-radius:3px;margin-right:7px;border:1px solid #0002}.status{font-weight:700}.editor-body{overflow:hidden;background:#dfe5ea}.editor-top{height:52px;padding:0 14px}.editor-top .toolbar{display:flex;gap:6px}.editor-layout{height:calc(100vh - 52px);display:grid;grid-template-columns:240px 1fr 220px}.editor-side,.legend-side{background:#fff;padding:14px;overflow:auto;border-right:1px solid var(--border)}.legend-side{border-left:1px solid var(--border);border-right:0}.element-btn{width:100%;text-align:left;background:#fff;border:1px solid var(--border);padding:8px;border-radius:7px;margin:3px 0;cursor:pointer}.element-btn.active{outline:2px solid #1976d2;background:#eef6ff}.editor-side h4{margin:16px 0 5px;color:#64717e}.canvas-wrap{position:relative;overflow:hidden;background:#cad2d9}#cadSvg{width:100%;height:100%;background:#fff;touch-action:none;cursor:crosshair}.cad-entity{stroke:#52616e;stroke-width:.7;fill:none;vector-effect:non-scaling-stroke}.cad-text{fill:#52616e;font-family:Arial,Helvetica,sans-serif;opacity:.72;pointer-events:none}.cad-text-hidden{display:none}.fire-object{fill:none;stroke-width:5;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.preview-object{fill:none;stroke-width:8;vector-effect:non-scaling-stroke;stroke-dasharray:12 6;opacity:.75}.floating-status{position:absolute;top:10px;left:10px;z-index:5;background:#102c46e8;color:#fff;padding:7px 10px;border-radius:6px}.preview-bar{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);z-index:5;background:#fff;border:1px solid var(--border);padding:8px 10px;border-radius:9px;box-shadow:0 4px 20px #0002;display:flex;align-items:center;gap:10px}.hidden{display:none!important}.legend-item{display:flex;align-items:center;gap:7px;margin:8px 0}.legend-line{width:34px;height:4px;border-radius:2px}.smalltext{font-size:12px}@media(max-width:900px){.editor-layout{grid-template-columns:190px 1fr}.legend-side{display:none}.page-head{display:block}.page-head>div:last-child{margin-top:12px}}
/* FirePlan Toolbox */
.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 0 10px}.tool-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:58px;border:1px solid var(--border);border-radius:9px;background:#fff;color:#294155;cursor:pointer;font:inherit}.tool-btn span{font-size:21px;line-height:1}.tool-btn b{font-size:11px}.tool-btn:hover{background:#f3f7fa;border-color:#9fb2c3}.tool-btn.active{background:#eaf4ff;border-color:#1976d2;box-shadow:inset 0 0 0 1px #1976d2;color:#0b5da7}.tool-btn.danger.active{background:#fff0f0;border-color:#c53b3b;box-shadow:inset 0 0 0 1px #c53b3b;color:#a22121}.tool-hint{min-height:36px;margin:8px 0}.tool-control{margin:8px 0 12px}.tool-control label{display:grid;gap:5px}.fire-object{stroke-width:2.5;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.fire-object.fire-area{stroke-width:1.5}.preview-object{stroke-width:3;vector-effect:non-scaling-stroke;stroke-dasharray:8 5;opacity:.82;stroke-linecap:round;stroke-linejoin:round}.preview-object.fire-area{stroke-width:1.5;stroke-dasharray:8 5}.cad-entity.erase-candidate{stroke:#d62828!important;stroke-width:2.5!important}.editor-side hr{border:0;border-top:1px solid var(--border);margin:15px 0}

/* Precise CAD hit testing + real area fills */
.cad-hit-target{stroke:transparent;stroke-width:14;fill:none;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:inherit}
.cad-entity{pointer-events:none}
.cad-hit-target:hover + .cad-entity{stroke:#d62828!important;stroke-width:2.3!important}
.fire-object.fire-area,.preview-object.fire-area{fill-opacity:.25}
.fire-object:not(.fire-area),.preview-object:not(.fire-area){fill:none}
