@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,650;9..144,700&family=Source+Sans+3:wght@400;600;700&display=swap";:root{--ink:#2a2118;--muted:#6d6256;--panel:#fffaf3;--panel-strong:#fff7ec;--line:#d7cdc0;--accent:#c45c26;--edge:#8a7460;--node-border:#cbbba8;--font-display:"Fraunces", Georgia, serif;--font-body:"Source Sans 3", "Segoe UI", sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);font-family:var(--font-body);color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;background:#ebe4d7;font-weight:400;line-height:1.4}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;min-height:100dvh;margin:0;overflow:hidden}button,input{font:inherit}.mm-app{height:100%;min-height:100dvh;color:var(--ink);padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);grid-template-columns:220px 1fr;display:grid}.mm-app.mm-status{grid-template-columns:1fr;display:grid}.mm-main{grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid}.mm-sidebar-backdrop{display:none}.mm-sidebar{border-right:1px solid var(--line);background:color-mix(in srgb, var(--panel) 94%, transparent);flex-direction:column;gap:.5rem;min-height:0;padding:.85rem .75rem;display:flex;overflow:auto}.mm-sidebar-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.mm-sidebar-header{font-family:var(--font-display);letter-spacing:-.02em;color:var(--accent);padding:.15rem .45rem .35rem;font-size:.95rem;font-weight:700}.mm-sidebar-close{display:none}.mm-map-list{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.mm-map-row{align-items:stretch;gap:.2rem;display:flex}.mm-map-item{text-align:left;min-width:0;color:var(--ink);font-family:var(--font-body);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:1;min-height:44px;padding:.55rem .65rem;font-size:.875rem;font-weight:600}.mm-map-item:hover{background:var(--panel-strong);border-color:var(--line)}.mm-map-item.is-active{background:color-mix(in srgb, var(--accent) 14%, var(--panel));border-color:color-mix(in srgb, var(--accent) 45%, var(--line));color:var(--accent)}.mm-map-item-title{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.mm-map-delete{width:40px;min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.mm-map-delete:hover{color:#9b2c2c;background:color-mix(in srgb, #9b2c2c 10%, var(--panel-strong));border-color:color-mix(in srgb, #9b2c2c 30%, var(--line))}.mm-map-confirm{z-index:40;background:#2a211873;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.mm-map-confirm-card{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:.65rem;width:min(100%,22rem);padding:1.15rem 1.2rem 1.05rem;display:flex;box-shadow:0 18px 40px #2a211838}.mm-map-confirm-card h2{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:1.15rem;font-weight:700}.mm-map-confirm-card p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.45}.mm-map-confirm-actions{justify-content:flex-end;gap:.5rem;margin-top:.35rem;display:flex}.mm-map-confirm-cancel,.mm-map-confirm-delete{border:1px solid var(--line);cursor:pointer;border-radius:8px;min-height:40px;padding:.45rem .9rem;font-weight:600}.mm-map-confirm-cancel{background:var(--panel-strong);color:var(--ink)}.mm-map-confirm-delete{color:#fffaf3;background:#9b2c2c;border-color:#9b2c2c}.mm-map-confirm-delete:hover{background:#882727}.mm-status{text-align:center;align-content:center;place-items:center;gap:.5rem;padding:2rem}.mm-status p{color:var(--muted);margin:0}.mm-toolbar{background:color-mix(in srgb, var(--panel) 92%, transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2;grid-template-columns:auto 1fr auto;grid-template-areas:"brand title actions""hint hint hint";align-items:center;gap:.65rem 1rem;padding:.85rem 1.25rem .75rem;display:grid}.mm-toolbar-lead{grid-area:brand;align-items:center;gap:.55rem;min-width:0;display:flex}.mm-maps-toggle{display:none}.mm-brand{font-family:var(--font-display);letter-spacing:-.03em;color:var(--accent);white-space:nowrap;font-size:1.35rem;font-weight:700}.mm-title{width:min(420px,100%);color:var(--ink);font-family:var(--font-body);background:0 0;border:1px solid #0000;border-radius:8px;grid-area:title;min-height:44px;padding:.4rem .55rem;font-size:1rem;font-weight:600}.mm-title:hover,.mm-title:focus{border-color:var(--line);background:var(--panel-strong);outline:none}.mm-actions{flex-wrap:wrap;grid-area:actions;justify-content:flex-end;gap:.45rem;display:flex}.mm-actions button,.mm-maps-toggle{border:1px solid var(--line);background:var(--accent);color:#fff8f1;font-family:var(--font-body);cursor:pointer;border-radius:8px;min-height:40px;padding:.45rem .8rem;font-size:.875rem;font-weight:600}.mm-actions button:disabled{opacity:.45;cursor:not-allowed}.mm-actions button.is-active,.mm-maps-toggle.is-active{background:color-mix(in srgb, var(--accent) 82%, #3a2414);box-shadow:inset 0 0 0 2px #fff8f1}.mm-actions button.mm-secondary,.mm-maps-toggle.mm-secondary{background:var(--panel-strong);color:var(--ink)}.mm-actions button:not(:disabled):hover,.mm-maps-toggle:hover{filter:brightness(1.05)}.mm-btn-short{display:none}.mm-zoom-wrap{flex:none;position:relative}.mm-zoom-trigger{justify-content:center;align-items:center;min-width:40px;padding-left:.55rem;padding-right:.55rem;display:inline-flex}.mm-zoom-icon{display:block}.mm-zoom-menu{z-index:8;border:1px solid var(--line);background:var(--panel);border-radius:10px;flex-direction:column;gap:.15rem;min-width:132px;padding:.35rem;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 28px #30241829}.mm-zoom-menu button{text-align:left;width:100%;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:7px;justify-content:flex-start;min-height:36px;padding:.45rem .55rem;font-size:.82rem;font-weight:600}.mm-zoom-menu button:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 12%, var(--panel-strong));border-color:color-mix(in srgb, var(--accent) 30%, var(--line));color:var(--accent);filter:none}.mm-zoom-menu button:disabled{opacity:.45;cursor:not-allowed}.mm-hint{color:var(--muted);grid-area:hint;margin:0;font-size:.8rem}.mm-canvas{cursor:grab;touch-action:none;overscroll-behavior:none;background-color:#0000;background-image:radial-gradient(circle at 12% 18%,#d67a3a1f,#0000 32%),radial-gradient(circle at 88% 12%,#2e6e7a24,#0000 36%),linear-gradient(#d9d0c033 1px,#0000 1px),linear-gradient(90deg,#d9d0c033 1px,#0000 1px),linear-gradient(160deg,#f7f1e8 0%,#ebe4d7 45%,#e3ecec 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,28px 28px,28px 28px,auto;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-height:0;position:relative;overflow:hidden}.mm-canvas:active,.mm-canvas.is-reparenting{cursor:grabbing}.mm-canvas.is-linking{cursor:crosshair}.mm-world{transform-origin:0 0;will-change:transform;position:absolute;top:0;left:0}.mm-edges{pointer-events:none;position:absolute;inset:0;overflow:visible}.mm-edge{stroke:var(--edge);stroke-width:2px}.mm-edge.is-vertical{stroke:var(--accent)}.mm-vmap-frame{fill:#c478480f;stroke:var(--accent);stroke-width:2px;stroke-dasharray:6 4;pointer-events:none}.mm-node{box-sizing:border-box;border:1.5px solid var(--node-border);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;z-index:1;background:linear-gradient(#fffdf9 0%,#f4ebe0 100%);border-radius:12px;justify-content:center;align-items:center;padding:.45rem .75rem;transition:border-color .12s,box-shadow .12s,transform .12s;display:flex;position:absolute;box-shadow:0 8px 18px #30241814}.mm-node.show-menu,.mm-node.is-menu-open{z-index:3}.mm-node-menu{border:1px solid var(--line);background:var(--panel);z-index:6;border-radius:10px;flex-direction:column;gap:.15rem;min-width:148px;padding:.35rem;display:flex;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 12px 28px #30241829}.mm-node-menu button{text-align:left;width:100%;color:var(--ink);font-family:var(--font-body);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:.55rem;min-height:36px;padding:.45rem .55rem;font-size:.82rem;font-weight:600;display:flex}.mm-node-menu-icon{color:var(--accent);flex:none}.mm-node-menu button:hover{background:color-mix(in srgb, var(--accent) 12%, var(--panel-strong));border-color:color-mix(in srgb, var(--accent) 30%, var(--line));color:var(--accent)}.mm-node-menu button:hover .mm-node-menu-icon{color:var(--accent)}.mm-node-menu-danger,.mm-node-menu-danger .mm-node-menu-icon{color:#9b2c2c}.mm-node-menu-danger:hover{background:color-mix(in srgb, #9b2c2c 10%, var(--panel-strong));border-color:color-mix(in srgb, #9b2c2c 35%, var(--line));color:#9b2c2c}.mm-node-menu-danger:hover .mm-node-menu-icon{color:#9b2c2c}.mm-node:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--node-border))}.mm-node.is-selected{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent), 0 10px 22px #3024181f}.mm-node.is-editing{padding:0}.mm-node.is-drag-armed{z-index:5;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent), 0 12px 24px #30241829;cursor:grabbing;transform:scale(1.03)}.mm-node.is-dragging{opacity:.55;cursor:grabbing;z-index:5;transform:scale(1.03)}.mm-node.is-drop-target{border-color:#2e6e7a;box-shadow:0 0 0 3px #2e6e7a47,0 10px 22px #3024181f}.mm-node.is-drop-before{box-shadow:0 -3px #2e6e7a,0 8px 18px #30241814}.mm-node.is-drop-after{box-shadow:0 3px #2e6e7a,0 8px 18px #30241814}.mm-node-label{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;text-align:center;width:100%;font-family:var(--font-body);color:var(--ink);font-size:.92rem;font-weight:600;line-height:1.35;display:block;overflow:hidden}.mm-node-input{width:100%;height:100%;color:var(--ink);font-family:var(--font-body);text-align:center;background:#fff;border:none;border-radius:11px;outline:none;padding:0 .65rem;font-size:.92rem;font-weight:600}@media (width<=720px){.mm-app{grid-template-rows:1fr;grid-template-columns:1fr}.mm-main{height:100%;min-height:0}.mm-sidebar-backdrop{z-index:20;opacity:0;pointer-events:none;background:#2a211859;border:0;margin:0;padding:0;transition:opacity .16s;display:block;position:fixed;inset:0}.mm-sidebar-backdrop.is-open{opacity:1;pointer-events:auto}.mm-sidebar{z-index:30;border-right:1px solid var(--line);width:min(82vw,300px);max-height:none;padding-top:calc(.85rem + var(--safe-top));padding-bottom:calc(.85rem + var(--safe-bottom));padding-left:calc(.75rem + var(--safe-left));background:var(--panel);border-bottom:none;transition:transform .18s;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:8px 0 28px #3024182e}.mm-sidebar.is-open{transform:translate(0)}.mm-sidebar-close{border:1px solid var(--line);background:var(--panel-strong);color:var(--ink);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;min-height:36px;padding:.35rem .65rem;font-size:.8rem;font-weight:600;display:inline-flex}.mm-maps-toggle{flex:none;justify-content:center;align-items:center;display:inline-flex}.mm-toolbar{grid-template-columns:1fr;grid-template-areas:"brand""title""actions";gap:.55rem;padding:.65rem .75rem .6rem}.mm-brand{font-size:1.15rem}.mm-title{width:100%;font-size:.95rem}.mm-actions{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;padding-bottom:.1rem;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#000 92%,#0000);mask-image:linear-gradient(90deg,#000 92%,#0000)}.mm-actions::-webkit-scrollbar{display:none}.mm-actions button{flex:none;min-height:40px;padding:.4rem .7rem;font-size:.8rem}.mm-btn-long{display:none}.mm-btn-short{display:inline}.mm-hint{display:none}.mm-node-menu{min-width:160px}.mm-node-menu button{min-height:40px;font-size:.88rem}}@media (width<=420px){.mm-brand{font-size:1.05rem}.mm-actions button{padding:.4rem .55rem}}
