.gnt-winder-root{font-family:Arial,Helvetica,sans-serif}
.gnt-winder-open{background:#111;color:#fff;border:0;border-radius:5px;padding:12px 18px;font-weight:700;cursor:pointer}
.gnt-winder-root.is-embedded>.gnt-winder-open-internal{display:none!important}
.gnt-winder-modal[hidden]{display:none!important}
.gnt-winder-modal{position:fixed;inset:0;z-index:999999}
.gnt-winder-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.66)}
.gnt-winder-dialog{position:absolute;inset:1vh 1vw;background:#fff;border-radius:10px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.gnt-winder-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid #ddd}
.gnt-winder-head strong{display:block;font-size:20px}
.gnt-winder-head span{display:block;font-size:12px;color:#666;margin-top:2px}
.gnt-icon-btn{border:0;background:transparent;font-size:32px;cursor:pointer;line-height:1}
.gnt-winder-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px;background:#f6f6f6;border-bottom:1px solid #ddd}
.gnt-winder-toolbar label{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:700}
.gnt-winder-toolbar input{width:92px}
.gnt-winder-toolbar button,.gnt-winder-foot button{border:1px solid #bbb;background:#fff;border-radius:5px;padding:7px 10px;cursor:pointer}
.gnt-winder-toolbar button.is-active{background:#111;color:#fff;border-color:#111}
.gnt-winder-main{flex:1;min-height:0;display:grid;grid-template-columns:260px 1fr}
.gnt-winder-panel{overflow:auto;border-right:1px solid #ddd;padding:12px;background:#fafafa}
.gnt-winder-panel section{border-bottom:1px solid #ddd;padding:0 0 12px;margin:0 0 12px}
.gnt-winder-panel h3{font-size:14px;margin:0 0 9px}
.gnt-winder-panel label{display:block;font-size:12px;margin:7px 0}
.gnt-winder-panel input{width:100%;box-sizing:border-box;padding:6px}
.gnt-winder-panel small,.gnt-winder-panel p{font-size:11px;line-height:1.4;color:#555}
.gnt-checkline{display:flex!important;align-items:flex-start;gap:8px;font-size:12px!important;font-weight:600;margin:8px 0}
.gnt-checkline input{width:auto!important;min-width:16px;height:16px;margin-top:1px}
.gnt-point-list,.gnt-cut-list{display:flex;flex-direction:column;gap:4px}
.gnt-list-row{display:flex;justify-content:space-between;gap:8px;padding:5px 7px;border:1px solid #ddd;background:#fff;border-radius:4px;font-size:11px;cursor:pointer}
.gnt-winder-canvas-wrap{position:relative;min-width:0;min-height:72vh;background:#fff}
.gnt-winder-svg{width:100%;height:100%;display:block;touch-action:none;background-image:linear-gradient(#f4f4f4 1px,transparent 1px),linear-gradient(90deg,#f4f4f4 1px,transparent 1px);background-size:25px 25px}
.gnt-mode-banner{position:absolute;left:50%;top:12px;transform:translateX(-50%);background:#111;color:#fff;border-radius:999px;padding:7px 12px;font-size:12px;box-shadow:0 3px 12px rgba(0,0,0,.2)}
.gnt-base-guide{fill:none;stroke:#8aa3b5;stroke-width:2.2;stroke-dasharray:10 8;vector-effect:non-scaling-stroke}
.gnt-outline{fill:rgba(240,240,240,.55);stroke:#111;stroke-width:3;vector-effect:non-scaling-stroke}
.gnt-edge-hit{stroke:transparent;stroke-width:16;fill:none;cursor:pointer;vector-effect:non-scaling-stroke}
.gnt-cut{stroke:#444;stroke-width:2.5;stroke-dasharray:8 5;vector-effect:non-scaling-stroke}
.gnt-cut-hit{stroke:transparent;stroke-width:16;cursor:pointer;vector-effect:non-scaling-stroke}
.gnt-dim-line{stroke:#16851e;stroke-width:1.8;vector-effect:non-scaling-stroke;pointer-events:none}
.gnt-dim-text{fill:#16851e;font-size:18px;font-weight:800;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round;pointer-events:none}
.gnt-point{fill:#111;stroke:#fff;stroke-width:2;cursor:grab;vector-effect:non-scaling-stroke}
.gnt-point.is-selected{fill:#d60000}
.gnt-point-label{font-size:18px;font-weight:800;fill:#111;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round;pointer-events:none}
.gnt-line-selected{stroke:#d60000!important}
.gnt-winder-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid #ddd;font-size:11px;color:#666}
.gnt-winder-foot-actions{display:flex;gap:8px}
.gnt-winder-save{background:#111!important;color:#fff!important;border-color:#111!important}

/* WooCommerce Stair Treads Optional Add-on styling */
.gnt-winder-addon{clear:both;margin:0 0 6px;padding:0;background:transparent;border:0;box-sizing:border-box}
.gnt-winder-addon-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gnt-winder-addon-check{display:inline-flex!important;align-items:center;gap:8px;margin:0!important;font-weight:600;cursor:pointer;line-height:1.45}
.gnt-winder-addon-check input{margin:0!important;width:auto!important;min-width:16px;height:16px}
.gnt-winder-addon-edit{border:1px solid #d1b27d;background:#fff8ef;border-radius:4px;padding:5px 10px;cursor:pointer;font-size:12px;line-height:1.2;color:#b77710}
.gnt-winder-addon-status{display:block;margin:4px 0 0 24px;font-size:11px;color:#777}
.gnt-winder-addon-status.is-configured{color:#16851e;font-weight:700}
.gnt-winder-addon .gnt-winder-root{margin:0;padding:0}
.gnt-winder-addon.is-enabled .gnt-winder-addon-check{font-weight:700}

@media(max-width:850px){
  .gnt-winder-dialog{inset:1vh 1vw}
  .gnt-winder-main{grid-template-columns:1fr;grid-template-rows:260px 1fr}
  .gnt-winder-panel{border-right:0;border-bottom:1px solid #ddd}
  .gnt-winder-toolbar{max-height:132px;overflow:auto}
  .gnt-winder-foot span{display:none}
  .gnt-winder-addon-status{margin-left:24px}
}

/* v0.5 free-position cut-line controls */
.gnt-cut-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 8px;margin-top:7px}
.gnt-cut-grid label{margin:0!important}
.gnt-cut-handle{fill:#fff;stroke:#b77710;stroke-width:3;cursor:grab;vector-effect:non-scaling-stroke}
.gnt-cut-handle.is-selected{fill:#fff4df;stroke:#d60000}
.gnt-cut-handle-label{font-size:12px;font-weight:700;fill:#9a650b;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.gnt-cut-pending{fill:#fff4df;stroke:#b77710;stroke-width:3;vector-effect:non-scaling-stroke;pointer-events:none}

/* v0.6 drawing import + freehand sketch tools */
.gnt-drawing-section .gnt-drawing-status,.gnt-freehand-summary{font-size:11px;font-weight:700;color:#555;margin:0 0 8px}
.gnt-drawing-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 8px;margin-top:8px}
.gnt-drawing-grid label{margin:0!important}
.gnt-drawing-buttons{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.gnt-drawing-buttons button{border:1px solid #bbb;background:#fff;border-radius:4px;padding:6px 8px;font-size:11px;cursor:pointer}
.gnt-drawing-image{pointer-events:none}
.gnt-freehand-stroke{fill:none;stroke:#2c72b8;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}
.gnt-freehand-stroke.is-last{stroke-width:3.5}
.gnt-calibration-point{fill:#fff;stroke:#7b3fc6;stroke-width:3;vector-effect:non-scaling-stroke;pointer-events:none}
.gnt-calibration-line{stroke:#7b3fc6;stroke-width:2;stroke-dasharray:7 5;vector-effect:non-scaling-stroke;pointer-events:none}
.gnt-outline{fill:rgba(240,240,240,.18)}


/* v0.7 cut-off shading + selected point-to-base offsets */
.gnt-cutoff-shade{fill:rgba(120,120,120,.42);pointer-events:none}
.gnt-offset-line{stroke:#1b6fd1;stroke-width:2;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none}
.gnt-offset-tick{stroke:#1b6fd1;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}
.gnt-offset-text{fill:#1b6fd1;font-size:17px;font-weight:800;dominant-baseline:middle;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round;pointer-events:none}

.gnt-freehand-settings{display:grid;grid-template-columns:1fr;gap:3px;margin:8px 0;padding:8px;border:1px solid #ddd;border-radius:5px;background:#fff}
.gnt-freehand-settings label{margin:3px 0!important}
.gnt-freehand-settings input[type="number"]{width:100%;box-sizing:border-box;padding:6px}
.gnt-freehand-settings .gnt-checkline{margin:5px 0!important}


/* v1.0 base editing visibility + multi-stroke sketch conversion */
.gnt-base-guide{stroke:#6f8fa8;stroke-width:2.8;stroke-dasharray:10 7}
.gnt-base-dim-line{stroke:#d88900;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}
.gnt-base-dim-text{fill:#c87800;font-size:20px;font-weight:800;dominant-baseline:middle;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round;pointer-events:none}
.gnt-point-hit{fill:transparent;stroke:none;cursor:grab}
.gnt-point{stroke-width:2.5}
.gnt-freehand-stroke{opacity:.9}

/* v1.1 point removal + larger viewing mode */
.gnt-small-btn{border:1px solid #bbb;background:#fff;border-radius:4px;padding:6px 8px;font-size:11px;cursor:pointer;margin-top:6px}
.gnt-winder-root.gnt-large-view .gnt-winder-main{grid-template-columns:1fr}
.gnt-winder-root.gnt-large-view .gnt-winder-panel{display:none}
.gnt-winder-root.gnt-large-view .gnt-winder-canvas-wrap{min-height:82vh}
.gnt-winder-root.gnt-large-view .gnt-dim-text{font-size:22px}
.gnt-winder-root.gnt-large-view .gnt-base-dim-text{font-size:24px}
.gnt-winder-root.gnt-large-view .gnt-point-label{font-size:21px}
.gnt-winder-root.gnt-large-view .gnt-offset-text{font-size:20px}


/* v1.2 rounded outside edges */
.gnt-outline-fill{fill:rgba(240,240,240,.18);stroke:none;pointer-events:none}
.gnt-edge-visible{fill:none;stroke:#111;stroke-width:3;vector-effect:non-scaling-stroke}
.gnt-edge-controls{padding:6px 0 0}


.gnt-toolbar-template{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#444}
.gnt-toolbar-template select{height:34px;padding:4px 8px;border:1px solid #ccc;border-radius:6px;background:#fff;min-width:150px}


.gnt-template-piece{stroke-width:2;vector-effect:non-scaling-stroke;cursor:grab;pointer-events:all;touch-action:none}
.gnt-template-piece.is-selected{stroke:#000;stroke-width:4}
.gnt-template-piece-label{font-size:14px;font-weight:700;fill:#111;pointer-events:none}
.gnt-template-dim-line{stroke:#8e24aa;stroke-width:1.5;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}
.gnt-template-piece-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gnt-toolbar-template{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#444}
.gnt-toolbar-template select{height:34px;padding:4px 8px;border:1px solid #ccc;border-radius:6px;background:#fff;min-width:150px}


/* v1.6 draggable template pieces and Winder 14-style kite */
.gnt-template-piece{cursor:grab;pointer-events:all;touch-action:none}
.gnt-template-piece:active{cursor:grabbing}
.gnt-piece-dimension-summary{margin-top:10px;border:1px solid #ddd;border-radius:5px;overflow:hidden;background:#fff}
.gnt-piece-dimension-summary table{width:100%;border-collapse:collapse;font-size:11px}
.gnt-piece-dimension-summary th,.gnt-piece-dimension-summary td{padding:5px 7px;border-bottom:1px solid #eee;text-align:left}
.gnt-piece-dimension-summary tr:last-child th,.gnt-piece-dimension-summary tr:last-child td{border-bottom:0}
.gnt-piece-dimension-summary th{width:46%;font-weight:700}
.gnt-kite-piece-controls{margin-top:8px;padding-top:8px;border-top:1px solid #ddd}

.gnt-winder-root.gnt-large-view .gnt-template-piece-label{font-size:17px}
.gnt-winder-root.gnt-large-view .gnt-winder-svg{background-size:32px 32px}
