.jtpp-app{--jtpp-green:#176b4d;--jtpp-dark:#18332b;--jtpp-border:#d8e2dd;max-width:1100px;margin:24px auto;padding:clamp(12px,2vw,24px);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#20332c;background:#f7faf8;border:1px solid var(--jtpp-border);border-radius:18px;box-sizing:border-box}
.jtpp-app *{box-sizing:border-box}.jtpp-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.jtpp-header h2{font-size:clamp(24px,4vw,34px);line-height:1.1;margin:3px 0 7px;color:var(--jtpp-dark)}.jtpp-header p{margin:0;color:#60736b}.jtpp-eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--jtpp-green)}.jtpp-version{font-size:12px;color:#63776e;background:#e8f0eb;padding:7px 10px;border-radius:20px;white-space:nowrap}
.jtpp-panel{background:#fff;border:1px solid var(--jtpp-border);border-radius:13px;padding:13px;margin-bottom:12px}.jtpp-settings{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.jtpp-app label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;min-width:150px}.jtpp-app select,.jtpp-app input{font:inherit;font-size:15px;min-height:44px;border:1px solid #bacbc2;border-radius:9px;padding:8px 10px;background:#fff;color:#20332c;max-width:100%}.jtpp-custom-dims{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.jtpp-custom-dims[hidden],.jtpp-plant-choice[hidden],.jtpp-jump-choice[hidden]{display:none!important}
.jtpp-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.jtpp-tool{min-height:58px;min-width:94px;flex:1 1 100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid #cbd9d1;border-radius:12px;background:#fff;color:#244238;font:inherit;font-size:21px;cursor:pointer;touch-action:manipulation}.jtpp-tool span{font-size:12px;font-weight:700}.jtpp-tool.is-active{background:#176b4d;color:#fff;border-color:#176b4d;box-shadow:0 0 0 2px #b7ddc9}.jtpp-button{min-height:44px;border:1px solid #c6d5cc;border-radius:10px;padding:10px 14px;font:inherit;font-weight:750;cursor:pointer;touch-action:manipulation}.jtpp-primary{background:#176b4d;color:#fff;border-color:#176b4d}.jtpp-secondary{background:#fff;color:#244238}.jtpp-danger{background:#fff1ef;color:#9d2f24;border-color:#e6b8b2}.jtpp-button:focus-visible,.jtpp-tool:focus-visible{outline:3px solid #78bda0;outline-offset:2px}.jtpp-addrow{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.jtpp-addrow label{min-width:180px}.jtpp-hint{font-size:13px;color:#63776e;flex:1 1 180px;align-self:center}.jtpp-canvas-wrap{width:100%;background:#fff;border:1px solid var(--jtpp-border);border-radius:14px;overflow:hidden;position:relative;touch-action:none}.jtpp-canvas{display:block;width:100%;height:auto;min-height:260px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;outline:none}.jtpp-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.jtpp-stats>div{background:#fff;border:1px solid var(--jtpp-border);border-radius:12px;padding:12px}.jtpp-stat-label{display:block;font-size:12px;color:#63776e;margin-bottom:5px}.jtpp-stats strong{font-size:clamp(21px,4vw,29px);color:#176b4d}.jtpp-stat-note{grid-column:1/-1;font-size:12px;line-height:1.5;color:#65776e!important;background:#edf3ef!important}.jtpp-actions{display:flex;flex-wrap:wrap;gap:8px}.jtpp-footer-note{font-size:12px;color:#63776e;margin:13px 0 0}.jtpp-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:600px){.jtpp-app{margin:12px auto;padding:10px;border-radius:12px}.jtpp-header{align-items:flex-start}.jtpp-version{font-size:10px}.jtpp-settings{display:grid;grid-template-columns:1fr 1fr}.jtpp-settings label{min-width:0}.jtpp-custom-dims{grid-column:1/-1}.jtpp-tool{min-width:calc(33.333% - 8px);flex:1 1 calc(33.333% - 8px);min-height:62px}.jtpp-addrow label{flex:1 1 45%;min-width:0}.jtpp-addrow .jtpp-button{flex:1 1 100%}.jtpp-hint{flex-basis:100%}.jtpp-canvas{min-height:230px}.jtpp-actions .jtpp-button{flex:1 1 calc(50% - 8px);padding:10px 8px;font-size:13px}.jtpp-stats{gap:7px}.jtpp-stats>div{padding:10px}}

@media(max-width:600px){
.jtpp-canvas-wrap,.jtpp-canvas{touch-action:none;overscroll-behavior:contain}.jtpp-canvas{cursor:crosshair}

.jtpp-view-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 10px;color:#718279;font-size:13px}
.jtpp-view-controls .jtpp-button{min-height:42px;padding:9px 14px}
