:root { --bg:#f4f6f2; }
html,body { background: var(--bg); }
body { -webkit-tap-highlight-color: transparent; }
* { -webkit-font-smoothing: antialiased; }
.blueprint-el { cursor:pointer; transition: all .25s ease; }
.blueprint-el:active { transform: scale(0.98); }
.stroke-line { stroke:#8aa472; fill:none; }
.bp-shape { fill:#ffffff; stroke:#aec199; stroke-width:2; transition: all .25s ease; }
.bp-shape.selected { stroke:#566e44; stroke-width:3; fill:#e7ece1; }
.bp-shape.amber { stroke:#d9a441; }
.bp-shape.amber.selected { fill:#fbf1dc; stroke:#c98a1f; }
.bp-shape.overdue { stroke:#d2683f; stroke-width:2.5; fill:#fdf1ec; }
.bp-shape.overdue.selected { fill:#fbe1d7; stroke:#b34a22; }
.bp-label { font-size:9px; fill:#566e44; font-weight:500; pointer-events:none; }
.leaf-ico { pointer-events:none; }
/* modal slide up */
.sheet { transition: transform .32s cubic-bezier(.4,0,.1,1); }
.sheet.closed { transform: translateY(110%); }
.backdrop { transition: opacity .3s ease; }
.pulse-dot { animation: pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.35} }
.log-area { transition: max-height .3s ease, opacity .25s ease; overflow:hidden; }
::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-thumb { background:#cfdac3; border-radius:3px; }
