/* Scoped, light translucent surface tool. Also used by the Android canvas;
   numerical inputs in the app use its native floating-tool panel. */
.curve-grips{position:absolute;inset:0;pointer-events:none;z-index:8;overflow:hidden}.curve-grips[hidden],.curve-panel[hidden],.curve-badge[hidden],.curve-grips [hidden]{display:none!important}.curve-grips>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.curve-baseline{fill:none;stroke:#256397;stroke-dasharray:4 4;stroke-width:1.2;opacity:.65}.curve-stem{fill:none;stroke:#156dab;stroke-width:2}.curve-anchor,.curve-centre{position:absolute;width:9px;height:9px;border-radius:50%;background:#fff;border:2px solid #2b719e;transform:translate(-50%,-50%);box-shadow:0 1px 4px #27496040}.curve-centre{width:13px;height:13px;background:#157ec4;border-color:white}.curve-grips [data-curve-grip]{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:46px;height:46px;padding:5px;border:1px solid #5ca5d6;border-radius:50%;color:#09639f;background:#f7fcfff2;box-shadow:0 3px 12px #30557540;touch-action:none;cursor:grab}.curve-grips [data-curve-grip] svg{width:30px;height:30px;fill:currentColor;transform:rotate(var(--curve-angle,0rad))}.curve-grips [data-curve-grip]:hover,.curve-grips [data-curve-grip]:focus-visible{background:#d9eeff;border-color:#087dc4;outline:2px solid #71bcf3;outline-offset:2px}.curve-grips.is-dragging [data-curve-grip]{cursor:grabbing;background:#d1eaff}.curve-grips [data-curve-grip]:disabled{opacity:.6;cursor:wait}.curve-readout{position:absolute;transform:translateX(-50%);padding:6px 10px;border:1px solid #9bc2dc;border-radius:7px;background:#ffffffed;color:#173952;white-space:nowrap;font:600 12px/1.4 system-ui,sans-serif;box-shadow:0 2px 8px #38577620}
.curve-badge{position:absolute;left:10px;right:10px;bottom:12px;z-index:10;display:flex;align-items:center;gap:8px;padding:10px 12px;background:rgba(249,253,255,.91);backdrop-filter:blur(10px);border:1px solid #aacbe1;border-radius:12px;box-shadow:0 4px 16px #24425c24;color:#17374f;font:12px/1.45 system-ui,sans-serif;pointer-events:auto}.curve-badge>div{flex:1;min-width:0}.curve-badge strong{display:block;font-size:13px}.curve-badge span{display:block}.curve-badge button,.curve-panel button{background:#f8fbff;color:#145781;border:1px solid #adc8dd;border-radius:8px;padding:8px 10px;min-height:36px;font:600 12px system-ui,sans-serif;cursor:pointer}.curve-badge button:hover,.curve-panel button:hover{background:#e4f2ff}.curve-badge.has-error,.curve-panel .has-error{color:#a32c24}.curve-panel{position:absolute;z-index:14;right:12px;top:12px;width:min(340px,calc(100% - 24px));max-height:calc(100% - 115px);overflow-y:auto;overscroll-behavior:contain;background:rgba(249,253,255,.92);backdrop-filter:blur(12px);border:1px solid #b8d0e1;border-radius:14px;box-shadow:0 12px 34px #22425e35;padding:14px;color:#203b52;font:13px/1.45 system-ui,sans-serif;pointer-events:auto}.curve-panel header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.curve-panel header strong{font-size:16px}.curve-panel header button{font-size:22px;line-height:1;min-width:32px;padding:3px}.curve-panel label{display:flex;flex-direction:column;gap:5px;font-weight:600}.curve-panel select,.curve-panel input{width:100%;box-sizing:border-box;padding:9px;border:1px solid #a7c5d9;background:#fff;color:#1b354a;border-radius:7px;font:inherit;min-height:40px}.curve-panel input:focus,.curve-panel select:focus{outline:2px solid #72b8e2;outline-offset:1px}.curve-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.curve-panel p{font-size:12px;color:#4b6578;margin:10px 0}.curve-panel .curve-panel-status{font-weight:600;color:#1d6295}.curve-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.curve-panel [data-curve-apply]{background:#087ac2;color:#fff;border-color:#087ac2}.curve-panel [data-curve-apply]:hover{background:#0566a4}.curve-panel button:disabled{opacity:.6;cursor:wait}
@media(pointer:coarse){.curve-grips [data-curve-grip]{width:52px;height:52px}.curve-badge button{min-height:42px}.curve-anchor{width:11px;height:11px}}
@media(max-width:600px){.curve-badge{left:6px;right:6px;bottom:7px;padding:8px;gap:5px;flex-wrap:wrap}.curve-badge>div{flex-basis:100%}.curve-badge button{flex:1}.curve-panel{top:7px;right:7px;width:calc(100% - 42px);padding:13px;max-height:calc(100% - 140px)}.curve-panel input,.curve-panel select{font-size:16px}.curve-readout{font-size:12px}}
