:root{--page-bg: #e9e9e9;--ink: #1c1c1c;--ink-soft: #505050;--ink-faint: #828282;--accent: #565656;--accent-strong: #373737;--accent-fill: #666666;--accent-fill-dk: #4d4d4d;--danger: #b71c1c;--danger-fill: #c62828;--warn-ink: #474747;--warn-bg: #ececec;--ok-ink: #3c3c3c;--hairline: rgba(28, 28, 28, .13);--edge-light: rgba(255, 255, 255, .95);--edge-dark: rgba(0, 0, 0, .1);--surface-1: #fbfaf6;--surface-2: #fbfaf6;--surface-3: #ffffff;--surface-sunken: #f1efe9;--panel-bg: #0d0d0d;--panel-border: #333333;--panel-fg: #f2f2f2;--panel-fg-muted: #9a9a9a;--panel-fg-on: #111111;--panel-btn: #1c1c1c;--panel-btn-hover: #333333;--panel-btn-on: #f2f2f2;--panel-row-at: #2a2a2a;--panel-input-bg: #0d0d0d;--panel-input-edit-bg: #000000;--panel-focus: #f2f2f2;--panel-edge-light: rgba(255, 255, 255, .12);--panel-edge-dark: rgba(0, 0, 0, .5);--panel-edge-dark-on: rgba(0, 0, 0, .18);--checker-a: #d8d8d8;--checker-b: #bdbdbd;--raise-1: 0 0 0 1px var(--hairline), 0 2px 6px rgba(28, 28, 28, .1), inset 0 1.5px 0 var(--edge-light), inset 0 -1.5px 0 var(--edge-dark);--raise-2: 0 0 0 1px var(--hairline), 0 6px 18px rgba(28, 28, 28, .14), inset 0 1.5px 0 var(--edge-light), inset 0 -1.5px 0 var(--edge-dark);--raise-3: 0 12px 40px rgba(28, 28, 28, .18), 0 2px 8px rgba(0, 0, 0, .07), inset 0 2px 0 var(--edge-light), inset 0 -2px 0 rgba(0, 0, 0, .05);--pressed: inset 0 2px 5px rgba(28, 28, 28, .18), inset 0 1px 0 rgba(0, 0, 0, .05);--focus-ring: 0 0 0 3px rgba(102, 102, 102, .32);--panel-btn-edge: inset 0 1px 0 var(--panel-edge-light), inset 0 -2px 0 var(--panel-edge-dark);--panel-btn-edge-on: inset 0 -2px 0 var(--panel-edge-dark-on);--panel-menu: 0 8px 20px rgba(0, 0, 0, .45);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-pill: 999px;--touch-target: 40px;--rail-width: 56px;--panel-padding: 8px;--panel-gap: 3px;--panel-radius: 3px;--panel-border-width: 1px;--panel-edge: 2px;--panel-edge-top: 1px;--panel-hover-lift: 1px;--panel-focus-width: 2px;--panel-focus-offset: 2px;--tile-size: 40px;--button-pad-x: 12px;--icon-px: 3px;--text-px: 2px;--slider-track: 6px;--slider-grabber-w: 14px;--slider-grabber-h: 28px;--scrollbar-width: 12px;--checker-size: 12px;--panel-disabled-alpha: .3;--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .13s;--dur-base: .2s;--dur-press: .06s;--app-font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--tokens-hash: "13a0c5"}:root{--wp-font: var(--app-font, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);--wp-ink: var(--ink, #1c1c1c);--wp-ink-soft: var(--ink-soft, #505050);--wp-page: var(--page-bg, #e9e9e9);--wp-surface: var(--surface-2, #fbfaf6);--wp-well: var(--surface-3, #ffffff);--wp-sunken: var(--surface-sunken, #f1efe9);--wp-hair: var(--hairline, rgba(28, 28, 28, .13));--wp-edge-light: var(--edge-light, rgba(255, 255, 255, .95));--wp-edge-dark: var(--edge-dark, rgba(0, 0, 0, .1));--wp-danger: var(--danger, #b71c1c);--wp-radius-sm: var(--radius-sm, 8px);--wp-radius-md: var(--radius-md, 12px);--wp-spring: var(--ease-spring, cubic-bezier(.34, 1.56, .64, 1));--wp-dur-fast: var(--dur-fast, .13s);--wp-dur: var(--dur-base, .2s);--wp-focus: var(--focus-ring, 0 0 0 3px rgba(102, 102, 102, .32));--wp-bar: #000000;--wp-bar-ink: #ffffff;--wp-bar-h: 48px;--wp-touch: 40px;font-family:var(--wp-font);color:var(--wp-ink);background:var(--wp-page);color-scheme:light;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}html,body,#root{height:100%;margin:0}body{overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}input{-webkit-user-select:text;user-select:text}button{font-family:inherit}button:focus{outline:none}button:focus-visible,input:focus-visible{outline:none;box-shadow:var(--wp-focus)}.app{height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr);background:var(--wp-page)}.bar{position:relative;z-index:30;display:flex;align-items:center;gap:6px;min-height:var(--wp-bar-h);box-sizing:border-box;padding:4px max(12px,env(safe-area-inset-right)) 4px max(12px,env(safe-area-inset-left));background:var(--wp-bar);color:var(--wp-bar-ink)}.bar-mark{font-weight:800;font-size:16px;letter-spacing:.01em;margin-right:8px}.bar-work{display:flex;flex-direction:column;min-width:0;line-height:1.2}.bar-title{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38vw}.bar-status{font-size:11.5px;opacity:.72}.bar-status--unsaved{opacity:1;text-decoration:underline}.bar-gap{flex:1 1 auto}.pill{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:34px;padding:6px 15px;border:none;border-radius:20px;font-weight:600;font-size:13px;line-height:1.2;letter-spacing:.01em;white-space:nowrap;cursor:pointer;background:#fff;color:#111;box-shadow:inset 0 2px #fff,inset 0 -2px #00000029,0 2px 6px #00000059,0 1px 2px #00000040;will-change:transform;transition:filter var(--wp-dur-fast) ease,box-shadow var(--wp-dur) ease,transform var(--wp-dur-fast) var(--wp-spring)}.pill:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-2px) scale(1.03)}.pill:active:not(:disabled){transform:translateY(1px) scale(.97);filter:brightness(.95);box-shadow:inset 0 1px #ffffff59,inset 0 -1px #0000001a,0 1px 3px #0000002e;transition:transform .06s ease,filter .06s ease,box-shadow .06s ease}.pill:disabled{opacity:.4;cursor:default}.pill--on,.pill--on:hover:not(:disabled){background:#111;color:#fff;box-shadow:0 0 0 2px #fff;filter:none}.pill--small{min-height:30px;padding:4px 12px;font-size:12.5px}.pill--light,.dialog .pill,.measure .pill,.screen .pill--light{background:#dcdcdc;box-shadow:inset 0 2px #ffffff8c,inset 0 -2px #00000024,0 2px 5px #00000038,0 1px 2px #0000001f}.pill--dark,.dialog .pill--dark{background:#1c1c1c;color:#fff;box-shadow:inset 0 2px #ffffff47,inset 0 -2px #00000073,0 3px 8px #0000004d}.dialog .pill--on,.measure .pill--on{background:#111;color:#fff;box-shadow:0 0 0 2px #111,inset 0 -2px #0006}.pill--seg{box-shadow:none}.chev{width:6px;height:6px;margin:0 2px 3px 9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform var(--wp-dur) var(--wp-spring)}.menu-btn[aria-expanded=true] .chev{transform:rotate(225deg) translate(-1px,-1px)}.menu-btn[aria-expanded=true]{background:#111;color:#fff;box-shadow:0 0 0 2px #fff;filter:none}.menu-dot{position:absolute;top:-2px;right:-2px;width:10px;height:10px;box-sizing:border-box;border-radius:50%;background:#111;border:2px solid #fff}.menu-wrap{position:relative}.menu{position:absolute;top:calc(100% + 8px);right:0;min-width:190px;overflow:hidden;background:#fff;color:#111;border:1.5px solid #000000;border-radius:10px;box-shadow:4px 4px #000;animation:menu-in .22s var(--wp-spring);transform-origin:top right;z-index:40}@keyframes menu-in{0%{transform:translateY(-6px) scale(.96);opacity:0}to{transform:none;opacity:1}}.menu-item{display:flex;align-items:center;box-sizing:border-box;width:100%;height:44px;padding:0 16px;border:none;border-radius:0;background:#fff;color:#111;font-size:15px;font-weight:500;text-align:left;white-space:nowrap;cursor:pointer;transition:background .1s ease,transform var(--wp-dur-fast) var(--wp-spring)}.menu-item+.menu-item{border-top:1px solid #e2e2e2}.menu-item:hover:not(:disabled),.menu-item:focus-visible{background:#ececec}.menu-item:active:not(:disabled){background:#d9d9d9;transform:scale(.985)}.menu-item:disabled{opacity:.45;cursor:default}.menu-item--empty{color:var(--wp-ink-soft);cursor:default}.narrow-only{display:none}.stage{position:relative;overflow:hidden;min-height:0;background:var(--wp-page)}.stage canvas{position:absolute;left:0;top:0;display:block;touch-action:none;outline:none}.stage:not(.stage--ready) canvas{visibility:hidden}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center}.screen-title{font-size:20px;font-weight:700}.screen-line{font-size:14px;color:var(--wp-ink-soft)}.screen-line--wrap{max-width:420px;line-height:1.45}.screen-actions{display:flex;gap:10px;margin-top:4px;flex-wrap:wrap;justify-content:center}.screen .pill{min-height:var(--wp-touch);padding:8px 20px;font-size:14px}.meter{width:min(320px,80vw);height:10px;box-sizing:border-box;overflow:hidden;border-radius:999px;background:var(--wp-sunken);box-shadow:inset 0 2px 4px #1c1c1c33,0 0 0 1px var(--wp-hair)}.meter-fill{height:100%;background:var(--wp-ink);border-radius:999px;transition:width var(--wp-dur) ease}.meter-fill--wait{width:30%;animation:meter-wait 1.2s ease-in-out infinite alternate}@keyframes meter-wait{0%{transform:translate(0)}to{transform:translate(233%)}}.drop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:25;box-sizing:border-box;pointer-events:none;display:flex;align-items:center;justify-content:center;background:#ffffffc7;border:4px dashed #111111;margin:8px}.drop-label{padding:10px 22px;border-radius:20px;background:#111;color:#fff;font-size:16px;font-weight:700}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;background:#00000080}.dialog{box-sizing:border-box;width:min(420px,100%);max-height:100%;overflow:auto;padding:20px;border-radius:var(--wp-radius-md);background:var(--wp-surface);color:var(--wp-ink);box-shadow:0 0 0 1px var(--wp-hair),0 12px 40px #1c1c1c4d,inset 0 2px 0 var(--wp-edge-light);animation:dialog-in var(--wp-dur) var(--wp-spring)}@keyframes dialog-in{0%{transform:scale(.96);opacity:0}to{transform:none;opacity:1}}.dialog:focus{outline:none}.dialog-title{margin:0 0 14px;font-size:18px;font-weight:700}.dialog-body{display:flex;flex-direction:column;gap:14px;font-size:14px;line-height:1.45}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.dialog .pill{min-height:var(--wp-touch);padding:8px 20px}.steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.field{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.field-label{font-weight:600}.field-value{color:var(--wp-ink-soft)}.segments{display:flex;gap:6px;flex-wrap:wrap}.input{box-sizing:border-box;width:90px;min-height:var(--wp-touch);padding:6px 10px;border:none;border-radius:var(--wp-radius-sm);background:var(--wp-well);color:var(--wp-ink);font:inherit;font-size:15px;box-shadow:inset 0 2px 4px #1c1c1c2e,0 0 0 1px var(--wp-hair)}.input[aria-invalid=true]{box-shadow:inset 0 2px 4px #1c1c1c2e,0 0 0 2px var(--wp-danger)}.result{font-size:13.5px;font-weight:600}.result--bad{color:var(--wp-danger)}.measure{position:absolute;top:0;right:0;bottom:0;z-index:20;width:min(400px,100%);box-sizing:border-box;display:flex;flex-direction:column;background:var(--wp-surface);color:var(--wp-ink);box-shadow:0 0 0 1px var(--wp-hair),-6px 0 #0000001f;cursor:default}.measure-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--wp-hair)}.measure-title{flex:1;margin:0;font-size:16px;font-weight:700}.measure-body{flex:1;overflow:auto;padding:4px 12px 12px;-webkit-user-select:text;user-select:text}.mrow{display:grid;grid-template-columns:1fr auto;column-gap:10px;padding:9px 0;border-bottom:1px solid var(--wp-hair);font-size:13px}.mrow-label{grid-column:1;font-weight:700}.mrow-value{grid-column:1;color:var(--wp-ink-soft);line-height:1.4;overflow-wrap:anywhere}.mrow-action{grid-column:2;grid-row:1 / span 2;align-self:center}.mrow-sub{font-size:12px;margin-top:2px}.link-btn{margin-left:8px;padding:0;border:none;background:none;color:var(--wp-ink);font-size:12px;font-weight:600;text-decoration:underline;cursor:pointer}@media (max-width: 640px){.bar{gap:4px;padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}.bar-mark{display:none}.bar-title{max-width:34vw}.wide-only{display:none}.narrow-only{display:flex}.menu-dot.narrow-only{display:block}.pill{min-height:var(--wp-touch);padding:8px 12px}.pill--small{min-height:36px}.menu-wrap{position:static}.menu{top:100%;left:0;right:0;min-width:0;border-radius:0;border-width:0 0 1.5px 0;box-shadow:0 4px #000}.menu-item{height:48px}.measure{top:auto;left:0;width:100%;height:62%}}@media (pointer: coarse){.pill{min-height:var(--wp-touch)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.mrow-value .segments{margin-top:6px}
