:root{--bg: #e4e9e6;--card: rgba(255, 255, 255, .92);--ink: #1d2422;--muted: #68736f;--line: rgba(20, 30, 26, .1);--accent: #2f6f5e;--accent-ink: #ffffff;--danger: #c2413b;--shadow: 0 6px 24px rgba(20, 30, 26, .16);--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--sar: env(safe-area-inset-right, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font:15px/1.35 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overscroll-behavior:none;user-select:none;-webkit-user-select:none}#c{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none}#labels,#ui{position:fixed;inset:0;pointer-events:none;overflow:hidden}#ui>*{pointer-events:auto}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;padding:0}.hidden{display:none!important}#loading{position:fixed;inset:0;display:grid;place-items:center;background:var(--bg);z-index:50;font-weight:600;color:var(--muted);letter-spacing:.02em;text-align:center;padding:24px}#loading .spin{width:34px;height:34px;margin:0 auto 14px;border-radius:50%;border:3px solid rgba(47,111,94,.18);border-top-color:var(--accent);animation:spin .9s linear infinite}#loading.error{align-content:center;gap:14px;color:var(--ink)}#loading.error button{height:46px;padding:0 22px;border-radius:14px;background:var(--accent);color:#fff;font-weight:700;justify-self:center}@keyframes spin{to{transform:rotate(360deg)}}.rl{position:absolute;left:0;top:0;text-align:center;white-space:nowrap;will-change:transform;padding:3px 8px 4px;border-radius:9px;background:#ffffff9e;font-size:10.5px;color:#4d5753;line-height:1.2}.rl b{display:block;color:var(--ink);font-size:11.5px;font-weight:650}.rl span{display:block}.rl .dim2{display:none}.rl.minor{background:#fff6;padding:1px 5px}.rl.minor b{font-size:9.5px;font-weight:600;color:var(--muted)}.rl.measure{background:#e5484d;color:#fff;font-weight:700;font-size:13px;padding:4px 9px}.rl.gap{background:#1f6feb;color:#fff;font-weight:650;font-size:10.5px;padding:1px 6px 2px;border-radius:7px}#labels.dim .rl:not(.measure):not(.gap){opacity:.25}.top{position:absolute;top:calc(var(--sat) + 10px);left:calc(var(--sal) + 10px);right:calc(var(--sar) + 10px);display:flex;justify-content:space-between;align-items:center;gap:8px;pointer-events:none!important}.top>*{pointer-events:auto}.seg{display:flex;background:var(--card);border-radius:14px;padding:4px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}.seg button{min-width:54px;height:40px;padding:0 12px;border-radius:10px;font-weight:650;color:var(--muted)}.seg button.on{background:var(--accent);color:var(--accent-ink)}.top-right{display:flex;gap:8px}.icon-btn{width:48px;height:48px;border-radius:14px;background:var(--card);box-shadow:var(--shadow);display:grid;place-items:center;backdrop-filter:blur(10px)}.icon-btn:disabled{opacity:.4}button:focus-visible,input:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}@media (max-width: 380px){.top,.top-right{gap:6px}.icon-btn{width:44px;height:44px}.seg button{min-width:48px;padding:0 9px}}.icon-btn.sm{width:40px;height:40px;box-shadow:none;background:#141e1a0f}.fab{position:absolute;left:50%;bottom:calc(var(--sab) + 18px);transform:translate(-50%);height:54px;padding:0 22px 0 16px;border-radius:27px;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;gap:8px;font-weight:700;font-size:16px;box-shadow:var(--shadow)}.fab.compact{left:auto;right:calc(var(--sar) + 18px);transform:none;width:58px;height:58px;padding:0;justify-content:center;border-radius:50%}.fab.compact span{display:none}.fab.compact:active{transform:scale(.97)}.fab:active,.pill:active,.card:active,.sel-btns button:active{transform:translate(-50%) scale(.97)}.pill:active,.card:active,.sel-btns button:active{transform:scale(.97)}.banner{position:absolute;left:50%;bottom:calc(var(--sab) + 18px);transform:translate(-50%);background:var(--card);box-shadow:var(--shadow);border-radius:16px;padding:10px 12px 10px 16px;display:flex;align-items:center;gap:12px;font-weight:600;max-width:calc(100% - 24px)}.toast{position:absolute;left:50%;top:calc(var(--sat) + 72px);transform:translate(-50%);background:#1d2422e6;color:#fff;padding:9px 14px;border-radius:12px;font-size:13.5px;max-width:calc(100% - 32px);text-align:center;pointer-events:none!important}.scrim{position:absolute;inset:0;background:#141e1a47}.sheet{position:absolute;left:0;right:0;bottom:0;max-height:min(78%,640px);margin:0 auto;max-width:560px;background:#fbfcfb;border-radius:22px 22px 0 0;box-shadow:0 -8px 40px #141e1a40;transform:translateY(calc(100% + 60px));visibility:hidden;transition:transform .24s cubic-bezier(.2,.8,.2,1),visibility 0s linear .24s;display:flex;flex-direction:column;padding-bottom:var(--sab)}.sheet.open{transform:none;visibility:visible;transition:transform .24s cubic-bezier(.2,.8,.2,1),visibility 0s}.sheet-head{position:relative;display:flex;align-items:center;justify-content:space-between;padding:16px 12px 8px 18px}.grab{position:absolute;top:7px;left:50%;width:38px;height:4px;margin-left:-19px;border-radius:2px;background:#141e1a2e}.sheet-title{font-size:18px;font-weight:750}.chips{display:flex;gap:8px;padding:4px 16px 12px;overflow-x:auto;scrollbar-width:none;flex:none}.chips::-webkit-scrollbar{display:none}.chip{flex:none;height:38px;padding:0 16px;border-radius:19px;background:#141e1a0f;font-weight:600;color:var(--muted)}.chip.on{background:var(--ink);color:#fff}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;padding:0 16px 18px;overflow-y:auto}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:8px 6px 10px;text-align:center}.thumb{aspect-ratio:1;background:#f1f4f2 center / contain no-repeat;border-radius:12px;margin-bottom:6px}.card-name{font-weight:650;font-size:13px;line-height:1.2}.card-dim{color:var(--muted);font-size:11.5px;margin-top:2px}.menu-body{overflow-y:auto;padding:0 18px 20px}.sec{font-weight:750;margin:18px 0 8px}.sec .sub{font-weight:500;color:var(--muted);font-size:12.5px;margin-left:6px}.row-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.pill{height:44px;padding:0 14px;border-radius:12px;background:#141e1a0f;font-weight:650;display:flex;align-items:center;gap:7px}.pill svg{width:19px;height:19px}.pill.danger,.mini.danger{color:var(--danger)}.pill.solid{background:var(--accent);color:#fff}.pill.solid.danger{background:var(--danger);color:#fff}.tips{margin:0;padding-left:18px;color:var(--muted);font-size:13px}.tips li{margin:5px 0}.dlg-wrap{position:absolute;inset:0;display:grid;place-items:center;padding:20px;background:#141e1a61;z-index:30}.dlg{width:min(100%,360px);background:#fbfcfb;border-radius:20px;padding:20px 18px 16px;box-shadow:0 16px 60px #141e1a59}.dlg-title{font-size:17px;font-weight:750}.dlg-text{color:var(--muted);margin-top:6px;font-size:14px}.dlg-input{width:100%;height:48px;margin-top:14px;padding:0 14px;border-radius:12px;border:1.5px solid var(--line);background:#fff;font:inherit;font-size:16px;color:var(--ink);outline:none;user-select:text;-webkit-user-select:text}.dlg-input:focus{border-color:var(--accent)}.dlg-btns{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.dlg-btns .pill{min-width:84px;justify-content:center}.sync{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);margin:-2px 0 8px}.sync:before{content:"";width:8px;height:8px;border-radius:50%;background:#b8c0bc;flex:none}.sync.ok:before{background:#3aa66d}.sync.busy:before{background:#d9a441}.idea-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.idea-count{flex:none}.idea-name{min-width:0}.idea{display:flex;align-items:center;gap:6px;padding:4px;border-radius:12px}.idea.on{background:#2f6f5e1f}.idea-name{flex:1;text-align:left;height:44px;padding:0 10px;font-weight:650;display:flex;align-items:center;justify-content:space-between;gap:8px}.idea-count{color:var(--muted);font-weight:500;font-size:12.5px}.mini{height:36px;padding:0 10px;border-radius:10px;background:#141e1a0f;font-size:13px;font-weight:600}.toggle{display:flex;align-items:center;justify-content:space-between;min-height:46px;border-bottom:1px solid var(--line)}.toggle input{width:22px;height:22px;accent-color:var(--accent)}.scale-row{display:flex;align-items:center;gap:12px}.scale-row input{flex:1;accent-color:var(--accent);height:32px}.scale-val{width:46px;text-align:right;font-weight:650;font-variant-numeric:tabular-nums}.hint{color:var(--muted);font-size:12.5px;margin-top:10px}.swatches{display:flex;flex-wrap:wrap;gap:9px}.swatch{width:38px;height:38px;border-radius:50%;border:1px solid rgba(20,30,26,.18);box-shadow:inset 0 0 0 2px #fff}.swatch.on{outline:3px solid var(--accent);outline-offset:1px}.selbar{position:absolute;left:50%;bottom:calc(var(--sab) + 10px);transform:translate(-50%);width:min(calc(100% - 16px),560px);background:var(--card);border-radius:20px;box-shadow:var(--shadow);backdrop-filter:blur(12px);padding:10px 8px 8px}.sel-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0 8px 8px}.sel-name{font-weight:750;font-size:15.5px;white-space:nowrap}.sel-dim{color:var(--muted);font-size:12px;text-align:right}.sel-btns{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}.sel-btns button{height:54px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.sel-btns button span{font-size:10.5px;font-weight:600;color:var(--muted)}.sel-btns button.danger,.sel-btns button.danger span{color:var(--danger)}.sel-btns button.primary{background:var(--accent);color:#fff}.sel-btns button.primary span{color:#fff}.sel-panel{padding:4px 8px 12px;border-bottom:1px solid var(--line);margin-bottom:8px}.panel-label{font-size:12px;font-weight:650;color:var(--muted);margin:6px 0}.sel-panel .swatches{flex-wrap:nowrap;overflow-x:auto;padding:4px 2px 6px;scrollbar-width:none}.sel-panel .swatches::-webkit-scrollbar{display:none}.sel-panel .swatch{flex:none}.stepper{display:flex;align-items:center;justify-content:center;gap:14px;padding-top:4px}.stepper button{width:52px;height:46px;border-radius:12px;background:#141e1a12;font-size:24px;font-weight:600}.step-val{min-width:150px;text-align:center;font-weight:650;font-variant-numeric:tabular-nums}.joy{position:absolute;left:calc(var(--sal) + 22px);bottom:calc(var(--sab) + 26px);width:112px;height:112px;border-radius:50%;background:#ffffff8c;box-shadow:var(--shadow);display:grid;place-items:center;touch-action:none;backdrop-filter:blur(6px)}.joy.raised{bottom:calc(var(--sab) + 150px)}.joy-knob{width:48px;height:48px;border-radius:50%;background:var(--accent);opacity:.9}@media (min-width: 900px){.sheet{border-radius:22px;bottom:18px}.rl{font-size:12.5px}.rl b{font-size:13.5px}}
