/* Mohawk Electric Site Plan module styles. Everything is scoped under .sp-root; all classes use the sp- prefix. */
.sp-root{--sp-navy:#172953;--sp-blue:#426493;--sp-cream:#F6EFE0;--sp-tx:#2F3237;--sp-line:#e6e0d2;--sp-mut:#5b6170;--sp-lb:#e9eef5;--sp-red:#a4262c;--sp-amb:#7a4b00;--sp-grn:#1f6b35;
  position:relative;display:flex;flex-direction:column;width:100%;height:100%;min-height:320px;overflow:hidden;background:var(--sp-cream);color:var(--sp-tx);
  font:15px/1.35 "Source Sans 3",-apple-system,"Segoe UI",Arial,sans-serif;-webkit-text-size-adjust:100%;box-sizing:border-box}
.sp-root *,.sp-root *::before,.sp-root *::after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.sp-root h3{font-family:"Fraunces",Georgia,serif;color:var(--sp-navy);font-weight:600;font-size:19px;margin:0}
.sp-root .sp-ic{flex:none;display:block}
.sp-root .sp-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px;background:#fff;border-bottom:3px solid var(--sp-navy);z-index:3}
.sp-root .sp-sep{width:1px;align-self:stretch;background:var(--sp-line);margin:0 2px}
.sp-root .sp-btn{display:inline-flex;align-items:center;gap:6px;min-height:42px;min-width:42px;padding:8px 12px;border:1px solid #cfd6e2;border-radius:10px;background:#fff;color:var(--sp-navy);font:inherit;font-weight:600;font-size:14px;cursor:pointer;justify-content:center;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.sp-root .sp-btn:hover{background:var(--sp-lb)}
.sp-root .sp-btn:disabled{opacity:.4;cursor:default}
.sp-root .sp-btn.sp-on{background:var(--sp-navy);color:#fff;border-color:var(--sp-navy)}
.sp-root .sp-btn.sp-pri{background:var(--sp-blue);border-color:var(--sp-blue);color:#fff}
.sp-root .sp-btn.sp-danger{color:var(--sp-red);border-color:#e5c3c5}
.sp-root .sp-btn.sp-icon{padding:8px}
.sp-root .sp-btn.sp-mini{min-height:30px;min-width:30px;padding:4px;border-radius:8px}
.sp-root .sp-hint{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 10px;background:var(--sp-navy);color:#fff;z-index:3;font-weight:600}
.sp-root .sp-hint[hidden]{display:none}
.sp-root .sp-hint .sp-mut{color:#c9d3e3}
.sp-root .sp-hint select{font:inherit;padding:8px;border-radius:8px;border:0;min-height:40px}
.sp-root .sp-body{position:relative;flex:1;display:flex;min-height:0}
.sp-root .sp-map{position:relative;flex:1;overflow:hidden;touch-action:none;background:#fbf8f1;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.sp-root .sp-svg{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}
.sp-root .sp-grid line{stroke:#e6e0d2}
.sp-root .sp-bld{fill:rgba(66,100,147,.18);stroke:var(--sp-navy);cursor:pointer}
.sp-root .sp-bld-lot{fill:rgba(184,134,11,.16);stroke:#b8860b}
.sp-root .sp-bld-area{fill:rgba(31,107,53,.12);stroke:var(--sp-grn);stroke-dasharray:6 4}
.sp-root .sp-bld.sp-sel{stroke:#e08a00;fill:rgba(224,138,0,.2)}
.sp-root .sp-run{fill:none;stroke:var(--sp-red);stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.sp-root .sp-run-feeder{stroke:var(--sp-navy)}.sp-root .sp-run-service{stroke:var(--sp-amb)}.sp-root .sp-run-low-voltage{stroke:var(--sp-grn);stroke-dasharray:8 5}
.sp-root .sp-run.sp-sel{stroke:#e08a00}
.sp-root .sp-hit{stroke:transparent;fill:none;cursor:pointer;stroke-linecap:round}
.sp-root .sp-segsel{stroke:rgba(66,100,147,.45);stroke-linecap:round;pointer-events:none}
.sp-root .sp-lbl{fill:var(--sp-navy);stroke:#fff;paint-order:stroke;font-family:Arial,Helvetica,sans-serif;font-weight:700;text-anchor:middle;pointer-events:none}
.sp-root .sp-lbl-run{fill:var(--sp-red)}
.sp-root .sp-eq{cursor:pointer}.sp-root .sp-eqc{stroke:#fff}.sp-root .sp-eq.sp-sel .sp-eqc{stroke:#e08a00}
.sp-root .sp-eqt{fill:#fff;font-family:Arial,Helvetica,sans-serif;font-weight:700;text-anchor:middle;pointer-events:none}
.sp-root .sp-phframe{fill:#fff;stroke:var(--sp-navy)}
.sp-root .sp-vtx{fill:#fff;stroke:#e08a00;cursor:move}.sp-root .sp-vsel{fill:#e08a00}
.sp-root .sp-draft{fill:rgba(66,100,147,.12);stroke:var(--sp-blue);stroke-dasharray:8 5;pointer-events:none}
.sp-root .sp-draftpt{fill:var(--sp-blue);pointer-events:none}
.sp-root .sp-calline{stroke:#e08a00;stroke-dasharray:6 4;pointer-events:none}
.sp-root .sp-scale{position:absolute;left:10px;bottom:10px;pointer-events:none;font-size:12px;font-weight:600;color:var(--sp-navy);background:rgba(255,255,255,.85);border-radius:6px;padding:0 6px}
.sp-root .sp-scale:empty{display:none}
.sp-root .sp-scalebar{height:8px;border:2px solid var(--sp-navy);border-top:0;margin:6px 0 2px}
.sp-root .sp-empty{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);max-width:340px;text-align:center;color:var(--sp-mut);pointer-events:none}
.sp-root .sp-empty .sp-ic{margin:0 auto 8px;color:var(--sp-blue)}
.sp-root .sp-panel{width:400px;max-width:100%;background:#fff;border-left:1px solid var(--sp-line);display:flex;flex-direction:column;min-height:0;z-index:4}
.sp-root .sp-panel[hidden]{display:none}
.sp-root .sp-phead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--sp-line)}
.sp-root .sp-pbody{overflow:auto;-webkit-overflow-scrolling:touch;padding:10px 12px 40px;flex:1;touch-action:pan-y}
.sp-root .sp-f{display:block;margin:6px 0}
.sp-root .sp-f>span{display:block;font-size:12px;font-weight:600;color:var(--sp-mut);margin-bottom:2px}
.sp-root input:not([type=range]):not([type=checkbox]),.sp-root select,.sp-root textarea{width:100%;font:inherit;font-size:16px;padding:8px 9px;border:1px solid #cfd6e2;border-radius:8px;background:#fff;color:var(--sp-tx);min-height:40px;user-select:text;-webkit-user-select:text}
.sp-root input:focus,.sp-root select:focus,.sp-root textarea:focus{outline:2px solid var(--sp-blue);outline-offset:0}
.sp-root input[type=range]{width:100%}
.sp-root .sp-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sp-root .sp-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.sp-root .sp-sub{font-family:"Fraunces",Georgia,serif;color:var(--sp-navy);font-weight:600;margin:16px 0 4px;font-size:16px}
.sp-root .sp-mut{color:var(--sp-mut);font-size:13px;margin:4px 0}
.sp-root .sp-row{display:flex;gap:8px;margin:8px 0}.sp-root .sp-wrap{flex-wrap:wrap}
.sp-root .sp-seg{display:grid;grid-template-columns:26px 120px 1fr;gap:6px;align-items:center;margin:4px 0;padding:4px;border-radius:8px}
.sp-root .sp-seg.sp-hi{background:var(--sp-lb)}
.sp-root .sp-segn{font-weight:700;color:var(--sp-navy);text-align:center}
.sp-root .sp-lenw{position:relative}.sp-root .sp-lenw input{padding-right:46px}
.sp-root .sp-lenw small{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--sp-mut);font-size:11px;pointer-events:none}
.sp-root .sp-ref{grid-column:2/4;color:var(--sp-mut);font-size:12px;font-style:italic}
.sp-root .sp-total{margin:10px 0;padding:10px;border-radius:10px;background:var(--sp-cream);font-size:15px}
.sp-root .sp-total b{font-size:18px;color:var(--sp-navy)}
.sp-root .sp-m{color:var(--sp-mut)}
.sp-root .sp-warn{display:inline-block;background:#fdf1dc;color:var(--sp-amb);border-radius:6px;padding:1px 6px;font-size:12px;font-weight:600}
.sp-root .sp-warn[hidden]{display:none}
.sp-root .sp-mat{display:grid;grid-template-columns:1.6fr 1fr .7fr .9fr auto;gap:4px;margin:4px 0;align-items:center}
.sp-root .sp-mat input,.sp-root .sp-mat select{font-size:14px;padding:6px}
.sp-root .sp-cf{display:grid;grid-template-columns:1fr 1.4fr auto;gap:4px;margin:4px 0;align-items:center}
.sp-root .sp-thumbs{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.sp-root .sp-th{position:relative}.sp-root .sp-th img{width:92px;height:92px;object-fit:cover;border-radius:8px;border:1px solid var(--sp-line);cursor:zoom-in;display:block}
.sp-root .sp-th .sp-btn{position:absolute;top:3px;right:3px;background:rgba(255,255,255,.92)}
.sp-root .sp-chk{display:flex;gap:8px;align-items:center;margin:12px 0}
.sp-root .sp-tw{overflow-x:auto}
.sp-root .sp-tbl{border-collapse:collapse;width:100%;font-size:13px;margin:4px 0}
.sp-root .sp-tbl th{background:var(--sp-navy);color:#fff;text-align:left;font-weight:600}
.sp-root .sp-tbl th,.sp-root .sp-tbl td{border:1px solid var(--sp-line);padding:5px 6px;vertical-align:top}
.sp-root .sp-tbl a{color:var(--sp-blue);font-weight:700;cursor:pointer}
.sp-root .sp-toast{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);background:var(--sp-navy);color:#fff;padding:10px 16px;border-radius:20px;font-weight:600;opacity:0;transition:opacity .25s;pointer-events:none;z-index:9;max-width:90%;text-align:center}
.sp-root .sp-toast.sp-show{opacity:1}
.sp-root .sp-viewer{position:absolute;inset:0;background:rgba(23,41,83,.92);z-index:10;display:flex;align-items:center;justify-content:center}
.sp-root .sp-viewer img{max-width:96%;max-height:92%;border-radius:8px}
.sp-root .sp-viewer .sp-btn{position:absolute;top:10px;right:10px}
/* phone / narrow: labels collapse to icons and the panel becomes a bottom sheet */
@media (max-width:760px){
  .sp-root .sp-bar .sp-btn span{display:none}
  .sp-root .sp-bar .sp-btn[data-a=edit] span{display:inline}
  .sp-root .sp-bar{gap:4px;padding:6px}
  .sp-root .sp-bar .sp-btn{min-width:44px;padding:8px}
  .sp-root .sp-hint .sp-btn span{display:inline}
  .sp-root .sp-panel{position:absolute;left:0;right:0;bottom:0;width:100%;height:58%;border-left:0;border-top:3px solid var(--sp-navy);border-radius:14px 14px 0 0;box-shadow:0 -6px 20px rgba(0,0,0,.18)}
  .sp-root .sp-3{grid-template-columns:1fr 1fr}
  .sp-root .sp-seg{grid-template-columns:24px 110px 1fr}
}
