.jstudio.surface-editor .js-flows,.surface-editor .js-tools>.js-template-only:nth-of-type(3),.surface-editor .js-deco-options,.surface-editor .js-live-size>label:nth-child(2),.surface-editor .js-manip,.surface-editor .js-under>span,.surface-editor .js-note{display:none!important}
.surface-editor.own .surface-library,.surface-editor.own .surface-toolbar{display:none!important}
.surface-editor .surface-levels{display:flex;border-bottom:1px solid #d5dacf;gap:4px;padding:10px;flex-wrap:wrap}
.surface-editor .surface-levels button{flex:1;min-height:48px;background:#f4f5ef;border:1px solid #d5dacf;border-radius:7px;padding:8px;color:#203736;cursor:pointer}
.surface-editor .surface-levels button[aria-pressed=true]{background:#203736;color:white}
.surface-editor .surface-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;background:#fff;padding:10px;border:1px solid #d5dacf;border-radius:10px;margin:8px 0}
.surface-editor .surface-toolbar>span{width:100%;font-weight:600}
.surface-editor .surface-toolbar button,.surface-editor .surface-library button{min-width:44px;min-height:44px;border:1px solid #ccd5cf;border-radius:7px;background:#eef1eb;color:#153938;padding:8px;cursor:pointer}
.surface-editor .surface-toolbar button:disabled{opacity:.45;cursor:default}
.surface-editor .surface-library{padding-top:12px}
.surface-editor .surface-library>input,.surface-editor .surface-library>select{width:100%;margin:5px 0;padding:10px;border:1px solid #ccd5cf;border-radius:6px;font-size:16px}
.surface-editor .surface-library>button{width:100%;background:#203736;color:#fff}
.surface-editor .surface-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px}
.surface-editor .surface-catalog img{width:100%;height:65px;object-fit:contain}
.surface-editor .surface-precise{display:flex;gap:8px;width:100%;flex-wrap:wrap}
.surface-editor .surface-precise label{flex:1;min-width:100px;margin:0}
.surface-editor .surface-note{width:100%;font-size:12px;line-height:1.5;margin:0;color:#41544f}
.surface-editor .surface-note.error{color:#a12222}
.surface-editor .js-live-size{grid-template-columns:1fr}
.surface-editor canvas{touch-action:none}
.surface-editor .js-stage{height:clamp(340px,62vh,680px);aspect-ratio:auto;min-height:0}
.surface-editor .surface-clear{margin-left:auto}
.surface-editor .surface-elements{display:flex;flex:0 0 100%;gap:5px;max-width:100%;overflow-x:auto;padding:3px 0 6px;scrollbar-width:thin}
.surface-editor .surface-elements button{flex:none;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.surface-editor .surface-elements button[aria-pressed=true]{background:#203736;color:#fff;border-color:#203736}
.surface-editor [data-element-action=delete]{color:#9d2828;border-color:#d9b5b5}
@media(max-width:800px){
 .surface-editor .js-layout{display:flex;flex-direction:column}
 .surface-editor .js-work{order:0;width:100%;padding:10px;position:sticky;top:0;z-index:5;background:#eef0e9}
 .surface-editor .js-stage{height:clamp(180px,30vh,280px)!important;min-height:0;aspect-ratio:auto}
 .surface-editor .js-stage canvas{width:100%!important;height:100%!important}
 .surface-editor .js-tools{order:1;width:100%;padding:12px}
 .surface-editor .js-options{order:2;width:100%;padding:12px}
 .surface-editor .surface-toolbar{padding:6px;gap:5px}
 .surface-editor .surface-note{display:none}
 .surface-editor .js-viewbar>span,.surface-editor .js-under,.surface-editor .js-measure{display:none}
 .surface-editor .js-template-cards{display:flex;overflow-x:auto}
 .surface-editor .js-template-card{min-width:100px;max-width:130px}
 .surface-editor .surface-catalog{grid-template-columns:repeat(4,minmax(0,1fr))}
 .surface-editor .surface-levels button{font-size:12px;padding:6px}
 .surface-editor .js-status{padding:6px;font-size:12px;margin-top:4px}
 .surface-editor .js-live-size{margin-top:5px}
 .surface-editor .js-live-size label{margin-bottom:0}
 .surface-editor .js-live-size label>span{display:none}
 .surface-editor .js-status{max-height:3.3em;overflow:auto}
}
.surface-symbol-library summary,.surface-drawing summary{cursor:pointer;font-weight:600;padding:12px 0}.surface-symbol-library>select,.surface-symbol-library>input{width:100%;margin:5px 0}.surface-pager{display:flex;align-items:center;justify-content:space-between;gap:6px}.surface-draw-canvas{width:100%;aspect-ratio:1;border:1px solid #a9b5b0;background:white;touch-action:none;display:block}.surface-draw-controls{display:flex;flex-wrap:wrap;gap:8px}.surface-draw-controls label{width:100%;font-size:12px}.surface-draw-controls input{width:100%}.surface-drawing p{font-size:12px}.surface-toolbar>select{padding:9px;border:1px solid #bdc9c4;border-radius:6px;max-width:100%}.surface-pager button{min-width:40px;min-height:40px}.surface-catalog{max-height:360px;overflow:auto}.surface-symbol-library:not([open])>*:not(summary),.surface-drawing:not([open])>*:not(summary){display:none}

@media(max-width:800px){.surface-editor .surface-note.error,.surface-editor .surface-note.engraving{display:block;font-size:11px}.surface-editor:has(.surface-drawing[open]) .js-work{position:static}}
.surface-editor .surface-draw-viewport{overflow:auto;max-height:460px;background:#e3e7e4;border:1px solid #adb9b2}.surface-editor .surface-draw-canvas{max-width:none!important;height:auto!important;min-width:100%;border:0}.surface-editor .surface-draw-close{display:none}.jst-drawing-open{overflow:hidden}.surface-editor .surface-drawing-expanded{position:fixed;inset:12px;z-index:100000;background:#f8f9f5;box-shadow:0 0 0 100vmax #102925bb;border-radius:12px;padding:18px;overflow:auto;max-width:1200px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:12px}.surface-editor .surface-drawing-expanded>summary{grid-column:1/-1;pointer-events:none}.surface-editor .surface-drawing-expanded .surface-draw-viewport{max-height:calc(100dvh - 150px);align-self:start}.surface-editor .surface-drawing-expanded .surface-draw-controls{align-content:start;max-height:calc(100dvh - 150px);overflow:auto}.surface-editor .surface-drawing-expanded .surface-draw-close{display:block;background:#203736;color:white}.surface-editor .surface-drawing-expanded>p{grid-column:1/-1}.surface-draw-controls input[type=file]{max-width:100%;font-size:12px}@media(max-width:650px){.surface-editor .surface-drawing-expanded{inset:4px;padding:10px;display:block}.surface-editor .surface-drawing-expanded .surface-draw-viewport{max-height:55dvh}.surface-editor .surface-drawing-expanded .surface-draw-controls{max-height:none}.surface-editor .surface-drawing-expanded .surface-draw-close{position:sticky;top:0;z-index:2}}
/* details' internal content box differs between browsers; floats avoid relying
   on grid participation of its anonymous content wrapper. */
.surface-editor .surface-drawing-expanded{display:block}.surface-editor .surface-drawing-expanded>.surface-draw-viewport{float:left;width:calc(100% - 290px);box-sizing:border-box}.surface-editor .surface-drawing-expanded>.surface-draw-controls{float:right;width:270px;box-sizing:border-box}.surface-editor .surface-drawing-expanded>p{clear:both;padding-top:12px}@media(max-width:650px){.surface-editor .surface-drawing-expanded>.surface-draw-viewport,.surface-editor .surface-drawing-expanded>.surface-draw-controls{float:none;width:100%}}
.surface-editor .surface-touchbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:8px 0}.surface-editor .surface-touchbar button{min-height:42px;border:1px solid #bdc9c4;background:#eef1eb;border-radius:7px;padding:8px 12px}.surface-editor .surface-touchbar button[aria-pressed=true]{background:#203736;color:#fff;border-color:#203736}.surface-editor .surface-touchbar small{flex:1 0 100%;font-size:11px;color:#52635d}.surface-editor .surface-fingerprint-tools{width:100%;border-top:1px solid #d5dacf;margin-top:8px;padding-top:10px}.surface-editor .surface-fingerprint-tools>strong{display:block;margin-bottom:5px}.surface-editor .surface-fingerprint-tools p{margin:4px 0 8px}.surface-editor .surface-fingerprint-tools>button{width:100%;background:#eef1eb}.surface-editor .surface-fingerprint-tools label{display:block;width:100%;margin:8px 0}.surface-editor .surface-fingerprint-tools small{display:block;font-size:11px;color:#52635d}.surface-editor .surface-draw-viewport{overscroll-behavior:contain}
@media(max-width:650px){.surface-editor .surface-drawing-expanded>.surface-touchbar{position:sticky;top:0;z-index:4;background:#f8f9f5;padding:6px 0}.surface-editor .surface-touchbar small{display:none}}

/* 0.10.2: admin-configurable client levels replace hard-coded basic/advanced hiding. */
.jstudio .jst-feature-hidden{display:none!important}

/* 0.10.5: mirror controls + camera fingerprint capture. */
.surface-editor .surface-mirror-tools{display:inline-flex;gap:6px;flex-wrap:wrap}
.surface-editor .surface-mirror-tools button[aria-pressed=true]{background:#203736;color:#fff;border-color:#203736}
.jst-fingerprint-camera{position:fixed;inset:0;z-index:100500;background:#0b1715dc;display:flex;align-items:center;justify-content:center;padding:14px}
.jst-fingerprint-camera__box{width:min(680px,100%);max-height:96dvh;overflow:auto;background:#f8f9f5;border-radius:14px;padding:16px;box-shadow:0 20px 70px #0007}
.jst-fingerprint-camera__box>strong{display:block;font-size:18px;margin-bottom:4px}.jst-fingerprint-camera__box>p{font-size:12px;color:#4c5c57}
.jst-fingerprint-camera__preview{position:relative;overflow:hidden;background:#07110f;border-radius:12px;aspect-ratio:1}
.jst-fingerprint-camera__preview video{width:100%;height:100%;object-fit:cover;display:block}
.jst-fingerprint-camera__preview span{position:absolute;left:11%;right:11%;top:11%;bottom:11%;border:2px dashed #fff9;border-radius:42% 42% 48% 48%;box-shadow:0 0 0 100vmax #0003;pointer-events:none}
.jst-fingerprint-camera__actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.jst-fingerprint-camera__actions button{min-height:46px;flex:1;border:1px solid #bdc9c4;border-radius:8px;padding:9px 12px;background:#eef1eb;color:#173f40}.jst-fingerprint-camera__actions [data-camera-shot]{background:#203736;color:#fff}
@media(max-width:650px){.jst-fingerprint-camera{padding:5px}.jst-fingerprint-camera__box{padding:10px;border-radius:10px}.jst-fingerprint-camera__actions button{flex:1 0 45%}}
.surface-editor .surface-toolbar>.surface-mirror-tools{width:auto!important;font-weight:400!important}
/* 0.10.6: fingerprint is an independent client-level panel, not nested inside Drawing. */
.surface-editor .surface-fingerprint-tools{width:100%;box-sizing:border-box;border:1px solid #d5dacf;border-radius:8px;margin:10px 0;background:#fff;padding:0 12px}
.surface-editor .surface-fingerprint-tools>summary{cursor:pointer;font-weight:600;padding:12px 0}
.surface-editor .surface-fingerprint-body{padding:0 0 12px}
.surface-editor .surface-fingerprint-body p{font-size:12px;margin:2px 0 9px}
.surface-editor .surface-fingerprint-body>button{width:100%;min-height:42px;margin:4px 0;background:#eef1eb;border:1px solid #bdc9c4;border-radius:7px;padding:8px 10px}
.surface-editor .surface-fingerprint-body>[data-fp-place]{background:#203736;color:#fff;border-color:#203736;margin-top:9px}
.surface-editor .surface-fingerprint-body label{display:block;width:100%;box-sizing:border-box;margin:8px 0;font-size:12px}
.surface-editor .surface-fingerprint-body input[type=range],.surface-editor .surface-fingerprint-body input[type=file]{width:100%;box-sizing:border-box;margin-top:4px}
.surface-editor .surface-fingerprint-body small{display:block;font-size:11px;color:#52635d;margin-top:7px}

/* 0.10.7: fingerprint confirmation/cleanup and explicit mobile workspace modes. */
.surface-editor .surface-fingerprint-result{margin:10px 0;border:1px solid #bdc9c4;border-radius:9px;padding:8px;background:#f4f6f2}
.surface-editor .surface-fingerprint-result[hidden]{display:none!important}
.surface-editor .surface-fingerprint-result canvas{display:block;width:100%;max-width:320px;aspect-ratio:1;margin:auto;background:#fff;border-radius:7px;image-rendering:auto}
.surface-editor .surface-fingerprint-result strong{display:block;text-align:center;margin-top:6px;font-size:12px;color:#23643b}
.surface-editor .surface-fingerprint-body>[data-fp-place]:disabled{opacity:.45;cursor:not-allowed}
.jst-fingerprint-camera__preview canvas{width:100%;height:100%;object-fit:cover;display:block;background:#fff}
.jst-fingerprint-camera__box [data-camera-info].is-success{color:#23643b;font-weight:700}
.jst-fingerprint-camera__actions [data-camera-use]{background:#23643b;color:#fff;border-color:#23643b}
.jst-fingerprint-camera__actions [data-camera-retake]{background:#fff}
.surface-editor .surface-mobile-modes{display:none;gap:6px;align-items:center;flex-wrap:wrap;padding:7px 0 3px}
.surface-editor .surface-mobile-modes button{min-height:42px;border:1px solid #bdc9c4;border-radius:8px;padding:8px 11px;background:#eef1eb;color:#173f40}
.surface-editor .surface-mobile-modes button[aria-pressed=true]{background:#203736;color:#fff;border-color:#203736}
.surface-editor .surface-mobile-modes small{flex:1 0 100%;font-size:11px;color:#52635d;line-height:1.35}
@media(max-width:800px),(pointer:coarse){.surface-editor .surface-mobile-modes{display:flex}}

/* 0.10.8: cross-device fingerprint transfer (desktop configurator <-> phone camera). */
.jst-phone-pair{position:fixed;inset:0;z-index:100600;background:#0b1715dc;display:flex;align-items:center;justify-content:center;padding:14px}
.jst-phone-pair__box{width:min(720px,100%);max-height:96dvh;overflow:auto;background:#f8f9f5;color:#203736;border-radius:14px;padding:18px;box-shadow:0 20px 70px #0007}
.jst-phone-pair__box>strong{display:block;font-size:20px;margin-bottom:4px}.jst-phone-pair__box>p{font-size:12px;color:#52635d;line-height:1.45}
.jst-phone-pair__grid{display:grid;grid-template-columns:240px 1fr;gap:18px;align-items:center;margin:14px 0}
.jst-phone-pair__qr{display:flex;flex-direction:column;gap:7px;align-items:center}.jst-phone-pair__qr img{display:block;width:220px;height:220px;max-width:100%;background:#fff;border:1px solid #d5dacf;border-radius:10px;padding:8px}.jst-phone-pair__qr small{font-size:10px;text-align:center;color:#68756f;line-height:1.35}.jst-phone-pair__qr.is-qr-error:before{content:'QR nav pieejams / QR unavailable';display:grid;place-items:center;width:220px;max-width:100%;aspect-ratio:1;background:#fff;border:1px dashed #bdc9c4;border-radius:10px;font-size:12px;color:#68756f;text-align:center;padding:10px}
.jst-phone-pair__code{display:flex;flex-direction:column;gap:8px;align-items:stretch}.jst-phone-pair__code>span{font-size:12px;color:#52635d}.jst-phone-pair__code>b{font:700 30px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.16em;background:#fff;border:1px solid #bdc9c4;border-radius:10px;padding:14px;text-align:center}.jst-phone-pair__code button,.jst-phone-pair__box>[data-phone-close]{min-height:44px;border:1px solid #bdc9c4;background:#eef1eb;color:#173f40;border-radius:8px;padding:8px 12px}.jst-phone-pair__code a{display:block;text-align:center;font-size:12px;color:#173f40;text-decoration:underline;padding:5px}.jst-phone-pair__state{min-height:20px;font-weight:600;color:#23643b}.jst-phone-pair__box>[data-phone-close]{width:100%}
@media(max-width:620px){.jst-phone-pair{padding:6px}.jst-phone-pair__box{padding:12px}.jst-phone-pair__grid{grid-template-columns:1fr}.jst-phone-pair__qr img{width:190px;height:190px}.jst-phone-pair__code>b{font-size:24px}}

.surface-editor .surface-fingerprint-result strong.is-warn{color:#9a5b18}
.surface-editor .surface-fingerprint-body select[data-fp-finish]{display:block;width:100%;min-height:40px;margin-top:4px;border:1px solid #bdc9c4;border-radius:7px;background:#fff;padding:6px 8px}
.surface-editor .surface-fingerprint-body [data-fp-status]{line-height:1.45}
/* 0.10.14 Auto-fit + portrait tools */
.jst-safe-guide{position:absolute;left:50%;top:50%;width:58%;aspect-ratio:1;transform:translate(-50%,-50%);border:2px dashed rgba(174,121,74,.85);border-radius:50%;pointer-events:none;z-index:5;box-shadow:0 0 0 999px rgba(255,255,255,.025)}
.jst-safe-guide.pendant{width:70%}.jst-safe-guide span:after{content:'SAFE';position:absolute;right:4px;top:4px;font-size:9px;background:#fff9;padding:2px 4px;border-radius:3px}
.surface-portrait-tools,.surface-phone-import-tools{border:1px solid #d9ddd6;border-radius:8px;padding:10px;margin-top:12px;background:#fff}.surface-portrait-tools summary,.surface-phone-import-tools summary{font-weight:700;cursor:pointer}.surface-portrait-body{display:grid;gap:9px;margin-top:10px}.surface-portrait-body label{display:grid;gap:4px}.jst-portrait-blank,.jst-phone-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.jst-portrait-preview{border:1px solid #d9ddd6;border-radius:8px;padding:8px;background:#f6f7f2}.jst-portrait-preview canvas{display:block;width:100%;height:auto;background:#fff;border-radius:5px}.jst-portrait-preview strong{display:block;margin-top:5px}.jst-portrait-preview .ok{color:#28633d}.jst-portrait-preview .warn{color:#9d5d12}.jst-universal-phone .jst-phone-pair__grid img{max-width:220px;width:100%;height:auto}
@media(max-width:620px){.jst-portrait-blank,.jst-phone-mode-grid{grid-template-columns:1fr}.jst-safe-guide{width:64%}}

/* 0.10.24 portrait editor expansion */
.surface-portrait-tools.jst-portrait-expanded{position:fixed!important;inset:3vh 4vw!important;z-index:100000!important;overflow:auto!important;max-height:94vh!important;margin:0!important;padding:18px!important;background:#fff!important;border:1px solid #cbd2ca!important;border-radius:14px!important;box-shadow:0 24px 70px #13251f55!important}.surface-portrait-tools.jst-portrait-expanded>summary{font-size:18px;margin-bottom:8px}.surface-portrait-tools.jst-portrait-expanded .surface-portrait-body{max-width:920px;margin:0 auto;gap:12px}.surface-portrait-tools.jst-portrait-expanded .jst-portrait-preview{max-width:680px;width:min(680px,88vw);margin:0 auto;padding:12px}.surface-portrait-tools.jst-portrait-expanded .jst-portrait-preview canvas{width:100%;max-height:68vh;object-fit:contain}.surface-portrait-tools [data-portrait-expand]{width:100%}@media(max-width:700px){.surface-portrait-tools.jst-portrait-expanded{inset:1vh 2vw!important;padding:12px!important}.surface-portrait-tools.jst-portrait-expanded .jst-portrait-preview{width:100%}}

/* 0.11.7 server AI Photo Relief */
.jst-portrait-ai{border:1px solid #cbd8d3;border-radius:10px;padding:12px;background:#f5f8f6;display:grid;gap:9px}.jst-portrait-ai__head{display:flex;justify-content:space-between;gap:10px;align-items:center}.jst-portrait-ai__head strong{font-size:15px}.jst-portrait-ai__head span{font:600 11px/1.2 ui-monospace,monospace;background:#203b35;color:#fff;padding:4px 7px;border-radius:999px}.jst-portrait-ai label{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center}.jst-portrait-ai label select,.jst-portrait-ai label input[type=number]{grid-column:1/-1}.jst-portrait-ai label input[type=range]{min-width:0;width:100%}.jst-portrait-ai output{min-width:3.5em;text-align:right;font-variant-numeric:tabular-nums}.jst-portrait-ai [data-portrait-ai]{min-height:44px;font-weight:700}.jst-portrait-ai__progress{height:5px;border-radius:999px;overflow:hidden;background:#dce5e1}.jst-portrait-ai__progress i{display:block;width:36%;height:100%;background:#2a6658;animation:jst-ai-progress 1.1s ease-in-out infinite alternate}@keyframes jst-ai-progress{from{transform:translateX(-15%)}to{transform:translateX(190%)}}.jst-workspace-overlay[data-workspace=photo] .jst-portrait-ai{background:#fff}.jst-workspace-overlay[data-workspace=photo] .surface-portrait-body{max-width:none}

/* Processing diagnostics - administrator development view */
.jst-processing-diag{
 border:1px solid #c8d2cd;
 border-radius:8px;
 padding:8px 10px;
 margin-top:8px;
 background:#f3f6f4;
}
.jst-processing-diag summary{
 cursor:pointer;
 font-weight:700;
}
.jst-processing-diag pre{
 margin:8px 0 0;
 padding:9px;
 border-radius:6px;
 background:#18221f;
 color:#e9f2ee;
 font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;
 white-space:pre-wrap;
 overflow:auto;
}
