/* The palette tool owns a stable colour system. Tool transparency never enters a page palette. */
.up-tool{--up-tool-opacity:.75;--up-tool-ink:#294239;--up-tool-muted:#607169;--up-tool-line:rgba(53,75,62,.2);--up-tool-accent:#2d6958;position:fixed;z-index:30000;width:272px;max-width:calc(100vw - 16px);box-sizing:border-box;pointer-events:auto;color:var(--up-tool-ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:12px;font-weight:400;line-height:1.4;text-align:left;color-scheme:light}
.up-tool *{box-sizing:border-box}.up-tool [hidden]{display:none!important}.up-panel{width:100%;max-height:calc(var(--up-viewport-height,100dvh) - 16px);overflow:hidden;overscroll-behavior:contain;border:1px solid rgba(64,80,68,.28);border-radius:12px;background:rgba(255,254,251,var(--up-tool-opacity));color:var(--up-tool-ink);box-shadow:0 8px 30px rgba(26,40,31,.14),0 2px 6px rgba(26,40,31,.06);isolation:isolate;font:inherit}
.up-tool .up-head{display:flex;align-items:center;gap:6px;padding:0 10px;height:40px;min-height:40px;position:relative;z-index:2;cursor:grab;touch-action:none;border-bottom:1px solid var(--up-tool-line);background:transparent;user-select:none}.up-tool .up-head.is-dragging{cursor:grabbing}.up-tool .up-drag-icon{font-size:17px;line-height:1}.up-tool h2{margin:0;font-size:13px;font-weight:600;white-space:nowrap}.up-live{margin-left:auto;white-space:nowrap;font-size:10px;color:#466658}.up-tool[data-previewing=true] .up-live:before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:#388771;margin-right:4px;vertical-align:middle}
.up-tool button,.up-tool input,.up-tool select{font:inherit;line-height:1.35;color:var(--up-tool-ink);border:1px solid var(--up-tool-line);border-radius:6px;background:rgba(255,255,255,.5);padding:5px 8px;min-width:0;min-height:28px;max-width:100%;box-shadow:none;text-transform:none;letter-spacing:normal;font-weight:400;outline-offset:2px}.up-tool button{cursor:pointer}.up-tool button:hover{border-color:#6c8b7c}.up-tool button:active{background:#edf2ee}.up-tool button:disabled{color:#707b75;cursor:wait}.up-tool button.secondary{color:#294239;background:rgba(255,255,255,.5)}.up-tool :focus-visible{outline:2px solid #287061}.up-tool .up-collapse,.up-tool .up-end{padding:0;border:0;background:transparent;height:28px;min-height:28px;border-radius:4px;flex:0 0 auto}.up-tool .up-collapse{font-size:10px;width:26px}.up-tool .up-end{font-size:19px;width:20px;margin-right:-5px}.up-tool .up-body{padding:10px 12px;overflow-wrap:anywhere;max-height:calc(var(--up-viewport-height,100dvh) - 58px);overflow:auto;overscroll-behavior:contain}
.up-selectors{display:grid;gap:6px}.up-tool .up-group-select{width:100%;height:28px;padding:3px 6px}.up-tool .up-field-select{width:100%;height:22px;min-height:22px;border:0;background:transparent;padding:1px 1px;font-weight:500}.up-picker{position:relative}.up-inheritance{display:block;font-size:10px;color:var(--up-tool-muted);line-height:1.4;margin-bottom:5px}.up-sv{position:relative;height:72px;border-radius:5px;cursor:crosshair;touch-action:none;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,transparent);box-shadow:inset 0 0 0 1px rgba(40,50,35,.12);overflow:hidden}.up-sv-handle{position:absolute;width:9px;height:9px;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(18,32,23,.6);pointer-events:none}.up-tool input[type=range]{appearance:none;-webkit-appearance:none;display:block;min-height:16px;height:16px;width:100%;padding:0;background:transparent;border:0;border-radius:0;cursor:pointer;accent-color:#648573;touch-action:pan-x}.up-tool input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:5px;background:rgba(52,69,57,.26)}.up-tool input[type=range]::-moz-range-track{height:4px;border-radius:5px;background:rgba(52,69,57,.26)}.up-tool input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:11px;height:11px;margin-top:-3.5px;background:#fff;border:1px solid #668674;border-radius:50%;box-shadow:0 1px 2px rgba(25,43,32,.15)}.up-tool input[type=range]::-moz-range-thumb{width:11px;height:11px;background:#fff;border:1px solid #668674;border-radius:50%}.up-tool input.up-hue{margin-top:6px}.up-tool input.up-hue::-webkit-slider-runnable-track{height:8px;background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}.up-tool input.up-hue::-moz-range-track{height:8px;background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}.up-tool input.up-hue::-webkit-slider-thumb{height:12px;width:7px;border:1.5px solid white;border-radius:3px;background:rgba(255,255,255,.3);box-shadow:0 0 0 1px rgba(18,32,23,.5);margin-top:-2px}.up-tool input.up-hue::-moz-range-thumb{height:12px;width:7px;border:1.5px solid white;border-radius:3px;background:rgba(255,255,255,.3)}
.up-value{display:flex;align-items:center;gap:7px;margin-top:6px;height:28px}.up-tool .up-swatch{position:relative;width:30px;flex:0 0 30px;height:28px;padding:0;overflow:hidden;background-color:#fff;background-image:conic-gradient(#d7dbd8 25%,#fff 0 50%,#d7dbd8 0 75%,#fff 0);background-size:8px 8px;border:1px solid rgba(75,82,68,.4)}.up-swatch-paint{position:absolute;inset:0;background:var(--up-swatch-color,#ffffff);pointer-events:none}.up-tool .up-hex{flex:1;width:100%;height:28px;font-variant-numeric:tabular-nums;letter-spacing:.2px;padding:3px 7px}.up-tool .up-hex[aria-invalid=true]{border-color:#b53931;outline-color:#b53931}.up-hex-label{font-size:10px;color:var(--up-tool-muted)}.up-opacity{display:grid;grid-template-columns:1fr auto;gap:1px 8px;margin-top:10px}.up-opacity label,.up-opacity output{font-size:11px;line-height:16px}.up-opacity input{grid-column:1/-1}.up-opacity output{font-variant-numeric:tabular-nums;color:#294f43}.up-tool details>summary{cursor:pointer;user-select:none;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:22px}.up-tool details>summary::-webkit-details-marker{display:none}.up-tool details>summary:after{content:"⌄";font-size:12px;line-height:1}.up-tool details[open]>summary:after{content:"⌃"}.up-consumers{margin-top:6px;padding-top:5px;border-top:1px solid var(--up-tool-line);font-size:10px;color:var(--up-tool-muted)}.up-consumers summary{min-height:18px!important}.up-tool p{margin:6px 0;font:inherit}.up-consumers p{font-size:10px;line-height:1.6;color:var(--up-tool-muted)}.up-more{margin-top:5px;color:#476053}.up-more>summary{font-size:11px}.up-settings{padding:5px 0;display:grid;gap:7px}.up-tool .up-editor-controls{display:flex;gap:5px;flex-wrap:wrap}.up-editor-controls button{flex:1;white-space:normal;font-size:11px}.up-tool button[aria-pressed=true]{color:#234c3d;border-color:#638675;background:#e7eee8}.up-tool .up-settings input[type=search],.up-tool .up-naming input,.up-tool .up-naming select{width:100%}.up-naming input,.up-naming select,.up-naming button{margin-top:5px}.up-fine,.up-naming,.up-catalog,.up-validation-details{border-top:1px solid var(--up-tool-line);padding-top:5px}.up-fine summary,.up-naming summary,.up-catalog summary,.up-validation-details summary{font-size:11px}.up-range-row{display:grid;grid-template-columns:1fr auto;align-items:center;font-size:11px;margin-top:6px}.up-range-row input{grid-column:1/-1}.up-tool .up-restore{font-size:11px;text-align:left}.up-saved{display:grid;gap:5px;margin-top:5px}.up-saved-row{border:1px solid var(--up-tool-line);border-radius:6px;padding:6px;display:grid;gap:4px}.up-saved-row>span{font-size:12px}.up-saved-actions{display:flex;gap:5px}.up-saved-actions button{font-size:10px;flex:1}.up-saved-row small{font-size:10px;color:var(--up-tool-muted)}.up-validation{font-size:10px!important;line-height:1.6!important;color:#2c5a43}.up-validation[data-invalid=true],.up-validation-details[data-invalid=true]>summary{color:#795317}.up-status:empty{display:none}.up-status{font-size:10px!important;line-height:1.6!important;color:#546a5d;overflow-wrap:anywhere}.up-footer{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.up-tool .up-footer button{height:32px;font-size:11px;line-height:1.4}.up-tool .up-save{background:#2d6958;color:#fff;border-color:#2d6958}.up-tool .up-save:hover{background:#285b4d}.up-draft-line{display:flex;justify-content:flex-end;margin-top:4px;font-size:9px;line-height:1.2;color:#647369}.up-inline-prompt{margin-top:7px;padding:7px;border:1px solid #a6b8aa;border-radius:6px;background:#fffefb;display:flex;gap:5px;flex-wrap:wrap}.up-inline-prompt p{flex:1 1 100%;font-size:11px}.up-inline-prompt button{font-size:10px;flex:1;white-space:normal}.up-tool[data-collapsed=true]{width:244px}.up-tool[data-collapsed=true] .up-head{border:0;height:36px;min-height:36px}.up-tool[data-collapsed=true] .up-drag-icon{font-size:15px}.up-tool[data-collapsed=true] h2{font-size:12px}.up-notice{position:fixed;z-index:40000;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);box-sizing:border-box;background:#fffefb;color:#294239;border:1px solid #b6c3ba;box-shadow:0 6px 20px rgba(26,40,31,.15);border-radius:8px;padding:12px 16px;pointer-events:none}
@media(max-width:700px){.up-tool{left:8px!important;right:8px!important;top:auto!important;bottom:calc(var(--up-viewport-bottom,0px) + max(8px,env(safe-area-inset-bottom)))!important;width:auto;max-width:none;font-family:inherit;font-size:.8rem}.up-panel{max-height:calc(var(--up-viewport-height,100dvh) - 16px)}.up-tool .up-head{height:34px;min-height:34px;cursor:default;touch-action:pan-y;padding:0 8px}.up-tool h2{font-size:.9rem;font-weight:400}.up-live{font-size:.7rem}.up-tool .up-collapse{font-size:.7rem;width:38px;min-height:30px}.up-tool .up-end{width:30px;min-height:30px}.up-tool .up-drag-icon{display:none}.up-tool .up-body{padding:6px 8px}.up-selectors{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:6px}.up-tool .up-group-select,.up-tool .up-field-select{height:30px;min-height:30px;border:1px solid var(--up-tool-line);border-radius:5px;padding:3px 6px;font-size:inherit;font-weight:400;background:rgba(255,255,255,.5)}.up-inheritance{display:none}.up-picker-visual{display:none}.up-tool[data-picker-open=true] .up-picker-visual{display:block;margin-top:7px}.up-sv{height:64px}.up-value{height:30px;margin-top:5px}.up-tool .up-hex,.up-tool .up-swatch{height:30px;min-height:30px}.up-tool .up-swatch{width:36px;flex-basis:36px}.up-hex-label{font-size:.65rem}.up-opacity{display:flex;align-items:center;gap:7px;margin-top:4px;min-height:24px}.up-opacity label{white-space:nowrap;font-size:.7rem;line-height:1.4}.up-opacity output{order:3;min-width:29px;font-size:.7rem;line-height:1.4}.up-opacity input{flex:1;min-width:20px;width:auto;min-height:24px;height:24px}.up-consumers{display:none}.up-settings .up-consumers{display:block}.up-more{margin-top:0}.up-more>summary{min-height:20px;font-size:.7rem}.up-tool .up-settings{gap:6px}.up-tool .up-settings button,.up-tool .up-settings input:not([type=range]),.up-tool .up-settings select{min-height:38px;font-size:inherit}.up-tool input[type=range]{min-height:24px;height:24px}.up-settings .up-range-row{font-size:.75rem}.up-tool .up-settings .up-catalog button{min-height:38px}.up-tool .up-footer{margin-top:3px;gap:6px}.up-tool .up-footer button{height:32px;min-height:32px;font-size:.75rem}.up-draft-line{display:none}.up-tool[data-collapsed=true]{width:auto;left:auto!important;right:8px!important;max-width:calc(100vw - 16px)}.up-tool[data-collapsed=true] .up-head{gap:7px;height:34px;min-height:34px;padding:0 9px}.up-tool .up-inline-prompt button{min-height:38px;font-size:.75rem}.up-tool .up-status,.up-tool .up-validation{font-size:.7rem!important}.up-tool .up-consumers p{font-size:.7rem}.up-tool[data-picker-open=true] .up-swatch{outline:1px solid #638675;outline-offset:1px}}
@media(prefers-reduced-motion:reduce){.up-tool *{scroll-behavior:auto}}

/* Local text backplates keep a 20% tool shell legible over dark pages. They do not cover the real page or change tool geometry. */
.up-tool h2,.up-tool .up-live,.up-tool .up-collapse,.up-tool .up-end,.up-tool .up-drag-icon,.up-tool .up-inheritance,.up-tool .up-hex-label,.up-tool .up-opacity label,.up-tool .up-opacity output,.up-tool details>summary,.up-tool .up-consumers p,.up-tool .up-range-row,.up-tool .up-saved-row>span,.up-tool .up-saved-row small,.up-tool .up-status,.up-tool .up-draft-line>span,.up-tool .up-validation{background:rgba(255,254,251,.92);color:#44584d;border-radius:3px;box-shadow:0 0 0 2px rgba(255,254,251,.92)}
.up-tool h2{color:#294239}.up-tool .up-live{color:#466658}.up-tool .up-validation[data-invalid=true],.up-tool .up-validation-details[data-invalid=true]>summary{color:#795317}
.up-tool button,.up-tool input:not([type=range]),.up-tool select{background:rgba(255,254,251,.94)}.up-tool .up-save{background:#2d6958;color:#fff}.up-tool .up-swatch{background-color:#fff;background-image:conic-gradient(#d7dbd8 25%,#fff 0 50%,#d7dbd8 0 75%,#fff 0)}

.up-tool .up-field-select,.up-tool .up-group-select,.up-tool button.secondary{background:rgba(255,254,251,.94)}

/* Forced mobile previews keep the same real Huiwen face at every viewport width. */
html[data-ui=mobile] .up-tool,html[data-ui=mobile] .up-tool *,html[data-ui=mobile] .up-tool *::before,html[data-ui=mobile] .up-tool *::after{font-family:var(--m-ui-font,'Huiwen Mobile','Songti SC','STSong','SimSun',serif);font-weight:400;font-synthesis:none}
/* Enlarged mobile text grows inside the tool; the business page keeps its geometry. */
@media(max-width:700px){
  .up-tool .up-panel{display:flex;flex-direction:column}
  .up-tool .up-head,.up-tool[data-collapsed=true] .up-head{height:auto;min-height:34px;flex:0 0 auto}
  .up-tool .up-body{min-height:0;max-height:none;flex:1 1 auto}
  .up-tool .up-group-select,.up-tool .up-field-select,.up-tool .up-hex,.up-tool .up-swatch{height:auto;min-height:30px}
  .up-tool .up-value{height:auto;min-height:30px}
  .up-tool .up-collapse,.up-tool .up-end{height:auto;min-height:30px}
  .up-tool .up-footer button{height:auto;min-height:32px}
}
@media(max-width:700px){
  .up-tool .up-head{flex-wrap:wrap}
  .up-tool .up-collapse{width:auto;min-width:38px;white-space:nowrap;padding-inline:3px}
}
@media(max-width:700px){
  .up-tool .up-selectors{grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr))}
}
