:root{--paper: #faf6ee;--card: #fffaf2;--card-line: #eadfce;--ink: #49392f;--ink-soft: #7d6d5a;--moss: #587756;--moss-deep: #4c6239;--moss-soft: #e3e8d3;--on-moss: #f8faf2;--terra: #c86643;--terra-deep: #9d452c;--terra-soft: #f2d9ca;--sand-soft: #f2e8d8;--sage: #a9c39d;--good: #4f8a5b;--bad: #c65f3a;--accent: var(--terra);--accent-soft: var(--sand-soft);--shadow: 0 14px 34px rgba(92, 68, 45, .12);--shadow-sm: 0 4px 12px rgba(92, 68, 45, .09);--r-sm: 10px;--r-md: 14px;--r-lg: 20px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--text-title: 24px;--text-heading: 19px;--text-body: 14px;--text-label: 12px;--text-caption: 12px;--text-micro: 10px;--weight-read: 400;--weight-lead: 600;--ease: cubic-bezier(.22, .9, .36, 1);--t-fast: .14s;--t-med: .22s}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--ink);background:linear-gradient(180deg,#faf6ee,#f8f4ec 58%,#f3eee6)}#viewport{position:fixed;top:0;right:0;bottom:0;left:0}#viewport canvas{display:block}#ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}[hidden]{display:none!important}:root{--sbw: 248px}.topstack{position:absolute;top:0;left:0;right:0;display:flex;flex-direction:column;gap:12px;padding:max(14px,env(safe-area-inset-top)) 0 0 calc(var(--sbw) + 24px);transition:padding-left .16s}#ui.nopanel .topstack,#ui.placing .topstack,#ui.editing .topstack{padding-left:0}.topbar,.actionrow,.panel{pointer-events:none}.round,.pill,.tabs,.cards,.selbar,.editbar,.statspanel,.panelgrip,.themepop,.overlay{pointer-events:auto}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px}.round-group{display:flex;gap:var(--space-2)}.round{width:44px;height:44px;border-radius:var(--r-sm);border:1px solid var(--card-line);background:var(--card);box-shadow:var(--shadow-sm);color:var(--ink);font-size:19px;cursor:pointer;display:grid;place-items:center;transition:transform .08s,background var(--t-fast),box-shadow var(--t-fast)}.round:hover:not(:disabled){background:#fffdf8;box-shadow:var(--shadow);transform:translateY(-1px)}.round:active{transform:scale(.92)}.round:disabled{opacity:.35;cursor:default}.round:disabled:active{transform:none}.round:focus-visible,.chip:focus-visible,.tab:focus-visible,.card:focus-visible{outline:2px solid var(--terra);outline-offset:2px}.round.lang{font-size:var(--text-label);font-weight:var(--weight-lead);letter-spacing:.04em}.ui-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.actionrow{display:flex;justify-content:center;gap:12px;padding:0 16px}.pill{background:var(--card);border-radius:999px;box-shadow:var(--shadow-sm);border:1px solid var(--card-line);padding:12px 20px;font-weight:600;font-size:15px;display:inline-flex;align-items:center;gap:8px;color:var(--ink);cursor:pointer;transition:transform .08s}.pill:active{transform:scale(.95)}.panel{position:absolute;left:12px;top:12px;bottom:12px;width:var(--sbw);display:flex;flex-direction:column;gap:10px;padding:12px 10px 14px;overflow:hidden;pointer-events:auto;background:#fffaf2f0;border:1px solid var(--card-line);border-radius:var(--r-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-sm)}.tabs{display:flex;flex-wrap:wrap;gap:6px;padding:0 0 2px;flex:0 0 auto}.tabs::-webkit-scrollbar{display:none}.tab{flex:0 0 auto;border:1px solid var(--card-line);cursor:pointer;background:var(--card);color:var(--ink);border-radius:999px;height:26px;padding:0 10px;white-space:nowrap;font-size:var(--text-label);font-weight:var(--weight-lead);line-height:1;display:grid;place-items:center;box-shadow:none;transition:transform .08s}.tab:active{transform:scale(.95)}.tab.active{background:var(--terra);border-color:var(--terra);color:#fff8ef}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0 2px 4px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;flex:1 1 auto;min-height:0;scrollbar-width:thin}.cards::-webkit-scrollbar{width:4px}.cards::-webkit-scrollbar-thumb{background:var(--card-line);border-radius:2px}.card{min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;font:inherit;color:inherit;border:1px solid var(--card-line);border-radius:var(--r-sm);background:#fffaf2b8;box-shadow:none;padding:5px 3px 6px;cursor:grab;-webkit-user-select:none;user-select:none;transition:background var(--t-fast),border-color var(--t-fast)}.card:hover{background:#fffdf8;border-color:var(--terra-soft)}.card:active{cursor:grabbing;background:var(--terra-soft)}.card .thumb{width:100%;aspect-ratio:1;margin:0;display:block;border-radius:var(--r-sm);object-fit:contain;background:var(--sand-soft)}.card .thumb.emoji{display:grid;place-items:center;font-size:22px;background:var(--sand-soft)}.card .meta{min-width:0;width:100%;overflow:hidden;display:flex;flex-direction:column;align-items:center}.card .name{width:100%;font-size:var(--text-micro);font-weight:var(--weight-lead);line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.card .dim{width:100%;font-size:var(--text-micro);color:var(--ink-soft);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}#ui.placing .panel{display:none}.selbar{position:absolute;left:50%;transform:translate(-50%);bottom:92px;display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--card-line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:7px 8px 7px 16px}.selbar .selinfo{font-size:var(--text-body);font-weight:var(--weight-lead);white-space:nowrap;padding-right:2px;display:inline-flex;align-items:baseline;gap:8px}.selinfo .selsize{color:var(--ink-soft);font-weight:600;font-size:12px;font-variant-numeric:tabular-nums}.chip{border:none;cursor:pointer;background:var(--sand-soft);color:var(--ink);border-radius:var(--r-sm);width:38px;height:38px;font-size:16px;font-weight:var(--weight-lead);display:grid;place-items:center;transition:transform .08s}.chip:hover{background:#e9dac5}.chip.danger{background:var(--terra);color:#fff8ef}.chip.danger:hover{background:var(--terra-deep)}.chip:active{transform:scale(.92)}.ctxmenu{position:absolute;z-index:30;pointer-events:auto;background:var(--card);border:1px solid var(--card-line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:6px;min-width:176px;display:flex;flex-direction:column;gap:2px}.ctxitem{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;cursor:pointer;text-align:left;padding:9px 12px;border-radius:var(--r-sm);font:inherit;font-size:14px;font-weight:600;color:var(--ink)}.ctxitem:hover{background:var(--moss-soft)}.ctxitem.danger{color:var(--terra-deep)}.ctxitem.danger:hover{background:var(--terra-soft)}.ctxitem .ci{width:18px;text-align:center;font-size:15px}.editbar{position:absolute;left:50%;transform:translate(-50%);bottom:92px;display:none;align-items:center;gap:6px;background:var(--card);border:1px solid var(--card-line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:7px 10px}#ui.editing .editbar{display:flex}#ui.editing .selbar{display:none!important}#ui.editing .panel{display:none}.editbar .edlbl{font-size:16px;font-weight:600;opacity:.65;padding:0 1px}.editbar .edfield{display:inline-flex;align-items:baseline;gap:3px;background:var(--sand-soft);border-radius:9px;padding:5px 8px}.editbar .edval{font:inherit;font-size:var(--text-body);font-weight:var(--weight-lead);width:40px;text-align:right;border:none;outline:none;background:none;color:var(--ink);padding:0;font-variant-numeric:tabular-nums}.editbar .edfield em{font-style:normal;font-size:var(--text-caption);color:var(--ink-soft);font-weight:var(--weight-lead)}.editbar .edfield:focus-within{box-shadow:0 0 0 2px var(--terra)}.chip.done{background:var(--terra);color:#fff8ef}.statspanel{position:absolute;right:12px;bottom:calc(20px + env(safe-area-inset-bottom));background:var(--card);border:1px solid var(--card-line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:12px 14px;min-width:220px;font-size:var(--text-body)}.statrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:4px 0;width:100%;border:none;background:none;font:inherit;color:var(--ink)}.statrow>span{color:var(--ink-soft)}.statrow b{font-weight:var(--weight-lead)}.statrow.build{cursor:pointer}.statrow.build .caret{font-style:normal;font-size:10px;opacity:.6;display:inline-block;margin-left:4px;transition:transform var(--t-fast) var(--ease)}.statrow.build.open .caret{transform:rotate(180deg)}.statrow b{font-variant-numeric:tabular-nums}.statrow.empty b{color:var(--moss-deep)}.toggles{margin:4px 0;padding:6px 0;border-top:1px solid var(--card-line);border-bottom:1px solid var(--card-line)}.toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 0;cursor:pointer}.toggle input{accent-color:var(--terra);width:16px;height:16px}.tnote{color:var(--ink-soft);font-size:var(--text-caption);padding:2px 0}.status{position:absolute;left:50%;transform:translate(-50%);bottom:92px;background:var(--card);border:1px solid var(--card-line);border-radius:999px;box-shadow:var(--shadow-sm);padding:9px 18px;font-size:13px;font-weight:600}.status .ok{color:var(--good)}.status .warn{color:var(--bad)}#home{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto;background:radial-gradient(ellipse 74% 34% at 50% 0%,rgba(239,175,104,.46),transparent 100%),linear-gradient(180deg,#fff0d9,#fbf5eb 47%,#faf6ee)}.homewrap{width:min(100%,980px);min-height:100%;margin:0 auto;padding:max(44px,env(safe-area-inset-top)) clamp(16px,3.5vw,34px) 64px}.homehead{text-align:center;margin-bottom:24px}.homehead h1{margin:0;font-size:clamp(32px,6vw,44px);font-weight:700;letter-spacing:-.035em;color:#35281f}.homehead p{margin:5px 0 0;color:#8f7b68;font-size:14px}.searchrow{display:flex;gap:10px;align-items:stretch}.searchwrap{position:relative;flex:1 1 auto}.searchicon{position:absolute;z-index:1;left:17px;top:50%;transform:translateY(-50%);width:17px;height:17px;fill:none;stroke:#887765;stroke-width:1.8;stroke-linecap:round;pointer-events:none}#addrInput{width:100%;outline:none;border:1px solid var(--card-line);background:var(--card);color:var(--ink);min-height:52px;border-radius:999px;box-shadow:0 7px 22px #5a402714;padding:14px 18px 14px 46px;font:inherit;font-size:14px}#addrInput::placeholder{color:var(--ink-soft)}#addrInput:focus-visible{box-shadow:var(--shadow-sm),0 0 0 2px var(--terra)}.uploadbtn{flex:0 0 auto;width:52px;height:52px;cursor:pointer;border:1px solid var(--card-line);background:var(--card);color:var(--ink);border-radius:50%;box-shadow:0 7px 22px #5a402714;display:grid;place-items:center;transition:transform .08s,box-shadow var(--t-fast)}.uploadbtn:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.uploadbtn:active{transform:scale(.94)}.uploadbtn:focus-visible{outline:2px solid var(--terra);outline-offset:2px}.uploadicon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.addrresults{position:absolute;z-index:5;left:0;right:0;top:calc(100% + 8px);background:var(--card);border:1px solid var(--card-line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;gap:2px;overflow:hidden}.addropt{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;cursor:pointer;text-align:left;padding:11px 12px;border-radius:var(--r-sm);font:inherit;font-size:14px;color:var(--ink)}.addropt:hover,.addropt:focus-visible{background:var(--terra-soft);outline:none}.addropt .flag{font-size:16px;flex:0 0 auto}.homestatus{margin:12px 2px 0;font-size:var(--text-body);color:var(--ink-soft);text-align:center}.homestatus.error{color:var(--bad);font-weight:600}.sectitle{margin:30px 2px 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#746250}.projgrid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-items:start}.projcard{position:relative;background:var(--card);border-radius:var(--r-lg);border:1px solid var(--card-line);box-shadow:var(--shadow-sm);overflow:hidden;cursor:pointer;display:flex;flex-direction:column;transition:transform .1s,box-shadow .1s}.projcard:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.projcard:focus-visible{outline:2px solid var(--terra);outline-offset:2px}.projcard .thumb{flex:0 0 auto;height:150px;background:var(--sand-soft);display:grid;place-items:center;padding:14px}.projcard .thumb svg{width:100%;height:100%}.projcard .thumb polygon{fill:#bccaa4;stroke:#5d7749;stroke-width:.6}.pbody{padding:12px 14px 14px;display:flex;flex-direction:column;gap:3px}.pbody h3{margin:0;font-size:15px;font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paddr{margin:0;font-size:12px;color:var(--ink-soft);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pmeta{margin:5px 0 0;font-size:12px;color:var(--ink-soft);display:flex;align-items:center;justify-content:space-between;gap:8px}.pmeta b{color:var(--ink);font-weight:var(--weight-lead)}.badge{font-size:var(--text-label);font-weight:var(--weight-lead);text-transform:uppercase;letter-spacing:.06em;padding:3px 7px;border-radius:999px;background:var(--sand-soft);color:var(--ink-soft)}.badge.s-cadastre{background:var(--moss-soft);color:var(--moss-deep)}.badge.s-estimate{background:#f3e2c9;color:#8a6420}.badge.s-upload{background:#dde5f5;color:#3b5486}.pdel{position:absolute;top:8px;right:8px;width:30px;height:30px;border:none;border-radius:var(--r-sm);cursor:pointer;font-size:13px;background:#fffdf8eb;color:var(--terra-deep);box-shadow:var(--shadow-sm);opacity:0;transition:opacity .12s}.projcard:hover .pdel,.projcard:focus-within .pdel{opacity:1}.pdel:focus-visible{opacity:1;outline:2px solid var(--terra)}.projempty{width:min(100%,430px);margin:0 auto;padding:2px 16px 24px;color:var(--ink-soft);text-align:center;display:flex;flex-direction:column;align-items:center}.emptyart{display:block;width:min(100%,360px);height:auto;margin:0 auto 4px}.projempty h3{margin:0;color:#35281f;font-size:clamp(22px,3vw,27px);line-height:1.15;font-weight:700;letter-spacing:-.025em}.projempty p{margin:8px 0 0;color:#6f5e50;font-size:15px;line-height:1.45}.emptycta{margin-top:18px;min-height:44px;padding:10px 24px;border:1px solid #b99a7d;border-radius:999px;background:#fffaf280;color:#5d493a;font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast),transform .08s}.emptycta:hover{background:var(--card);border-color:#947255}.emptycta:active{transform:scale(.96)}.emptycta:focus-visible{outline:2px solid var(--terra);outline-offset:3px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#3c2a1857;display:grid;place-items:center;padding:20px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirmcard{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:22px 22px 18px;width:min(440px,100%);max-height:calc(100vh - 40px);overflow-y:auto}.confirmcard h2{margin:0 0 2px;font-size:var(--text-heading);font-weight:var(--weight-lead);letter-spacing:-.01em}.cfaddr{margin:0 0 16px;font-size:var(--text-body);color:var(--ink-soft);line-height:1.5}.cfrows{margin:0;display:flex;flex-direction:column;gap:1px}.cfrow{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid var(--card-line)}.cfrow dt{font-size:13px;color:var(--ink-soft);flex:0 0 auto}.cfrow dd{margin:0;font-size:var(--text-body);text-align:right;line-height:1.5}.cfrow dd b{font-weight:var(--weight-lead)}.cfsub{color:var(--ink-soft);font-size:var(--text-caption);font-weight:var(--weight-lead)}.cfnote{margin:12px 0 0;padding:9px 11px;border-radius:var(--r-sm);background:#f6e7cd;color:#7a5a1e;font-size:var(--text-label);line-height:1.5}.cfactions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.cfactions .pill{box-shadow:none;font-size:14px;padding:11px 16px}.pill.ghost{background:var(--sand-soft);border-color:transparent}.pill.primary{background:var(--terra);border-color:var(--terra);color:#fff8ef}.pill.primary:hover{background:var(--terra-deep)}.cfactions .pill:focus-visible{outline:2px solid var(--terra);outline-offset:2px}.panelgrip{position:absolute;top:50%;left:calc(var(--sbw) + 12px);margin-left:-13px;transform:translateY(-50%);width:26px;height:58px;border:1px solid var(--card-line);border-radius:13px;background:var(--card);box-shadow:var(--shadow-sm);color:var(--ink);font-size:15px;font-weight:600;cursor:pointer;display:grid;place-items:center;transition:left var(--t-med) var(--ease),transform var(--t-fast) var(--ease)}.panelgrip:active{transform:translateY(-50%) scale(.92)}.panelgrip:focus-visible{outline:2px solid var(--terra);outline-offset:2px}#ui.nopanel .panelgrip{left:0;margin-left:8px}#ui.placing .panelgrip,#ui.editing .panelgrip{display:none}.themepop{position:absolute;z-index:30;top:calc(max(14px,env(safe-area-inset-top)) + 52px);right:16px;background:var(--card);border:1px solid var(--card-line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;gap:2px;min-width:168px;transform-origin:top right;animation:popIn var(--t-fast) var(--ease)}.themeopt{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;cursor:pointer;text-align:left;padding:8px 10px;border-radius:9px;font:inherit;font-size:var(--text-body);font-weight:600;color:var(--ink)}.themeopt:hover,.themeopt:focus-visible{background:var(--terra-soft);outline:none}.themeopt .swatch{width:22px;height:22px;border-radius:50%;flex:0 0 auto;border:2px solid transparent;box-shadow:inset 0 0 0 1px #00000014}.themeopt.active{color:var(--terra-deep)}.themeopt.active .swatch{box-shadow:0 0 0 2px var(--terra)}.edgepop{min-width:min(300px,calc(100vw - 32px));padding:10px;gap:6px}.poptitle{margin:0 2px 2px;font-size:var(--text-label);font-weight:var(--weight-lead);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.edgerow{display:flex;align-items:center;gap:8px;padding:2px}.edgerow>span{flex:0 0 58px;font-size:var(--text-label);font-weight:var(--weight-lead);color:var(--ink)}.edgeopts{display:flex;gap:3px;flex:1 1 auto}.edgeopt{flex:1 1 0;min-width:0;border:1px solid var(--card-line);background:var(--card);color:var(--ink);border-radius:8px;height:28px;padding:0 6px;font:inherit;font-size:var(--text-label);font-weight:var(--weight-lead);cursor:pointer;display:grid;place-items:center;transition:transform .08s}.edgeopt:active{transform:scale(.94)}.edgeopt.active{background:var(--terra);border-color:var(--terra);color:#fff8ef}.edgeopt:focus-visible{outline:2px solid var(--terra);outline-offset:2px}@keyframes popIn{0%{opacity:0;transform:scale(.94) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.helpcard{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:22px 22px 16px;width:min(400px,100%);max-height:calc(100vh - 40px);overflow-y:auto;animation:popIn var(--t-med) var(--ease)}.helpcard h2{margin:0 0 12px;font-size:var(--text-heading);font-weight:var(--weight-lead);letter-spacing:-.01em}.helprows{margin:0;display:flex;flex-direction:column}.helprow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0;border-top:1px solid var(--card-line)}.helprow dt{flex:0 0 auto;display:flex;gap:4px}.helprow dd{margin:0;font-size:var(--text-body);color:var(--ink-soft);text-align:right}kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:600;color:var(--ink);background:var(--sand-soft);border-radius:6px;padding:3px 7px;box-shadow:inset 0 -1px #0000001f}.toasts{position:fixed;z-index:60;left:50%;transform:translate(-50%);bottom:calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;pointer-events:auto;background:var(--ink);color:#fdf6ea;border-radius:999px;box-shadow:var(--shadow);padding:10px 18px;font-size:var(--text-body);font-weight:var(--weight-lead);max-width:min(92vw,480px);animation:toastIn var(--t-med) var(--ease);transition:opacity var(--t-med) var(--ease),transform var(--t-med) var(--ease)}.toast.out{opacity:0;transform:translateY(8px)}.toast .ttext{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast .taction{border:none;background:none;cursor:pointer;font:inherit;font-weight:var(--weight-lead);color:#f2c9a8;padding:2px 4px;border-radius:6px;flex:0 0 auto}.toast .taction:hover{text-decoration:underline}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.dimtag{position:fixed;z-index:40;pointer-events:none;background:var(--ink);color:#fdf6ea;border-radius:8px;padding:4px 9px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;animation:popIn var(--t-fast) var(--ease)}.emptyhint{position:absolute;left:50%;transform:translate(-50%);bottom:120px;margin:0;pointer-events:none;background:var(--card);border:1px solid var(--card-line);border-radius:999px;box-shadow:var(--shadow-sm);padding:10px 18px;font-size:13px;font-weight:600;color:var(--ink-soft);text-align:center;max-width:min(92vw,420px);animation:hintIn .5s var(--ease) .6s both}@keyframes hintIn{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.cfplot{height:108px;margin:2px 0 12px;padding:8px;background:var(--moss-soft);border-radius:var(--r-md);display:grid;place-items:center;animation:popIn var(--t-med) var(--ease)}.cfplot svg{width:100%;height:100%}.cfplot polygon{fill:#bccaa4;stroke:#5d7749;stroke-width:1;vector-effect:non-scaling-stroke}.psub{margin:4px 0 0;font-size:var(--text-caption);color:var(--ink-soft);display:flex;align-items:center;justify-content:space-between;gap:8px}.pname{font:inherit;font-size:15px;font-weight:600;color:var(--ink);border:none;outline:none;background:var(--sand-soft);border-radius:8px;padding:2px 6px;width:100%}.pactions{position:absolute;top:8px;right:8px;display:flex;gap:6px;opacity:0;transition:opacity var(--t-fast) var(--ease)}.projcard:hover .pactions,.projcard:focus-within .pactions{opacity:1}.pact{width:30px;height:30px;border:none;border-radius:8px;cursor:pointer;font-size:13px;background:#fffdf8f0;color:var(--ink);box-shadow:var(--shadow-sm);display:grid;place-items:center;transition:transform var(--t-fast) var(--ease)}.pact:active{transform:scale(.9)}.pact.danger{color:var(--terra-deep)}.pact:focus-visible{outline:2px solid var(--terra)}.addropt.active{background:var(--terra-soft)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width: 700px){:root{--sheet: 232px}.homewrap{padding-top:max(34px,env(safe-area-inset-top))}.homehead{margin-bottom:20px}.homehead h1{font-size:32px}.homehead p{font-size:13px}.searchrow{gap:8px}#addrInput{min-height:48px;padding-left:42px;font-size:12px}.searchicon{left:15px;width:15px;height:15px}.uploadbtn{width:48px;height:48px}.sectitle{margin-top:27px}.projempty{padding-top:0}.emptyart{width:min(100%,330px);margin-top:-2px}.projempty h3{font-size:22px}.projempty p{margin-top:6px;font-size:14px}.emptycta{margin-top:15px}.topstack,#ui.nopanel .topstack,#ui.placing .topstack,#ui.editing .topstack{padding-left:0}.topbar{padding:0 10px}.round{width:38px;height:38px;font-size:16px}.round-group{gap:6px;flex-wrap:wrap;justify-content:flex-end}.panel{top:auto;bottom:0;left:0;right:0;width:auto;height:var(--sheet);border-radius:var(--r-lg) var(--r-lg) 0 0;border-left:none;border-right:none;border-bottom:none;padding:12px 12px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -8px 28px #60462a29}.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.cards{grid-template-columns:repeat(auto-fill,minmax(78px,1fr))}.panelgrip{top:auto;left:50%;margin-left:0;z-index:5;bottom:calc(var(--sheet) + 12px);margin-bottom:0;transform:translate(-50%) rotate(-90deg);transition:bottom var(--t-med) var(--ease)}.panelgrip:active{transform:translate(-50%) rotate(-90deg) scale(.92)}#ui.nopanel .panelgrip{left:50%;bottom:calc(28px + env(safe-area-inset-bottom))}.statspanel{left:0;right:0;bottom:var(--sheet);min-width:0;border-radius:0;box-shadow:none;border:none;border-bottom:1px solid var(--card-line);background:#fffdf8f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:6px 14px;font-size:var(--text-caption);display:flex;align-items:center;justify-content:space-between;gap:10px;overflow-x:auto;scrollbar-width:none;transition:bottom var(--t-med) var(--ease)}.statrow{padding:0;gap:6px;white-space:nowrap;flex:0 0 auto;width:auto}.toggles{position:absolute;bottom:calc(100% + 8px);right:10px;min-width:190px;margin:0;padding:8px 12px;border:1px solid var(--card-line);background:var(--card);border-radius:var(--r-md);box-shadow:var(--shadow)}#ui.nopanel .statspanel,#ui.placing .statspanel,#ui.editing .statspanel{bottom:0;padding-bottom:calc(6px + env(safe-area-inset-bottom))}.selbar,.editbar,.status{bottom:calc(var(--sheet) + 44px);max-width:calc(100vw - 12px);transition:bottom var(--t-med) var(--ease)}#ui.nopanel .selbar,#ui.placing .selbar,#ui.editing .selbar,#ui.nopanel .editbar,#ui.placing .editbar,#ui.editing .editbar,#ui.nopanel .status,#ui.placing .status,#ui.editing .status{bottom:calc(52px + env(safe-area-inset-bottom))}.emptyhint{bottom:calc(var(--sheet) + 44px)}.toasts{bottom:calc(var(--sheet) + 84px)}#ui.nopanel~.toasts{bottom:calc(96px + env(safe-area-inset-bottom))}}
